Skip to content

API ReferenceTokens

Endpoints

Tokens

Routable tokens, trust info, spot prices and the live price stream.

Base URLhttps://api.lane.markets/v1local instance: http://localhost:3000/v1

Spot USDC price of whole tokens

GET/v1/price

Computed in memory along the best route (net of LP fees, no size impact). No RPC call.

Query parameters

  • idsstringrequired

    Comma-separated token ids (max 100)

Responses

200Prices

  • quote"USDC"

  • dataobject

400Invalid input

Request
curl "https://api.lane.markets/v1/price?ids=HYPE,0x7D29d8047B905000459c0E80c34a26CeedcB47b2"

Routable tokens, ranked

GET/v1/tokens

Query parameters

  • qstring

    Matches symbol, name, or exact address

  • limitintegerdefault 50

  • strict"true"

    true = curated verified list only

  • sort"pools" | "volume"default pools

    volume = popular tokens by 24h volume

Responses

200Tokens (native HYPE first, then verified, then by live pool count)

  • tokensobject[]

  • tokens[].addressstring

  • tokens[].symbolstring

  • tokens[].namestring

  • tokens[].decimalsinteger

  • tokens[].poolsinteger

    Live pools holding this token

  • tokens[].verifiedboolean

  • tokens[].logoURIstring | null

  • tokens[].tagsstring[]

  • tokens[].warningsstring[]

  • tokens[].pricenumber | null

  • tokens[].change24hnumber | null

    Percent

  • tokens[].volume24hUsdnumber

  • tokens[].checkobject | null

    Honeypot/tax probe result

  • tokens[].check.status"ok" | "taxed" | "honeypot" | "unknown"

  • tokens[].check.buyTaxBpsinteger

  • tokens[].check.sellTaxBpsinteger

  • tokens[].check.transferTaxBpsinteger

  • tokens[].check.transferBlockedboolean

Request
curl "https://api.lane.markets/v1/tokens"

One token, with trust info and the honeypot/tax probe

GET/v1/tokens/{address}

Runs the probe now if this token was never checked.

Path parameters

  • addressaddressrequired

Responses

200Token

  • addressstring

  • symbolstring

  • namestring

  • decimalsinteger

  • poolsinteger

    Live pools holding this token

  • verifiedboolean

  • logoURIstring | null

  • tagsstring[]

  • warningsstring[]

  • pricenumber | null

  • change24hnumber | null

    Percent

  • volume24hUsdnumber

  • checkobject | null

    Honeypot/tax probe result

  • check.status"ok" | "taxed" | "honeypot" | "unknown"

  • check.buyTaxBpsinteger

  • check.sellTaxBpsinteger

  • check.transferTaxBpsinteger

  • check.transferBlockedboolean

400Invalid input

404Not in any indexed pool

Request
curl "https://api.lane.markets/v1/tokens/0x7D29d8047B905000459c0E80c34a26CeedcB47b2"

WebSocket: live prices

WS/v1/ws/prices

Upgrade 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

WebSocket
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

GET/v1/candles

Query parameters

  • tokentoken idrequired

    ERC20 address, or HYPE for native

  • interval"1m" | "5m" | "15m" | "1h" | "4h" | "1d"default 1h

  • frominteger

  • tointeger

Responses

200Candles

  • tokenstring

  • intervalstring

  • priceUsdnumber | null

  • change24hnumber | null

  • candlesobject[]

  • candles[].tinteger

  • candles[].onumber

  • candles[].hnumber

  • candles[].lnumber

  • candles[].cnumber

404Unknown token

Request
curl "https://api.lane.markets/v1/candles?token=…"
lane.markets · Make the most of every move.