Sitowise
API

GET /api/stats

Four protocol-wide counters in one object. No parameters, no authentication, cached for a few seconds.

Request

Request
GET /api/stats

Takes no parameters. Anything in the query string is ignored.

Response

200 application/json
{
  "totalNodes": 128,
  "operators": 43,
  "totalDistributedWei": "4183200000000000",
  "distributions24hWei": "552960000000000"
}

Those figures are shape, not data. For what the endpoint actually returns right now, see Live response below or call it yourself.

FieldTypeMeaning
totalNodesnumberActive nodes in the ledger. Retired nodes are not counted.
operatorsnumberDistinct wallet addresses holding at least one active node.
totalDistributedWeistringTotal credited across every distribution round, in wei.
distributions24hWeistringCredited in rounds recorded in the last 24 hours, in wei.

Live response

Read from this endpoint right now. Each cell says "No data yet" rather than showing a zero it cannot justify.

Nodes deployed
No data yet
Operators
No data yet
Credited total
No data yet
Credited 24h
No data yet
Rendered from the same GET /api/stats you can call yourself.

Notes and caveats

  • Distributed is not withdrawn. These figures count what has been credited to nodes, not what holders have taken out. The withdrawn total is on chain as totalWithdrawn().
  • Operators is addresses, not people. One person can hold several addresses. See Limits.
  • Active only. Both counts filter to active nodes, so retiring a node lowers totalNodes without any node being destroyed.
  • Rounds, not seconds. The 24 hour figure covers rounds recorded in that window, so it steps rather than sliding smoothly.

Caching and limits

PropertyValue
Cache-Controlpublic, max-age=0, s-maxage=10, stale-while-revalidate=30
Server memoUp to 10 seconds per instance, so a spike is one query rather than thousands
Rate limit120 requests per minute per IP

Errors

StatusBodyWhen
429{ "error": "Too many requests. Slow down and try again shortly." }Over the per-IP limit
503{ "error": "This service is not available right now." }The service is misconfigured, for example no database is reachable
500{ "error": "Something went wrong. Try again in a moment." }An unexpected failure. Details go to the server log, never to the client.

Example

curl and jq
curl -s https://sitowise.xyz/api/stats | jq

# credited in the last day, in ETH, without losing precision
curl -s https://sitowise.xyz/api/stats \
  | jq -r '.distributions24hWei' \
  | awk '{printf "%.6f ETH\n", $1 / 1e18}'