Skip to main content

Documentation Index

Fetch the complete documentation index at: https://aura-4ecab767.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

The Aura API returns errors as JSON with a stable shape:
{
  "statusCode": 400,
  "code": "INVALID_REQUEST",
  "message": "price must be between 1 and 999",
  "details": {
    "field": "price",
    "received": 1000
  }
}
FieldDescription
statusCodeHTTP status code (matches the response status).
codeStable, machine-readable error code. Don’t switch on message.
messageHuman-readable error description.
detailsOptional object with structured context (varies by error code).

Status codes

StatusWhen
400 Bad RequestValidation failed — schema, range, or business rule. details usually carries the offending field.
401 UnauthorizedMissing or malformed Authorization header.
403 ForbiddenKey valid but lacks the required scope (e.g. read-only key calling /v1/tx/*).
404 Not FoundThe resource doesn’t exist (or you don’t own it, for wallet-scoped reads).
409 ConflictIdempotency / state conflict (e.g. trying to dispute a market past the dispute window).
422 Unprocessable EntityRequest was valid but cannot be fulfilled (e.g. insufficient balance for a build-tx call).
429 Too Many RequestsRate limit exceeded. See Rate Limits.
500 Internal Server ErrorBug on our side. Includes a requestId in details for support.
502 Bad GatewayUpstream chain node or indexer is unhealthy. Retry.
503 Service UnavailableMaintenance window or temporary overload. Retry with backoff.

Common error codes

CodeMeaning
INVALID_REQUESTRequest body or query failed schema validation.
UNAUTHORIZEDAPI key required or invalid.
INSUFFICIENT_SCOPEKey lacks the scope this endpoint requires.
RATE_LIMITEDPer-IP or per-key rate limit exceeded.
NOT_FOUNDResource doesn’t exist.
MARKET_CLOSEDTrade attempted on a closed/resolved market.
INSUFFICIENT_BALANCEBuild-tx target wallet doesn’t have enough collateral.
INVALID_SIGNATUREAuth challenge signature didn’t verify.
CHALLENGE_EXPIREDAuth challenge was used past its TTL.
UPSTREAM_TIMEOUTChain node or indexer didn’t respond in time.

Idempotency & retries

  • All GET endpoints are safe to retry.
  • POST /v1/tx/* endpoints are idempotent by request body — calling twice with the same body returns the same unsignedTx and txId. This makes it safe to retry on transient network errors without double-spending.
  • POST /v1/auth/keys is not idempotent (each call mints a new key).
Always log the requestId from 5xx errors when reporting bugs. It lets us trace your exact request through our logs.