Agora Public API
The endpoints exposed here are currently in Beta! As we continue to build our initial offering, these endpoints may implement breaking changes. Be sure to check back for our change log regularly as a precaution.
The Agora Public API exposes real-time data and operations for the Agora stablecoin platform. The current surface covers AUSD supply metrics across all supported chains.
Base URL
All endpoints are served from https://api.agora.finance.
Authentication
The endpoints available today are public and require no authentication. Authenticated endpoints will be introduced as the surface expands.
Make your first request
Fetch the full per-chain AUSD supply breakdown:
Response (truncated — production returns one entry per supported chain):
When one or more chains are temporarily unavailable, the response sets partial: true and the top-level aggregate fields are absent (the keys are not present, not null). See Response shape below for the full convention and a partial-state example.
If you only need the headline number, /v0/metrics/total-supply and /v0/metrics/circulating-supply return a plain-text decimal — useful when the per-chain breakdown isn’t needed:
Response shape
A few conventions worth knowing before you parse a response:
-
Supply values are decimal strings, not numbers. Every supply field —
totalSupply,circulatingSupply, and the body of the plain-text endpoints — is a string like"987654321.654321". AUSD carries six decimals of precision; representing supply as a JSON number would silently truncate it. Parse with a decimal library (decimal.Decimalin Python,BigNumber.jsin JavaScript,rust_decimalin Rust). This follows industry standard practice (Circle, Stripe). -
chainIdis a CAIP-2 identifier. Real values includeeip155:1(Ethereum),eip155:137(Polygon),solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp, andsui:mainnet. Use this for cross-referencing with DeFi Llama, CoinGecko, or on-chain data. -
Aggregates may be omitted when chains are unavailable. If one or more chains can’t be reached,
/v0/metricsreturnspartial: trueand omits the top-leveltotalSupply/circulatingSupplyrather than publishing a silently-truncated figure. The omitted fields are absent — the keys are not in the response, not set tonull— so guard with'totalSupply' in response, notresponse.totalSupply != null. The per-chainchains[]array still includes every chain that has a recent cached value. The full response schema is in the Endpoints reference.Partial response shape:
-
Every response carries a
Request-Idheader. Capture it in your logs — it’s how Agora support traces a specific request end-to-end.
Errors and rate limits
Errors share a common JSON shape with a stable code, a human-readable message, and a link back to this docs site:
Triggered rate limits return 429 rate_limit_exceeded with a Retry-After header indicating how long to wait. See the Error Reference for the full code list and handling guidance.

