Throughput and result limits
A throttled request returns
429 Too Many Requests with Retry-After: 1 alongside the
X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers. The window is one
second, not one minute — retry after roughly a second rather than backing off for a full minute. See
Rate Limiting for the header semantics.
Parameter length limits
All string parameters are validated server-side before any backend call. A request that exceeds a limit is rejected immediately with anINVALID_ARGUMENT error — no partial processing occurs.
Sub-parameters (sub1–sub10, adv1–adv10, source_id)
Sub-parameters (sub1–sub10, adv1–adv10, source_id)
sub1–sub10, adv1–adv10, and source_id are affiliate-controlled tracking values written directly to database columns. Their limits match the underlying column constraint.Common parameters (cursor, timezone, currency)
Common parameters (cursor, timezone, currency)
These limits apply across every tool where the parameter appears.
Reporting tools
Reporting tools
Offer and affiliate tools
Offer and affiliate tools
Generic entity tools
Generic entity tools
Documentation search
Documentation search
Errors
When a tool call fails, the MCP Server returns a result withisError: true. The text field of that result is a JSON object with two fields:
message is human-readable and safe to surface directly to an end user or AI agent. The code is a stable string your code can branch on without parsing prose.
When a parameter limit is exceeded, the message always names the offending parameter, the allowed maximum, and the actual length received — and the server returns before any backend call is made:
Error codes
Two fields that are not errors
Two top-level keys can appear on a successful response and are easy to mistake for a problem:
Neither sets
isError. See Response safety.
Handling errors in a script
CheckisError before processing content. The code lets you handle each class of error differently without string-matching the message:
AI agents read the
message field automatically and will describe the problem in natural language without any extra handling on your part. Error code parsing is only necessary when you are processing MCP tool results programmatically in a script.