Data API
Robinhood Chain, as an API.
Every launch, every swap, and what we know about each token and wallet, in one key.
- Every Robinhood Chain swap since 22 Sep 2026, with the wallet behind the router.
- Launches from every launchpad and plain deploys, with the developer and the wallet that funded it.
- LP state read three ways: burned, locked (with date and beneficiary) or free to pull.
- Wallet records graded on tokens we could judge, never on our coverage gaps.
- The real Robinhood stock tokens, and a check that tells a real one from a same-ticker lookalike.
- Push alerts on paid plans: we call your server on each new launch and each Ignition call.
Built for wallets, launchpads, exchanges, terminals and trading bots. A token or wallet we have not indexed answers unknown, never clean.
Free to start. Paid plans from $149 a month: see pricing.
Quick start
curl -H "Authorization: Bearer $PUMPPILL_KEY" \
https://api.pumppill.org/api/partner/v1/tokens/0x...
curl -H "X-API-Key: $PUMPPILL_KEY" \
"https://api.pumppill.org/api/partner/v1/launches?limit=50"
curl -X POST -H "X-API-Key: $PUMPPILL_KEY" -H "Content-Type: application/json" \
-d '{"addresses": ["0x...", "0x..."]}' \
https://api.pumppill.org/api/partner/v1/tokens/batchOpenAPI spec: /api/partner/v1/openapi.json.
Limits and usage headers
- Every answer carries
X-PumpPill-Usage(calls used today) andX-PumpPill-Limit(your daily limit), plusX-RateLimit-TierandX-RateLimit-Remaining-Day. - From 80% of the daily limit, answers also carry
X-PumpPill-Warningwith a one-line note. - Past the limit you get
429withtier,limit,resets_atandupgrade_url. The daily count resets at 00:00 UTC. - A batch counts one call per distinct token. A batch bigger than what is left today is refused whole and not counted.
Endpoints
GET /api/partner/v1/launches?since=&limit=New token launches on Robinhood Chain, newest first, with the developer wallet.
token, name, symbol, developer, launched_at, venue, seen_by
GET /api/partner/v1/tokens/{address}One call for a token: market, our scan, LP state, launch buyers and the developer's record.
market (mc, liquidity, volume, price, as_of) · scan (risk, holders, top-10 share, LP burned / locked / free, flags) · launch_buyers (clustered supply, same-block groups, fresh wallets, snipers, early buyers sold out) · developer (earlier launches, how many passed $100K / $1M, the wallet that funded it and that funder's record)
POST /api/partner/v1/tokens/batchThe same token answer for up to 25 tokens in one request. Body: {"addresses": ["0x...", ...]}. Each distinct token counts as one call against your daily limit. More than 25 is refused with 400.
count, tokens[] (each the same shape as GET /tokens/{address}, in the order sent)
GET /api/partner/v1/tokens/{address}/swaps?since=&limit=The swaps tape for one token: wallet, side, block, venue and hook, newest first.
tx, block, wallet, side, quote, eth, amount_token_raw, venue, hooks, at
GET /api/partner/v1/wallets/{address}A wallet's record: tokens judged, wins, early entries, how following it has done, and who funded it.
record, record_list (tier, rank, follow result over 30 days), funder, swaps_7d. Routers and pools answer state: contract.
GET /api/partner/v1/signals/ignition?since=Ignition momentum signals as they fire.
token, symbol, tier, mc_usd, liquidity_usd, volume_h1_usd, change_h1_pct, signaled_at
GET /api/partner/v1/waves?status=Launch-name waves forming or confirmed across Robinhood Chain and Solana, with each wave's volume leader.
concept, status, first_flagged, confirmed, launches_on_flag_day, distinct_names, examples, volume_leader, biggest
GET /api/partner/v1/stocksThe real Robinhood stock tokens on Robinhood Chain, from Robinhood's own issued list. Every plan.
count, as_of, stocks[] (symbol, name, address, decimals, multiplier, status)
GET /api/partner/v1/stocks/check/{address}Is this the real stock token? A token that copies a real one's ticker and company name, or calls itself a Robinhood token, at a different address, is a lookalike. A shared ticker alone is reported as same_ticker. Every plan.
address, is_real_stock_token, symbol, lookalike_of (symbol, real_address) or null, verdict: real | lookalike | same_ticker | same_name | not_a_stock_token
POST · GET /api/partner/v1/webhooksRegister an https endpoint for push alerts, or list yours. Builder and Pro. Body: {"url": "https://...", "events": ["launch.new", "ignition.call"]}. The signing secret is shown once.
id, url, events, active, last_ok_at, fail_count, last_error · secret (on create only)
DELETE /api/partner/v1/webhooks/{id} · POST /api/partner/v1/webhooks/{id}/testRemove an endpoint, or queue a signed test alert to it. A test also switches a disabled endpoint back on.
deleted · queued, delivery_id, event_key
GET /api/partner/v1/usageYour key's tier, limits and the last 7 days of calls.
tier, per_minute, per_day, max_rows, history_days, usage[]
Push alerts (webhooks)
On Builder (1 endpoint) and Pro (5 endpoints), we POST to your server when something happens, so you do not have to poll.
launch.new: a new token launched.datais the same row as/v1/launches.ignition.call: an Ignition call fired, live.datais the same row as/v1/signals/ignition.- Body:
{"id", "event", "created_at", "data"}.idis the same on every retry of one event: use it to drop duplicates. - Headers:
X-PumpPill-Event,X-PumpPill-Delivery,X-PumpPill-AttemptandX-PumpPill-Signature, the hex HMAC-SHA256 of the raw body with yourwhsec_secret. - Answer 2xx within 5 seconds. Redirects are not followed.
- A failed delivery is retried after 30 seconds, 2 minutes, 10 minutes and 30 minutes, then dropped. After 50 failures in a row the endpoint is switched off; a test send switches it back on.
- Endpoints must be https and resolve to a public address.
curl -X POST -H "X-API-Key: $PUMPPILL_KEY" -H "Content-Type: application/json" \
-d '{"url": "https://example.com/pumppill", "events": ["launch.new", "ignition.call"]}' \
https://api.pumppill.org/api/partner/v1/webhooksCheck the signature on the raw body, before parsing it.
Python
import hashlib, hmac
def is_from_pumppill(raw_body: bytes, signature: str, secret: str) -> bool:
want = hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
return hmac.compare_digest(want, signature or "")
# Flask: is_from_pumppill(request.get_data(), request.headers.get("X-PumpPill-Signature"), SECRET)Node
const crypto = require("crypto");
function isFromPumpPill(rawBody, signature, secret) {
const want = crypto.createHmac("sha256", secret).update(rawBody).digest("hex");
const got = Buffer.from(signature || "", "utf8");
return got.length === want.length && crypto.timingSafeEqual(Buffer.from(want, "utf8"), got);
}
// Express: app.post("/pumppill", express.raw({ type: "application/json" }), (req, res) => {
// if (!isFromPumpPill(req.body, req.get("X-PumpPill-Signature"), SECRET)) return res.sendStatus(401);
// res.sendStatus(200);
// });Pricing
One key, three plans. Upgrading keeps the same key; nothing in your code changes.
Starter
Free
- 1,000 calls a day
- 20 calls a minute
- 100 rows a call
- 1 day of history
- Ignition calls: 1 hour late
- Batch reads: Up to 25 tokens
- Stock token check: Yes
- Push alerts: No
Builder
$149 / month
- 50,000 calls a day
- 120 calls a minute
- 500 rows a call
- 7 days of history
- Ignition calls: Live
- Batch reads: Up to 25 tokens
- Stock token check: Yes
- Push alerts: 1 endpoint
Pro
$499 / month
- 500,000 calls a day
- 600 calls a minute
- 1,000 rows a call
- 30 days of history
- Ignition calls: Live
- Batch reads: Up to 25 tokens
- Stock token check: Yes
- Push alerts: 5 endpoints
Billed monthly through Stripe. If payment stops, the key drops back to Starter when the paid period ends.
Need more than Pro? Talk to us: [email protected]
How to read the payloads
- Addresses are lower-case. Times are UTC ISO-8601.
- Each block carries
as_of: when that row was read. Cache against it. - A sell's
ethon the tape is the router's minimum out, not the fill. Buys are exact. - A funding tie is reported as a fact about money, not intent: "linked to the developer by funding".
- Research, not advice. A clear read is evidence about a contract, not a price forecast.
For AI agents (MCP) · Robinhood Chain scanner · the chain, measured