Developer API
Read everything on Tidepool over plain HTTP: coins, their market data, the tide and platform fees. There is no API key and nothing to sign up for, because the API is read-only: no endpoint launches, trades, signs or changes anything.
Base URL /api/public/v1. Every response is { data, meta }, errors are { error: { code, message } }, and CORS is open, so you can call it from a browser, a bot or a server.
Quickstart
Every endpoint is open behind a per-minute rate limit per IP address. Start from a terminal:
# No key, no signup. Just call it.curl https://tidepool-hazel.vercel.app/api/public/v1/tokens?sort=newest# One coincurl https://tidepool-hazel.vercel.app/api/public/v1/tokens/<mint># The tide that's fillingcurl https://tidepool-hazel.vercel.app/api/public/v1/stats
Or from JavaScript:
const res = await fetch("https://tidepool-hazel.vercel.app/api/public/v1/tokens?sort=mcap&limit=10");const { data } = await res.json();for (const t of data.tokens) {console.log(t.symbol, t.name, t.market?.marketCapUsd);}
Pagination
List endpoints take limit (1-100, default 25) and cursor. Each response carries page: { limit, total, nextCursor }. For the next page, send nextCursor back as cursor with the same filters. nextCursor: null means you have everything.
Rate limits
120 requests per minute per IP. Past that you get 429 with code rate_limited; wait for the next minute. Responses are cached for a few seconds (market data) up to half a minute (fees), so polling faster than every 10 seconds returns the same numbers.
Endpoint reference
All endpoints are GET and live under https://tidepool-hazel.vercel.app/api/public/v1.
Every coin on the site with live market data.
{"data": {"tokens": [{"mint": "7Hk…tp","pool": "9F9M…dJ1","name": "Moon Jelly","symbol": "JELLY","description": "A jellyfish that only goes up.","imageUrl": "https://tidepool-hazel.vercel.app/api/img/7Hk…tp","launchpad": "meteora","creator": "4cX…9aQ","creatorName": "reefwalker","links": { "x": "https://x.com/moonjelly", "telegram": null, "website": null },"market": { "priceUsd": 0.0000441, "marketCapUsd": 44110, "volume24hUsd": 210700, "change24hPct": -10.4, "liquidityUsd": null },"graduationProgress": 0.16,"graduated": false,"createdAt": "2026-11-03T13:09:04.076Z","urls": { "page": "https://tidepool-hazel.vercel.app/coin/7Hk…tp" }}],"page": { "limit": 25, "sort": "mcap", "total": 1, "nextCursor": null }},"meta": { "generatedAt": "2026-11-03T13:14:08.118Z" }}
One coin, same shape as a row of /tokens. 404 if the mint isn't on this site.
{ "data": { "token": { "mint": "7Hk…tp", "symbol": "JELLY", "imageUrl": "https://tidepool-hazel.vercel.app/api/img/7Hk…tp", "market": { … } } }, "meta": { … } }
Site-wide totals, including the tide that's filling: when it closes, the holder share, SOL in the pools so far, holders riding, and SOL credited and paid out so far.
{ "data": { "tokens": { "total": 42, "graduated": 3 }, "tide": { "current": 20395, "closesAt": "2026-11-04T00:00:00.000Z", "holderSharePct": 50, "potSol": 3.21, "riders": 512, "creditedSol": 41.7, "paidSol": 39.2, "tidesClosed": 18 }, "totalMarketCapUsd": 1840000, "totalVolume24hUsd": 912000, "solPriceUsd": 184.2 }, "meta": { … } }
The platform fee wallet: its public address, balance, fees earned and every fee claim into it with transaction signatures. Holder payouts are sent from this wallet.
{ "data": { "wallet": "H7d9…m3T7h", "balanceSol": 12.4, "balanceUsd": 2284.1, "feesSol": 15.2, "claims": [ { "signature": "5x…", "sol": 1.2, "pools": 9, "at": "…" } ] }, "meta": { … } }