Properties
| Name | Type | Description |
|---|---|---|
| pool | string | A pool: a 20-byte contract address (V2 / V3) or a 32-byte Uniswap V4 pool id. |
| dex | string | |
| kind | string | |
| feeBps | numbernull | |
| hooks | stringnull | EVM address, hex, case-insensitive. |
| lpAccess | string | `hooked` = a V4 hook can refuse adds. |
| tickSpacing | integernull | |
| token0 | object | |
| token1 | object | |
| tokenSide | integernull | Which side is the non-anchor token (0 or 1). |
| tvlUsd | numbernull | |
| tvlSrc | stringnull | Where TVL came from (`onchain`, `dexscreener`, …). |
| tvlAt | integernull | Unix time, seconds, UTC. |
| vol | object | |
| fees | object | volume × the pool's fee tier. |
| feeTvlPct | object | fees ÷ TVL, percent. |
| aprPct | numbernull | 24h fee/TVL × 365 — a full-range yardstick, not a promise. |
| trades24h | integer | |
| wallets24h | integer | |
| priceUsd | numbernull | |
| lpAdd24h | number | |
| lpRemove24h | number | |
| providers24h | integer | |
| firstSeenTs | integer | Unix time, seconds, UTC. |
| createdTs | integernull | Unix time, seconds, UTC. |
| lastTradeHour | integer | |
| turnover24h | numbernull | 24h volume ÷ TVL. |
| suspect | boolean | 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. |
| score | integer | 0–100 health score (traders, TVL, yield sanity, LP flow, age, penalties). |
| marketCapUsd | numbernull | 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 |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/getchord-xyz/json-schema/getchord-xyz-pool-list-row-schema.json",
"title": "PoolListRow",
"x-generated": "2026-11-10",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/getchord-xyz-openapi.json#/components/schemas/PoolListRow",
"type": "object",
"properties": {
"pool": {
"type": "string",
"pattern": "^0x([a-fA-F0-9]{40}|[a-fA-F0-9]{64})$",
"description": "A pool: a 20-byte contract address (V2 / V3) or a 32-byte Uniswap V4 pool id."
},
"dex": {
"type": "string",
"description": ""
},
"kind": {
"type": "string",
"enum": [
"v2",
"clmm",
"v4"
]
},
"feeBps": {
"type": [
"number",
"null"
],
"description": ""
},
"hooks": {
"type": [
"string",
"null"
],
"pattern": "^0x[a-fA-F0-9]{40}$",
"description": "EVM address, hex, case-insensitive."
},
"lpAccess": {
"type": "string",
"enum": [
"open",
"hooked",
"unknown"
],
"description": "`hooked` = a V4 hook can refuse adds."
},
"tickSpacing": {
"type": [
"integer",
"null"
],
"description": ""
},
"token0": {
"$ref": "#/$defs/TokenLite"
},
"token1": {
"$ref": "#/$defs/TokenLite"
},
"tokenSide": {
"type": [
"integer",
"null"
],
"description": "Which side is the non-anchor token (0 or 1)."
},
"tvlUsd": {
"type": [
"number",
"null"
],
"description": ""
},
"tvlSrc": {
"type": [
"string",
"null"
],
"description": "Where TVL came from (`onchain`, `dexscreener`, …)."
},
"tvlAt": {
"type": [
"integer",
"null"
],
"description": "Unix time, seconds, UTC."
},
"vol": {
"type": "object",
"properties": {
"h1": {
"type": "number",
"description": ""
},
"h6": {
"type": "number",
"description": ""
},
"h24": {
"type": "number",
"description": ""
},
"d7": {
"type": "number",
"description": ""
}
}
},
"fees": {
"type": "object",
"properties": {
"h1": {
"type": [
"number",
"null"
],
"description": ""
},
"h6": {
"type": [
"number",
"null"
],
"description": ""
},
"h24": {
"type": [
"number",
"null"
],
"description": ""
}
},
"description": "volume × the pool's fee tier."
},
"feeTvlPct": {
"type": "object",
"properties": {
"h1": {
"type": [
"number",
"null"
],
"description": ""
},
"h6": {
"type": [
"number",
"null"
],
"description": ""
},
"h24": {
"type": [
"number",
"null"
],
"description": ""
}
},
"description": "fees ÷ TVL, percent."
},
"aprPct": {
"type": [
"number",
"null"
],
"description": "24h fee/TVL × 365 — a full-range yardstick, not a promise."
},
"trades24h": {
"type": "integer",
"description": ""
},
"wallets24h": {
"type": "integer",
"description": ""
},
"priceUsd": {
"type": [
"number",
"null"
],
"description": ""
},
"lpAdd24h": {
"type": "number",
"description": ""
},
"lpRemove24h": {
"type": "number",
"description": ""
},
"providers24h": {
"type": "integer",
"description": ""
},
"firstSeenTs": {
"type": "integer",
"description": "Unix time, seconds, UTC."
},
"createdTs": {
"type": [
"integer",
"null"
],
"description": "Unix time, seconds, UTC."
},
"lastTradeHour": {
"type": "integer",
"description": ""
},
"turnover24h": {
"type": [
"number",
"null"
],
"description": "24h volume ÷ TVL."
},
"suspect": {
"type": "boolean",
"description": "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."
},
"score": {
"type": "integer",
"description": "0–100 health score (traders, TVL, yield sanity, LP flow, age, penalties)."
},
"marketCapUsd": {
"type": [
"number",
"null"
],
"description": "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."
}
},
"$defs": {
"TokenLite": {
"type": "object",
"properties": {
"address": {
"type": "string",
"pattern": "^0x[a-fA-F0-9]{40}$",
"description": "EVM address, hex, case-insensitive."
},
"symbol": {
"type": [
"string",
"null"
],
"description": "Symbol from the contract, or null while unresolved."
},
"decimals": {
"type": [
"integer",
"null"
],
"description": "ERC-20 decimals."
},
"logo": {
"type": [
"string",
"null"
],
"description": "Logo URL, or null."
},
"impostor": {
"type": "boolean",
"description": "True when the symbol copies the chain's anchor (a token called USDC that is not the USDC predeploy). Flagged, never hidden."
}
},
"description": "A token as it appears inside a pool row."
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/getchord-xyz-pool-list-row"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.