API Reference
Base URL: https://api.venum.dev
Optional server-to-server base URL: http://api.venum.dev
Notes:
- HTTPS is the default and recommended transport.
- Plain HTTP is available for backend/server clients that explicitly want to avoid TLS overhead.
- Browsers will still prefer HTTPS for
.devdomains.
Endpoints
Free (no auth, cached)
| Method | Path | Description | Cache |
|---|---|---|---|
GET | /health | API health check | — |
GET | /v1/price/:token | DEX price for a token | 2s |
GET | /v1/prices?tokens= | Batch DEX prices | 2s |
GET | /v1/pools | Browse pools (filter by token/pair/dex) | 5s |
GET | /v1/pools/:token | Pools for a token | 5s |
GET | /v1/pools/:tokenA/:tokenB | Pools for a pair | 5s |
GET | /v1/pairs/:mint | Tradeable output mints for an input mint | 5s |
GET | /v1/search?q= | Market data search across tracked tokens + pools | 5s |
GET | /v1/token/:mint | Market data token page payload | 5s |
GET | /v1/trending | Market data homepage sections | 10s |
GET | /v1/chart/:mint | Market data chart candles | 60s |
GET | /v1/tokens | Supported token list with mints + categories | 60s |
GET | /v1/stats/volume | Aggregate USD swap volume for a time window | 60s |
GET | /v1/pools/new | Recently discovered pools (snapshot of last 500, newest first) | 5s |
Paid (requires x-api-key header or ?apiKey= where documented)
| Method | Path | Description |
|---|---|---|
POST | /v1/quote | Get ranked swap routes across all major Solana DEXes |
GET | /v1/quote/stream | SSE: same quote, pushed on change (default 2 Hz server tick) |
POST | /v1/swap/build | Build unsigned swap transaction |
POST | /v1/swap | Submit signed swap transaction through Venum landing channels (requires quoteId) |
POST | /v1/send | Submit any signed transaction through Venum landing channels |
POST | /v1/bundle | Submit an atomic Jito bundle (1–5 signed transactions) |
GET | /v1/balances/:wallet | SPL token balances of a wallet (filtered to tracked mints) |
GET | /v1/pool/:address | Single pool decoded state |
GET | /v1/pools/seed | Bulk pool export (paginated) |
GET | /v1/pools/dead | Dead pool detection (coming soon) |
GET | /v1/tx/:signature | Transaction status + confirmation details |
GET | /v1/usage | Per-key usage summary and endpoint breakdown |
GET | /v1/points/me | Points balance, breakdown, referral code, and recent ledger events |
GET | /v1/history/balance | Exact wallet asset balance history using a caller-supplied Helius RPC URL |
GET | /v1/stream/balance-history | SSE: incremental wallet asset balance history |
GET | /v1/stream/prices | SSE: real-time price updates |
GET | /v1/stream/pools | SSE: realtime new pool discoveries (starter and above) |
GET | /v1/stream/tx | SSE: transaction lifecycle updates |
Authentication
Paid endpoints require an API key, typically passed in the x-api-key header:
x-api-key: your_api_key_hereFree endpoints work without auth. Passing a Free, Starter, or Pro API key on free endpoints bypasses the anonymous cache and gives you higher rate limits.
Plans & Rate Limits
| Endpoint | Anonymous | Free | Starter $49/mo | Pro $199/mo |
|---|---|---|---|---|
| Market data / Pulse reads | 20/min | 60/min | 300/min | 1000/min |
| Prices | 30/min, cached | 60/min | 300/min | 1000/min |
| Pools browse | 15/min, cached | 30/min | 150/min | 500/min |
| Pairs | 15/min, cached | 30/min | 150/min | 500/min |
| Tokens | 10/min, cached | 30/min | 100/min | 300/min |
| Stats / Volume | 30/min, cached | 60/min | 300/min | 1000/min |
| Quote | — | 10/min | 60/min | 300/min |
| Swap build | — | 5/min | 30/min | 150/min |
| Swap / Send | — | 2/min | 15/min | 60/min |
| TX status | — | 5/min | 30/min | 150/min |
| Trace | — | 5/min | 30/min | 150/min |
| Usage | — | 30/min | 120/min | 300/min |
| Balances | — | 10/min | 60/min | 300/min |
| Pool details | — | 10/min | 60/min | 300/min |
| New pools snapshot | 15/min, cached | 30/min | 150/min | 500/min |
| SSE streams | — | 1 conn | 3 conn | 10 conn |
Notes:
GET /v1/stream/poolsrequiresstarterorprotier.GET /v1/pools/newis free and returns the newest entries from an in-memory ring buffer of the last500discovered pools.
No swap fees on any tier. Sign up for a free API key →
Endpoint Index
- GET /health
- GET /v1/prices
- GET /v1/pools
- GET /v1/pairs/:mint
- GET /v1/search
- GET /v1/token/:mint
- GET /v1/trending
- GET /v1/chart/:mint
- GET /v1/tokens
- GET /v1/balances/:wallet
- POST /v1/quote
- GET /v1/quote/stream
- POST /v1/swap/build
- POST /v1/swap
- POST /v1/send
- POST /v1/bundle
- GET /v1/tx/:signature
- GET /v1/usage
- GET /v1/history/balance
- GET /v1/stream/balance-history
- GET /v1/stream/prices
- GET /v1/stream/pools
- GET /v1/stream/tx
Token Resolution
Most token-parameter endpoints accept both token symbols and mint addresses:
GET /v1/quote
GET /v1/pools/SOL/USDC
GET /v1/pools?pair=SOL,USDCExceptions:
GET /v1/price/:tokenaccepts tracked token symbols onlyGET /v1/prices?tokens=accepts tracked token symbols only; response keys are the same tracked symbols
Content Type
All request bodies are JSON:
Content-Type: application/jsonBase Types
Token Mint
Base58-encoded Solana public key (32-44 characters):
So11111111111111111111111111111111111111112Amount
String representation of a positive integer in the token's smallest unit:
"1000000000" // 1 SOL (9 decimals)
"1000000" // 1 USDC (6 decimals)Slippage
Integer in basis points (1 bps = 0.01%):
100 // 1% slippage
50 // 0.5% slippage