---
title: "Get Aggregate and Per-Chain Metrics"
method: GET
path: "/v0/metrics"
tags: ["Metrics"]
---

# Get Aggregate and Per-Chain Metrics

`GET /v0/metrics`

<Callout intent="warning">
  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.
</Callout>

Returns aggregate and per-chain AUSD supply. A few response-shape details specific to this endpoint:

- **`chainId` is a [CAIP-2](https://chainagnostic.org/CAIPs/caip-2) identifier.** Real values include `eip155:1` (Ethereum), `eip155:137` (Polygon), `solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`, and `sui:mainnet`. Use it to cross-reference with DeFi Llama, CoinGecko, or on-chain data.
- **Aggregates are omitted on partial responses.** If one or more chains can't be reached, the response sets `partial: true` and **omits** the top-level `totalSupply` / `circulatingSupply` rather than publishing a silently-truncated figure. The omitted fields are absent — the keys are not present, not `null` — so guard with `'totalSupply' in response`, not `response.totalSupply != null`. The `chains[]` array still includes every chain with a recent cached value.
- **Supply values are decimal strings** (see the API overview for the precision convention). The plain-text variants `/v0/metrics/total-supply` and `/v0/metrics/circulating-supply` return a single decimal string when you don't need the per-chain breakdown.

## Response `200`

Aggregate and per-chain AUSD supply breakdown. When one or more chains are temporarily unavailable, the response sets `partial: true` and omits aggregate `totalSupply` and `circulatingSupply` rather than publishing a silently-truncated figure.

- MetricsGetResponse200
  - `chains` V0MetricsGetResponsesContentApplicationJsonSchemaChainsItems[], required — Per-chain supply breakdown. Only chains with a currently cached successful result are included; chains that have never succeeded (or are in a persistent outage on this pod) are omitted and cause `partial` to be true.
    - `chainId` string, required — CAIP-2 chain identifier (e.g. 'eip155:1' for Ethereum, 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' for Solana). Use this for cross-referencing with DeFi Llama, CoinGecko, or on-chain data.
    - `circulatingSupply` string, required — AUSD in public circulation on this chain (total minus premint reserves), as a decimal string (e.g. `400000000.000000`). Use this for market cap calculations and exchange integrations.
    - `network` 'arbitrum' | 'avalanche' | 'base' | 'binance-smart-chain' | 'core' | 'ethereum' | 'fraxtal' | 'gnosis' | 'immutable' | 'injective' | 'katana' | 'mantle' | 'monad' | 'plume' | 'polygon-pos' | 'solana' | 'sui', required — Blockchain network identifier. Use this to filter or group supply data by chain. Values are stable; new networks may be added but existing ones will not be renamed.
    - `totalSupply` string, required — Total AUSD minted on this chain, as a decimal string in human-readable units (not raw on-chain units, e.g. `500000000.000000`, not `500000000000000`). Use this when you need the gross supply figure for a single chain.
  - `circulatingSupply` string — Aggregate circulating AUSD supply across all chains, as a decimal string (e.g. `987654321.654321`). This is the sum of all per-chain circulatingSupply values. Omitted when `partial` is true.
  - `partial` boolean, required — True when one or more chains are missing from the response (cold start before a chain's first successful fetch, or a persistent chain outage). When true, aggregate `totalSupply` and `circulatingSupply` are **omitted**, since publishing a total that silently excludes chains would look like a large supply drop to market-data consumers.
  - `totalSupply` string — Aggregate total AUSD supply across all chains, as a decimal string (e.g. `1234567890.123456`). This is the sum of all per-chain totalSupply values. Omitted when `partial` is true.

## Other responses

- `404` — The requested route or resource does not exist. Verify the URL and method.
- `429` — Per-IP rate limit exceeded at the Cloudflare edge. The response includes a `Retry-After` header indicating the wait period in seconds.
- `500` — An unexpected server-side failure occurred. Retry with exponential backoff and capture the `Request-Id` header for support.

---

[API](https://skmtc.net/agora/apis/endpoints.md) · [All operations](https://skmtc.net/agora/apis/endpoints/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/agora/endpoints/versions/8525bfff7634/schema)
