Subnets By Network
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.
Path Parameters
Network to address. mainnet and finney are the same network, as are testnet and test.
Value in
- "finney"
- "mainnet"
- "test"
- "testnet"
Query Parameters
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
- "native-only"
- "manifested"
- "probed"
Value in
- "native"
- "candidate-discovered"
- "community-seeded"
- "machine-verified"
- "maintainer-reviewed"
- "adapter-backed"
Value in
- "agents"
- "compute"
- "data"
- "finance"
- "inference"
- "media"
- "prediction"
- "privacy"
- "robotics"
- "science"
- "search"
- "security"
- "storage"
- "training"
Value in
- "active"
- "inactive"
Value in
- "root"
- "application"
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 <= valueField 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
- "block"
- "candidate_count"
- "coverage_level"
- "curation_level"
- "integration_readiness"
- "mechanism_count"
- "name"
- "netuid"
- "participant_count"
- "probed_surface_count"
- "status"
- "subnet_type"
- "surface_count"
- "tempo"
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 format override. Use csv to download the transformed list as text/csv; json keeps the default response envelope.
"json"Value in
- "json"
- "csv"
Response Body
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", "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}