Health of every chain, one generic row each
const url = 'https://api.getchord.xyz/v1/health/chains';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://api.getchord.xyz/v1/health/chainsWhat the status page is built from, readable directly. quotes.engine is the routing engine’s own state (ok, starting after a deploy, stale when its pool sync stopped, down); quotes.canary is the small quote the status probe sends. data.ageSec is how old the newest indexed trade is and data.maxAgeSec the age past which the chain’s data counts as delayed. quotes is null where Chord does not route (Solana), data is null where no tape runs. Answers from a 15-second memo.
Responses
Section titled “ Responses ”object
ISO time the rows were read.
object
object
Round trip from the API to the engine.
10 units of the chain’s first dollar stable into its wrapped native (Arc: into EURC).
object
Amount in the token’s smallest unit, as a decimal string. Never a float.
object
Null = the age could not be read.
Example
{ "at": "2026-10-11T17:33:02.088Z", "chains": [ { "key": "monad", "id": 143, "name": "Monad", "quotes": { "engine": "ok", "latencyMs": 4, "lastSyncBlock": 112529162, "canary": { "inputMint": "0x754704bc059f8c67012fed69bc8a327a5aafb603", "outputMint": "0x3bd359c1119da7da1d913d1c4d2b7c461115433a", "amount": "10000000" } }, "data": { "ageSec": 10, "maxAgeSec": 600 } }, { "key": "robinhood", "id": 4663, "name": "Robinhood Chain", "quotes": { "engine": "ok", "latencyMs": 5, "lastSyncBlock": 86010669, "canary": { "inputMint": "0x5fc5360d0400a0fd4f2af552add042d716f1d168", "outputMint": "0x0bd7d308f8e1639fab988df18a8011f41eacad73", "amount": "10000000" } }, "data": { "ageSec": 4, "maxAgeSec": 2700 } } ]}Over the per-minute limit (RATE_LIMIT_EXCEEDED). Read X-RateLimit-Reset and back off.
Every non-2xx body.
object
Stable machine code, e.g. INVALID_PARAMS, NOT_READY, RATE_LIMIT_EXCEEDED.
For humans.
HTTP status, when included.
Example
{ "error": "INVALID_PARAMS", "message": "amount must be an integer string in the token's smallest unit"}