{"ok":true,"schema_version":1,"data":{"contract_version":"2026-07-03.2","generated_at":"2026-09-20T12:26:49.169Z","name":"SayGM","netuid":28,"schema_version":1,"slug":"gm","surfaces":[{"auth":{"scheme":"bearer","scopes_note":"The subnet's own OpenAPI schema declares a single global bearer-token security requirement covering all four Gateway API operations. Enforced in practice: live-verified HTTP 401 unauthenticated on this endpoint (2026-07-21)."},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-28-gm-chat-completions","key":"srf-ed8b9ac68dd41f41","kind":"subnet-api","last_verified_at":null,"name":"gm chat completions (write, auth-gated)","netuid":28,"notes":"POST /chat/completions on the gm Gateway API (schema servers base https://api.saygm.com/v1) -- OpenAI-compatible chat-completions inference endpoint, one of the four operations documented in the subnet's own OpenAPI schema, all under the schema's global bearer security requirement. Live-verified 2026-07-21 (~23:35 UTC): HTTP 401 unauthenticated with a JSON invalid-authentication error body. Registered auth_required:true with probe.enabled:false per the linked issue's guidance; the probe pipeline only supports GET/HEAD, so a POST operation is never probed.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"gm","public_safe":true,"review":{"state":"community-submitted","submitted_by":"rsnetworkinginc"},"source_urls":["https://saygm.com/openapi.json"],"stale":null,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://api.saygm.com/v1/chat/completions"},{"auth_required":false,"authority":"community","curation_level":"machine-verified","id":"sn-28-gm-envoy-config","key":"srf-dbd6c94b497c64e5","kind":"data-artifact","last_verified_at":"2026-09-20T04:31:09.312Z","name":"gm miner Envoy data-plane configuration","netuid":28,"notes":"Public no-auth machine-readable Envoy configuration for the SN28 gm miner data plane, committed in the official taostat/gm-miner repository (its README identifies the repo as the gm Bittensor subnet, netuid 28 mainnet, and links the registered saygm.com website). It is the canonical definition of the gm miner data plane: the provider routing table (Anthropic/OpenAI/Gemini/Chutes plus a benchmark route keyed on the x-gm-provider header), the inbound node-key auth Lua filter, HTTP local rate-limiting and load-shedding, the Prometheus metrics listener, and the RA-TLS attestation ingress listener. No secrets are present (keys and the node secret are rendered from container env at start).","probe":{"enabled":true,"expect":"any","method":"GET","timeout_ms":10000},"provider":"gm","public_safe":true,"review":{"state":"community-submitted","submitted_by":"glorydavid03023"},"source_urls":["https://github.com/taostat/gm-miner","https://github.com/taostat/gm-miner/blob/main/image/envoy.yaml"],"stale":false,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://raw.githubusercontent.com/taostat/gm-miner/refs/heads/main/image/envoy.yaml"},{"auth":{"scheme":"bearer","scopes_note":"The subnet's own OpenAPI schema declares a single global bearer-token security requirement covering all four Gateway API operations. Enforced in practice: live-verified HTTP 401 unauthenticated on this endpoint (2026-07-21)."},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-28-gm-gemini-model-actions","key":"srf-9463f16b37b57615","kind":"subnet-api","last_verified_at":null,"name":"gm Gemini-compatible model actions (write, auth-gated)","netuid":28,"notes":"POST /v1beta/models/{modelAndAction} -- Gemini-compatible generateContent / streamGenerateContent endpoint (modelAndAction e.g. gemini-2.5-pro:generateContent), the fourth operation in the subnet's own OpenAPI schema. Per the operation's own description it ignores the schema's global servers entry (https://api.saygm.com/v1): the real base is https://api.saygm.com with no /v1 prefix. Live-verified 2026-07-21 (~23:35 UTC): HTTP 401 UNAUTHENTICATED JSON error at the correct un-prefixed URL, while the naively /v1-prefixed URL returns 404 -- confirming the un-prefixed base is the live one. Path parameter registered with percent-encoded braces per the registry URL format. Registered auth_required:true with probe.enabled:false; the probe pipeline only supports GET/HEAD, so a POST operation is never probed.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"gm","public_safe":true,"review":{"state":"community-submitted","submitted_by":"rsnetworkinginc"},"source_urls":["https://saygm.com/openapi.json"],"stale":null,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://api.saygm.com/v1beta/models/%7BmodelAndAction%7D"},{"auth_required":false,"authority":"community","curation_level":"machine-verified","id":"sn-28-gm-health","key":"srf-6c21702de3e16e33","kind":"subnet-api","last_verified_at":"2026-09-20T04:31:09.312Z","name":"gm gateway health","netuid":28,"notes":"Public no-auth GET /healthz on saygm.com returning gateway liveness (observed plain-text response: ok). Served on the same host as the registered OpenAPI spec and website surface.","probe":{"enabled":true,"expect":"any","method":"GET","timeout_ms":10000},"provider":"gm","public_safe":true,"review":{"state":"community-submitted","submitted_by":"jimcody1995"},"source_urls":["https://saygm.com/","https://saygm.com/openapi.json"],"stale":false,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://saygm.com/healthz"},{"auth":{"scheme":"bearer","scopes_note":"The subnet's own OpenAPI schema declares a single global bearer-token security requirement covering all four Gateway API operations. Enforced in practice: live-verified HTTP 401 unauthenticated on this endpoint (2026-07-21)."},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-28-gm-messages","key":"srf-5864cbea5d5e0c4d","kind":"subnet-api","last_verified_at":null,"name":"gm messages (write, auth-gated)","netuid":28,"notes":"POST /messages on the gm Gateway API (schema servers base https://api.saygm.com/v1) -- Anthropic Messages-API-compatible inference endpoint documented in the subnet's own OpenAPI schema under the same global bearer security requirement as the sibling /chat/completions operation. Live-verified 2026-07-21 (~23:35 UTC): HTTP 401 unauthenticated with a JSON authentication-error body (the linked issue listed this sibling as not individually spot-verified; this registration verified it directly). Registered auth_required:true with probe.enabled:false; the probe pipeline only supports GET/HEAD, so a POST operation is never probed.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"gm","public_safe":true,"review":{"state":"community-submitted","submitted_by":"rsnetworkinginc"},"source_urls":["https://saygm.com/openapi.json"],"stale":null,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://api.saygm.com/v1/messages"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-28-gm-openapi","key":"srf-a2d56ad9b8024b52","kind":"openapi","last_verified_at":null,"name":"gm Gateway API OpenAPI spec","netuid":28,"probe":{"enabled":true,"expect":"json","method":"GET","timeout_ms":10000},"provider":"gm","public_safe":true,"review":{"state":"community-submitted","submitted_by":"dhgoal"},"schema_status":"machine-readable","schema_url":"https://saygm.com/openapi.json","source_urls":["https://saygm.com/","https://saygm.com/openapi.json"],"stale":null,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://saygm.com/openapi.json"},{"auth":{"scheme":"bearer","scopes_note":"The subnet's own OpenAPI schema declares a single global bearer-token security requirement covering all four Gateway API operations. Enforced in practice: live-verified HTTP 401 unauthenticated on this endpoint (2026-07-21)."},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-28-gm-responses","key":"srf-b1a4c1b22cdaa7c2","kind":"subnet-api","last_verified_at":null,"name":"gm responses (write, auth-gated)","netuid":28,"notes":"POST /responses on the gm Gateway API (schema servers base https://api.saygm.com/v1) -- OpenAI Responses-API-compatible inference endpoint documented in the subnet's own OpenAPI schema under the same global bearer security requirement as the sibling /chat/completions operation. Live-verified 2026-07-21 (~23:35 UTC): HTTP 401 unauthenticated with a JSON invalid-authentication error body (the linked issue listed this sibling as not individually spot-verified; this registration verified it directly). Registered auth_required:true with probe.enabled:false; the probe pipeline only supports GET/HEAD, so a POST operation is never probed.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"gm","public_safe":true,"review":{"state":"community-submitted","submitted_by":"rsnetworkinginc"},"source_urls":["https://saygm.com/openapi.json"],"stale":null,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://api.saygm.com/v1/responses"},{"auth_required":false,"authority":"official","curation_level":"maintainer-reviewed","id":"sn-28-gm-source-repo","key":"srf-56d06a4d5239e216","kind":"source-repo","last_verified_at":"2026-07-15T23:59:00.000Z","name":"gm miner source repository","netuid":28,"notes":"Official gm miner image and CLI source repository. README confirms this is the gm Bittensor subnet, netuid 28 mainnet, and links the registered saygm.com website.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"gm","public_safe":true,"source_urls":["https://saygm.com/"],"stale":false,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://github.com/taostat/gm-miner"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-28-gm-subnet-api","key":"srf-f7b80bdc1145be6d","kind":"subnet-api","last_verified_at":null,"name":"gm model catalog API","netuid":28,"probe":{"enabled":true,"expect":"json","method":"GET","timeout_ms":10000},"provider":"gm","public_safe":true,"review":{"state":"community-submitted","submitted_by":"dhgoal"},"source_urls":["https://saygm.com/","https://saygm.com/openapi.json"],"stale":null,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://api.saygm.com/v1/models"},{"auth_required":false,"authority":"official","curation_level":"maintainer-reviewed","id":"sn-28-gm-website","key":"srf-da8695877b6cee90","kind":"website","last_verified_at":"2026-07-15T23:59:00.000Z","name":"gm website","netuid":28,"notes":"Official gm website for SN28. Registered as this subnet's website_url and the host serving the already-tracked OpenAPI spec and health surfaces.","probe":{"enabled":true,"expect":"html","method":"HEAD","timeout_ms":10000},"provider":"gm","public_safe":true,"source_urls":["https://github.com/taostat/gm-miner"],"stale":false,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://saygm.com/"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-28-subnetradar-dashboard","key":"srf-2efd989e366d0704","kind":"dashboard","last_verified_at":null,"name":"SayGM SubnetRadar dashboard","netuid":28,"notes":"Universal SubnetRadar subnet dashboard candidate. Third-party risk/market analytics enrichment, not Metagraphed endpoint health authority.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"subnetradar","public_safe":true,"quality_signals":{"content_type_matches_kind":true,"public_safe":true,"rate_limited":false,"redirected":false,"source_tier":"third-party-index","transient_failure":false},"rate_limit_notes":"Candidate only; no recurring probe is configured until maintainer review.","source_urls":["https://subnetradar.com/subnet/28"],"stale":null,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://subnetradar.com/subnet/28"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-28-taomarketcap-dashboard","key":"srf-707873eb42f76612","kind":"dashboard","last_verified_at":null,"name":"SayGM TaoMarketCap dashboard","netuid":28,"notes":"Universal TaoMarketCap subnet dashboard candidate. Third-party enrichment, not protocol authority.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"taomarketcap","public_safe":true,"quality_signals":{"content_type_matches_kind":true,"public_safe":true,"rate_limited":false,"redirected":false,"source_tier":"third-party-index","transient_failure":false},"rate_limit_notes":"Candidate only; no recurring probe is configured until maintainer review.","source_urls":["https://api.taomarketcap.com/public/v1/subnets/28"],"stale":null,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://taomarketcap.com/subnets/28"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-28-taopedia-article","key":"srf-f93e632d792a0f70","kind":"docs","last_verified_at":null,"name":"SayGM Taopedia article","netuid":28,"notes":"Discovered from the public Taopedia article repository. Not verified as an operational interface.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"taopedia-articles","public_safe":true,"quality_signals":{"content_type_matches_kind":true,"public_safe":true,"rate_limited":false,"redirected":false,"source_tier":"community-docs","transient_failure":false},"rate_limit_notes":"Candidate only; no recurring probe is configured until maintainer review.","source_urls":["https://github.com/e35ventura/taopedia-articles/blob/main/content/pages/subnet_28/index.mdx"],"stale":null,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://github.com/e35ventura/taopedia-articles/blob/main/content/pages/subnet_28/index.mdx"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-28-taostats-metagraph","key":"srf-6027368f695eb8af","kind":"dashboard","last_verified_at":null,"name":"SayGM Taostats metagraph","netuid":28,"notes":"Universal Taostats subnet metagraph dashboard candidate. Third-party explorer enrichment, not protocol authority.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"taostats","public_safe":true,"quality_signals":{"content_type_matches_kind":true,"public_safe":true,"rate_limited":false,"redirected":false,"source_tier":"third-party-index","transient_failure":false},"rate_limit_notes":"Candidate only; no recurring probe is configured until maintainer review.","source_urls":["https://taostats.io/subnets/28/metagraph"],"stale":null,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://taostats.io/subnets/28/metagraph"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-28-tensorplex-docs","key":"srf-f271f957eae36dbb","kind":"docs","last_verified_at":null,"name":"SayGM Tensorplex subnet docs","netuid":28,"notes":"Discovered from Tensorplex subnet-docs. Useful as documentation enrichment, not verified operational authority.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"tensorplex-subnet-docs","public_safe":true,"quality_signals":{"content_type_matches_kind":true,"public_safe":true,"rate_limited":false,"redirected":false,"source_tier":"community-docs","transient_failure":false},"rate_limit_notes":"Candidate only; no recurring probe is configured until maintainer review.","source_urls":["https://github.com/tensorplex-labs/subnet-docs/blob/main/data/28/subnet.json"],"stale":null,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://github.com/tensorplex-labs/subnet-docs/tree/main/data/28"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-28-website-link-saygm-com-data-artifact-1","key":"srf-db7ecbbea0e4a5b2","kind":"data-artifact","last_verified_at":null,"name":"SayGM data artifact","netuid":28,"notes":"Discovered from a public project website link. Requires verification before promotion.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"gm","public_safe":true,"quality_signals":{"content_type_matches_kind":true,"public_safe":true,"rate_limited":false,"redirected":false,"source_tier":"provider-claimed","transient_failure":false},"rate_limit_notes":"Candidate only; no recurring probe is configured until maintainer review.","source_urls":["https://saygm.com/"],"stale":null,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://saygm.com/models"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-28-website-link-saygm-com-data-artifact-10","key":"srf-2394dee96bef5ae9","kind":"data-artifact","last_verified_at":null,"name":"SayGM data artifact","netuid":28,"notes":"Discovered from a public project website link. Requires verification before promotion.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"gm","public_safe":true,"quality_signals":{"content_type_matches_kind":true,"public_safe":true,"rate_limited":false,"redirected":false,"source_tier":"provider-claimed","transient_failure":false},"rate_limit_notes":"Candidate only; no recurring probe is configured until maintainer review.","source_urls":["https://saygm.com/"],"stale":null,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://saygm.com/models/kimi-k3"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-28-website-link-saygm-com-data-artifact-5","key":"srf-ac7a4a710d14cf7a","kind":"data-artifact","last_verified_at":null,"name":"SayGM data artifact","netuid":28,"notes":"Discovered from a public project website link. Requires verification before promotion.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"gm","public_safe":true,"quality_signals":{"content_type_matches_kind":true,"public_safe":true,"rate_limited":false,"redirected":false,"source_tier":"provider-claimed","transient_failure":false},"rate_limit_notes":"Candidate only; no recurring probe is configured until maintainer review.","source_urls":["https://saygm.com/"],"stale":null,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://saygm.com/models/gpt-6-astra"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-28-website-link-saygm-com-data-artifact-7","key":"srf-be3321edaf0a0572","kind":"data-artifact","last_verified_at":null,"name":"SayGM data artifact","netuid":28,"notes":"Discovered from a public project website link. Requires verification before promotion.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"gm","public_safe":true,"quality_signals":{"content_type_matches_kind":true,"public_safe":true,"rate_limited":false,"redirected":false,"source_tier":"provider-claimed","transient_failure":false},"rate_limit_notes":"Candidate only; no recurring probe is configured until maintainer review.","source_urls":["https://saygm.com/"],"stale":null,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://saygm.com/models/claude-fable-5-1"},{"auth_required":false,"authority":"registry-observed","curation_level":"machine-verified","id":"sn-28-website-link-saygm-com-data-artifact-9","key":"srf-a36a44ea32cbfe89","kind":"data-artifact","last_verified_at":"2026-09-20T04:31:09.312Z","name":"SayGM data artifact","netuid":28,"notes":"Discovered from a public project website link. Requires verification before promotion.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"gm","public_safe":true,"quality_signals":{"content_type_matches_kind":true,"public_safe":true,"rate_limited":false,"redirected":false,"source_tier":"provider-claimed","transient_failure":false},"rate_limit_notes":"Candidate only; no recurring probe is configured until maintainer review.","source_urls":["https://saygm.com/"],"stale":false,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://saygm.com/models/claude-opus-4-8"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-28-website-link-saygm-com-docs-3","key":"srf-1caf54ede7735f6d","kind":"docs","last_verified_at":null,"name":"SayGM docs","netuid":28,"notes":"Discovered from a public project website link. Requires verification before promotion.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"gm","public_safe":true,"quality_signals":{"content_type_matches_kind":true,"public_safe":true,"rate_limited":false,"redirected":false,"source_tier":"provider-claimed","transient_failure":false},"rate_limit_notes":"Candidate only; no recurring probe is configured until maintainer review.","source_urls":["https://saygm.com/"],"stale":null,"subnet_name":"SayGM","subnet_slug":"gm","url":"https://docs.saygm.com/"}]},"meta":{"artifact_path":"/metagraph/surfaces/28.json","cache":"standard","contract_version":"2026-07-03.2","generated_at":"2026-09-20T12:26:49.169Z","published_at":"2026-09-20T12:26:49.169Z","source":"r2","pagination":{"collection":"surfaces","total":21,"returned":21,"limit":21,"cursor":0,"next_cursor":null,"sort":null,"order":"asc"}}}