One pool
const url = 'https://api.getchord.xyz/v1/lp/pools/example?chain=5042';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/lp/pools/example?chain=5042'The pool row plus its hourly series (the last 168 hours by default; hours up to 720), the top providers over 7 days, the health score with its parts and reasons, launch facts (who launched it, how much of the liquidity the launcher holds and has pulled), and mint — what a wallet needs to add liquidity here (the position manager, the pool key, Permit2, tick spacing).
Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”A pool: a 20-byte contract address (V2 / V3) or a 32-byte Uniswap V4 pool id.
Query Parameters
Section titled “Query Parameters”Chain id: 5042 Arc · 4663 Robinhood Chain · 143 Monad.
Hours of the hourly series, 24 to 720 (default 168)
Responses
Section titled “ Responses ”object
A pool: a 20-byte contract address (V2 / V3) or a 32-byte Uniswap V4 pool id.
EVM address, hex, case-insensitive.
hooked = a V4 hook can refuse adds.
A token as it appears inside a pool row.
object
EVM address, hex, case-insensitive.
Symbol from the contract, or null while unresolved.
ERC-20 decimals.
Logo URL, or null.
True when the symbol copies the chain’s anchor (a token called USDC that is not the USDC predeploy). Flagged, never hidden.
A token as it appears inside a pool row.
object
EVM address, hex, case-insensitive.
Symbol from the contract, or null while unresolved.
ERC-20 decimals.
Logo URL, or null.
True when the symbol copies the chain’s anchor (a token called USDC that is not the USDC predeploy). Flagged, never hidden.
Which side is the non-anchor token (0 or 1).
Where TVL came from (onchain, dexscreener, …).
Unix time, seconds, UTC.
object
Volume × the pool’s fee tier.
object
Fees ÷ TVL, percent.
object
24h fee/TVL × 365 — a full-range yardstick, not a promise.
Unix time, seconds, UTC.
Unix time, seconds, UTC.
24h volume ÷ TVL.
Wash or launch-farm printing (volume without traders, dust TVL under real volume, turnover no honest pool reaches). Hidden by default; flagged=1 shows them.
0–100 health score (traders, TVL, yield sanity, LP flow, age, penalties).
The tracked token’s price × its total supply on this chain (for a bridged token: what was bridged here). On the list only; null when the pool tracks neither side, the tracked side is the native coin, or the supply is not on record yet.
object
object
EVM address, hex, case-insensitive.
Unix time, seconds, UTC.
object
object
object
EVM address, hex, case-insensitive.
EVM address, hex, case-insensitive.
EVM address, hex, case-insensitive.
Unix time, seconds, UTC.
Unix time, seconds, UTC.
object
EVM address, hex, case-insensitive.
EVM address, hex, case-insensitive.
EVM address, hex, case-insensitive.
EVM address, hex, case-insensitive.
EVM address, hex, case-insensitive.
V4 dynamic-fee pools carry the 0x800000 flag.
Unix time, milliseconds — when the server built this answer.
Example
{ "chain": 5042, "pool": "0xf53f02d9041d00bbd92235b4c902b9f350c554a8ed2dc64fa0a4585aac413f09", "dex": "uniswap_v4", "kind": "v4", "feeBps": 98.8, "hooks": null, "lpAccess": "open", "tickSpacing": 99, "token0": { "address": "0x3600000000000000000000000000000000000000", "symbol": "USDC", "decimals": 6, "logo": "https://coin-images.coingecko.com/coins/images/6319/large/USDC.png?1769615602", "impostor": false }, "token1": { "address": "0x8faae5592b9acc27a79fca745c6b872adf514a5d", "symbol": "MURMUR", "decimals": 18, "logo": "https://cdn.dexscreener.com/cms/images/QUq-IqT1GLQNkxMx?width=800&height=800&quality=95&format=auto", "impostor": false }, "tokenSide": 1, "tvlUsd": 12650.66, "tvlSrc": "dexscreener", "tvlAt": 1789891603, "vol": { "h1": 176.542824, "h6": 38476.48885700001, "h24": 184500.14476700005, "d7": 279614.0964730001 }, "fees": { "h1": 1.74424310112, "h6": 380.1477099071601, "h24": 1822.8614302979606 }, "feeTvlPct": { "h1": 0.01378776365122452, "h6": 3.0049634557182006, "h24": 14.40921999562047 }, "aprPct": 5259.365298401472, "trades24h": 3050, "wallets24h": 131, "priceUsd": 0.0007671677499328048, "lpAdd24h": 8037.861902775549, "lpRemove24h": 7583.743885515529, "providers24h": 25, "firstSeenTs": 1789693200, "createdTs": 1789695461, "lastTradeHour": 1789891200, "turnover24h": 14.584230764798047, "suspect": false, "hourly": [ { "hour": 1789693200, "vol": 398.305695, "trades": 24, "price": 0.00008817848931962542 }, { "hour": 1789696800, "vol": 1958.7937559999996, "trades": 77, "price": 0.00010307489720874844 } ], "topLps": [ { "wallet": "0x25cacb704ed0852428e7cc0687bca45ee8c21848", "addUsd": 5763.889211498252, "removeUsd": 0, "netUsd": 5763.889211498252, "events": 1, "lastTs": 1789695461 }, { "wallet": "0x5db28691cbfc2ceeca1d919f0749b64013c25432", "addUsd": 3885.2424150632846, "removeUsd": 1296.008402, "netUsd": 2589.2340130632847, "events": 254, "lastTs": 1789886789 } ], "health": { "score": 34, "parts": { "traders": 17.6, "tvl": 13.7, "yieldSanity": 4, "lpFlow": 15, "age": 3.2, "penalties": 20 }, "reasons": [ "the launcher holds 100% of the liquidity added", "fee/TVL over 10 %/day: volume is not organic or TVL is not the whole picture" ] }, "launch": { "launcher": "0x6049c9a0e26405c0985f9e3685c87d0ae917f82b", "launcherName": "Uniswap Liquidity Launcher", "creator": "0x25cacb704ed0852428e7cc0687bca45ee8c21848", "hooks": null, "launchedTs": 1789695461, "launcherLpAddedUsd": 15907.554822267326, "totalLpAddedUsd": 15907.554822267326, "launcherSharePct": 100, "launcherLastRemoveTs": 1789888952, "launcherRemovedUsd": 7697.230608504608 }, "mint": { "kind": "v4", "manager": "0x6049c9a0e26405c0985f9e3685c87d0ae917f82b", "permit2": "0x000000000022d473030f116ddee9f6b43ac78ba3", "token0": "0x3600000000000000000000000000000000000000", "token1": "0x8faae5592b9acc27a79fca745c6b872adf514a5d", "feePips": 9880, "tickSpacing": 99, "hooks": "0x0000000000000000000000000000000000000000", "feeRaw": 9880, "nativeCurrency0": false }, "updatedAt": 1789891869303}Invalid parameters — error names the check that failed (INVALID_PARAMS, BAD_ADDRESS, BAD_LIMIT, BAD_HOURS, …).
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"}Nothing at this identity (NOT_FOUND, UNKNOWN_TOKEN, NO_ROUTE).
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"}