Documentation Index
Fetch the complete documentation index at: https://docs.agentscore.sh/llms.txt
Use this file to discover all available pages before exploring further.
Error response format
All errors follow the same structure:signup_url, can_assess).
Error codes
| HTTP Status | Code | Description |
|---|---|---|
| 400 | bad_request | Invalid request parameters |
| 400 | invalid_address | Invalid wallet address |
| 400 | invalid_identity | Neither address nor operator_token provided |
| 400 | invalid_test_address | Test mode requires a reserved test address |
| 401 | signup_required | Missing or invalid API key |
| 401 | unauthorized | Missing X-Poll-Secret header on session poll |
| 401 | invalid_credential | Operator credential doesn’t exist (typo, never minted, fabricated). Permanent — the response body carries no auto-session because the agent likely has another valid token to try first. |
| 401 | token_expired | Operator credential was valid but is now revoked or past its TTL (the API doesn’t disclose which). The 401 body carries an auto-minted verification session (verify_url + session_id + poll_secret) so the user can re-verify and the agent can poll for a fresh operator_token. |
| 402 | payment_required | Endpoint not enabled for this account |
| 403 | account_cancelled | Account has been cancelled |
| 404 | not_found | Resource not found |
| 404 | unknown_address | Address not yet indexed (includes can_assess: true) |
| 429 | rate_limited | Rate limit exceeded (per-second) |
| 429 | quota_exceeded | Account quota exceeded |
| 500 | internal_error | Unexpected server error |
| 5xx | api_error | Transient infra failure on /v1/assess; body carries agent_instructions retry-with-backoff envelope |
Common errors
No API key (401)
Endpoint not enabled for account (402)
Account cancelled (403)
Unknown address (404)
POST /v1/assess to score unknown addresses on-the-fly.
Rate limited (429)
Retry-After header indicates how many seconds to wait.
Quota exceeded (429)
quota_exceeded is a per-account cap — distinct from rate_limited (per-second sliding window). Don’t retry; the cap won’t lift through retry alone.
Commerce SDKs can opt in to graceful degradation on this code via failOpen / fail_open — see compliance-gating › Fail-open behavior. When fail-open is off, the gate’s 503 response carries agent_instructions with action: "contact_merchant" (NOT retry_with_backoff), so agents surface the issue to the user instead of looping on a permanently-failing endpoint.
Retryable infra errors (api_error)
503 responses with error.code: "api_error" carry a structured agent_instructions envelope. The action discriminates the cause and tells the agent how to recover:
Transient 5xx / network timeout — retry_with_backoff
Merchant-side 429 — contact_merchant
agent_instructions.action before retrying. Do NOT loop on api_error blindly — when the action is contact_merchant, the same 503 will keep returning until the merchant resolves the issue on their side.
The Node and Python commerce SDKs forward this envelope to buyers as part of the 503 response when failOpen is off (the default). When failOpen is on, the SDKs swallow the 5xx and pass the buyer through with degraded: true + infra_reason: "api_error" | "quota_exceeded" | "network_timeout" on the gate state — see compliance-gating › Fail-open behavior.