Skip to content

Request a capability

POST
/v1/capability-requests
curl --request POST \
--url https://api-v1.tailwind.ai/v1/capability-requests \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "description": "No way to change a scheduled Pin'\''s board after creating it — I had to delete the Pin and recreate it, which lost its scheduled time." }'

Tell Tailwind about something this API cannot do yet — an endpoint you expected and could not find, a missing field or filter, or a step you had to work around. Requests go to the product team, who use them to decide what to build next. Your description is recorded in Tailwind’s internal analytics and posted to an internal Tailwind channel for staff to read, so send only what you would be comfortable sharing with Tailwind — do not include credentials or personal data. No request resource is created: there is nothing to read back, no ticket to follow up on, and no timeline, so this returns only an acknowledgement. Report gaps as you hit them rather than working around them silently. Not for reporting errors: a rejected argument, an expired token, or an out-of-credits response are not missing capabilities. Free — this consumes no credits.

Media typeapplication/json
object
description
required

What you were trying to do and what was missing, in plain sentences. Describe the outcome you wanted, not just an endpoint name — the concrete case is what makes a request actionable.

string
>= 1 characters <= 1000 characters
Example
No way to change a scheduled Pin's board after creating it — I had to delete the Pin and recreate it, which lost its scheduled time.

Capability request received

Media typeapplication/json
object
data
object
received

Always true — failures return an error status instead.

boolean
meta
object
requestId

Unique request ID for debugging

string
Examplegenerated
{
"data": {
"received": true
},
"meta": {
"requestId": "example"
}
}

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

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