Subnets By Network
Last updated
Last updated
Network-scoped form of /api/v1/subnets — prefix the route with a network to choose which chain answers it. mainnet/finney return the same data as the unprefixed path; testnet/test return testnet data.
Network to address. mainnet and finney are the same network, as are testnet and test.
Value in
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.
0 <= value <= 65535Comma-separated subnet ids to restrict the result to, e.g. 1,7,64. At most 128 ids, each 0-65535. Unknown ids match nothing rather than erroring.
^\d{1,5}(,\d{1,5}){0,127}$length <= 767Value in
Value in
Value in
Value in
Value in
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.
length <= 200Inclusive lower bound: only rows at or above this value are returned.
Inclusive upper bound: only rows at or below this value are returned.
Inclusive lower bound: only rows at or above this value are returned.
Inclusive upper bound: only rows at or below this value are returned.
Inclusive lower bound: only rows at or above this value are returned.
Inclusive upper bound: only rows at or below this value are returned.
Inclusive lower bound: only rows at or above this value are returned.
Inclusive upper bound: only rows at or below this value are returned.
Inclusive lower bound: only rows at or above this value are returned.
Inclusive upper bound: only rows at or below this value are returned.
Inclusive lower bound: only rows at or above this value are returned.
Inclusive upper bound: only rows at or below this value are returned.
Inclusive lower bound: only rows at or above this value are returned.
Inclusive upper bound: only rows at or below this value are returned.
Inclusive lower bound: only rows at or above this value are returned.
Inclusive upper bound: only rows at or below this value are returned.
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.
^[\s,]*[A-Za-z_][A-Za-z0-9_]*(\s*,[\s,]*[A-Za-z_][A-Za-z0-9_]*)*[\s,]*$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.
1 <= value <= 1000Row 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.
0 <= valueOpt into checked collection paging: send start at cursor 0, then echo the returned snapshot (REST meta.pagination.snapshot; MCP snapshot) with subsequent numeric cursors, or follow the returned Link URLs. A changed result or query returns REST 400 invalid_query with catalog_changed, or MCP catalog_restart_required; restart from cursor 0. This does not retain old rows or continue across mutations. Checked requests bypass page caches. At most 5000 matching rows, 16777216 canonical bytes and 64 nesting levels can be verified; narrow filters on catalog_budget_exceeded. Omit for legacy offset paging.
^(start|v1\.[0-9a-f]{64})$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
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
Response format override. Use csv to download the transformed list as text/csv; json keeps the default response envelope.
"json"Value in
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/api/v1/finney/subnets"{ "data": { "captured_at": "2026-06-01T00:00:00.000Z", "contract_version": "2026-06-29.1", "generated_at": "2026-06-01T00:00:00.000Z", "native_snapshot_captured_at": "2026-06-01T00:00:00.000Z", "network": "finney", "notes": "Example description.", "schema_version": 1, "source": { "identity_storage": "example", "kind": "example", "method": "GET", "package": "example", "rpc_family": "example", "version": "2026-06-29.1" }, "subnets": [ { "coverage_level": "native-only", "curation_level": "native", "name": "Example Subnet", "netuid": 7, "slug": "example-subnet", "status": "active", "subnet_type": "root", "surface_count": 1 } ] }, "meta": { "artifact_path": "example", "cache": "short", "catalog_paging": { "reason": "catalog_changed" }, "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, "snapshot": "v1.a3f1a3f1a3f1a3f1a3f1a3f1a3f1a3f1a3f1a3f1a3f1a3f1a3f1a3f1a3f1a3f1", "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}