MISSING_API_KEY | 401 | No Authorization header. |
INVALID_API_KEY | 401 | Key is unrecognized, revoked, or expired. |
RATE_LIMIT_EXCEEDED | 429 | A per-minute, per-day or per-month limit was hit. See rate limits. |
INVALID_ADDRESS | 400 | An address is not 0x plus 40 hex characters. |
INVALID_HANDLE | 400 | X handle is not 1 to 15 characters of letters, numbers or underscores. |
INVALID_USERNAME | 400 | Farcaster username is not 1 to 32 characters of letters, numbers, dots or hyphens, starting with a letter or a number. |
INVALID_PARAMETER | 400 | A query parameter is out of range, such as an unrecognized period. |
INVALID_CURSOR | 400 | A cursor value the API did not produce, on the reverse-lookup endpoints. |
INVALID_REQUEST | 400 | Body is missing, not valid JSON, wallets is absent or empty, an Idempotency-Key header is over 200 characters, or a job id is not a UUID. |
INVALID_REQUEST | 413 | Request body exceeded the endpoint’s cap: 1 MB on batch and estimate, 4.5 MB on jobs. |
BATCH_SIZE_EXCEEDED | 400 | More wallets than your plan’s batch ceiling, on batch or estimate. 50 on the default plan; a live Scale or Index pack raises it (see plans). The message names your ceiling. |
LIST_TOO_SMALL | 400 | An estimate with fewer than 10 distinct wallets. The counts are aggregates by design; for one address, resolve it. |
SUBMISSION_LIMIT_EXCEEDED | 402 | A job list longer than 10 times your match balance. The message names the maximum; shorten the list or top up. |
JOB_ALREADY_ACTIVE | 409 | The account already has a pending or processing job, on any surface. The message names its id; poll it and resubmit when it completes. |
JOB_NOT_FOUND | 404 | No job with this id is visible to this account. A job another account submitted answers exactly this. |
NO_CREDITS | 402 | Match credit balance is exhausted, or the free 30-day allowance is used up. Buy a pack, on either rail below. Only the metered endpoints return it; /v1/stats, /v1/usage, /v1/estimate and the job status poll answer at any balance. |
IDEMPOTENCY_KEY_REUSED | 422 | The same Idempotency-Key was sent with a different request body inside the 24-hour window. Use a fresh key for a new request. Batch only. |
IDEMPOTENCY_NOT_REPLAYABLE | 409 | The original response under this Idempotency-Key was too large to store, so it cannot be replayed. Resend under a fresh key; the resend bills as a new request. Batch only. |
SERVICE_UNAVAILABLE | 503 | Datastore is temporarily unreachable. Retry with backoff. |
INTERNAL_ERROR | 500 | Unexpected failure on our side. |