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." ] }}