Edit a time entry
const url = 'https://projects.work.optidata.cloud/api/boards/1/cards/1/time-tracks/1';const options = { method: 'PATCH', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"start_at":"2026-07-20T09:00:00Z","end_at":"2026-07-20T10:30:00Z","description":"Homepage wireframes"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PATCH \ --url https://projects.work.optidata.cloud/api/boards/1/cards/1/time-tracks/1 \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "start_at": "2026-07-20T09:00:00Z", "end_at": "2026-07-20T10:30:00Z", "description": "Homepage wireframes" }'Adjusts a finished time entry’s start/end (and optional description).
The entry must stay in the past, start before it ends, and must not
overlap the caller’s neighbouring entries on the same card — violations
return 422.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”Board id.
Card id (must belong to the board).
Time entry id (must belong to the card).
Request Bodyrequired
Section titled “Request Bodyrequired”object
Example
{ "start_at": "2026-07-20T09:00:00Z", "end_at": "2026-07-20T10:30:00Z", "description": "Homepage wireframes"}Responses
Section titled “ Responses ”The updated entry plus the card’s recomputed total.
object
A time entry on a card. end_at null means the timer is running.
object
Tracked duration in seconds (set when stopped).
Human-readable total tracked time on the card.
Example
{ "time_track": { "id": 610, "board_id": 42, "card_id": 9001, "user_id": 7, "start_at": "2026-07-20T09:00:00.000000Z", "end_at": "2026-07-20T10:30:00.000000Z", "amount_seconds": 5400, "description": "Homepage wireframes" }, "total_time_spent": "1h 30min"}Missing, invalid or expired bearer passport.
object
Example
{ "error": "JWT passport exception: Missing bearer token in request"}The authenticated user lacks the required board permission.
object
Example
{ "message": "This action is unauthorized."}Resource not found, or a nested resource does not belong to its parent in the path.
object
Example
{ "message": "Not found."}Validation failed.
object
First validation error message.
Map of field name → list of error messages.
object
Example
{ "message": "The name field is required.", "errors": { "name": [ "The name field is required." ] }}