Skip to content

List boards the caller is a member of

GET
/boards
curl --request GET \
--url https://projects.work.optidata.cloud/api/boards \
--header 'Authorization: Bearer <token>'

Returns every board the authenticated user is a member of, as a flat array. When board_id is given, that board and all of its descendants are excluded from the result (useful to pick a new parent for a board without creating a cycle).

board_id
integer

Exclude this board and all of its descendant boards from the result. Must reference an existing board.

Boards the user belongs to.

Media typeapplication/json
Array<object>

A project (kanban board). Boards nest via parent_id.

object
id
integer
user_id

Owner user id.

integer | null
group_id
integer | null
cuid

Tenant/company identifier the board belongs to.

string
parent_id

Parent board id (null for root boards).

integer | null
name
string
<= 80 characters
description
string | null
<= 600 characters
icon

Emoji icon.

string | null
visibility
string
Allowed values: private public
order_cards_by

Default card sort field for new columns.

string | null
order_cards_direction
string | null
Allowed values: asc desc
archived_at
string | null format: date-time
created_at
string format: date-time
updated_at
string format: date-time
deleted_at
string | null format: date-time
Example
[
{
"id": 42,
"user_id": 7,
"group_id": null,
"cuid": "a1b2c3d4-0000-4111-8222-333344445555",
"name": "Website Redesign",
"description": "Q3 marketing site refresh",
"icon": "🎨",
"parent_id": null,
"archived_at": null,
"visibility": "private",
"order_cards_by": "order",
"order_cards_direction": "asc",
"created_at": "2026-03-10T17:09:05.000000Z",
"updated_at": "2026-03-10T17:09:05.000000Z",
"deleted_at": null
}
]

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