Skip to main content
Errors are structured JSON:
retry_after is present on 429s. On MCP the same failures arrive as readable tool results (isError: true with text), never as opaque protocol errors.

The table

How to react

rate_limited · busy · archive_offline · agent_api_disabledHonor Retry-After (seconds) where present. These clear in seconds. A well-behaved agent waits rather than failing the turn.pm_offline is a special case: the trader card and pnl-series degrade gracefully rather than erroring. The card serves with "polymarket": {"status": "pm_offline"} and carries the archive’s realized P/L as a labeled fallback. Use it, say which voice you are quoting, and move on.
daily_limit · monthly_limitThe message is written to be relayed to your human. It names the upgrade and links https://polytape.io/pricing, and it is plan-aware (Pro is told about Max).Surface it and stop. retry_after on a daily cap points hours out and on a monthly cap points weeks out.
depth_gated · wallet_quotaNot outages. Retrying changes nothing — the answer will be identical until the plan changes or the day rolls over.
resets_at is an ISO 8601 UTC string (next midnight UTC) — the one timestamp on this API that is not epoch seconds. There is no retry_after here.Treat depth_gated as an upgrade prompt, or as a not-found if you would rather not interrupt.
bad_cursor · bad_limit · invalid_wallet · unknown_event_type · not_found · unknown_trader · tape_not_foundDo not retry the same request. Fix the argument.These burn a call (the counter charges served work), so validate before you fire — a typo’d condition_id costs a Basic user 1/50th of their day.
missing_credentials · invalid_api_key · too_many_auth_failuresRevocation is instant, so a key that worked a minute ago can be dead now. Fix the credential, then wait out the auth-failure window before retrying.
query_timeoutAlmost always a mega-maker (a 100k+ market account) plus a wide n on top-markets. Narrow n and retry — a small n is both cheaper and likelier to return.

What burns a call

Burns a call

Every successful GET or tool call. And application errors on real routes — 400, 403, 404, even 304.

Free

All 429 rejections. MCP protocol handshakes: connect, tools/list, prompts/list, fetching a prompt.

MCP error text

The same failures, as tool results: