Public JSON endpoints behind this dashboard. No key, no signup — the same data the pages use.
http://solo.88pool.comEverything at a glance in one call: how many addresses and workers, how many are online, aggregated hashrate, and the blocks found with their payout addresses.
| blocks | integer | How many recent blocks to include. 0–50, default 10. |
curl "http://solo.88pool.com/api/stats?blocks=3"{
"users": 1,
"workers": 10,
"online": 8,
"idle": 1,
"offline": 1,
"hashrate1m": 6100000000,
"hashrate1hr": 13200000000,
"hashrate1d": 2470000000,
"blocks": {
"confirmed": 1752,
"rejected": 37,
"recent": [
{
"height": 1752,
"address": "bcrt1q2r0w0tth9803vxj4wq9k63prtumsuw8txk2tzm",
"worker": "bcrt1q2r0w0tth9803vxj4wq9k63prtumsuw8txk2tzm.default",
"proto": "SV1",
"time": "2026-10-31 03:41:02",
"ageSec": 128
}
]
},
"at": 1793414128000
}| users | number | Distinct payout addresses with at least one worker. |
| workers | number | Total workers. |
| online | number | Submitted a share within the last 60 seconds. |
| idle | number | Last share 60–300 seconds ago. |
| offline | number | No share for more than 300 seconds. |
| hashrate1m / 1hr / 1d | number | Summed hashrate in H/s. |
| blocks.confirmed | number | Blocks this pool solved. |
| blocks.rejected | number | Blocks submitted but rejected. |
| blocks.recent | array | Newest blocks: height, address, worker, proto, time, ageSec. |
Blocks this pool has solved, newest first. Powers the homepage block ticker.
| limit | integer | How many to return. 1–30, default 12. |
curl "http://solo.88pool.com/api/blocks/recent?limit=3"{
"blocks": [
{
"key": "h1746",
"height": 1746,
"worker": "bcrt1q2r0w0tth9803vxj4wq9k63prtumsuw8txk2tzm.default",
"address": "bcrt1q2r0w0tth9803vxj4wq9k63prtumsuw8txk2tzm",
"proto": "SV1",
"ageSec": 418
}
],
"at": 1793411571133
}| height | number | null | Block height, null if the log line lacked it. |
| worker | string | Full worker name: address plus worker extension. |
| address | string | The payout address, worker extension stripped. |
| proto | string | SV1 or SV2. |
| ageSec | number | Seconds since the block was found, computed server-side. |
| at | number | Server timestamp (ms) when the response was built. |
Miners that authorised recently, one entry per address. Reconnects are not counted as new.
| limit | integer | How many to return. 1–30, default 12. |
curl "http://solo.88pool.com/api/miners/recent?limit=3"{
"miners": [
{
"key": "bcrt1q2r0w0tth9803vxj4wq9k63prtumsuw8txk2tzm",
"address": "bcrt1q2r0w0tth9803vxj4wq9k63prtumsuw8txk2tzm",
"workers": 3,
"names": ["default", "extprobe", "probe"],
"hashrate": "15.6G",
"ageSec": 610
}
],
"at": 1793412345925
}| address | string | Payout address. |
| workers | number | Distinct worker names seen for this address. |
| names | string[] | Those worker names. |
| hashrate | string | One-hour hashrate as reported by the pool, e.g. "15.6G". Empty if unknown. |
| ageSec | number | Seconds since the latest authorisation. |
/api/usersTrack an addressAdds a miner address to the database and pulls its current stats from the pool right away.
| address | string | Body field. Bitcoin address — mainnet, testnet or regtest all validate. |
curl -X POST "http://solo.88pool.com/api/users" \
-H "Content-Type: application/json" \
-d '{"address":"bcrt1q2r0w0tth9803vxj4wq9k63prtumsuw8txk2tzm"}'{
"address": "bcrt1q2r0w0tth9803vxj4wq9k63prtumsuw8txk2tzm",
"isActive": true,
"isPublic": true,
"createdAt": "2026-10-31T02:14:05.000Z"
}| address | string | The address stored. |
| isActive | boolean | Whether the updater keeps refreshing it. |
| isPublic | boolean | Whether the stats page is visible to others. |
| createdAt | string | ISO timestamp. |
/api/users/togglePrivacy?address=Toggle privacyFlips whether this address shows up publicly. Returns the new value.
| address | string | Query parameter. Required. |
curl -X POST "http://solo.88pool.com/api/users/togglePrivacy?address=bcrt1q2r0w..."{
"message": "User privacy setting updated successfully",
"isPublic": false
}/api/resetUser?address=Re-activate an addressSets isActive back to true so the updater starts tracking this address again.
| address | string | Query parameter. Required. |
curl -X POST "http://solo.88pool.com/api/resetUser?address=bcrt1q2r0w..."{
"message": "User reset successfully",
"user": "bcrt1q2r0w0tth9803vxj4wq9k63prtumsuw8txk2tzm"
}