Skip to content

List posts

GET
/v1/accounts/{accountId}/posts
curl --request GET \
--url 'https://api-v1.tailwind.ai/v1/accounts/example/posts?status=draft&limit=50' \
--header 'Authorization: Bearer <token>'

List scheduled posts for an account. Filter by status to get drafts, queued, sent, or uploading posts.

accountId
required
string

Numeric Tailwind account ID returned by GET /v1/accounts

status
string
default: queued
Allowed values: draft queued sent uploading

Filter by post status

cursor
string

Pagination cursor from previous response

limit
integer
default: 50 >= 1 <= 100

Number of results to return (1-100)

startDate
string format: date-time

Filter posts scheduled after this date (ISO 8601). Required for sent/uploading status.

endDate
string format: date-time

Filter posts scheduled before this date (ISO 8601). Required for sent/uploading status.

List of posts

Media typeapplication/json
object
data
object
posts
Array<object>
object
id

Post ID

string
status

Post status

string
Allowed values: draft queued sent uploading
mediaUrl

URL of the media file

string
mediaType

Type of media

string
Allowed values: image video
title

Pin title

string
nullable
description

Pin description

string
nullable
url

Destination URL

string
nullable
boardId

Target board ID

string
nullable
altText

Alt text for accessibility

string
nullable
sendAt

Scheduled send time (Unix timestamp)

integer
nullable
sentAt

Actual send time (Unix timestamp)

integer
nullable
createdAt

Creation time (Unix timestamp)

integer
pinId

Pinterest pin ID (only present after publishing)

string
nullable
isSimplifiedPin

Whether this is a simplified pin (as opposed to a standard pin)

boolean
cursor

Cursor for next page, null if no more results

string
nullable
meta
object
requestId

Unique request ID for debugging

string
Example
{
"data": {
"posts": [
{
"status": "draft",
"mediaType": "image"
}
]
}
}

Invalid request

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.

string
meta
object
requestId

Unique request ID for debugging

string
Example
{
"error": {
"code": "BAD_REQUEST",
"message": "Invalid request body"
},
"meta": {
"requestId": "abc123"
}
}

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.

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.

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.

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