Access the Clockify API with managed OAuth authentication. Track time, manage projects, clients, tasks, tags, and workspaces.
Reference
Get Current User
GET /clockify/api/v1/userResponse:
{
"id": "698eeb9f5cd3a921db12069f",
"email": "user@example.com",
"name": "John Doe",
"activeWorkspace": "698eeb9e5cd3a921db120693",
"defaultWorkspace": "698eeb9e5cd3a921db120693",
"status": "ACTIVE"
}List Workspaces
GET /clockify/api/v1/workspacesGet Workspace
GET /clockify/api/v1/workspaces/{workspaceId}Create Workspace
POST /clockify/api/v1/workspaces
Content-Type: application/json
{
"name": "My Workspace"
}List Workspace Users
GET /clockify/api/v1/workspaces/{workspaceId}/usersList Projects
GET /clockify/api/v1/workspaces/{workspaceId}/projectsGet 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"
}Response:
{
"id": "698f7cba4f748f6209ea8995",
"name": "My Project",
"clientId": "",
"workspaceId": "698eeb9e5cd3a921db120693",
"billable": true,
"color": "#1976D2",
"archived": false,
"public": true
}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}Note: You cannot delete active projects. Set archived: true first.
List Clients
GET /clockify/api/v1/workspaces/{workspaceId}/clientsGet Client
GET /clockify/api/v1/workspaces/{workspaceId}/clients/{clientId}Create Client
POST /clockify/api/v1/workspaces/{workspaceId}/clients
Content-Type: application/json
{
"name": "Acme Corp",
"address": "123 Main St",
"note": "Important client"
}Response:
{
"id": "698f7cba0705b7d880830262",
"name": "Acme Corp",
"workspaceId": "698eeb9e5cd3a921db120693",
"archived": false,
"address": "123 Main St",
"note": "Important client"
}Update Client
PUT /clockify/api/v1/workspaces/{workspaceId}/clients/{clientId}
Content-Type: application/json
{
"name": "Acme Corporation"
}Delete Client
DELETE /clockify/api/v1/workspaces/{workspaceId}/clients/{clientId}List Tags
GET /clockify/api/v1/workspaces/{workspaceId}/tagsGet Tag
GET /clockify/api/v1/workspaces/{workspaceId}/tags/{tagId}Create Tag
POST /clockify/api/v1/workspaces/{workspaceId}/tags
Content-Type: application/json
{
"name": "urgent"
}Response:
{
"id": "698f7cbbaa9e9f33e5fc0126",
"name": "urgent",
"workspaceId": "698eeb9e5cd3a921db120693",
"archived": false
}Update Tag
PUT /clockify/api/v1/workspaces/{workspaceId}/tags/{tagId}
Content-Type: application/json
{
"name": "high-priority"
}Delete Tag
DELETE /clockify/api/v1/workspaces/{workspaceId}/tags/{tagId}List Tasks on Project
GET /clockify/api/v1/workspaces/{workspaceId}/projects/{projectId}/tasksGet Task
GET /clockify/api/v1/workspaces/{workspaceId}/projects/{projectId}/tasks/{taskId}Create Task
POST /clockify/api/v1/workspaces/{workspaceId}/projects/{projectId}/tasks
Content-Type: application/json
{
"name": "Implement feature",
"assigneeIds": ["user-id-1"],
"estimate": "PT2H",
"billable": true
}Response:
{
"id": "698f7cc4aa9e9f33e5fc017b",
"name": "Implement feature",
"projectId": "698f7cba4f748f6209ea8995",
"assigneeIds": [],
"estimate": "PT0S",
"status": "ACTIVE",
"billable": true
}Update Task
PUT /clockify/api/v1/workspaces/{workspaceId}/projects/{projectId}/tasks/{taskId}
Content-Type: application/json
{
"name": "Updated task name",
"status": "DONE"
}Delete Task
DELETE /clockify/api/v1/workspaces/{workspaceId}/projects/{projectId}/tasks/{taskId}Note: You cannot delete active tasks. Set status: "DONE" first.
Get User's Time Entries
GET /clockify/api/v1/workspaces/{workspaceId}/user/{userId}/time-entriesResponse:
[
{
"id": "698f7cc4aa9e9f33e5fc0180",
"description": "Working on project",
"userId": "698eeb9f5cd3a921db12069f",
"billable": true,
"projectId": "698f7cba4f748f6209ea8995",
"taskId": null,
"workspaceId": "698eeb9e5cd3a921db120693",
"timeInterval": {
"start": "2026-02-13T18:34:28Z",
"end": "2026-02-13T19:34:28Z",
"duration": "PT1H"
}
}
]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": "Team meeting",
"projectId": "project-id",
"taskId": "task-id",
"tagIds": ["tag-id-1", "tag-id-2"],
"billable": true
}Create Time Entry for Another User
POST /clockify/api/v1/workspaces/{workspaceId}/user/{userId}/time-entries
Content-Type: application/json
{
"start": "2026-02-13T09:00:00Z",
"end": "2026-02-13T10:00:00Z",
"description": "Team meeting"
}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
{
"start": "2026-02-13T09:00:00Z",
"end": "2026-02-13T11:00:00Z",
"description": "Extended meeting"
}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"
}Get In-Progress Time Entries
GET /clockify/api/v1/workspaces/{workspaceId}/time-entries