Api / Todos

PATCH/v1/todos/:id

Auth: tenant — Status: stable

Update one or more mutable fields. Any field omitted from the body is left untouched. Transitioning to a terminal status (completed or canceled) auto-stamps completed_at = now().

Request

Body

FieldTypeDescription
subjectstringRename the todo.
descriptionstringReplace the description. Pass "" to clear.
statusstringOne of: pending, in_progress, completed, canceled.
positionintMove within the pending bucket.
curl -X PATCH \
  -H "Authorization: Bearer atr_…" \
  -H "Content-Type: application/json" \
  -d '{"status":"completed"}' \
  http://arbiter.example.com/v1/todos/14

Response

200 OK

Returns the updated todo.

{
  "todo": {
    "id": 14,
    "status": "completed",
    "completed_at": 1746720240,
    "...": "..."
  }
}

Failure modes

StatusWhen
400Invalid JSON; status not in the allowed set.
401Missing / invalid bearer.
404Todo not found for this tenant.

See also