Skip to content

Project Mutations

Every endpoint on this page requires projects:write.

Creates a project.

FieldTypeRequired
projectNamestringyes
projectKeystringyes
summarystringyes
descriptionstringyes
teamIdstringyes
leadUserAccountIdstringno
priorityintegeryes
projectStatusIdstringno
targetDatedatetimeno
iconCssstringyes
colorstringyes
Terminal window
curl -X POST "$API_BASE_URL/v1/projects" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"projectName": "Public API Docs",
"projectKey": "DOCS",
"summary": "Ship the first complete public API reference.",
"description": "Documentation work for the public API rollout.",
"teamId": "team_platform",
"leadUserAccountId": "usr_01EXAMPLE",
"priority": 2,
"projectStatusId": "proj-status_in-progress",
"targetDate": "2025-03-15T00:00:00Z",
"iconCss": "fa-regular fa-book-open",
"color": "#0f766e"
}'

Response 201 Created:

{
"id": "proj_docs",
"workspaceId": "ws_01EXAMPLE",
"name": "Public API Docs",
"slug": "public-api-docs",
"key": "DOCS",
"summary": "Ship the first complete public API reference.",
"description": "Documentation work for the public API rollout.",
"iconCss": "fa-regular fa-book-open",
"color": "#0f766e",
"state": "active",
"statusId": "proj-status_in-progress",
"priority": 2,
"teamId": "team_platform",
"leadUserAccountId": "usr_01EXAMPLE",
"memberUserAccountIds": [],
"labelIds": [],
"startUtc": null,
"targetUtc": "2025-03-15T00:00:00Z",
"progressPercent": 0,
"linkCount": 0
}

Updates a project.

All fields are optional, but at least one writable field must be provided.

FieldTypeNotes
namestringUpdate project name
summarystringUpdate summary
descriptionstringPlain text description
statestringplanned, active, paused, completed, or archived
projectStatusIdstringUpdate status ID
priorityintegerUpdate priority
teamIdstringReassign team
leadUserAccountIdstringSet lead
clearLeadbooleanClear lead
memberUserAccountIdsstring arrayReplace members
labelIdsstring arrayReplace labels
iconCssstringUpdate icon
colorstringUpdate color
startDatedatetimeSet start date
clearStartDatebooleanClear start date
targetDatedatetimeSet target date
clearTargetDatebooleanClear target date
  • leadUserAccountId and clearLead cannot be combined
  • startDate and clearStartDate cannot be combined
  • targetDate and clearTargetDate cannot be combined
Terminal window
curl -X PATCH "$API_BASE_URL/v1/projects/DOCS" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"summary": "Ship complete public API docs with deployment guidance.",
"priority": 1,
"memberUserAccountIds": [
"usr_01EXAMPLE",
"usr_01SAM"
],
"labelIds": [
"label_docs"
],
"targetDate": "2025-03-20T00:00:00Z"
}'

Response 200 OK:

{
"id": "proj_docs",
"workspaceId": "ws_01EXAMPLE",
"name": "Public API Docs",
"slug": "public-api-docs",
"key": "DOCS",
"summary": "Ship complete public API docs with deployment guidance.",
"description": "Documentation work for the public API rollout.",
"iconCss": "fa-regular fa-book-open",
"color": "#0f766e",
"state": "active",
"statusId": "proj-status_in-progress",
"priority": 1,
"teamId": "team_platform",
"leadUserAccountId": "usr_01EXAMPLE",
"memberUserAccountIds": [
"usr_01EXAMPLE",
"usr_01SAM"
],
"labelIds": [
"label_docs"
],
"startUtc": "2025-02-01T00:00:00Z",
"targetUtc": "2025-03-20T00:00:00Z",
"progressPercent": 55,
"linkCount": 2
}

Deletes a project.

Terminal window
curl -X DELETE "$API_BASE_URL/v1/projects/DOCS" \
-H "Authorization: Bearer $ACCESS_TOKEN"

Response 204 No Content.

Creates a project link.

FieldTypeRequired
urlstringyes
titlestringyes
Terminal window
curl -X POST "$API_BASE_URL/v1/projects/DOCS/links" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/tracking",
"title": "Tracking issue"
}'

Response 201 Created:

{
"linkId": "plink_tracking",
"url": "https://example.com/tracking",
"title": "Tracking issue",
"createdUtc": "2025-02-24T15:04:05Z",
"createdByUserAccountId": "usr_01EXAMPLE"
}

If an equivalent link already exists, the API returns the existing link with 200 OK.

DELETE /v1/projects/{projectKey}/links/{linkId}

Section titled “DELETE /v1/projects/{projectKey}/links/{linkId}”

Deletes a project link.

Terminal window
curl -X DELETE "$API_BASE_URL/v1/projects/DOCS/links/plink_tracking" \
-H "Authorization: Bearer $ACCESS_TOKEN"

Response 204 No Content.

  • Unknown project keys return 404 not_found
  • Duplicate project keys return 409 conflict
  • Invalid payloads return 400 validation_failed