Track your miners and the pools with a free JSON API.
Everything the dashboard shows is available as plain JSON: pool and network stats, per-address miner stats, hashrate history and recent blocks, for every coin. No key, no sign-up. Build a Home Assistant sensor, a Grafana panel, a Discord bot or a phone widget.
Quick start
curl https://pool.rabidmining.com/api/pool/etc/summary curl https://pool.rabidmining.com/api/pool/bch/miner/YOUR_ADDRESS curl "https://pool.rabidmining.com/api/pool/quan/history?hours=24"
Base URL: https://pool.rabidmining.com/api/pool/{coin}/… where {coin} is one of
xbt bch btc ltc doge zec xmr prl kas quan (QTC) etc pcn.
ltc and doge are the merge-mined LTC+DOGE pool; kas covers KAS and ZKAS together.
The rules
- Free and keyless. Read-only:
GETonly, JSON only. Nothing here can change anything on the pool. - Use it from a browser too: responses carry
Access-Control-Allow-Origin: *, so a web page on any site can call it directly. - Be gentle. Roughly 10 requests per second per IP (short bursts are fine); above that you get
429 Too Many Requests. The numbers only change every 15–30 seconds, so please poll no faster than every 15 s. - Fields can be added. Each coin family has its own response shape, and we add fields as the dashboards grow. Ignore fields you don’t know. Anything that would break existing fields is announced on Discord first.
- No uptime promise. It runs on the same servers as the pool. Handle errors and timeouts.
- Addresses are public. A miner’s address is its identity, so anyone can look up any address, exactly like the website’s My Stats page. There is nothing private behind it.
- Admin and write routes are not part of the API and are locked.
Endpoints
| Endpoint | What it returns | Coins |
|---|---|---|
| /{coin}/summary | Pool hashrate, miners, blocks, round effort, network stats, recent blocks, top miners, config (fee, ports, minimum payout, price). | all |
| /{coin}/miner/{address} | One address: hashrate (15 min / 1 h / 24 h), workers, balance and payouts, SOLO round, recent credits. | all |
| /{coin}/miner/{address}/payouts | Payout history for one address. | xbt bch btc ltc doge zec prl |
| /{coin}/miner/{address}/events | Recent events for one address (shape differs per coin). | xbt bch btc zec prl |
| /{coin}/miner/{address}/history?hours=24&mode=pplns | Hashrate history for one address, per worker. mode = pplns or solo where the coin has both. | quan etc kas |
| /{coin}/history?hours=24 | Pool hashrate, connections, miners and network hashrate over time as a points list (ts, pool_hashrate, connections, miners, network_hashrate, …). hours 1–720. | quan etc kas |
| /{coin}/network-history | Network series: {"tag", "period", "points": […]}. | xbt bch btc ltc doge zec xmr prl |
| /{coin}/network/blocks?limit=40 | Latest blocks on the whole chain and who found them (ours are flagged). | quan etc |
| /{coin}/network/pools?hours=24 | Blocks per reward address on the chain over the period, plus network emission figures. | quan etc |
| /{coin}/health | {"ok": true} when the data feed behind the pool is reachable. | all |
Addresses are the ones you mine with (kaspa:…, bitcoincash:…, bc1…, 0x… for ETC, and so on). An address the pool has never seen returns {"known": false}.
Units
| Where | Unit |
|---|---|
| Hashrates | hashes per second (so 1.2 GH/s is 1200000000); network and pool use the same unit |
XBT, BCH, BTC, LTC, DOGE, ZEC, PRL, KAS, ZKAS amounts named *_sats | 1e-8 of the coin |
QTC amounts named *_planck | 1e-12 QTC |
ETC amounts named *_planck | 1e-18 ETC (wei; the field name is shared with QTC) |
XMR amounts named *_atomic | 1e-12 XMR |
| Timestamps | Unix seconds, UTC (fields ending _unix or ts) |
| Prices | USD per coin in config.<coin>_usd when the price feed is up |
Examples
JavaScript (works on any web page):
const r = await fetch("https://pool.rabidmining.com/api/pool/etc/miner/0xYourAddress");
const m = await r.json();
console.log(m.hashrate_15m / 1e9, "GH/s", m.balance_planck / 1e18, "ETC owed");
Python:
import requests
s = requests.get("https://pool.rabidmining.com/api/pool/bch/summary", timeout=15).json()
print(s["pool"]["hashrate"], s["node"]["height"], s["config"]["fee_pct"])
Home Assistant (configuration.yaml):
sensor:
- platform: rest
name: Rabid ETC hashrate
resource: https://pool.rabidmining.com/api/pool/etc/miner/0xYourAddress
value_template: "{{ (value_json.hashrate_15m / 1e9) | round(2) }}"
unit_of_measurement: "GH/s"
scan_interval: 60
Tip: open the dashboard page of your coin and your browser’s network tab to see exactly which calls it makes — it uses this same API.
Questions and requests
Missing a field, or want an endpoint for your project? Tell us on Discord. Not financial advice: numbers are for monitoring, and mining results vary.
Changes: 2026-10-11 first public release (all coins, rate limit, CORS).
