Skip to content
ClockLap Developers
API reference clocklap.com Get an API key

API reference

Timer

12 endpoints. Click one to see its parameters, fields and an example. Code samples use the region you pick.

GET/v1/timerThe running timer (if any) and the timer settings that apply to you

The running timer (if any) and the timer settings that apply to you

Example

curl "https://ca-api.clocklap.com/v1/timer" \
  -H "Authorization: Bearer $CLOCKLAP_API_KEY"

Responses

200

PATCH/v1/timerChange the running timer (description, project, tags, billable, start) without splitting it

Change the running timer (description, project, tags, billable, start) without splitting it

Body (JSON)

NameTypeDescription
project_idstring or null
activity_idstring or null
descriptionstring
tagsarray of string
billableboolean or null
started_atstring (date-time)

Example

curl -X PATCH "https://ca-api.clocklap.com/v1/timer" \
  -H "Authorization: Bearer $CLOCKLAP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Responses

200

POST/v1/timer/entriesAdd a past entry to your own time (start and end, or a duration)

Add a past entry to your own time (start and end, or a duration)

Needs policy.timer.manual_entries and off_site. Source entry.

Body (JSON)

NameTypeDescription
project_idstring or null
activity_idstring or null
descriptionstring
tagsarray of string
billableboolean or null
task_idstring or null
work_order_idstring or null
startrequiredstring (date-time)
endstring (date-time)
duration_mininteger
location_idstring

Example

curl -X POST "https://ca-api.clocklap.com/v1/timer/entries" \
  -H "Authorization: Bearer $CLOCKLAP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"start":"2026-10-26T13:00:00Z"}'

Responses

200

PATCH/v1/timer/entries/{id}Fix one of your own timer or typed-in entries

Fix one of your own timer or typed-in entries

Path parameters

NameTypeDescription
idrequiredstring

Body (JSON)

NameTypeDescription
clock_in_atstring (date-time)
clock_out_atstring (date-time) or null
notestring or null
project_idstring or null
activity_idstring or null
task_idstring or null
work_order_idstring or null
billableboolean or null
custom_fieldsobject
tagsarray of string
reasonstring

Example

curl -X PATCH "https://ca-api.clocklap.com/v1/timer/entries/{id}" \
  -H "Authorization: Bearer $CLOCKLAP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Responses

200

DELETE/v1/timer/entries/{id}Delete one of your own timer or typed-in entries

Delete one of your own timer or typed-in entries

Path parameters

NameTypeDescription
idrequiredstring

Example

curl -X DELETE "https://ca-api.clocklap.com/v1/timer/entries/{id}" \
  -H "Authorization: Bearer $CLOCKLAP_API_KEY"

Responses

200

POST/v1/timer/idleComing back after idle time

Coming back after idle time

discard: the entry ends at since and the same work carries on from now. stop: the timer stops at since. (Keeping the time needs no call.)

Body (JSON)

NameTypeDescription
sincerequiredstring (date-time)
actionrequired"discard" | "stop"

Example

curl -X POST "https://ca-api.clocklap.com/v1/timer/idle" \
  -H "Authorization: Bearer $CLOCKLAP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"since":"2026-10-26T13:00:00Z","action":"discard"}'

Responses

200

GET/v1/timer/recentYour recent pieces of work to continue (project, activity, description, tags)

Your recent pieces of work to continue (project, activity, description, tags)

Query parameters

NameTypeDescription
limitinteger Default 10

Example

curl "https://ca-api.clocklap.com/v1/timer/recent" \
  -H "Authorization: Bearer $CLOCKLAP_API_KEY"

Responses

200

POST/v1/timer/startStart a timer (stops a running one first)

Start a timer (stops a running one first)

Creates an ordinary time entry with source timer. If something is running it ends and the new entry starts at the same instant (a project switch). continue_entry_id repeats an earlier entry's project, activity, description, tags and billable. Where the workspace keeps timers on site (policy.timer.off_site false), send lat/lng from inside the site. Refused starts answer 422 with code and detail.

Body (JSON)

NameTypeDescription
project_idstring or null
activity_idstring or null
descriptionstring
tagsarray of string
billableboolean or null
task_idstring or null
work_order_idstring or null
continue_entry_idstring
location_idstring
latnumber
lngnumber
accuracy_mnumber
local_idstring
atstring (date-time)
device_idstring
device_nowstring (date-time)The device's clock when sending; times are corrected when it is more than 2 minutes off the server's.

Example

curl -X POST "https://ca-api.clocklap.com/v1/timer/start" \
  -H "Authorization: Bearer $CLOCKLAP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Responses

200

POST/v1/timer/stopStop the running timer (now, or at `at`)

Stop the running timer (now, or at at)

Body (JSON)

NameTypeDescription
atstring (date-time)
local_idstring
device_idstring
custom_fieldsobject
device_nowstring (date-time)The device's clock when sending; times are corrected when it is more than 2 minutes off the server's.

Example

curl -X POST "https://ca-api.clocklap.com/v1/timer/stop" \
  -H "Authorization: Bearer $CLOCKLAP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'

Responses

200

GET/v1/timer/tagsTags in use in the workspace, most used first

Tags in use in the workspace, most used first

Example

curl "https://ca-api.clocklap.com/v1/timer/tags" \
  -H "Authorization: Bearer $CLOCKLAP_API_KEY"

Responses

200

GET/v1/timer/weekYour week as a grid: hours per project (and activity) per day

Your week as a grid: hours per project (and activity) per day

Query parameters

NameTypeDescription
datestring

Example

curl "https://ca-api.clocklap.com/v1/timer/week" \
  -H "Authorization: Bearer $CLOCKLAP_API_KEY"

Responses

200

PUT/v1/timer/week/cellType the hours for a project on a day

Type the hours for a project on a day

More hours add a typed-in entry in a free gap of the day; fewer shorten typed-in entries. Tracked time is never cut.

Body (JSON)

NameTypeDescription
daterequiredstring
project_idstring or null
activity_idstring or null
hoursrequirednumber

Example

curl -X PUT "https://ca-api.clocklap.com/v1/timer/week/cell" \
  -H "Authorization: Bearer $CLOCKLAP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-10-26","project_id":"pro_01J…","activity_id":"act_01J…","hours":0}'

Responses

200