Errors and limits
Fail-closed behavior, status codes, rate limits, and pagination constraints.
HTTP behavior
| Status | Meaning |
|---|---|
400 | Malformed or schema-invalid request. |
401 | Missing or invalid bearer token. |
403 | Host or browser-origin policy rejected the request. |
404 | Part or route was not found. |
405 | Method is not supported for the route. |
413 | MCP request exceeded 102,400 bytes. |
429 | Per-instance request limit was exceeded. |
500 | Internal failure; preserve the request ID when reporting it. |
503 | API is alive but not ready to serve a verified release. |
REST errors use a stable error code and message. Common part-query outcomes include INVALID_PART_QUERY and PART_NOT_INDEXED.
MCP behavior
- An unknown tool returns JSON-RPC error
-32602. - A known tool with invalid arguments returns a tool result with
isError: true. - Missing verified coverage is explicit; it does not fall back to a plausible neighboring part.
- Tool success includes
structuredContentand JSON text content.
Retrieval bounds
get_context accepts at most 50 facts and a token target from 256 to 16,000. The response reports estimated tokens and whether one indivisible fact exceeded the budget.
Use page.next_cursor for subsequent pages. Cursors are opaque and bound to every relevant request constraint. Changing the part, release, topic, query, package, peripheral, or revision invalidates the cursor.
Logging and support
Responses include an x-request-id. Production logs failed and slow requests and samples ordinary successful traffic. Query strings, tokens, and document bodies are not logged. Preserve the request ID and timestamp when reporting a problem.