{"ok":true,"schema_version":1,"data":{"contract_version":"2026-07-03.2","generated_at":"2026-09-20T12:26:49.169Z","name":"Synth","netuid":50,"schema_version":1,"slug":"sn-50","surfaces":[{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-50-backprop-dashboard","key":"srf-e1732e6e49f09c57","kind":"dashboard","last_verified_at":null,"name":"Synth Backprop Finance dashboard","netuid":50,"notes":"Universal Backprop Finance dTAO subnet dashboard candidate. Third-party enrichment, not protocol authority.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"backprop-finance","public_safe":true,"quality_signals":{"content_type_matches_kind":true,"public_safe":true,"rate_limited":false,"redirected":true,"source_tier":"third-party-index","transient_failure":false},"rate_limit_notes":"Candidate only; no recurring probe is configured until maintainer review.","source_urls":["https://backprop.finance/dtao/subnets/50-synth"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://backprop.finance/dtao/subnets/50-synth"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-50-native-chain-github","key":"srf-1563d867e001eecf","kind":"source-repo","last_verified_at":null,"name":"Synth GitHub source repository","netuid":50,"notes":"Discovered from native Subtensor SubnetIdentitiesV3 metadata. Candidate still requires safe probe verification and maintainer review before promotion.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"synth","public_safe":true,"quality_signals":{"archived":false,"has_default_branch":true,"has_recent_push_metadata":true,"public_safe":true,"source_tier":"native-chain"},"rate_limit_notes":"Candidate only; no recurring probe is configured until maintainer review.","source_urls":["https://api.taomarketcap.com/public/v1/subnets/50","https://docs.learnbittensor.org/python-api/html/_modules/bittensor/core/chain_data/subnet_identity.html","https://github.com/tensorplex-labs/subnet-docs/blob/main/data/50/subnet.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://github.com/mode-network/synth-subnet"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-50-subnetradar-dashboard","key":"srf-ff9c9a265dfde59e","kind":"dashboard","last_verified_at":null,"name":"Synth SubnetRadar dashboard","netuid":50,"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/50"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://subnetradar.com/subnet/50"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\".","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-insights-limitless-15min","key":"srf-1665a296999028a8","kind":"subnet-api","last_verified_at":null,"name":"Synth GET insights limitless 15min","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /insights/limitless/15min on api.synthdata.co. Not individually curled — same required `Authorization` header as the verified `sn-50-synth-insights-volatility` (400 \"missing key in request header\"), declared identically in the schema. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/insights/limitless/15min"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\".","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-insights-limitless-daily","key":"srf-9c8641b638cdb2fe","kind":"subnet-api","last_verified_at":null,"name":"Synth GET insights limitless daily","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /insights/limitless/daily on api.synthdata.co. Not individually curled — same required `Authorization` header as the verified `sn-50-synth-insights-volatility` (400 \"missing key in request header\"), declared identically in the schema. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/insights/limitless/daily"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\".","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-insights-limitless-hourly","key":"srf-645dc8262158b01a","kind":"subnet-api","last_verified_at":null,"name":"Synth GET insights limitless hourly","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /insights/limitless/hourly on api.synthdata.co. Not individually curled — same required `Authorization` header as the verified `sn-50-synth-insights-volatility` (400 \"missing key in request header\"), declared identically in the schema. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/insights/limitless/hourly"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\".","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-insights-liquidation","key":"srf-1b9919ac4112b273","kind":"subnet-api","last_verified_at":null,"name":"Synth GET insights liquidation","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /insights/liquidation on api.synthdata.co. Not individually curled — same required `Authorization` header as the verified `sn-50-synth-insights-volatility` (400 \"missing key in request header\"), declared identically in the schema. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/insights/liquidation"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\".","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-insights-lp-bounds","key":"srf-3bb5b9552861a407","kind":"subnet-api","last_verified_at":null,"name":"Synth GET insights lp bounds","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /insights/lp-bounds on api.synthdata.co. Live-verified 2026-07-21: an unauthenticated request returns HTTP 400 {\"message\":\"missing key in request header\"}. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/insights/lp-bounds"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\".","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-insights-lp-probabilities","key":"srf-14a255904554f8e8","kind":"subnet-api","last_verified_at":null,"name":"Synth GET insights lp probabilities","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /insights/lp-probabilities on api.synthdata.co. Not individually curled — same required `Authorization` header as the verified `sn-50-synth-insights-volatility` (400 \"missing key in request header\"), declared identically in the schema. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/insights/lp-probabilities"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\".","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-insights-option-pricing","key":"srf-2fed9d23d31c6c8a","kind":"subnet-api","last_verified_at":null,"name":"Synth GET insights option pricing","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /insights/option-pricing on api.synthdata.co. Not individually curled — same required `Authorization` header as the verified `sn-50-synth-insights-volatility` (400 \"missing key in request header\"), declared identically in the schema. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today. REVENUE ROLE (#10456): not-revenue. This is a data PRODUCT (option pricing insights) behind an API key, not a report of what the subnet earns. No public surface carries an external-revenue figure as of 2026-08-10. REVENUE ROLE (#10456): not-revenue. This is a data PRODUCT (option pricing insights) behind an API key, not a report of what the subnet earns. No public surface carries an external-revenue figure as of 2026-08-10.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"revenue":{"provenance":"operator-attested","role":"not-revenue","source_url":"https://api.synthdata.co/swagger.json"},"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/insights/option-pricing"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\".","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-insights-polymarket-above-daily","key":"srf-431a30ede35ecd45","kind":"subnet-api","last_verified_at":null,"name":"Synth GET insights polymarket above daily","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /insights/polymarket/above/daily on api.synthdata.co. Not individually curled — same required `Authorization` header as the verified `sn-50-synth-insights-volatility` (400 \"missing key in request header\"), declared identically in the schema. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/insights/polymarket/above/daily"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\".","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-insights-polymarket-hit-daily","key":"srf-2933bbb7abd642af","kind":"subnet-api","last_verified_at":null,"name":"Synth GET insights polymarket hit daily","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /insights/polymarket/hit/daily on api.synthdata.co. Not individually curled — same required `Authorization` header as the verified `sn-50-synth-insights-volatility` (400 \"missing key in request header\"), declared identically in the schema. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/insights/polymarket/hit/daily"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\".","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-insights-polymarket-range","key":"srf-88cc486097ed9344","kind":"subnet-api","last_verified_at":null,"name":"Synth GET insights polymarket range","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /insights/polymarket/range on api.synthdata.co. Not individually curled — same required `Authorization` header as the verified `sn-50-synth-insights-volatility` (400 \"missing key in request header\"), declared identically in the schema. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/insights/polymarket/range"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\".","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-insights-polymarket-range-daily","key":"srf-b4d8888f90cda044","kind":"subnet-api","last_verified_at":null,"name":"Synth GET insights polymarket range daily","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /insights/polymarket/range/daily on api.synthdata.co. Not individually curled — same required `Authorization` header as the verified `sn-50-synth-insights-volatility` (400 \"missing key in request header\"), declared identically in the schema. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/insights/polymarket/range/daily"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\".","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-insights-polymarket-up-down-15min","key":"srf-ff5c9fdf98fa3b7c","kind":"subnet-api","last_verified_at":null,"name":"Synth GET insights polymarket up down 15min","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /insights/polymarket/up-down/15min on api.synthdata.co. Not individually curled — same required `Authorization` header as the verified `sn-50-synth-insights-volatility` (400 \"missing key in request header\"), declared identically in the schema. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/insights/polymarket/up-down/15min"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\".","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-insights-polymarket-up-down-5min","key":"srf-8bd655209175d16e","kind":"subnet-api","last_verified_at":null,"name":"Synth GET insights polymarket up down 5min","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /insights/polymarket/up-down/5min on api.synthdata.co. Not individually curled — same required `Authorization` header as the verified `sn-50-synth-insights-volatility` (400 \"missing key in request header\"), declared identically in the schema. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/insights/polymarket/up-down/5min"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\".","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-insights-polymarket-up-down-daily","key":"srf-3fc993792744f050","kind":"subnet-api","last_verified_at":null,"name":"Synth GET insights polymarket up down daily","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /insights/polymarket/up-down/daily on api.synthdata.co. Not individually curled — same required `Authorization` header as the verified `sn-50-synth-insights-volatility` (400 \"missing key in request header\"), declared identically in the schema. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/insights/polymarket/up-down/daily"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\".","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-insights-polymarket-up-down-hourly","key":"srf-4031b5d23a39f494","kind":"subnet-api","last_verified_at":null,"name":"Synth GET insights polymarket up down hourly","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /insights/polymarket/up-down/hourly on api.synthdata.co. Not individually curled — same required `Authorization` header as the verified `sn-50-synth-insights-volatility` (400 \"missing key in request header\"), declared identically in the schema. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/insights/polymarket/up-down/hourly"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\".","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-insights-prediction-percentiles","key":"srf-c48b07354b6d19a2","kind":"subnet-api","last_verified_at":null,"name":"Synth GET insights prediction percentiles","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /insights/prediction-percentiles on api.synthdata.co. Not individually curled — same required `Authorization` header as the verified `sn-50-synth-insights-volatility` (400 \"missing key in request header\"), declared identically in the schema. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/insights/prediction-percentiles"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\".","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-insights-volatility","key":"srf-41642672e10b165c","kind":"subnet-api","last_verified_at":null,"name":"Synth GET insights volatility","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /insights/volatility on api.synthdata.co. Live-verified 2026-07-21: an unauthenticated request returns HTTP 400 {\"message\":\"missing key in request header\"}. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/insights/volatility"},{"auth_required":false,"authority":"official","curation_level":"maintainer-reviewed","id":"sn-50-synth-meta-leaderboard","key":"srf-ddcc19cc02ff7dcd","kind":"subnet-api","last_verified_at":"2026-09-20T04:31:09.312Z","name":"Synth meta-leaderboard API","netuid":50,"notes":"Public no-auth GET /v2/meta-leaderboard/latest on api.synthdata.co, returning the current meta-model leaderboard (neuron_uid, rewards, coldkey, ip_address) -- distinct from the per-miner /v2/leaderboard/latest surface already tracked. Discovered via a full diff of the subnet's own Swagger schema for undiscovered public GET endpoints.","probe":{"enabled":true,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"source_urls":["https://api.synthdata.co/swagger.json"],"stale":false,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/v2/meta-leaderboard/latest"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-openapi","key":"srf-19004519ec9044f2","kind":"openapi","last_verified_at":null,"name":"Synth API OpenAPI spec","netuid":50,"notes":"Public Swagger 2.0 spec for the Synth API (48 unauthenticated GET endpoints — probabilistic price forecasts, market insights, leaderboards). The official synth-subnet README documents the API docs at api.synthdata.co/docs.","probe":{"enabled":true,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"real-venus"},"schema_status":"machine-readable","schema_url":"https://api.synthdata.co/swagger.json","source_urls":["https://github.com/synthdataco/synth-subnet/blob/main/README.md"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/swagger.json"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-rewards-scores","key":"srf-51eaade41738eb19","kind":"subnet-api","last_verified_at":null,"name":"Synth GET rewards scores","netuid":50,"notes":"GET /rewards/scores on api.synthdata.co — public, no auth. Required query params: from, to. Live-verified 2026-07-21 with a real, valid parameter set. Registered with the fixed base url (no query string baked in) per the registry's full-API-parity policy (metagraphed#7063) — already callable today via call_subnet_surface's own query argument. probe.enabled:false is the safer default here: an auto-probe with no query params would just 400.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/rewards/scores"},{"auth_required":false,"authority":"official","curation_level":"maintainer-reviewed","id":"sn-50-synth-source-repo","key":"srf-02e4b7324dac42a8","kind":"source-repo","last_verified_at":"2026-07-16T03:10:00.000Z","name":"Synth source repository","netuid":50,"notes":"Official Synth (SN50) source repository. The on-chain-declared URL (github.com/mode-network/synth-subnet) now permanently redirects here; same repo, org renamed.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"synth","public_safe":true,"source_urls":["https://synthdata.co/"],"stale":false,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://github.com/synthdataco/synth-subnet"},{"auth_required":false,"authority":"community","curation_level":"machine-verified","id":"sn-50-synth-subnet-api","key":"srf-e8d2092289781aaa","kind":"subnet-api","last_verified_at":"2026-09-20T04:31:09.312Z","name":"Synth API","netuid":50,"notes":"Public no-auth REST API at api.synthdata.co exposing Synth's probabilistic price forecasts, leaderboards, and market insights; the /v2/leaderboard/latest endpoint returns JSON with no authentication. Documented in the official synth-subnet README. Rejects HEAD (405); probe uses GET.","probe":{"enabled":true,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"real-venus"},"source_urls":["https://github.com/synthdataco/synth-subnet/blob/main/README.md"],"stale":false,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/v2/leaderboard/latest"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-v2-leaderboard-historical","key":"srf-8a7c4e83b235b7a4","kind":"subnet-api","last_verified_at":null,"name":"Synth GET v2 leaderboard historical","netuid":50,"notes":"GET /v2/leaderboard/historical on api.synthdata.co — public, no auth. Required query params: start_time, end_time. Live-verified 2026-07-21 with a real, valid parameter set. Registered with the fixed base url (no query string baked in) per the registry's full-API-parity policy (metagraphed#7063) — already callable today via call_subnet_surface's own query argument. probe.enabled:false is the safer default here: an auto-probe with no query params would just 400.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/v2/leaderboard/historical"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-v2-meta-leaderboard-historical","key":"srf-d0dda1bbfe978d21","kind":"subnet-api","last_verified_at":null,"name":"Synth GET v2 meta leaderboard historical","netuid":50,"notes":"GET /v2/meta-leaderboard/historical on api.synthdata.co — public, no auth. Required query params: start_time. Not individually curled — no auth declared in the schema, same as the verified public query-param endpoints above. Registered with the fixed base url (no query string baked in) per the registry's full-API-parity policy (metagraphed#7063) — already callable today via call_subnet_surface's own query argument. probe.enabled:false is the safer default here: an auto-probe with no query params would just 400.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/v2/meta-leaderboard/historical"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\". Also requires query params: asset, time_increment, time_length.","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-v2-prediction-best","key":"srf-e60e666f03aa1c0b","kind":"subnet-api","last_verified_at":null,"name":"Synth GET v2 prediction best","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /v2/prediction/best on api.synthdata.co. Live-verified 2026-07-21: an unauthenticated request returns HTTP 400 {\"message\":\"missing key in request header\"}. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/v2/prediction/best"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\". Also requires query params: miner, asset, start_time, time_increment, time_length.","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-v2-prediction-historical","key":"srf-d1cf1af1ec5b74c9","kind":"subnet-api","last_verified_at":null,"name":"Synth GET v2 prediction historical","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /v2/prediction/historical on api.synthdata.co. Not individually curled — same required `Authorization` header as the verified `sn-50-synth-insights-volatility` (400 \"missing key in request header\"), declared identically in the schema. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/v2/prediction/historical"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\". Also requires query params: miner, asset, time_increment, time_length.","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-v2-prediction-latest","key":"srf-1251393ea48eb700","kind":"subnet-api","last_verified_at":null,"name":"Synth GET v2 prediction latest","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /v2/prediction/latest on api.synthdata.co. Live-verified 2026-07-21: an unauthenticated request returns HTTP 400 {\"message\":\"missing key in request header\"}. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/v2/prediction/latest"},{"auth":{"location":"header","name":"Authorization","scheme":"api-key","scopes_note":"Derived from the subnet's own Swagger 2.0 schema: a required `Authorization` header parameter (not a formal OpenAPI `security` block — Synth's own convention), example value \"Apikey MY_API_KEY\". Also requires query params: asset.","value_format":"Apikey <key>"},"auth_required":true,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-v2-prediction-metamodel-historical","key":"srf-64f9b1b99f2e039c","kind":"subnet-api","last_verified_at":null,"name":"Synth GET v2 prediction metamodel historical","netuid":50,"notes":"Auth-gated (API key via required Authorization header, Phase 3 credential passthrough, not built yet) GET /v2/prediction/metamodel/historical on api.synthdata.co. Not individually curled — same required `Authorization` header as the verified `sn-50-synth-insights-volatility` (400 \"missing key in request header\"), declared identically in the schema. Path/shape from the subnet's own Swagger schema; registered per the registry's full-API-parity policy (metagraphed#7063) even though it isn't callable by the anonymous Phase-1 call_subnet_surface tool today.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/v2/prediction/metamodel/historical"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-validation-miner","key":"srf-31458a16262563b4","kind":"subnet-api","last_verified_at":null,"name":"Synth GET validation miner","netuid":50,"notes":"GET /validation/miner on api.synthdata.co — public, no auth. Required query params: uid. Live-verified 2026-07-21 with a real, valid parameter set. Registered with the fixed base url (no query string baked in) per the registry's full-API-parity policy (metagraphed#7063) — already callable today via call_subnet_surface's own query argument. probe.enabled:false is the safer default here: an auto-probe with no query params would just 400.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/validation/miner"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-validation-prompts","key":"srf-6c011ce90994faae","kind":"subnet-api","last_verified_at":null,"name":"Synth GET validation prompts","netuid":50,"notes":"GET /validation/prompts on api.synthdata.co — public, no auth. Required query params: from, to, time_increment, time_length. Not individually curled — no auth declared in the schema, same as the verified public query-param endpoints above. Registered with the fixed base url (no query string baked in) per the registry's full-API-parity policy (metagraphed#7063) — already callable today via call_subnet_surface's own query argument. probe.enabled:false is the safer default here: an auto-probe with no query params would just 400.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/validation/prompts"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-validation-realized-path","key":"srf-3b2a9a9255b9eccc","kind":"subnet-api","last_verified_at":null,"name":"Synth GET validation realized path","netuid":50,"notes":"GET /validation/realized-path on api.synthdata.co — public, no auth. Required query params: start_time, time_increment, time_length. Not individually curled — no auth declared in the schema, same as the verified public query-param endpoints above. Registered with the fixed base url (no query string baked in) per the registry's full-API-parity policy (metagraphed#7063) — already callable today via call_subnet_surface's own query argument. probe.enabled:false is the safer default here: an auto-probe with no query params would just 400.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/validation/realized-path"},{"auth_required":false,"authority":"community","curation_level":"machine-verified","id":"sn-50-synth-validation-scores","key":"srf-dc76516ca63a38b9","kind":"data-artifact","last_verified_at":"2026-09-20T04:31:09.312Z","name":"Synth latest validation scores dataset","netuid":50,"notes":"Public no-auth GET /validation/scores/latest on api.synthdata.co returning a JSON dataset of the latest per-miner, per-asset forecast validation scores for the SN50 Synth price-prediction network (miner_uid, asset, prompt_score, crps, scored_time, time_length). Documented as a security-free GET (\"Validations - Latest Scores\") in the subnet's registered OpenAPI spec at api.synthdata.co/swagger.json; distinct from the leaderboard subnet-api surface on the same host. Rejects HEAD (404); probe uses GET. Verified 200 application/json.","probe":{"enabled":true,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"rust-toml"},"schema_status":"machine-readable","schema_url":"https://api.synthdata.co/swagger.json","source_urls":["https://api.synthdata.co/swagger.json","https://github.com/synthdataco/synth-subnet/blob/main/README.md"],"stale":false,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/validation/scores/latest"},{"auth_required":false,"authority":"community","curation_level":"candidate-discovered","id":"sn-50-synth-validation-scores-historical","key":"srf-2f4445de6970002a","kind":"subnet-api","last_verified_at":null,"name":"Synth GET validation scores historical","netuid":50,"notes":"GET /validation/scores/historical on api.synthdata.co — public, no auth. Required query params: from, to. Not individually curled — no auth declared in the schema, same as the verified public query-param endpoints above. Registered with the fixed base url (no query string baked in) per the registry's full-API-parity policy (metagraphed#7063) — already callable today via call_subnet_surface's own query argument. probe.enabled:false is the safer default here: an auto-probe with no query params would just 400.","probe":{"enabled":false,"expect":"json","method":"GET","timeout_ms":10000},"provider":"synth","public_safe":true,"review":{"state":"community-submitted","submitted_by":"oktofeesh1"},"source_urls":["https://api.synthdata.co/swagger.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://api.synthdata.co/validation/scores/historical"},{"auth_required":false,"authority":"official","curation_level":"maintainer-reviewed","id":"sn-50-synth-website","key":"srf-fd69ec8c26c5d82f","kind":"website","last_verified_at":"2026-07-16T03:10:00.000Z","name":"Synth website","netuid":50,"notes":"Official Synth (SN50) website.","probe":{"enabled":true,"expect":"html","method":"HEAD","timeout_ms":10000},"provider":"synth","public_safe":true,"source_urls":["https://github.com/synthdataco/synth-subnet"],"stale":false,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://synthdata.co/"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-50-taomarketcap-dashboard","key":"srf-e382b32226412a18","kind":"dashboard","last_verified_at":null,"name":"Synth TaoMarketCap dashboard","netuid":50,"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/50"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://taomarketcap.com/subnets/50"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-50-taopedia-article","key":"srf-28f47efb760f609a","kind":"docs","last_verified_at":null,"name":"Synth Taopedia article","netuid":50,"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_50/index.mdx"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://github.com/e35ventura/taopedia-articles/blob/main/content/pages/subnet_50/index.mdx"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-50-tensorplex-docs","key":"srf-d881eb97c28f1779","kind":"docs","last_verified_at":null,"name":"Synth Tensorplex subnet docs","netuid":50,"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/50/subnet.json"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://github.com/tensorplex-labs/subnet-docs/tree/main/data/50"},{"auth_required":false,"authority":"registry-observed","curation_level":"candidate-discovered","id":"sn-50-website-common-docs","key":"srf-63bc970aea8714d7","kind":"docs","last_verified_at":null,"name":"Synth docs","netuid":50,"notes":"Common read-only path discovered from a public project website root. Requires verification before promotion.","probe":{"enabled":true,"expect":"any","method":"HEAD","timeout_ms":10000},"provider":"synth","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://synthdata.co/"],"stale":null,"subnet_name":"Synth","subnet_slug":"sn-50","url":"https://synthdata.co/docs"}]},"meta":{"artifact_path":"/metagraph/surfaces/50.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":41,"returned":41,"limit":41,"cursor":0,"next_cursor":null,"sort":null,"order":"asc"}}}