Skip to main content
API referenceHealth

Subnet Uptime

Last updated

GET
/api/v1/subnets/{netuid}/uptime

Fetch long-term daily uptime history per operational surface for one subnet over a 90d or 1y window (computed live from the surface_uptime_daily rollup). Pass min_samples to drop low-sample day rows (daily probe count below the threshold, including zero-sample 'unknown' days) from the history.

Path Parameters

netuid*integer

The subnet's numeric id on the Bittensor network, as used by the chain itself.

Range0 <= value

Query Parameters

window?string

Trailing lookback window the response is computed over, ending at the most recent data point rather than at today. Accepts 90d, 1y. A longer window is not a superset of a shorter one -- rankings and rates are recomputed over the whole window, not summed.

Default"90d"

Value in

  • "90d"
  • "1y"
min_samples?integer

Drop day rows whose daily probe count is below this, including zero-sample days.

Range0 <= value
format?string

Response format override. Use csv to download the route rows as text/csv; json keeps the default response envelope.

Default"json"

Value in

  • "json"
  • "csv"

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/v1/subnets/1/uptime"
{  "data": {    "netuid": 7,    "observed_at": "2026-06-01T00:00:00.000Z",    "reliability": {      "avg_latency_ms": 120,      "computed_at": "2026-06-01T00:00:00.000Z",      "day_count": 1,      "grade": "A",      "latency_sample_count": 120,      "sample_count": 1,      "score": 100,      "surface_count": 1,      "uptime_ratio": 0.9966,      "window": "30d"    },    "schema_version": 1,    "source": "live-cron-prober",    "surfaces": [      {        "day_count": 1,        "days": [          {            "day": "2026-06-01",            "samples": 1,            "status": "ok",            "uptime_ratio": 0.9966          }        ],        "samples": 1,        "surface_id": "example",        "uptime_ratio": 0.9966      }    ],    "window": "30d"  },  "meta": {    "artifact_path": "example",    "cache": "short",    "contract_version": "2026-06-29.1",    "generated_at": "2026-06-01T00:00:00.000Z",    "observed_through": "2026-06-01T00:00:00.000Z",    "pagination": {      "collection": "example",      "cursor": 1,      "limit": 1,      "next_cursor": 1,      "order": "asc",      "returned": 1,      "sort": "example",      "total": 1    },    "published_at": "2026-06-01T00:00:00.000Z",    "source": "live-cron-prober",    "stale_contract": {      "built_under": "example",      "live": "example"    }  },  "ok": true,  "schema_version": 1}