Error Reference

Every error code returned by AuthProof APIs, grouped by HTTP status.

All error responses use the shape { "error": "<code>", "message": "<human-readable>" }. Rate-limited responses (429) include a Retry-After header.

400 — Bad Request

CodeMessageEndpoint(s)
missing_fieldsprojectId and walletAddress are required/api/agents/register, /api/agents/request-access
missing_paramswalletAddress and projectId query params required/api/agents/request-access (GET)
invalid_wallet_addressMust be a valid 0x address (42 chars)/api/agents/*, /api/projects/[id]/wallet-overrides
invalid_nameProject name must be 1-100 characters/api/projects (POST)
invalid_slugSlug must be 3-50 chars, lowercase alphanumeric and hyphens/api/projects (POST)
invalid_originsAllowed origins must be an array of at most 50 entries/api/projects (POST)
invalid_rate_limit_requestsRate limit requests must be at most 1,000,000/api/projects/[id]/policies
invalid_rate_limit_windowRate limit window must be at most 86400 seconds/api/projects/[id]/policies
invalid_nft_contractNFT contract address must be a valid Ethereum address/api/projects/[id]/policies
invalid_allowlist_contractAllowlist contract address must be a valid Ethereum address/api/projects/[id]/policies
invalid_nft_chainUnsupported chain ID for NFT gate/api/projects/[id]/policies
invalid_allowlist_chainUnsupported chain ID for allowlist/api/projects/[id]/policies
invalid_webhook_urlwebhookUrl must be a valid HTTPS URL/api/agents/request-access
invalid_statusStatus must be 'active' or 'revoked'/api/projects/[id]/agents/[agentId]
agent_not_activeOnly active agents can rotate keys/api/projects/[id]/agents/[agentId]/rotate
name_requiredAgent name is required/api/projects/[id]/agents (POST)
name_too_longAgent name must be 100 characters or fewer/api/projects/[id]/agents (POST)
key_id_requiredkeyId is required in request body/api/projects/[id]/api-keys, /api/user/api-keys

401 — Unauthorized

CodeMessageEndpoint(s)
unauthorizedSign in or provide an API keyAll session-protected routes
invalid_api_keyAPI key not recognizedRoutes accepting Bearer sa_key_... or sa_user_...
api_key_expiredAPI key has expiredRoutes accepting Bearer tokens

401 — ERC-8128 Signature Errors

Returned by endpoints protected with withAuthProof or expressAuthProof. All include an accept-signature response header with the correct signing parameters.

CodeMessageEndpoint(s)
replayNonce already consumed — this request was already usedERC-8128 protected routes
expiredSignature expired (older than maxValiditySec)ERC-8128 protected routes
bad_timeSignature timestamp is invalidERC-8128 protected routes
not_yet_validSignature is not yet valid (future timestamp)ERC-8128 protected routes
validity_too_longSignature validity exceeds server maximum (300s)ERC-8128 protected routes

402 — Payment Required

When credits are exhausted, the response includes quoteEndpoint, verifyEndpoint, and projectId so agents can auto-pay with USDC on-chain. The SDK's createAutoPayment handles this automatically.

CodeMessageEndpoint(s)
credits_exhaustedNo credits remaining. Includes payment instructions for auto-pay.ERC-8128 protected routes
payment_requiredOn-chain payment required to access this resource./api/demo/paid-echo
invalid_payment_receiptPayment receipt missing, invalid, or already consumed./api/demo/paid-echo
payments_unavailableAutonomous payments not configured on this server./api/autonomous/payments/*
quote_not_foundPayment quote not found./api/autonomous/payments/verify
quote_expiredPayment quote has expired (5-min TTL)./api/autonomous/payments/verify
transaction_not_foundCould not find transaction on the configured network./api/autonomous/payments/verify
transaction_failedTransaction did not succeed on-chain./api/autonomous/payments/verify
wrong_senderTransaction sender does not match the quoted wallet./api/autonomous/payments/verify
transfer_not_foundNo matching USDC transfer found for this quote./api/autonomous/payments/verify

403 — Forbidden

CodeMessageEndpoint(s)
plan_limit_reachedYour plan allows N project(s)/agent(s). Upgrade to create more./api/projects, /api/agents/register, /api/agents/request-access
wrong_projectAPI key does not belong to this projectRoutes accepting Bearer sa_key_...
origin_not_allowedOrigin is not allowed for this projectERC-8128 protected routes
chain_not_allowedChain is not enabled for this projectERC-8128 protected routes
missing_chain_clientNo RPC client configured for this chainERC-8128 protected routes
allowlist_rejectedWallet is not on the required on-chain allowlistERC-8128 protected routes
nft_requiredWallet does not hold the required NFTERC-8128 protected routes
wallet_blockedThis wallet has been blocked from accessing this projectERC-8128 protected routes

404 — Not Found

CodeMessageEndpoint(s)
not_foundResource not found (or you don't have access)Session/API-key protected routes
project_not_foundNo project with that ID/api/agents/request-access, /api/demo/echo
invalid_invite_codeInvite code not found/api/agents/register
key_not_foundAPI key not found/api/projects/[id]/api-keys, /api/user/api-keys

409 — Conflict

CodeMessageEndpoint(s)
slug_takenYou already have a project with this slug/api/projects (POST)
already_registeredThis wallet is already registered for this project/api/agents/request-access
address_already_registeredThis wallet address is already registered in this project/api/projects/[id]/agents/[agentId]/rotate

410 — Gone

CodeMessageEndpoint(s)
invite_already_usedThis invite code has already been claimed/api/agents/register
invite_expiredThis invite code has expired/api/agents/register

429 — Too Many Requests

All 429 responses include a Retry-After header (in seconds).

CodeMessageEndpoint(s)
rate_limitedToo many requests. Please try again later.IP-limited public endpoints + per-wallet middleware

500 — Internal Server Error

CodeMessageEndpoint(s)
internal_errorSomething went wrong on the serverAll routes (catch-all)