The pump.fun stream: every launch and trade, live
In short
A WebSocket that sends every pump.fun create, bonding-curve and PumpSwap trade, curve completion and migration about 1.5 seconds after its block (1.5 s median, 1.8 s p90, measured Nov 7), unmetered: no credits, no per-message billing. The pro tier adds each new coin's deployer record (launches before it, graduations, the gap since the last one) a few seconds after the create. 7-day free trial on a free key.
Start
- Get a free key at /keys.
- Start the trial:
curl -X POST https://pumpdata.fun/stream/trial -H "x-api-key: pdk_..." - Connect:
wss://pumpdata.fun/stream?key=pdk_...&types=create,trade,complete,migrate,record&min_sol=1
What it sends
create:mint, deployer, name, symbol, slot, idx, tstrade:venue(curve or pumpswap),mint, pool, wallet, side, sol, token_amount; a PumpSwap pool quoted in another token carriesquote_mint, quote_amountinstead ofsolcomplete: the curve emptied (mint, wallet);migrate: moved to its PumpSwap pool (mint, pool)record(pro):mint, deployer, deployer_launches_before, deployer_graduations_before, deployer_gap_s, deployer_launches_last_day
Filters in the URL: types (default create, complete, migrate; trades are about 200 a second, so add min_sol or mints), min_sol for trades, mints (up to 200, comma separated). A client that falls more than a few seconds behind is disconnected rather than buffered: filter, and reconnect on close.
Example (Python)
import asyncio, json, websockets
URL = "wss://pumpdata.fun/stream?key=pdk_...&types=create,record"
async def main():
async for ws in websockets.connect(URL):
try:
async for msg in ws:
ev = json.loads(msg)
if ev["type"] == "record" and ev["deployer_launches_before"] > 50:
print("serial deployer", ev["deployer"], ev["mint"])
except websockets.ConnectionClosed:
continue
asyncio.run(main())
After the trial
$199 a month for one connection or $499 a month for up to five, both with the deployer records, paid by card or in USDC. Tell us what you are building: the stream is new and we are shaping it with its first users.
Data: the recorder's own read of the chain (the same files behind every pumpdata.fun answer). No guarantee of completeness during a stream outage; the recorder's gaps are listed on /status.