PATCH
/api/public/v1/projects/{projectId}

Update a project

Change the project’s own details. The key is deliberately absent: it is baked into every ticket id already quoted in a message, a commit and a browser history.

Required scope

The access token must carry this scope. A token missing it gets 403 Forbidden. Grant them to an API client under Dev Tools → API, to an assistant or CLI sign-in when you approve or edit it under Dev Tools, and to a teammate under Employee → Permissions.

projects:admin

Path Parameters

NameTypeRequiredDescription
projectIdstringRequiredProject ID.

Request Body

PropertyTypeDescription
namestringRename it.
descriptionstringWhat it is for.
colorstringA palette key.
statusstringWhere the project sits in its own life.
startDatestringISO 8601.
targetDatestringISO 8601.
PATCHExample request
curl
curl -X PATCH "https://www.pxb.app/api/public/v1/projects/{projectId}" \
  -H "Authorization: Bearer your_access_token" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "PAUSED"
  }'
200Example response
json
{
  "message": "Project updated successfully!",
  "content": {
    "project": {
      "id": "prj_a1b2c3",
      "key": "APOLLO",
      "name": "Apollo billing rebuild",
      "description": "Everything that has to land before invoicing moves over.",
      "color": "violet",
      "icon": null,
      "status": "ACTIVE",
      "startDate": "2026-07-01T12:00:00.000Z",
      "targetDate": "2026-12-31T12:00:00.000Z",
      "creator": {
        "employeeId": "emp_12ab",
        "name": "Sam Okafor",
        "email": null,
        "avatarUrl": null
      },
      "ticketCount": 24,
      "milestoneCount": 3,
      "goalCount": 5,
      "createdAt": "2026-06-02T10:00:00.000Z",
      "updatedAt": "2026-08-20T09:41:00.000Z"
    }
  }
}

In the console

The same thing done by hand, for anyone comparing the API against the screen they already use.

Projects
/projects
  1. Open a project.
  2. Settings.