Get started

Errors

Failures use standard HTTP status codes. Bodies are JSON with a detail field (string or validation object).

Error shape

Example
{
  "detail": "market not found"
}
Validation (422)
{
  "detail": [
    {
      "type": "missing",
      "loc": ["body", "password"],
      "msg": "Field required",
      "input": null
    }
  ]
}

Status codes

CodeMeaning
400Bad request (missing ticker/day, unsettled window rules, invalid bounds)
401Missing or invalid bearer token
403Authenticated but not allowed (e.g. unverified email on login)
404Unknown market or export id
422Request failed schema validation
500Unexpected server error — retry with backoff

Idempotency & rate limits

Each POST /api/v1/exports builds a new file. Auth endpoints are rate-limited per IP; treat 429/403 as signals to slow down.