Endpoints
Pools
Every Elysium pool with TVL, volume and fees, per-pool charts and activity.
https://api.lane.markets/v1local instance: http://localhost:3000/v1Pools with TVL, volumes, fees, price, market cap, age
/v1/poolsQuery parameters
venuestringSubstring of the venue name (uniswap, aero, nest, solidly, a launchpad)
tokentoken idERC20 address, or HYPE for native
sort"tvl" | "volume24h" | "fees24h" | "newest"default tvllimitintegerdefault 50offsetintegerdefault 0
Responses
200Pools
totalintegerpoolsobject[]pools[].addressstringpools[].venuestringpools[].protocolstringpools[].factorystringpools[].hooksstring | nullpools[].feeBpsnumberpools[].token0objectpools[].token1objectpools[].baseobjectpools[].quoteobjectpools[].priceUsdnumber | nullpools[].change24hnumber | nullpools[].marketCapUsdnumber | nullpools[].tvlUsdnumber | nullpools[].volumeUsdobjectpools[].volumeUsd.1hnumberpools[].volumeUsd.4hnumberpools[].volumeUsd.12hnumberpools[].volumeUsd.24hnumberpools[].fees24hUsdnumberpools[].swaps24hintegerpools[].createdAtinteger | nullpools[].poolsInPairinteger
curl "https://api.lane.markets/v1/pools"Totals for the Pools page header
/v1/pools/statsResponses
200Totals
tvlUsdnumberpoolsintegervolume24hUsdnumberfees24hUsdnumberswaps24hintegeropenPositionsinteger | null
curl "https://api.lane.markets/v1/pools/stats"One pool, with APR, 7d TVL change, LP count
/v1/pools/{id}Path parameters
idstringrequiredAddress, or 32-byte v4 pool id
Responses
200Pool
addressstringvenuestringprotocolstringfactorystringhooksstring | nullfeeBpsnumbertoken0objecttoken1objectbaseobjectquoteobjectpriceUsdnumber | nullchange24hnumber | nullmarketCapUsdnumber | nulltvlUsdnumber | nullvolumeUsdobjectvolumeUsd.1hnumbervolumeUsd.4hnumbervolumeUsd.12hnumbervolumeUsd.24hnumberfees24hUsdnumberswaps24hintegercreatedAtinteger | nullpoolsInPairintegertvlChange7dnumber | nullaprPctnumber | nullliquidityProvidersintegerfirstSeeninteger | nullkeyobject | null
404Unknown pool
curl "https://api.lane.markets/v1/pools/1"Volume, fees and TVL over time
/v1/pools/{id}/chartPath parameters
idstringrequired
Query parameters
interval"1h" | "1d"default 1hdaysinteger
Responses
200Series
intervalstringvolumeobject[]tvlobject[]
curl "https://api.lane.markets/v1/pools/1/chart"Swaps, adds, removes of a pool
/v1/pools/{id}/activityPath parameters
idstringrequired
Query parameters
limitintegerdefault 50beforeintegerBlock number (paging)
Responses
200Activity
itemsobject[]items[].txstringitems[].blockintegeritems[].timeintegeritems[].poolstringitems[].type"buy" | "sell" | "add" | "remove"items[].walletstring | nullitems[].valueUsdnumber | nullitems[].amountsobject[]
curl "https://api.lane.markets/v1/pools/1/activity"Latest activity across all pools
/v1/activityQuery parameters
limitintegerdefault 50
Responses
200Activity
itemsobject[]items[].txstringitems[].blockintegeritems[].timeintegeritems[].poolstringitems[].type"buy" | "sell" | "add" | "remove"items[].walletstring | nullitems[].valueUsdnumber | nullitems[].amountsobject[]
curl "https://api.lane.markets/v1/activity"WebSocket: send {"pools": [...]} or {"all": true}, receive {"items": [...]}
/v1/ws/activityResponses
101Switching protocols
const ws = new WebSocket("wss://api.lane.markets/v1/ws/activity");
ws.onopen = () => ws.send(JSON.stringify({ subscribe: ["HYPE", "0x7D29d8047B905000459c0E80c34a26CeedcB47b2"] }));
ws.onmessage = (event) => console.log(JSON.parse(event.data).prices);