> For a complete index of Agora Finance documentation, fetch https://docs.agora.finance/llms.txt # API Reference > Documentation for the AUSD stablecoin and Agora's APIs. ## Docs - [Authentication](https://docs.agora.finance/api/authentication.md): How to authenticate against the Agora Public API. - [Overview](https://docs.agora.finance/api/endpoints/accounts/overview.md): The bank accounts and wallets your funds move through. - [Overview](https://docs.agora.finance/api/endpoints/routes/overview.md): Reusable mint and redeem paths, and how they settle. - [Overview](https://docs.agora.finance/api/endpoints/transactions/overview.md): Settled transactions and their per-leg detail. - [Errors](https://docs.agora.finance/api/errors.md): HTTP status codes, error codes, and recommended handling. - [Changelog](https://docs.agora.finance/api/changelog.md): Updates to the Agora Public API. - [Changelog (all entries)](https://docs.agora.finance/api/changelog/llms.txt) - [Sandbox Overview](https://docs.agora.finance/api/sandbox.md): Build and test against the Agora Public API on testnets. - [Quickstart](https://docs.agora.finance/api/sandbox/quickstart.md): From an API key to a settled testnet mint in about five minutes. - [Testnet Tokens](https://docs.agora.finance/api/sandbox/testnet-tokens.md): The chains, tokens, and faucets the sandbox uses. - [Authentication](https://docs.agora.finance/api/sandbox/authentication.md): How to authenticate against the sandbox. - [On-Chain Deposits](https://docs.agora.finance/api/sandbox/on-chain-deposits.md): Testnet deposits to stablecoin routes pay out on testnet. - [Simulated Wires](https://docs.agora.finance/api/sandbox/simulated-wires.md): Test fiat mints and redeems without moving US dollars. - [Overview](https://docs.agora.finance/api/sandbox/endpoints/accounts/overview.md): The bank accounts and wallets your funds move through. - [Overview](https://docs.agora.finance/api/sandbox/endpoints/routes/overview.md): Reusable mint and redeem paths, and how they settle in the sandbox. - [Overview](https://docs.agora.finance/api/sandbox/endpoints/transactions/overview.md): Settled transactions and their per-leg detail. - [Errors](https://docs.agora.finance/api/sandbox/errors.md): HTTP status codes, error codes, and recommended handling. ## API Docs - Endpoints > Auth [Create a Session Token](https://docs.agora.finance/api/endpoints/auth/token.md) - Endpoints > Metrics [Get Aggregate and Per-Chain Metrics](https://docs.agora.finance/api/endpoints/metrics/get.md) - Endpoints > Metrics [Get Aggregate Total Supply](https://docs.agora.finance/api/endpoints/metrics/totalsupply.md) - Endpoints > Metrics [Get Aggregate Circulating Supply](https://docs.agora.finance/api/endpoints/metrics/circulatingsupply.md) - Endpoints > Accounts [List Accounts](https://docs.agora.finance/api/endpoints/accounts/get.md) - Endpoints > Accounts [Get an Account by ID](https://docs.agora.finance/api/endpoints/accounts/getbyid.md) - Endpoints > Accounts [Register an Account](https://docs.agora.finance/api/endpoints/accounts/create.md) - Endpoints > Accounts [Update an Account](https://docs.agora.finance/api/endpoints/accounts/update.md) - Endpoints > Routes [List Routes](https://docs.agora.finance/api/endpoints/routes/get.md) - Endpoints > Routes [Get a Route by ID](https://docs.agora.finance/api/endpoints/routes/getbyid.md) - Endpoints > Routes [Create a Route](https://docs.agora.finance/api/endpoints/routes/create.md) - Endpoints > Transactions [List Transactions](https://docs.agora.finance/api/endpoints/transactions/list.md) - Endpoints > Transactions [Get a Transaction by ID](https://docs.agora.finance/api/endpoints/transactions/getbyid.md) - Endpoints > Sandbox Tools [CTK Faucet](https://docs.agora.finance/api/sandbox/endpoints/sandbox-tools/faucet.md) - Endpoints > Sandbox Tools [Simulate a Wire](https://docs.agora.finance/api/sandbox/endpoints/sandbox-tools/wires.md) ## OpenAPI Specification The raw OpenAPI 3.1 specification for this API is available at: - [OpenAPI JSON](https://docs.agora.finance/openapi.json) - [OpenAPI YAML](https://docs.agora.finance/openapi.yaml) > **Note:** This page contains both a page directory (above) and the landing page content (below). The page directory is generated for agent use and does not appear on the landing page. > For a complete index of Agora Finance documentation, fetch https://docs.agora.finance/llms.txt # Agora Public API > **Note** > > New **Agora now has a new sandbox environment for testing its APIs.** > > [Click here to learn more](/api/sandbox). The Agora Public API exposes real-time data and operations for the Agora stablecoin platform. The current surface covers: * **Metrics** — real-time AUSD supply, aggregate and per-chain, across every supported chain. Public, no authentication required. * **Accounts** — the bank accounts and blockchain wallets registered to your organization. * **Routes** — reusable mint and redeem routes (fiat ↔ AUSD, stablecoin ↔ AUSD) and the settlement instructions for each. * **Transactions** — your settled transactions and their per-leg settlement detail. Download Production OpenAPI spec For AI agents: the OpenAPI contract is served live and unauthenticated at `https://api.agora.finance/v0/openapi.json`. Fetch it directly and treat it as the source of truth for endpoints, request/response schemas, and error codes — it stays in sync with this documentation. ## Base URL All endpoints are served from `https://api.agora.finance`. ## Authentication Public-supply (metrics) endpoints require no authentication. Every other endpoint requires an API key, which you exchange for a short-lived session JWT. Owners and Admins create and manage keys from the [Agora dashboard](https://app.agora.finance), under **API keys** in the menu beneath your name. See the [Authentication guide](/api/authentication) for the full flow. ## Make your first request The metrics endpoints are public, so you can make a call without any credentials: ```bash curl https://api.agora.finance/v0/metrics ``` For authenticated endpoints, exchange your API key for a session JWT first (see [Authentication](/api/authentication)), then attach it as a bearer token. The full surface, with request and response schemas for every endpoint, lives under [Endpoints](/api/endpoints). ## Conventions A few conventions hold across the API: * **Monetary values are decimal strings, not numbers.** Amount fields are strings like `"987654321.654321"`. AUSD carries six decimals of precision; representing an amount as a JSON number would silently truncate it. Parse with a decimal library (`decimal.Decimal` in Python, `BigNumber.js` in JavaScript, `rust_decimal` in Rust). This follows industry standard practice (Circle, Stripe). * **Every response carries a `Request-Id` header.** Capture it in your logs — it's how Agora support traces a specific request end-to-end. Endpoint-specific response details — such as the per-chain shape and partial-state behavior of `/v0/metrics` — are documented on each endpoint under [Endpoints](/api/endpoints). ## Filtering list endpoints `GET /v0/accounts`, `GET /v0/routes`, and `GET /v0/transactions` accept filters alongside `cursor` and `limit`. The grammar is the same on all three: * **Filters combine with AND.** Every filter you send must hold for a record to appear. * **Multi-value filters take one comma-separated parameter**: `?network=base,arbitrum`, not a repeated `?network=base&network=arbitrum`, which is rejected. * **Date ranges use dotted bounds**: `.gte` / `.gt` for the lower bound, `.lte` / `.lt` for the upper, as in `?createdAt.gte=2026-03-01T00:00:00Z&createdAt.lt=2026-04-01T00:00:00Z`. Timestamps are ISO-8601 and must carry a zone (`Z` or an offset). The exclusive bounds let you select a period without naming its last instant. * **A filter is never silently dropped.** An unknown parameter, an unknown range operator, a value outside the accepted set, an empty value, two bounds on the same side, or a range nothing can satisfy all return `400 parameter_invalid` with the offending parameter named in `context.issues`. A filter that is valid but matches nothing returns `200` with an empty `data` array. ## Errors Errors share a common JSON shape with a stable `code`, a human-readable `message`, and a `docs_url`. Triggered rate limits return `429 rate_limit_exceeded` with a `Retry-After` header. See the [Error Reference](/api/errors) for the full code list, the `401` reason taxonomy, and handling guidance.