Skip to content

List a card's files

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

Lists the files attached to the card that have not been deleted, oldest first. A card with no files returns an empty list ({"data": []}).

Anyone who can view the card can list its files: board members with any permission level (including view), guests and, on public boards, every user of the tenant. Each item’s download_url points to GET /boards/{board}/cards/{card}/files/{file}/download and accepts the same bearer passport used for the listing.

Requests without access to the board, or whose {card} does not belong to {board}, return 404.

board
required
integer

Board id.

card
required
integer

Card id (must belong to the board).

The card’s files, oldest first.

Media typeapplication/json
object
data
Array<object>
object
id
integer
identifier

Opaque file identifier used in file URLs.

string format: uuid
name

File name.

string
type

File category derived from its MIME type: 1 image, 2 video, 3 audio, 4 text, 5 PDF, 6 office document, 7 spreadsheet, 8 presentation, 9 compressed, 10 other, 11 note, 12 JSON.

integer | null
Allowed values: 1 2 3 4 5 6 7 8 9 10 11 12
source

How the file was added: SOURCE_USER_FILE_SYSTEM (uploaded from the caller’s machine) or SOURCE_OPTIWORK_DRIVE (linked from Optiwork Drive).

string | null
Allowed values: SOURCE_USER_FILE_SYSTEM SOURCE_OPTIWORK_DRIVE
user_id

Id of the user who added the file.

integer
created_at
string format: date-time
download_url

URL of GET /boards/{board}/cards/{card}/files/{file}/download; accepts the same bearer passport.

string format: uri
Example
{
"data": [
{
"id": 5001,
"identifier": "f0e1d2c3-7777-4888-9999-aaaabbbbcccc",
"name": "brand-guidelines.pdf",
"type": 5,
"source": "SOURCE_USER_FILE_SYSTEM",
"user_id": 17,
"created_at": "2026-10-05T14:02:11.000000Z",
"download_url": "https://projects.work.optidata.cloud/api/boards/42/cards/9001/files/f0e1d2c3-7777-4888-9999-aaaabbbbcccc/download"
},
{
"id": 5002,
"identifier": "0a1b2c3d-4444-4555-8666-777788889999",
"name": "homepage-mockup.png",
"type": 1,
"source": "SOURCE_OPTIWORK_DRIVE",
"user_id": 23,
"created_at": "2026-10-06T09:30:47.000000Z",
"download_url": "https://projects.work.optidata.cloud/api/boards/42/cards/9001/files/0a1b2c3d-4444-4555-8666-777788889999/download"
}
]
}

Missing, invalid or expired bearer passport.

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

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