Skip to content

Report a wrong result

POST
/v1/issue-reports
curl --request POST \
--url https://api-v1.tailwind.ai/v1/issue-reports \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "description": "GET /v1/accounts/123/boards returned 4 boards, but the same account reports 11 boards in GET /v1/accounts/123 — I used the larger number to continue.", "tool": "GET /v1/accounts/{accountId}/boards" }'

Tell Tailwind that a call answered wrongly rather than failing — a result that contradicts another result, a result you had to work around, or an output your user says is wrong. Reports go to the people who maintain this API, who read them to find what is broken. Your description and tool are 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 — describe the problem rather than quoting the result, and do not include credentials or personal data. No report resource is created: there is nothing to read back and no ticket to follow up on, so this returns only an acknowledgement, and nothing about the result that prompted it changes. Not for reporting errors: a rejected argument, an expired token, or an out-of-credits response are errors to handle, not wrong answers. If the API simply cannot do what you need, use POST /v1/capability-requests instead. Free — this consumes no credits.

Media typeapplication/json
object
description
required

What you asked for, what came back, and why it is wrong. The concrete case is what makes a report actionable.

string
>= 1 characters <= 1000 characters
Example
GET /v1/accounts/123/boards returned 4 boards, but the same account reports 11 boards in GET /v1/accounts/123 — I used the larger number to continue.
tool

The endpoint or MCP tool you believe returned the wrong result. Recorded as your claim and never checked against the real roster — a name that does not exist is itself useful.

string
>= 1 characters <= 100 characters
Example
GET /v1/accounts/{accountId}/boards

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