Skip to content

Get generation status

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

Poll the status of a Pin generation. Generation typically completes in 1-3 minutes; poll every ~15 seconds and give up after ~30 minutes (retryable failures can hold processing for several minutes, and a hung request can stay processing for ~25 minutes before the terminal generation-request-timed-out status lands). A 404 within ~10 seconds of creating the generation is a transient index-lag artifact — retry, don’t stop. Once status is success, list the account’s draft posts and filter by generationId to find the generated drafts.

generationId
required
string

Generation ID returned by POST /v1/accounts/{accountId}/generations

Generation status

Media typeapplication/json
object
data
object
generation
object
id

Generation ID

string
status
string
Allowed values: processing success failed
siteUrl

Source URL the generation ran against

string
createdAt
string format: date-time
completedAt

Present once status is success or failed.

string format: date-time
nullable
failureCode

Stable failure code, present only when status is “failed”. Known values include scrape-failed, no-images-on-page, not-enough-credits, smartpin-content-flagged, smartpin-lapsed-user, failed-to-upload-source-images, generation-request-timed-out; “unknown” when no code was recorded.

string
nullable
meta
object
requestId

Unique request ID for debugging

string
Example
{
"data": {
"generation": {
"status": "processing"
}
}
}

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