RESTCandles for any pool, eight timeframes.
Historical and recent OHLCV over a plain REST API. No SDK, no schema to reverse-engineer, and no websocket to hold open if you only need a range query.
- Candles
- 146M+
- Pairs
- 1.2M+
- Timeframes
- 8
- Response, p95
- <50ms
What happens between a validator and your response.
- feed
- connecting
- frames this session
- 0
- events decoded
- read live on /products
- last venue
- —
Ticks in, candles out, gaps bridged.
Trades on a live mint arrive whenever they arrive. Each one is floored to a bucket boundary and folded into that bucket's open, high, low, close and volume; empty buckets between traded ones are bridged so the axis stays a timeline. This is the terminal chart's own forwardFill, run in your browser on real fills.
- ticks in window
- 0
- 1s buckets
- 0
- traded
- 0
- forward-filled
- 0
Solid bars traded. Hollow bars are the ones forwardFill synthesised between two traded buckets, flat at the previous close with zero volume, so the axis stays a timeline. The space before now is left empty: gaps are bridged between known bars, never extrapolated toward the present.
Run it here.
This is the public API, called from your browser through a proxy that holds the key. Change a control and it reruns.
/api/v1/candles/latestrunning// running…
Six endpoints cover the whole dataset.
- GET
/api/v1/candles/latestMost recent candles, newest first - GET
/api/v1/candlesRange query with start and end, oldest first - GET
/api/v1/pairsPools for a mint, ranked by recent volume - GET
/api/v1/top-moversGainers and losers for a window - GET
/api/v1/protocolsThe venue list, no key required - GET
/stats/globalCorpus counters across every venue
timestampstringISO-8601 with a +00:00 offset, not a Z suffix
open / high / low / closenumberSOL per token, decimal-adjusted
volume_solnumberLamports: divide by 1e9 for SOL
volume_tokennumberBase units: divide by 10^quote_decimals
trade_countnumberTrades in the bucket
buy_count / sell_countnumberDirection resolved per venue
unique_tradersnumberDistinct wallets in the bucket
Two things that will bite you.
ordering/candles/latest returns newest-first; /candles returns oldest-first. Charting the first without reversing draws the series backwards.
unitsvolume_sol is lamports, not SOL. Prices are SOL per token and already decimal-adjusted, so no decimals lookup is needed.
Need it live instead?
The same candles stream over WebSocket, and every decoded swap is available on its own feed.
Build the call, copy the client.
Change the parameters, pick a language, and run it against the live API. The code on the right is the request the panel below just made.
Top movers for the window, ranked by volume.
Runs against the live API from your browser. No key needed here: the demo key is applied server-side.
curl -s 'https://api.dexploit.dev/trending?limit=5' \
-H 'x-api-key: $DEXPLOIT_API_KEY'Press Run to execute this request against the live API.
Rate limits, stated per second.
- Rate
- 20 RPS
- History
- Full history
- Support
- Community
- Rate
- 100 RPS
- Connections
- 10 concurrent
- History
- Full history
- Support
- Rate
- 500 RPS
- Connections
- 50 concurrent
- History
- Full history
- Support
- Priority
Limits are per second. The plans have no monthly request quota, so none is quoted here.