Skip to content
TTrackTimer
API documentation

Create a project

View Markdown

Create a project as a workspace admin and automatically join it.

POST /api/v1/projects

Required scope: projects:write

Create a project under an active client in the key’s workspace. The creator is assigned in the same transaction, so a project needs no prior time entries or active timer. Creation does not start a timer.

Request

POST https://www.tracktimer.app/api/v1/projects with bearer authentication, projects:write, and Content-Type: application/json. The current workspace role must be owner or admin. Existing keys need replacement to receive the new scope.

  • clientId: required UUID of an active client in this workspace.
  • name: required project name, trimmed, 1–200 characters.
  • color: optional supported color or null to inherit the client color.

Unknown properties are rejected. The server chooses the workspace and creator from the key.

curl --request POST "https://www.tracktimer.app/api/v1/projects" \
  --header "Authorization: Bearer $TRACKTIMER_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{"clientId":"11111111-1111-4111-8111-111111111111","name":"Website refresh"}'

Response — 201

project contains its UUID, parent client UUID, name, and resolved color.

{"project":{"id":"22222222-2222-4222-8222-222222222222","clientId":"11111111-1111-4111-8111-111111111111","name":"Website refresh","color":"#ff5c35"}}

Use the returned project ID to start a timer. Normal member rate requirements still apply. The creator can later remove their assignment through workspace member management.

Errors and retries

This endpoint is not idempotent and does not use Idempotency-Key. Never automatically retry project creation after a timeout, server error, or lost response: the project may already exist. List projects for the client and reconcile before deciding to create again.

Missing scope or a non-admin role returns 403. An unknown, archived, or other-workspace client returns 404. Invalid input returns 400. See shared errors.