retryable is an explicit boolean: true means the same request can succeed
if you retry, false means it will not, ever. request_id is a correlation
ID that is safe to share with support. Error responses never charge data
credits, though they do spend a rate unit.
Status codes
What to do
Fix the request for the non-retryable codes. Forinvalid_parameter, correct
the parameters against the operation’s schema. For unauthenticated, check
that a valid nx_ key is in the Authorization header. For
quota_exhausted, fund your key with a data-credit pack from the console
(packs open with the API beta). For method_not_allowed, switch to GET,
since every HTTP operation is a GET request. For idempotency_conflict, use
a new key, since each key is bound to one request for 24 hours.
The internal_error code is an unclassified server failure and is not marked
retryable. Do not retry it blindly. Capture the request_id and share it
with support.
Retry the retryable codes with backoff. For rate_limited and
request_in_progress, honor the Retry-After header. For
upstream_unavailable and timeout, retry after a short delay. Reusing the
same idempotency key on these retries is safe: a transient failure releases
the hold, so the retry runs once and settles once.
Deadlines and limits
The gateway uses a 15-second upstream deadline and a 2 MiB response limit. A request that exceeds the deadline returnstimeout. These bounds also keep
error responses small and fast, so retry logic can rely on them.