Control my timer
Starts, pauses, resumes, stops, or discards the caller’s one canonical timer. Stop atomically creates one entry and removes the timer.
POST
/api/v1/time-timer/:actionAuthorization
time:write_selfapi key scoperequiredRequired scope when calling with an API key.
Path parameters
actionstringrequiredTimer command
Example: stop
Request body
expected_versionnumberoptionalRequired except for start
work_datestringoptionalStop work date; defaults to today
duration_minutesnumberoptionalOptional explicit stop duration override
project_idstringoptionalStart target project
work_item_idstringoptionalStart target work item
category_keystringoptionalRequired for start; optional stop override
billable_statusstringoptional"billable" | "non_billable" | "investment"Start or stop classification
notesstringoptionalStart notes or stop override
Example request
{
"expected_version": 1,
"work_date": "2026-07-14",
"notes": "Finished timer work"
}Request
curl -X POST "https://www.digitalstack360.com/api/v1/time-timer/stop" \
-H "Authorization: Bearer $DS_API_KEY" \
-H "Idempotency-Key: timer-stop-2026-07-14" \
-H "Content-Type: application/json" \
-d '{"expected_version":1,"work_date":"2026-07-14","notes":"Finished timer work"}'Examples use a placeholder key from your environment. Store your key in $DS_API_KEY — never commit it.
Response
200 OK
{
"data": {
"timer": null,
"entry": {
"id": "time_01k2...",
"source": {
"kind": "timer"
},
"version": 1
}
},
"meta": {
"idempotency_replayed": false,
"self_scoped": true
}
}Errors
401
missing_authNo credentials provided
401
invalid_api_keyAPI key is invalid or revoked
400
bad_requestMissing or invalid request fields
403
scope_insufficientKey lacks the required write scope
409
timer_activeStart rejected because one timer is already active
404
timer_not_foundThe requested command needs an active timer
409
version_conflictTimer changed after the supplied version
409
idempotency_conflictStop key was reused with different command fields