Files
2026-02-19 12:11:01 +00:00

3.7 KiB

Clockify Routing Reference

App name: clockify Base URL proxied: api.clockify.me

API Path Pattern

/clockify/api/v1/{resource}

Common Endpoints

Get Current User

GET /clockify/api/v1/user

List Workspaces

GET /clockify/api/v1/workspaces

Get Workspace

GET /clockify/api/v1/workspaces/{workspaceId}

List Workspace Users

GET /clockify/api/v1/workspaces/{workspaceId}/users

List Projects

GET /clockify/api/v1/workspaces/{workspaceId}/projects

Get Project

GET /clockify/api/v1/workspaces/{workspaceId}/projects/{projectId}

Create Project

POST /clockify/api/v1/workspaces/{workspaceId}/projects
Content-Type: application/json

{
  "name": "My Project",
  "isPublic": true,
  "clientId": "optional-client-id"
}

Update Project

PUT /clockify/api/v1/workspaces/{workspaceId}/projects/{projectId}
Content-Type: application/json

{
  "name": "Updated Project Name",
  "archived": true
}

Delete Project

DELETE /clockify/api/v1/workspaces/{workspaceId}/projects/{projectId}

List Clients

GET /clockify/api/v1/workspaces/{workspaceId}/clients

Create Client

POST /clockify/api/v1/workspaces/{workspaceId}/clients
Content-Type: application/json

{
  "name": "Client Name",
  "address": "123 Main St",
  "note": "Client notes"
}

List Tags

GET /clockify/api/v1/workspaces/{workspaceId}/tags

Create Tag

POST /clockify/api/v1/workspaces/{workspaceId}/tags
Content-Type: application/json

{
  "name": "urgent"
}

List Tasks on Project

GET /clockify/api/v1/workspaces/{workspaceId}/projects/{projectId}/tasks

Create Task

POST /clockify/api/v1/workspaces/{workspaceId}/projects/{projectId}/tasks
Content-Type: application/json

{
  "name": "Task Name",
  "assigneeIds": ["user-id"],
  "estimate": "PT2H",
  "billable": true
}

Get User's Time Entries

GET /clockify/api/v1/workspaces/{workspaceId}/user/{userId}/time-entries

Create Time Entry

POST /clockify/api/v1/workspaces/{workspaceId}/time-entries
Content-Type: application/json

{
  "start": "2026-02-13T09:00:00Z",
  "end": "2026-02-13T10:00:00Z",
  "description": "Working on task",
  "projectId": "project-id",
  "taskId": "task-id",
  "tagIds": ["tag-id"],
  "billable": true
}

Get Time Entry

GET /clockify/api/v1/workspaces/{workspaceId}/time-entries/{timeEntryId}

Update Time Entry

PUT /clockify/api/v1/workspaces/{workspaceId}/time-entries/{timeEntryId}
Content-Type: application/json

{
  "description": "Updated description",
  "end": "2026-02-13T11:00:00Z"
}

Delete Time Entry

DELETE /clockify/api/v1/workspaces/{workspaceId}/time-entries/{timeEntryId}

Stop Running Timer

PATCH /clockify/api/v1/workspaces/{workspaceId}/user/{userId}/time-entries
Content-Type: application/json

{
  "end": "2026-02-13T17:00:00Z"
}

Notes

  • All IDs are strings
  • Timestamps must be in ISO 8601 format with UTC timezone (e.g., 2026-02-13T09:00:00Z)
  • Duration format uses ISO 8601 duration (e.g., PT1H for 1 hour, PT30M for 30 minutes)
  • Cannot delete active projects or tasks - must archive them first
  • Page-based pagination with page and page-size query parameters
  • Response includes Last-Page header indicating if more pages exist
  • Rate limit: 50 requests per second per workspace

Resources