Skip to main content
API referenceRPC

RPC Endpoints

Last updated

GET
/api/v1/rpc/endpoints

Fetch Bittensor RPC endpoint status.

Query Parameters

known_status?string

Select endpoints with a known served status (ok, degraded or failed), or without one. This does not assert freshness or configured monitoring.

Value in

  • "true"
  • "false"
kind?string

Value in

  • "archive"
  • "dashboard"
  • "data-artifact"
  • "docs"
  • "example"
  • "openapi"
  • "repo-registry"
  • "sdk"
  • "source-repo"
  • "sse"
  • "subnet-api"
  • "subtensor-rpc"
  • "subtensor-wss"
  • "website"
layer?string

Value in

  • "bittensor-base"
  • "data-provider"
  • "docs-provider"
  • "subnet-app"
netuid?integer

Subnet id (netuid). 0 is the root subnet -- a stake-allocation construct rather than a running subnet. It IS present in the registry collections, but it is excluded from application-subnet counts, and stake on it is denominated in TAO rather than in a subnet alpha token, so its economics are not directly comparable to a running subnet's.

Range0 <= value <= 65535
pool_eligible?string

Value in

  • "true"
  • "false"
provider?string

Restrict the result to rows whose field equals this value. Matched exactly (case-insensitively), not searched for as a substring — an unmatched value yields an empty result rather than an error.

Lengthlength <= 100
publication_state?string

Value in

  • "candidate"
  • "verified"
  • "monitored"
  • "pool-eligible"
  • "disabled"
  • "rejected"
status?string

Value in

  • "ok"
  • "degraded"
  • "failed"
  • "unknown"
q?string

Free-text search query, matched case-insensitively against the collection's indexed text fields. Whitespace-separated terms narrow the result (AND), and an empty or whitespace-only value is treated as no filter rather than as a search matching nothing.

Lengthlength <= 200
min_latency_ms?number

Inclusive lower bound: only rows at or above this value are returned.

max_latency_ms?number

Inclusive upper bound: only rows at or below this value are returned.

min_score?number

Inclusive lower bound: only rows at or above this value are returned.

max_score?number

Inclusive upper bound: only rows at or below this value are returned.

fields?string

Comma-separated allow-list projecting the response's primary row collection down to just these fields. A response carrying several collections projects only the primary one -- the others keep their full shape. An unrecognised field is a 400 invalid_query naming both the field and the collection it was resolved against, rather than being ignored.

Match^[\s,]*[A-Za-z_][A-Za-z0-9_]*(\s*,[\s,]*[A-Za-z_][A-Za-z0-9_]*)*[\s,]*$
limit?integer

Maximum number of rows to return in one page (at most 1000). A larger value, or a non-positive one, is rejected with 400 invalid_query -- so a short page means the result set is exhausted, not that the server quietly capped you (#9916). Omitted, every matching row is returned.

Range1 <= value <= 1000
cursor?integer

Row offset to resume from — the numeric position of the first row to return, not an opaque token. Rows inserted since the previous page shift it, so prefer the keyset cursor where a tool offers one.

Range0 <= value
sort?string

Field to sort by — the bare field name only (e.g. sort=total_stake_alpha). Pair with the separate order parameter to choose direction; a combined field:desc token is NOT supported.

Value in

  • "kind"
  • "last_checked"
  • "latency_ms"
  • "layer"
  • "netuid"
  • "pool_eligible"
  • "provider"
  • "publication_state"
  • "score"
  • "status"
order?string

Sort direction for sort: asc or desc (default desc). This is a separate parameter from sort — e.g. ?sort=emission_share&order=desc.

Value in

  • "asc"
  • "desc"

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/v1/rpc/endpoints"
{  "data": {    "contract_version": "2026-06-29.1",    "endpoints": [      {        "chain": "bittensor",        "classification": "live",        "health_source": "probe-derived",        "health_stale": false,        "id": "example",        "kind": "subtensor-rpc",        "last_ok": "2026-06-01T00:00:00.000Z",        "network": "finney",        "observed_at": "2026-06-01T00:00:00.000Z",        "provider": "example-provider",        "status": "ok",        "url": "https://api.metagraph.sh/example"      }    ],    "generated_at": "2026-06-01T00:00:00.000Z",    "notes": "Example description.",    "operational_observed_at": "2026-06-01T00:00:00.000Z",    "schema_version": 1,    "source": "live-cron-prober",    "summary": {      "archive_supported_count": 1,      "by_kind": {},      "by_provider": {},      "by_status": {},      "endpoint_count": 1    }  },  "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}