Search cards and columns within a board
const url = 'https://projects.work.optidata.cloud/api/boards/1/search?target=App%5CModels%5CCard';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://projects.work.optidata.cloud/api/boards/1/search?target=App%5CModels%5CCard' \ --header 'Authorization: Bearer <token>'Filters the board’s cards and columns by free-text query, tags,
assignees, statuses, due-date buckets and custom field values. The
response has the same shape as Get a board but with columns and
cards restricted to the matches (plus a cards_summary with per-card
counters). Requires view permission.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Board id.
Query Parameters
Section titled “Query Parameters”Free-text search over card titles/content.
Only cards having any of these tag ids.
Only cards assigned to any of these user ids.
Only cards in any of these statuses / due-date statuses.
Due-date buckets to match.
object
Comparison value (type depends on the field type; omitted for is_empty/is_not_empty).
Custom-field filters, e.g. by[customFields][0][definitionId]=12&by[customFields][0][operator]=equals&by[customFields][0][value]=High.
Include archived cards/columns.
Restrict matching to one entity type; omit to search cards and columns.
Responses
Section titled “Responses”Board payload restricted to matching columns/cards.
object
Owner user id.
Tenant/company identifier the board belongs to.
Parent board id (null for root boards).
Emoji icon.
Default card sort field for new columns.
Map of user id → member (with pivot membership info).
object
object
Membership metadata.
object
Map of tag id → tag (board tags plus common tags).
object
A label. board_id null means a common (tenant-wide) tag.
object
Hex color (e.g. #52eb00).
Map of column id → column.
object
A task list within a board.
object
Column accent color (fixed palette).
Position within the board.
Sticky automatic card sort applied to this column, when set.
The board’s cards (listing attributes).
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).
Per-card counters (present on search responses).
object
Definition of a custom field. board_id null (and is_global true) means tenant-wide.
object
Type-specific configuration. Examples — text: {multiline, max_length, placeholder, default_value};
select: {options: [{id, label, color}]}; checkbox: {default_value}.
Required fields block card interactions (comments, files, timers) until filled.
The caller’s effective abilities on this board (ability → boolean).
object
The caller’s per-board preferences.
object
object
Example
{ "visibility": "private", "order_cards_direction": "asc", "members": { "additionalProperty": { "pivot": { "permission": "view", "view_mode": "view_kanban" } } }, "columns": { "additionalProperty": { "color": "#ef4444" } }, "cards": [ { "type": "ORDINARY", "status": "OPEN", "cover_color": "#ef4444", "due_date_status": "OVERDUE" } ], "custom_field_definitions": [ { "type": "text" } ], "preferences": { "view_mode": "view_kanban", "notification": { "notification_mode": "all" } }}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." ] }}