List accounts
const url = 'https://api-v1.tailwind.ai/v1/accounts';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://api-v1.tailwind.ai/v1/accounts \ --header 'Authorization: Bearer <token>'List all Pinterest accounts for the authenticated organization.
Authorizations
Section titled “Authorizations”Responses
Section titled “Responses”List of accounts
object
object
object
Account ID
Pinterest user ID
Display name
Pinterest username
Profile image URL
Whether the Pinterest token is confirmed valid. False both when the token is revoked and when its status could not be checked; tokenStatus tells the two apart.
The Pinterest token’s status. unauthorized means the account must be reconnected. unknown means Tailwind could not check the token just now, usually a temporary failure; it does not mean the account needs reconnecting, so retry later.
Whether the domain is verified
IANA time zone Tailwind schedules this account in, such as America/New_York — the zone its timeslots and the dashboard calendar use. Set per organization. Null when none is set.
When the account was connected (Unix timestamp)
object
Unique request ID for debugging
Example
{ "data": { "accounts": [ { "tokenStatus": "authorized" } ] }}Authentication required or invalid bearer credentials
object
object
Error code
Error message
Machine-readable reason. On PAYMENT_REQUIRED errors it is the denial reason: insufficient_credits, trial_exhausted, no_access, account_not_connected, legacy_post_limit_exceeded. Other errors may carry an operation-specific reason, such as pinterest_reconnect_required, pinterest_rate_limited, pinterest_timeout, pinterest_request_failed or list_boards_upstream_failed; each operation’s documented error responses show the values it returns. Branch on reason rather than parsing message.
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.
object
Unique request ID for debugging
Example
{ "error": { "code": "UNAUTHORIZED", "message": "Invalid API key" }, "meta": { "requestId": "abc123" }}Rate limit exceeded
object
object
Error code
Error message
Machine-readable reason. On PAYMENT_REQUIRED errors it is the denial reason: insufficient_credits, trial_exhausted, no_access, account_not_connected, legacy_post_limit_exceeded. Other errors may carry an operation-specific reason, such as pinterest_reconnect_required, pinterest_rate_limited, pinterest_timeout, pinterest_request_failed or list_boards_upstream_failed; each operation’s documented error responses show the values it returns. Branch on reason rather than parsing message.
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.
object
Unique request ID for debugging
Example
{ "error": { "code": "RATE_LIMIT_EXCEEDED", "message": "Daily rate limit of 10000 requests for this organization exceeded. Resets at midnight UTC." }, "meta": { "requestId": "abc123" }}Headers
Section titled “Headers”Seconds until the daily limit resets at midnight UTC.
