Skip to main content

Data API

Live + historical data across PumpFun, PumpSwap, Meteora DAMM v2, Raydium (CPMM/CLMM/AMM v4) and Orca Whirlpool. One API key, billed in SOL directly from your wallet - no monthly fee, no credit packs.

30-second start

  1. Get a key on the Account page (connect Phantom → sign → done).
  2. Fund your wallet with SOL.
  3. Call any endpoint:
curl "https://api.pumpdata.fun/metadata?mint=Gc6r…pump" \
-H "x-api-key: pd_xxxxxxxx…"

Auth

Every paid endpoint accepts the key as either:

  • Header - x-api-key: pd_xxxxxxxx… (preferred)
  • Query string - ?api_key=pd_xxxxxxxx… (when you can't set headers)

WebSocket clients pass it in the Socket.IO handshake:

import { io } from "socket.io-client";
const socket = io("https://api.pumpdata.fun", {
auth: { api_key: "pd_xxxxxxxx…" },
});

How billing works

  1. We snapshot your wallet's on-chain SOL balance into a cached value (refreshed at least once a minute).
  2. Subscribing is free. You pay per event delivered to you (each price tick, trade, candle, new-token and migration message), plus each REST call and one-shot fetch.
  3. Stream usage is metered in small batches every few seconds and charged atomically against that cached balance.
  4. Your effective balance = wallet balance − charged since last settlement. You see it on the Account page.
  5. When you top up the wallet, the next balance refresh picks it up. If you run out mid-stream, the server emits a billing_error event and disconnects you.

There's no monthly fee, no rate-limit tier.

Pricing

Subscribing is free. Streams are billed per event delivered; REST calls and the one-shot ohlcv_history fetch are billed per call.

EventPer eventPer 1,000
subscribe - each token_update0.000000005 SOL0.000005 SOL
subscribe_ohlcv - each ohlcv candle0.000000005 SOL0.000005 SOL
subscribe_trades - each trade0.00000001 SOL0.00001 SOL
subscribe_new_tokens - each new_token0.0000001 SOL0.0001 SOL
subscribe_migrations - each migration0.0000002 SOL0.0002 SOL
GET /metadata (and /lookup) - per call0.000001 SOL0.001 SOL
ohlcv_history - per call0.000003 SOL0.003 SOL

Subscribes, unsubscribes and disconnects are free. Rough mental model: 1 SOL ≈ 1,000,000 metadata calls, 100,000,000 trade messages, or 200,000,000 price ticks.

Errors

All errors are JSON with the same shape:

{ "error": "insufficient_balance", "effective_sol": 0.00000024 }
StatuserrorMeaning
400mint_or_pool_requiredMissing required param.
401missing_api_keyNo x-api-key header / api_key query param.
401unknown_keyAPI key not recognized.
402insufficient_balanceTop up your wallet.
404not_foundPool/mint isn't registered (yet).
502authorize_upstream_… / authorize_unavailableBackend hiccup; safe to retry.

WebSocket subscribe errors come as a callback ack: { error: "…", message: "…" }. If your balance runs out while streaming, the server emits a billing_error event and disconnects.

Limits

Value
Max concurrent Socket.IO subscriptions per connection50
OHLCV history limit1 – 500 (default 200)
Wallet balance refresh≤ 60s