Update a card
const url = 'https://projects.work.optidata.cloud/api/boards/1/cards/1';const options = { method: 'PATCH', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"title":"Draft homepage copy (v2)","due_date":"2026-08-05T12:00:00Z"}'};
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 \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "title": "Draft homepage copy (v2)", "due_date": "2026-08-05T12:00:00Z" }'Partially updates the card. Moving the card is possible by sending
column_id (and board_id for cross-board moves). Setting
completed_at marks the card complete. @-mentions added to content
trigger notifications.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Board id.
Card id (must belong to the board).
Request Bodyrequired
Section titled “Request Bodyrequired”object
Target board when moving across boards.
Target column when moving.
Example
{ "title": "Draft homepage copy (v2)", "due_date": "2026-08-05T12:00:00Z"}Responses
Section titled “Responses”The updated card.
A task. Derived attributes (tags_ids, assignees_ids, *_count,
human_*, due_date_status, is_time_tracking) are present on single
card reads; list contexts may return a subset of attributes.
object
Creator user id.
Rich-text description (serialized editor document, JSON string).
Position within its column.
Sequential card number within the board.
Opaque id tied to the current due date (used for calendar sync).
Owning checklist (checklist-item cards only).
Cached count of checklist items on this card.
Ids of the card’s tags (as strings; may contain null when empty).
Ids of the card’s assignees (as strings; may contain null when empty).
Truthy when the caller has a running timer on this card.
Localized short due date (e.g. Aug 1, 2026).
Example
{ "type": "ORDINARY", "status": "OPEN", "cover_color": "#ef4444", "due_date_status": "OVERDUE"}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." ] }}