400invalid_requestMalformed body or query: missing field, wrong type, body not JSON, wrong Content-Type.
400invalid_tokensell or buy is neither a symbol nor a 0x address.
400token_not_listedThe token is not listed, or its symbol is ambiguous (use the address).
400same_tokenBoth sides are the same asset (ETH and WETH count as one).
400invalid_amountamount is not a plain decimal above 0, or has more decimals than the token.
400invalid_slippageslippageBps is not a whole number between 1 and 500.
400invalid_takertaker is not a 0x address, or is the zero address or a precompile.
400invalid_addressaddress (balances) is not a 0x address.
400invalid_hashThe transaction hash is not 0x plus 64 hex characters.
400invalid_quote_idquoteId does not look like a quote id.
400no_takerThe quote was made without taker, so it cannot be built. Quote again with taker.
400permit_requiredThe quote has a permit step and no permitSignature was sent.
400bad_signaturepermitSignature was not signed by the taker over this quote's Permit2 request.
401unauthorizedThe X-Api-Key header holds an invalid or revoked key.
404not_foundUnknown quote, or a hash that was never tracked.
409not_builtTracking a quote that was never built with /api/swap.
409already_trackedThis hash is already tracked for another quote.
410quote_expiredThe quote is older than its expiresAt. Get a fresh quote.
410permit_expiredThe Permit2 request of the quote has expired. Get a fresh quote.
413payload_too_largeThe body is larger than the endpoint accepts (4 KB quote, 2 KB swap, 1 KB track).
422no_routeNo pool connects the pair, or no liquidity at this size.
422too_smallThe amount is too small to trade after slippage and fee.
422too_largeThe order is above the per-order USD cap.
422impact_too_highThe order would move the price by 20% or more. Trade a smaller amount.
422simulation_failedThe built transaction would revert right now; the message says why (price moved, allowance, balance).
422route_invalidThe stored route can no longer be encoded. Get a fresh quote.
422quote_corruptThe stored quote cannot be read. Get a fresh quote.
429rate_limitedToo many requests in this minute. Wait for the Retry-After header (seconds).
500internal_errorUnexpected failure. Retry in a moment.
503rpc_unavailableThe chain could not be read (allowances). Retry in a few seconds.
503swaps_pausedSwaps are paused while the pinned contracts are re-verified.
503swaps_not_configuredThis deployment cannot settle swaps yet.