---
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.
  - `prTestingBlockMerge` boolean — Conclude the GitHub check run as failed when tests fail, so a required TesterArmy check blocks the merge. Off by default.
  - `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.
    - `prTestingBlockMerge` boolean — Conclude the GitHub check run as failed when tests fail, so a required TesterArmy check blocks the merge. Off by default.
    - `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

## Changes

- **2026-08-22** `bf198f94879a` — 2 breaking, 6 warning
  - the `name` request property's minLength was increased from `0` to `1`
  - the `url` request property's minLength was increased from `0` to `1`
  - the `description` request property's maxLength was set to `2000`
  - the `name` request property's maxLength was set to `255`
  - …4 more
- **2026-08-15** `89133f9e1875` — 2 info
  - added the new optional request property `prTestingBlockMerge`
  - added the optional property `project/prTestingBlockMerge` to the response with the `200` status
- **2026-08-12** `3156fb59f41d` — 14 info
  - added the new optional request property `accessibilityAuditEnabled`
  - added the new optional request property `autoDeleteOldestMobileApp`
  - added the new optional request property `browserRegion`
  - added the new optional request property `includeExampleMobileApp`
  - …10 more

[Change history](https://skmtc.dev/tester/apis/testerarmy-api/changes/v1/projects/:projectId/patch.md)

---

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