Discover markets & stay current
Flash lists new markets and tokens over time, and retires old ones. The API reflects those changes on its own — so read the live set at runtime instead of hardcoding it, and long-running services stay current without a redeploy.
The market set is not fixed
New pools, tokens, and markets go live as Flash lists them; some are retired. You do not redeploy or upgrade anything to see the change — the API picks it up within about 30 seconds and serves the new market like any other. A market or token list you hardcode today silently goes stale the first time Flash lists a pair.
Read these three endpoints at request time and treat them as the source of truth:
GET /pool-data
Every pool with its custodies and markets — symbol, maxLeverage, open interest, caps. The canonical "what can I trade right now".
GET /tokens
Every supported token — symbol, mint, decimals, isToken2022, lazerId. Deduplicated across pools.
GET /prices
Live price per symbol, with marketSession for equities.
Discover what's tradeable
Enumerate markets from /pool-data, never a static list:
curl $FLASH_API_URL/pool-dataEach pool carries custodyStats[] (per-symbol maxLeverage) and marketStats[] (per-market side and open interest). Together they are the live market set — crypto, forex, commodities, and equities alike. Leverage caps live here too, so read them rather than carrying a constant: the same market can list at very different caps across assets.
To act on a token you need its mint and decimals — the deposit and withdrawal endpoints take the mint, not the symbol. Read them from /tokens:
curl $FLASH_API_URL/tokensResolve the mint and decimals from /tokens; never assume them. /tokens reports decimals and isToken2022 per token — assuming 6 decimals breaks Token-2022 assets, and a hardcoded mint misses every new listing.
Stay current in a long-running service
Bots, keepers, and backends should not restart to pick up a listing. Re-read /pool-data and /tokens on an interval and refresh your in-memory view — a newly listed market appears on its own. Polling every 30–60 seconds is plenty: listings are rare, and the API already refreshes its own config on a similar cadence.
Keep your last good view when a fetch fails or returns an empty pools array — that is almost always a transient network problem, not a mass delisting.
Building on the SDK instead of REST? The Dynamic Pool & Token Data guide covers reading the same live config from Flash's CDN manifest and hot-reloading it with PoolConfig.
Related
API reference › Market data — exact request and response shapes for
/pool-data,/tokens,/prices, and/raw/*.Prices & markets — where prices come from and how market sessions work.
Was this helpful?

