---
title: "Update a project"
method: PATCH
path: "/v1/projects/{projectId}"
tags: ["projects"]
---

# Update a project

`PATCH /v1/projects/{projectId}`

Update project name, URL, description, or settings.

## Path parameters

- `projectId` string, required

## Headers

- `Authorization` string, required

## Request body

- object
  - `browserRegion` 'eu' | 'us' — Default proxy exit region for web runs. null keeps the provider's default networking. Web projects only.
  - `prTestingEnabled` boolean — Test PR deployments automatically.
  - `prTestingInstructions` string, nullable — Free-form instructions for the PR exploration agent.
  - `prTestingDebounceMinutes` integer — Quiet period before a PR deployment is tested. 0 disables debouncing.
  - `includeExampleMobileApp` boolean — Offer the example app as a run target. Mobile projects only.
  - `autoDeleteOldestMobileApp` boolean — Delete the oldest unused app builds when an upload exceeds the storage quota. Mobile projects only.
  - `accessibilityAuditEnabled` boolean — Scan visited pages with axe-core during web runs and report critical accessibility violations as non-blocking warnings. On by default. Web projects only.
  - `name` string
  - `url` string
  - `description` string, nullable

## Response `200`

Project updated

- ProjectsUpdateAProjectResponse200
  - `project` ProjectDetail, required
    - `browserRegion` 'eu' | 'us' — Default proxy exit region for web runs. null keeps the provider's default networking. Web projects only.
    - `prTestingEnabled` boolean — Test PR deployments automatically.
    - `prTestingInstructions` string, nullable — Free-form instructions for the PR exploration agent.
    - `prTestingDebounceMinutes` integer — Quiet period before a PR deployment is tested. 0 disables debouncing.
    - `includeExampleMobileApp` boolean — Offer the example app as a run target. Mobile projects only.
    - `autoDeleteOldestMobileApp` boolean — Delete the oldest unused app builds when an upload exceeds the storage quota. Mobile projects only.
    - `accessibilityAuditEnabled` boolean — Scan visited pages with axe-core during web runs and report critical accessibility violations as non-blocking warnings. On by default. Web projects only.
    - `id` string, uuid, required
    - `shortId` string, nullable, required
    - `name` string, required
    - `url` string, nullable, required
    - `projectType` 'web' | 'mobile', required
    - `description` string, nullable, required
    - `environments` ProjectDetailEnvironmentsItems[], required
      - `id` string, uuid, required
      - `name` string, required
      - `slug` string, required
      - `kind` 'production' | 'pr_preview' | 'static', required
      - `url` string, nullable, required
    - `createdAt` string, date-time
    - `updatedAt` string, date-time

## Other responses

- `400` — Bad Request - Invalid input parameters
- `401` — Unauthorized - Invalid or missing API key
- `429` — Too Many Requests - Usage limit exceeded
- `500` — Internal Server Error
- `504` — Gateway Timeout - Test execution exceeded time limit

---

[API](https://skmtc.net/tester/apis/testerarmy-api.md) · [All operations](https://skmtc.net/tester/apis/testerarmy-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tester/testerarmy-api/revisions/3156fb59f41d/schema)
