● v1 · Pro 1 SOL/month

Every Pump.fun token, scored in real-time.

The Cookin API is a REST + WebSocket signal layer on top of Pump.fun and Solana memecoins. Quality scores, bundle detection, trader behavior, live trade frames. The same data our own UI runs on.

Simple pricing

Full pricing →
Production
Pro
1 SOL / month
For production bots and dashboards
  • ✓ All REST endpoints: token lists, snapshots, trades
  • ✓ Trader stats + bundle detection
  • ✓ 600 requests / min
  • ✓ Unlimited WebSocket stream (tokens:live + frames:live)
  • ✓ Full Cookin web app access included
  • ✓ Email support
Get Pro

What every response tells you

◆
Quality score
Derived from ~50 underlying metrics like holder concentration, sell impact, bundle overlap.
◈
Bundle detection
Union-find clustering of coordinated wallets. Every trade tells you if it's bundled and what percent of supply the bundle holds.
▲
Trader stats
Per-wallet ROI, win rate, average hold, chart-nuking history. Snapshotted at trade time.
◑
Duplication flags
7 booleans per token (symbol, name, twitter, image, ...) so copy-cats filter out immediately.
★
KOL tracking
Curated Solana KOL wallets flagged per token with % of supply held and expected sell slot.
◐
Token lifecycle events
tokens:live WebSocket. Pushed as they happen: created, graduated, DEX-paid, metadata retrieved, duplication flags flipped.
≡
Live trade frames
frames:live WebSocket stream. Every enriched trade with per-trade trader context.
▤
Cohort distributions
Uniform holders clustering by hold-time, past-buys, and SOL balance flags to detect coordinated supply.
◉
Pump / dump signals
Per-token count of signal conditions currently met historically predicting pump or dump.

Two ways to start

REST · one-off lookup
Get everything we know about one token
curl -sS -H "Authorization: Bearer $API_KEY" \
  https://api.cookin.fun/v1/tokens/BgNrWZKAaZAa...
Snapshot schema →
WebSocket · live stream
Stream every enriched trade in real-time
const WebSocket = require("ws");

const API_KEY = process.env.API_KEY;
const url = `wss://api.cookin.fun/socket/websocket?vsn=2.0.0&api_key=${API_KEY}`;
const ws  = new WebSocket(url);

ws.on("open", () => {
  // Join frames:live (ref="1", join_ref="1").
  ws.send(JSON.stringify(["1", "1", "frames:live", "phx_join", {}]));

  // Heartbeat every 25s so Phoenix doesn't drop us.
  let n = 2;
  setInterval(() => {
    ws.send(JSON.stringify([null, String(n++), "phoenix", "heartbeat", {}]));
  }, 25_000);
});

ws.on("message", (buf) => {
  const [_joinRef, _ref, _topic, event, payload] = JSON.parse(buf);
  if (event === "frame") {
    const trade = payload.data.trades[0];
    console.log(payload.data.signature, trade.mint, trade.sol_amount);
  }
});
frames:live schema →

API endpoints

The full public surface. Each route links to its full schema page.

Tokens

List endpoints are curated: only promising tokens, obvious rugs filtered out. Full details on the Token lists page.

GET /v1/tokens/new Tokens deployed in the last few minutes. GET /v1/tokens/pumps Tokens currently pumping. GET /v1/tokens/graduated Tokens that recently graduated to Raydium / PumpSwap. GET /v1/tokens/agents The 20 most recent buys by the top 20 agents. GET /v1/tokens/:mint Full snapshot for one mint: score, holders, bundles, KOLs, cohorts, signals. GET /v1/tokens/:mint/trades Recent trades for one mint, each enriched with the trader's stats at trade time.

Traders

GET /v1/traders/:wallet Behavioral stats for one wallet: ROI, win rate, sell impact, holdings.

Deployers

GET /v1/devs/:address/tokens Every token a deployer launched, each with its all-time high, plus a lifetime bond rate.

WebSocket

WS tokens:live Lifecycle events: created, graduated, DEX-paid, metadata retrieved, duplication flags flipped. WS frames:live Enriched trade websocket. One frame per Solana signature; each trade carries per-trade trader context.

Built for

Token scannersFilter Pump.fun deploys by quality score, holders, bundle status.
Wallet-tracker botsFrames websocket + user_address filter. No RPC calls needed.
Trading dashboardsSnapshot on load + WebSocket for live updates. Same signals as our UI.
Sniper strategiesSub-second new-token events with score attached at first frame.
Analytics + researchTrader behavioral history, KOL flow analysis, cohort distributions.
Alert botsGraduation, DEX-paid, dup flag flips, pushed as they happen.

Full endpoint-per-use-case mapping in the Use cases guide.

Quick facts

Base URL https://api.cookin.fun
Auth Authorization: Bearer <api_key>
Rate limit 600/min (per account)
Pricing Pro 1 SOL/month

Try it in the next minute

Activate Pro, mint an API key, paste the curl one-liner from the Quickstart, get a live token list back.

Bug or unclear docs? Include the request_id from the response envelope when reporting.

Ready to build? Mint an API key.