Provider Endpoints
Last updated
List endpoint resources for one provider or operator.
Path Parameters
A provider's URL-safe slug, as published in the provider list.
^[a-z0-9-]+$Query Parameters
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"
Value in
- "archive"
- "dashboard"
- "data-artifact"
- "docs"
- "example"
- "openapi"
- "repo-registry"
- "sdk"
- "source-repo"
- "sse"
- "subnet-api"
- "subtensor-rpc"
- "subtensor-wss"
- "website"
Value in
- "bittensor-base"
- "data-provider"
- "docs-provider"
- "subnet-app"
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 <= 65535Value in
- "true"
- "false"
Value in
- "candidate"
- "verified"
- "monitored"
- "pool-eligible"
- "disabled"
- "rejected"
Value in
- "ok"
- "degraded"
- "failed"
- "unknown"
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.
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
- "kind"
- "last_checked"
- "latency_ms"
- "layer"
- "netuid"
- "pool_eligible"
- "provider"
- "publication_state"
- "score"
- "status"
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/providers/string/endpoints"{ "data": { "contract_version": "2026-06-29.1", "endpoints": [ { "auth_required": true, "health_source": "probe-derived", "health_stale": false, "id": "example", "kind": "archive", "last_ok": "2026-06-01T00:00:00.000Z", "layer": "bittensor-base", "monitoring_policy": { "enabled": true, "expect": "example", "method": "GET", "source": "live-cron-prober" }, "monitoring_status": "monitored", "netuid": 7, "observed_at": "2026-06-01T00:00:00.000Z", "operator": "example-provider", "pool_eligible": false, "provider": "example-provider", "public_safe": true, "publication_state": "candidate", "score": 100, "status": "ok", "surface_id": "example", "surface_key": "example", "url": "https://api.metagraph.sh/example" } ], "generated_at": "2026-06-01T00:00:00.000Z", "health_source": "probe-derived", "notes": "Example description.", "operational_observed_at": "2026-06-01T00:00:00.000Z", "provider": { "authority": "example", "id": "example", "kind": "example", "name": "Example Subnet" }, "schema_version": 1, "summary": { "by_kind": {}, "by_layer": {}, "by_provider": {}, "by_publication_state": {}, "by_status": {}, "endpoint_count": 1, "monitored_count": 1, "pool_eligible_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}