GETs for dashboards, marketing sites, partner portals, or analytics jobs. There is no single “TVL” endpoint — compose metrics from the surfaces below.
Base URL
Summary
Integrated networks
- Count =
response.length. - Richer per-chain config (names, RPCs, contracts):
GET /v1/be/config/spoke/all-chains-configs.
Partner integrations
- Count =
response.partners.length. - Optional filter:
?chainId=<id>for partners active on one chain.
Per-partner summary
Supported assets
Pick the set that matches what you are counting:
Swap / money-market shape —
Record<chainKey, Token[]>:
Record<chainKey, Record<assetAddress, HubAsset>>:
Filled-intent volume
Headline count
What it is not: a count of distinct intent hashes.
- Partial fills produce one record per fill event.
- The same
intentHashcan appear for different intent instances over time; a distinct-hash count would under-count.
Paginated feed
{ items, nextCursor, hasMore } of filled-intent events. There is no total on this feed — use /volume/stats for the headline number.
Per-intent history
{ items, count } for all stored fill records for that hash.
SODA supply
- Single-field endpoints return a stringified number.
/supplyreturns the full document when you need both figures plus metadata in one call.
Related reads (not headline stats)
Caching & errors
- Stats reads are server-cached (order of seconds to ~60s depending on endpoint).
- Invalid paths → edge
{ "ok": false, "error": "route_not_found" }. - No authentication for the endpoints on this page.