Skip to content

Get a card

GET
/boards/{board}/cards/{card}
curl --request GET \
--url https://projects.work.optidata.cloud/api/boards/1/cards/1 \
--header 'Authorization: Bearer <token>'

Returns the full card, including derived attributes: tag/assignee id lists, comment/file/custom-field counters, due-date status and human-readable due-date strings, and whether the caller has a running timer on it.

board
required
integer

Board id.

card
required
integer

Card id (must belong to the board).

The card.

Media typeapplication/json

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
id
integer
board_id
integer
column_id
integer
user_id

Creator user id.

integer | null
title
string
<= 255 characters
content

Rich-text description (serialized editor document, JSON string).

string | null
type
string
Allowed values: ORDINARY CHECKLIST_ITEM
status
string | null
Allowed values: OPEN CLOSED ARCHIVED
icon
string | null
order

Position within its column.

integer
number

Sequential card number within the board.

integer
due_date
string | null format: date-time
due_date_hash

Opaque id tied to the current due date (used for calendar sync).

string | null
pinned_at
string | null format: date-time
completed_at
string | null format: date-time
archived_at
string | null format: date-time
deleted_at
string | null format: date-time
checklist_id

Owning checklist (checklist-item cards only).

integer | null
checklist_items

Cached count of checklist items on this card.

integer | null
checklist_items_completed
integer | null
card_recurrence_id
integer | null
cover_color
string | null
Allowed values: #ef4444 #f97316 #eab308 #22c55e #06b6d4 #3b82f6 #8b5cf6 #ec4899 #6b7280 #000000
created_at
string format: date-time
updated_at
string format: date-time
tags_ids

Ids of the card’s tags (as strings; may contain null when empty).

Array<string | null> | null
assignees_ids

Ids of the card’s assignees (as strings; may contain null when empty).

Array<string | null> | null
is_time_tracking

Truthy when the caller has a running timer on this card.

boolean | integer | null
comments_count
integer
files_count
integer
custom_fields_count
integer
due_date_status
string | null
Allowed values: OVERDUE NEAR FAR
human_due_date

Localized short due date (e.g. Aug 1, 2026).

string | null
short_locale_date
string | null
human_verbose_due_date
string | null
is_completed
boolean
is_recurrent
boolean
Example
{
"id": 9001,
"board_id": 42,
"column_id": 301,
"user_id": 7,
"title": "Draft homepage copy",
"content": "{}",
"type": "ORDINARY",
"status": null,
"icon": null,
"order": 1,
"number": 1,
"due_date": "2026-08-01T12:00:00.000000Z",
"due_date_hash": "b2c3d4e5-1111-4222-8333-444455556666",
"pinned_at": null,
"completed_at": null,
"archived_at": null,
"deleted_at": null,
"checklist_id": null,
"checklist_items": null,
"checklist_items_completed": null,
"card_recurrence_id": null,
"cover_color": null,
"created_at": "2026-03-10T17:09:49.000000Z",
"updated_at": "2026-03-10T17:14:28.000000Z",
"tags_ids": [
"88"
],
"assignees_ids": [
"7"
],
"is_time_tracking": null,
"comments_count": 0,
"files_count": 0,
"custom_fields_count": 0,
"human_due_date": "Aug 1, 2026",
"short_locale_date": "08/01/2026",
"human_verbose_due_date": "August 1, 2026 12:00 PM",
"due_date_status": "FAR",
"is_completed": false,
"is_recurrent": false
}

Missing, invalid or expired bearer passport.

Media typeapplication/json
object
error
string
Example
{
"error": "JWT passport exception: Missing bearer token in request"
}

The authenticated user lacks the required board permission.

Media typeapplication/json
object
message
string
Example
{
"message": "This action is unauthorized."
}

Resource not found, or a nested resource does not belong to its parent in the path.

Media typeapplication/json
object
message
string
Example
{
"message": "Not found."
}