Endpoints
Tokens
Routable tokens, trust info, spot prices and the live price stream.
https://api.lane.markets/v1local instance: http://localhost:3000/v1Spot USDC price of whole tokens
/v1/priceComputed in memory along the best route (net of LP fees, no size impact). No RPC call.
Query parameters
idsstringrequiredComma-separated token ids (max 100)
Responses
200Prices
quote"USDC"dataobject
400Invalid input
curl "https://api.lane.markets/v1/price?ids=HYPE,0x7D29d8047B905000459c0E80c34a26CeedcB47b2"Routable tokens, ranked
/v1/tokensQuery parameters
qstringMatches symbol, name, or exact address
limitintegerdefault 50strict"true"true= curated verified list onlysort"pools" | "volume"default poolsvolume= popular tokens by 24h volume
Responses
200Tokens (native HYPE first, then verified, then by live pool count)
tokensobject[]tokens[].addressstringtokens[].symbolstringtokens[].namestringtokens[].decimalsintegertokens[].poolsintegerLive pools holding this token
tokens[].verifiedbooleantokens[].logoURIstring | nulltokens[].tagsstring[]tokens[].warningsstring[]tokens[].pricenumber | nulltokens[].change24hnumber | nullPercent
tokens[].volume24hUsdnumbertokens[].checkobject | nullHoneypot/tax probe result
tokens[].check.status"ok" | "taxed" | "honeypot" | "unknown"tokens[].check.buyTaxBpsintegertokens[].check.sellTaxBpsintegertokens[].check.transferTaxBpsintegertokens[].check.transferBlockedboolean
curl "https://api.lane.markets/v1/tokens"One token, with trust info and the honeypot/tax probe
/v1/tokens/{address}Runs the probe now if this token was never checked.
Path parameters
addressaddressrequired
Responses
200Token
addressstringsymbolstringnamestringdecimalsintegerpoolsintegerLive pools holding this token
verifiedbooleanlogoURIstring | nulltagsstring[]warningsstring[]pricenumber | nullchange24hnumber | nullPercent
volume24hUsdnumbercheckobject | nullHoneypot/tax probe result
check.status"ok" | "taxed" | "honeypot" | "unknown"check.buyTaxBpsintegercheck.sellTaxBpsintegercheck.transferTaxBpsintegercheck.transferBlockedboolean
400Invalid input
404Not in any indexed pool
curl "https://api.lane.markets/v1/tokens/0x7D29d8047B905000459c0E80c34a26CeedcB47b2"WebSocket: live prices
/v1/ws/pricesUpgrade to a WebSocket, then send {"subscribe": ["HYPE", "0x…"]} (max 100 ids).
The server answers {"prices": {id: price}} at once, then pushes only the ids whose price moved, each block.
Responses
101Switching protocols
const ws = new WebSocket("wss://api.lane.markets/v1/ws/prices");
ws.onopen = () => ws.send(JSON.stringify({ subscribe: ["HYPE", "0x7D29d8047B905000459c0E80c34a26CeedcB47b2"] }));
ws.onmessage = (event) => console.log(JSON.parse(event.data).prices);OHLC candles of a token's USD price
/v1/candlesQuery parameters
tokentoken idrequiredERC20 address, or HYPE for native
interval"1m" | "5m" | "15m" | "1h" | "4h" | "1d"default 1hfromintegertointeger
Responses
200Candles
tokenstringintervalstringpriceUsdnumber | nullchange24hnumber | nullcandlesobject[]candles[].tintegercandles[].onumbercandles[].hnumbercandles[].lnumbercandles[].cnumber
404Unknown token
curl "https://api.lane.markets/v1/candles?token=…"