Skip to content

List boards

GET
/v1/accounts/{accountId}/boards
curl --request GET \
--url https://api-v1.tailwind.ai/v1/accounts/example/boards \
--header 'Authorization: Bearer <token>'

List all Pinterest boards for an account.

accountId
required
string

Numeric Tailwind account ID returned by GET /v1/accounts

List of boards

Media typeapplication/json
object
data
object
boards
Array<object>

A board as returned by the cached list endpoint. The write endpoints return a ManagedBoard instead — reads and writes reach Pinterest by different paths and carry different fields.

object
id

Board ID

string
name

Board name

string
isCollaborator

Whether the user is a collaborator

boolean
isSecret

Whether the board is secret

boolean
pinCount

Number of Pins on the board, from a cached snapshot that can lag behind Pinterest. Treat it as a lower bound before DELETE, which destroys every Pin actually on the board.

integer
meta
object
requestId

Unique request ID for debugging

string
Examplegenerated
{
"data": {
"boards": [
{
"id": "example",
"name": "example",
"isCollaborator": true,
"isSecret": true,
"pinCount": 1
}
]
},
"meta": {
"requestId": "example"
}
}

Authentication required or invalid bearer credentials

Media typeapplication/json
object
error
object
code

Error code

string
message

Error message

string
reason

Machine-readable denial reason. Present on PAYMENT_REQUIRED errors: insufficient_credits, trial_exhausted, no_access, account_not_connected, legacy_post_limit_exceeded.

string
resolve_url

Present on PAYMENT_REQUIRED errors: where the denial can be resolved. Reason-specific, because buying credits does not clear a trial, access or connection denial. Requests sent with X-Request-Source: mcp receive an informational plans page instead, so agent surfaces never present a purchase link.

string
meta
object
requestId

Unique request ID for debugging

string
Example
{
"error": {
"code": "UNAUTHORIZED",
"message": "Invalid API key"
},
"meta": {
"requestId": "abc123"
}
}

Resource not found

Media typeapplication/json
object
error
object
code

Error code

string
message

Error message

string
reason

Machine-readable denial reason. Present on PAYMENT_REQUIRED errors: insufficient_credits, trial_exhausted, no_access, account_not_connected, legacy_post_limit_exceeded.

string
resolve_url

Present on PAYMENT_REQUIRED errors: where the denial can be resolved. Reason-specific, because buying credits does not clear a trial, access or connection denial. Requests sent with X-Request-Source: mcp receive an informational plans page instead, so agent surfaces never present a purchase link.

string
meta
object
requestId

Unique request ID for debugging

string
Example
{
"error": {
"code": "NOT_FOUND",
"message": "Account not found"
},
"meta": {
"requestId": "abc123"
}
}

Rate limit exceeded

Media typeapplication/json
object
error
object
code

Error code

string
message

Error message

string
reason

Machine-readable denial reason. Present on PAYMENT_REQUIRED errors: insufficient_credits, trial_exhausted, no_access, account_not_connected, legacy_post_limit_exceeded.

string
resolve_url

Present on PAYMENT_REQUIRED errors: where the denial can be resolved. Reason-specific, because buying credits does not clear a trial, access or connection denial. Requests sent with X-Request-Source: mcp receive an informational plans page instead, so agent surfaces never present a purchase link.

string
meta
object
requestId

Unique request ID for debugging

string
Example
{
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Daily rate limit of 5000 requests exceeded. Resets at midnight UTC."
},
"meta": {
"requestId": "abc123"
}
}