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

API reference

Tracking

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

POST/v1/me/breadcrumbsUpload locations recorded during your shift (batched, idempotent)

Upload locations recorded during your shift (batched, idempotent)

Only stored where the workspace or site shares location during shifts (tracking.during_shift), while the shift was open and not on a break. Each point lands on the shift that was open at its time; sending the same point again changes nothing. Refused points come back counted by reason (tracking_off, not_clocked_in, on_break, future, too_old) and should not be sent again. tracking.active says whether to keep sharing.

Body (JSON)

NameTypeDescription
pointsrequiredarray of object
points[].atrequiredstring (date-time)
points[].latrequirednumber
points[].lngrequirednumber
points[].accuracy_mnumber
points[].speed_mpsnumber
points[].headingnumber
points[].mockedboolean
device_nowstring (date-time)

Example

curl -X POST "https://ca-api.clocklap.com/v1/me/breadcrumbs" \
  -H "Authorization: Bearer $CLOCKLAP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"points":[{"at":"2026-10-26T13:00:00Z","lat":-90,"lng":-180}],"device_now":"2026-10-26T13:00:00Z"}'

Responses

200

POST/v1/me/tracking/stateTell the server whether this phone can share its location during the shift

Tell the server whether this phone can share its location during the shift

denied (location permission refused) or unavailable (location services off) is shown to managers on the shift and sends location.tracking_paused. It never blocks clocking in.

Body (JSON)

NameTypeDescription
staterequired"active" | "denied" | "unavailable"

Example

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

Responses

200

GET/v1/time-entries/{id}/routeA shift’s route: locations shared during it, distance, stops, sites visited and trips

A shift’s route: locations shared during it, distance, stops, sites visited and trips

Path parameters

NameTypeDescription
idrequiredstring

Example

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

Responses

200

GET/v1/time-entries/{id}/sites-visitedSites whose geofence the shift’s shared locations fell in, with first and last time there

Sites whose geofence the shift’s shared locations fell in, with first and last time there

Path parameters

NameTypeDescription
idrequiredstring

Example

curl "https://ca-api.clocklap.com/v1/time-entries/{id}/sites-visited" \
  -H "Authorization: Bearer $CLOCKLAP_API_KEY"

Responses

200

GET/v1/tracking/liveLive map: latest position of each clocked-in person in your scope (managers)

Live map: latest position of each clocked-in person in your scope (managers)

Query parameters

NameTypeDescription
location_idstring

Example

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

Responses

200

GET/v1/tripsDrives detected in shared locations, with distance and drive time (newest first)

Drives detected in shared locations, with distance and drive time (newest first)

Query parameters

NameTypeDescription
fromstring (date-time)
tostring (date-time)
user_idstring
location_idstring
project_idstringOnly trips on this project ("none" for trips without one)
mineboolean
limitinteger Default 100
cursorstring

Example

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

Responses

200

GET/v1/trips/{id}One trip

One trip

Path parameters

NameTypeDescription
idrequiredstring

Example

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

Responses

200

POST/v1/trips/{id}/expenseClaim a trip as a mileage expense (its distance at the mileage rate; once per trip)

Claim a trip as a mileage expense (its distance at the mileage rate; once per trip)

Path parameters

NameTypeDescription
idrequiredstring

Example

curl -X POST "https://ca-api.clocklap.com/v1/trips/{id}/expense" \
  -H "Authorization: Bearer $CLOCKLAP_API_KEY"

Responses

200