Skip to content
TTrackTimer
API documentation

List projects for a client

View Markdown

Find assigned, unarchived projects for a client in the key’s workspace.

GET /api/v1/projects

Required scope: projects:read

Returns the user's assigned, unarchived projects under the requested unarchived client. Results sort by client name and project name.

Request

Requires bearer authentication and projects:read. The query parameter clientId is a required UUID. Missing, empty, or non-UUID input returns 400 INVALID_REQUEST. No request body or pagination.

curl "https://www.tracktimer.app/api/v1/projects?clientId=11111111-1111-4111-8111-111111111111" \
  --header "Authorization: Bearer $TRACKTIMER_API_KEY"

Response — 200

  • projects: array, possibly empty.
  • projects[].id: project UUID.
  • projects[].clientId: parent client UUID.
  • projects[].name: nonempty project name.
{
  "projects": [
    {
      "id": "22222222-2222-4222-8222-222222222222",
      "clientId": "11111111-1111-4111-8111-111111111111",
      "name": "Website refresh"
    }
  ]
}

A valid UUID with no visible matches returns {"projects":[]}, including unknown, inaccessible, or archived clients. Discovery checks assignment and archive state; starting also needs the member's rate setup. A discovery result alone does not guarantee start will succeed. See shared errors.