Errors
Every error comes back as { "error": { "code", "message", "fix"?, "field"?, "detail"? } } with an HTTP status. Act on code: it never changes. The same list is live at GET /api/v1/errors.
Retry means the same request can succeed later, unchanged; wait a few seconds first.
BODY_TOO_LARGE
Section titled “BODY_TOO_LARGE”HTTP 413
The body is larger than the limit (64 KB of JSON, 5 MB for an image).
Fix: Send only the fields the endpoint takes.
CHAIN_UNREACHABLE
Section titled “CHAIN_UNREACHABLE”HTTP 503 · retry
Robinhood Chain could not be read or simulated just now.
Fix: Retry in a few seconds.
DATA_UNREACHABLE
Section titled “DATA_UNREACHABLE”HTTP 503 · retry
The data behind this answer could not be read just now.
Fix: Retry in a few seconds.
HONEYPOT
Section titled “HONEYPOT”HTTP 422
Selling this coin straight after buying it fails through every route, in simulation: it may not be sellable.
Fix: Do not buy it. GET /coins/{address} shows what is known.
IMAGE_TOO_LARGE
Section titled “IMAGE_TOO_LARGE”HTTP 413
The image is larger than 5 MB.
Fix: Send a smaller image.
INSUFFICIENT_BALANCE
Section titled “INSUFFICIENT_BALANCE”HTTP 422
The wallet holds less of the coin than the sale.
Fix: Sell at most what the wallet holds.
INSUFFICIENT_FUNDS
Section titled “INSUFFICIENT_FUNDS”HTTP 422
The wallet holds less ETH than the buy.
Fix: Spend less, or add ETH (it also pays gas).
INTERNAL
Section titled “INTERNAL”HTTP 500 · retry
Something failed on our side; nothing was sent.
Fix: Retry; if it persists, tell us the time and the request.
INVALID_ADDRESS
Section titled “INVALID_ADDRESS”HTTP 400
A field that must be a 0x address is not one; field says which.
Fix: Send a 40-hex-digit address starting with 0x.
INVALID_AMOUNT
Section titled “INVALID_AMOUNT”HTTP 400
The amount is not a positive decimal in whole units.
Fix: Send a decimal string such as “0.05” (ETH for a buy, the coin for a sale), not wei.
INVALID_BODY
Section titled “INVALID_BODY”HTTP 400
The body is not a JSON object.
Fix: Send Content-Type: application/json and a JSON object.
INVALID_BPS
Section titled “INVALID_BPS”HTTP 400
slippageBps or feeBps is out of range (basis points: 100 = 1%).
Fix: slippageBps: 1 to 5000. feeBps: 0 to 300, with feeRecipient.
INVALID_DETAILS
Section titled “INVALID_DETAILS”HTTP 400
A coin detail (name, ticker, description, picture or link) is not accepted; field says which.
Fix: Fix the field named. A picture must come from POST /media/image.
INVALID_HASH
Section titled “INVALID_HASH”HTTP 400
That is not a transaction hash.
Fix: Send the 0x-prefixed 64-hex-digit hash your wallet returned.
INVALID_JSON
Section titled “INVALID_JSON”HTTP 400
The body is not valid JSON.
Fix: Send Content-Type: application/json and valid JSON.
INVALID_LAUNCH
Section titled “INVALID_LAUNCH”HTTP 400
A launch field is missing or wrong; field says which.
Fix: Fix the field named and send it again (GET /launch lists each launchpad’s options).
INVALID_QUERY
Section titled “INVALID_QUERY”HTTP 400
A query parameter is out of range or malformed; field says which.
Fix: Send it as the message says, or leave it out for the default.
INVALID_SIDE
Section titled “INVALID_SIDE”HTTP 400
side is “buy” (ETH for the coin) or “sell” (the coin for ETH).
Fix: Send side=buy or side=sell.
LAUNCH_OFF
Section titled “LAUNCH_OFF”HTTP 503 · retry
Launching is switched off on this server for now.
Fix: Try again later.
LAUNCH_WOULD_FAIL
Section titled “LAUNCH_WOULD_FAIL”HTTP 422
The launch reverted when simulated.
Fix: Change the first buy or the options, then build again.
MARKET_UNREACHABLE
Section titled “MARKET_UNREACHABLE”HTTP 503 · retry
The coin’s pools could not be read just now.
Fix: Retry in a few seconds.
NO_ROUTE
Section titled “NO_ROUTE”HTTP 422 · retry
No pool or curve can make this trade right now (none known, or every one failed in simulation; detail lists them).
Fix: Try a smaller amount; a coin minutes old may have no pool yet.
NOT_A_COIN
Section titled “NOT_A_COIN”HTTP 400
The token address is not an ERC-20 on Robinhood Chain.
Fix: Send the coin’s contract address.
NOT_FOUND
Section titled “NOT_FOUND”HTTP 404
There is no such endpoint.
Fix: GET /api/v1 lists every endpoint.
PRICE_IMPACT_TOO_HIGH
Section titled “PRICE_IMPACT_TOO_HIGH”HTTP 422
The trade would move the price more than maxPriceImpactPct (default 50%): the pool is too thin for it.
Fix: Trade less, or send maxPriceImpactPct (up to 100) to allow it.
QUOTE_NEEDS_WALLET
Section titled “QUOTE_NEEDS_WALLET”HTTP 422
This coin’s sale can only be quoted from a wallet that holds it.
Fix: Send wallet: an address holding at least amount of the coin.
RATE_LIMITED
Section titled “RATE_LIMITED”HTTP 429 · retry
Too many requests from this address in the last minute.
Fix: Wait (the retry-after header says how long) and slow the loop. Per minute: reads 300, quotes 120, swaps and launches 60, uploads 20.
SIMULATION_FAILED
Section titled “SIMULATION_FAILED”HTTP 422 · retry
The trade failed when simulated again with its minimum in place: the price moved.
Fix: Retry, or allow more slippage (slippageBps).
TOO_MANY_DECIMALS
Section titled “TOO_MANY_DECIMALS”HTTP 400
The amount has more decimal places than the currency has.
Fix: Round it to the currency’s decimals (18 for ETH and most coins).
UNKNOWN_COIN
Section titled “UNKNOWN_COIN”HTTP 404
The address has no market, launchpad or curve on Robinhood Chain.
Fix: Check the address: GET /coins lists every coin with a market.
UNKNOWN_CREATOR
Section titled “UNKNOWN_CREATOR”HTTP 404
Nobody we know of launched this coin: it was not made on a launchpad we read.
Fix: GET /coins/{address} shows its launchpad.
UNKNOWN_GROUP
Section titled “UNKNOWN_GROUP”HTTP 404
A holder group is bundled or snipers.
Fix: Ask /holders/bundled or /holders/snipers.
UNSUPPORTED_IMAGE
Section titled “UNSUPPORTED_IMAGE”HTTP 415
The body is not a PNG, JPEG, GIF or WebP image.
Fix: Send the raw image bytes with Content-Type image/png, image/jpeg, image/gif or image/webp.
UPLOADS_BUSY
Section titled “UPLOADS_BUSY”HTTP 429 · retry
Uploads are busy right now.
Fix: Try again in a few minutes.
WALLET_REQUIRED
Section titled “WALLET_REQUIRED”HTTP 400
A swap is built for the wallet that will send it.
Fix: Send wallet.