Read-only JSON, no auth, open CORS (Access-Control-Allow-Origin: *). Amounts are in base units (1 coin = 100 000 000 for every coin, Monero included) and timestamps are unix seconds. Miner IPs are never exposed. Per-IP rate-limited - a 429 with a Retry-After header means slow down (the health probe is exempt).
This is a multi-coin hub, so every data endpoint is namespaced by coin: /api/<coin>/stats, /api/litecoin/blocks, and so on. /api/coins lists the coins.
Endpoints
| endpoint | returns |
|---|---|
| /api | This index. JSON to a script, a docs page in a browser. |
| /api/info | Pool rules per coin + software version - verify against the source. |
| /api/coins | Per-coin summary (hub mode only). |
| /healthz | Liveness probe: 200 when every pool has a fresh template, 503 if any is stalled. |
| /api/<coin>/stats | Live snapshot: hashrate windows, miners, blocks, reject reasons, mempool, node health. |
| /api/<coin>/chart?range=1h|24h|1w|1m[&address=ADDR] | Hashrate time series (pool, or one miner with &address). |
| /api/<coin>/miners | Miner overview (addresses + balances; never IPs). |
| /api/<coin>/miner/<address> | One miner: workers, hashrate, balance, best share, live rigs. |
| /api/<coin>/worker/<address>/<worker> | One rig: hashrate, best share, live session. |
| /api/<coin>/template | Transactions in the current block template - every tx the next block will include. |
| /api/<coin>/blocks | Found blocks (all statuses incl. orphaned/stale). |
| /api/<coin>/block/<height> | One block's detail (round diff, luck, finder). |
| /api/<coin>/payouts | Recent payouts (txids). |
| /api/<coin>/luck | Per-block effort/luck + pool luck + orphan rate. |
| /api/<coin>/leaderboard | Best-share high scores (addresses; never IPs). |
Example
Every response is plain JSON. The live snapshot:
This same list is JSON from GET /api to a script (a browser gets this page); the exact per-coin rules are at /api/info.