Skip to Content
SkewtapeDocs

Errors

Every error from the API has the same shape, and its docs_url links to the section of this page for its code, for example https://docs.skewtape.com/errors#invalid_request. The MCP server's data tools return the same envelope as their tool error.

The error shape

{
  "error": {
    "code": "invalid_request",
    "message": "[Which parameter to fix, and why]",
    "docs_url": "https://docs.skewtape.com/errors#invalid_request",
    "request_id": "[request id]",
    "plan": null,
    "resets_at": null,
    "upgrade_url": null,
    "block_reason_code": null
  }
}
FieldWhat it holds
codeThe error code: one of the sections below.
messageA plain sentence saying what to do.
docs_urlThe section of this page for the code.
request_idThe same value as the X-Request-Id response header. Quote it when you write to us.
planOn forbidden_plan: the plan that unlocks the request. Null otherwise.
resets_atOn quota_exceeded: when the monthly quota resets, in UTC. Null otherwise.
upgrade_urlOn quota_exceeded: where to change plan. Null otherwise.
block_reason_codeOn blocked: why the data policy withholds the venue's data. Null otherwise.

unauthorized

HTTP 401.

What happened: the X-API-Key header is missing, holds a key we do not know, or holds a key that was revoked.

What to do: send an active key in the X-API-Key header. If the key was revoked, use another key on your account or create a new one in the dashboard.

forbidden_plan

HTTP 403.

What happened: your plan does not include this request.

What to do: the plan field names the plan that unlocks it. Compare plans.

blocked

HTTP 403.

What happened: the data policy withholds this venue's data. block_reason_code says why: licence_undecided, licence_derived_only or geo_policy. A read of one of the venue's markets answers blocked whether or not the market exists.

What to do: read the other venues. Lists leave a withheld venue out, or show its fields as null with blocked: true. Matched event fields are Skewtape's own data and are never withheld; a member on a withheld venue keeps its ids.

not_found

HTTP 404.

What happened: the resource you asked for does not exist, or your plan does not show it. The answer never says which.

What to do: check the id and the path in your request.

invalid_request

HTTP 400.

What happened: a parameter is missing, or has a value we cannot use.

What to do: the message says which parameter to fix. Fix it and send the request again.

rate_limited

HTTP 429.

What happened: too many requests in a short time for your plan's calls a second.

What to do: wait the number of seconds in the Retry-After header, then retry.

quota_exceeded

HTTP 429.

What happened: your account has used all the API calls in its monthly limit. Calls from all your keys count toward the same limit.

What to do: resets_at says when the count starts again, and upgrade_url links to the plans.

internal

HTTP 500.

What happened: something failed on our side, not in your request.

What to do: if it keeps happening, write to hello@skewtape.com with the request_id from the error.

Powered by Kalshi Research

On this page