API

Public API

Read-only JSON endpoints for apps, aggregators and agents.

Robin Hook publishes its live data as plain JSON. There is no key and no sign-up: send a GET request from anywhere, including a browser on another site. Every number comes straight from Robinhood Chain.

The rules every endpoint follows

  • GET only, open to any origin (CORS *), base URL https://robinhook.lol.
  • Every answer carries chainId (4663), block (the block it was read at) and updatedAt.
  • Answers are cached for 60 seconds (tokens and stats) or 5 minutes (the catalog).
  • If the chain can't be read, the answer is HTTP 503 with an error and a message. It never falls back to a zero or an old guess.
  • A number we can't read cheaply is marked { "status": "unavailable", "reason": "…" } instead of being estimated.
  • About 120 requests a minute per IP. Above that you get HTTP 429.

Hook catalog

GET /api/hooks/catalog

The hook and every contract around it, the fee model, the curve's start and graduation values in USD, and every hook in the on-chain registry: its id, address, status, capabilities, conflict groups and the metadata the launch form uses (including the config ABI a launch must encode).

FieldMeaning
contractsHook, registry, launchpad, router, lens, token factory, quote registry, zap and Uniswap v4 addresses.
feeModelProtocol fee 0.3%, creator fee 0–10%, base pool fee 0–10% (the site launches with a 1–10% total fee, 0.3% of it to the protocol, and a 0 pool fee), hook cuts capped at 25% per side, at most 8 hooks.
modules[]One entry per hook. status is active, deprecated, disabled, or preview (not registered on-chain yet).
curveSupply split and the start and graduation fully diluted values in USD, read live.

Protocol stats

GET /api/protocol-stats

Launches, graduated tokens, tokens still on the curve, launches per quote asset, and how many hooks are registered and active, all at one block.

Not served yet

Lifetime trades, volume and unique traders need an index of every trade since launch, which Robin Hook doesn't run yet. These fields come back as unavailable with the reason.

Tokens

GET /api/tokens?sort=new|mcap&graduated=true|false&limit=100&offset=0

Every launch on the board, newest first or by market cap. Each token has its creator, quote asset, curve progress, price in the quote asset and in USD, fully diluted market cap, pool id once graduated, and its hooks. Before graduation the price is the curve's; after, the Uniswap v4 pool's. sort=volume answers 400 until there is a trade index.

One token

GET /api/tokens/0x…?buy=<raw quote>&sell=<raw tokens>&trader=0x…

Everything above for one token, plus its full launch record, each hook by name and status, and the pool's key and fees once it graduated. Add buy or sell (in raw units: wei for ETH, 18 decimals for tokens) to get a quote. On the curve the quote includes every hook's cut for trader; in the pool it comes from Uniswap's quoter as an anonymous trader. Not an Robin Hook launch: HTTP 404.

Example

curl -s https://robinhook.lol/api/protocol-stats
{
  "chainId": 4663,
  "block": 71234567,
  "updatedAt": "2026-10-07T12:00:00.000Z",
  "launches": { "value": 34, "status": "verified" },
  "graduated": { "value": 5, "status": "verified" },
  "trades": { "value": null, "status": "unavailable", "reason": "…" },
  …
}

The numbers above only show the shape; call the endpoint for real values.

Launch and trade from your app

These endpoints only read. To let your users launch, buy and sell Robin Hook tokens in your own interface, the transaction API returns the unsigned calls with a live quote, a slippage floor and a simulation: Integrate Robin Hook.

For agents

To trade, launch or claim, an agent needs contract calls, not just data. The agent skill file has every address and signature in under 8 KB, and llms.txt indexes the site for language models.