Errors and limits
What each status means and what to do about it.
| Status | Meaning | What to do |
|---|
| 400 | Bad request, or the model has no price | Fix the body, or pick a model from Market |
| 401 | Key is wrong, revoked, or has hit its cap; or the session expired | Check the key, or sign in again |
| 402 | Playground: balance too low. x402: payment problem | Add balance, or fix the payment |
| 403 | Balance is too low | Add balance |
| 409 | x402: this payment or quote was already used | Request a new quote |
| 429 | Rate limited | Wait and retry |
| 502 | The seller failed (x402: after payment) | Try again; x402 payments are recorded for refund |
| 503 | No healthy seller for that model right now | Try another model or wait |
| Code | Meaning |
|---|
| invalid_wallet | The wallet address is not a valid 0x address |
| bad_signature | The signature does not match the wallet and message |
| nonce_expired | The sign-in message is older than five minutes or was already used |
| key_limit_reached | You already have 25 keys |
| invalid_limit | The spend cap is not a positive number |
| reserved_name | That key name is reserved |
| unpriced_model | The model has no list price |
| insufficient_balance | Not enough balance for this message |
| no_seller | No healthy seller for that model |
| invalid_request | A message is too long, empty, or the conversation is malformed |
| invalid_application | The seller application is missing a field or out of range |
| invalid_amount | A top-up amount outside $1 to $500 |
| unknown_quote | The quote does not exist, or belongs to another wallet |
| payer_is_not_this_wallet | The payment was made by a different wallet than the one claiming it |
| Action | Limit |
|---|
| Sign-in nonce and verify | 20 per minute per IP |
| Create keys | 10 per hour per wallet |
| Keys per wallet | 25 |
| Playground messages | 30 per minute per wallet |
| Seller applications | 5 per day per wallet |
| x402 requests | 60 per minute per IP |
| Session length | 24 hours |