{"ok":true,"schema_version":1,"data":{"agent_readiness":{"blocker_level":"missing-data","blockers":[{"code":"missing-schema","field":"schemas","message":"At least one callable service exists, but no captured schema artifact is available.","next_action":"Capture an official OpenAPI/Swagger/JSON Schema source or document that no schema exists.","severity":"missing-data"},{"code":"missing-docs","field":"docs_url","message":"No public documentation link is recorded.","next_action":"Add an official docs URL or document that no public docs exist.","severity":"missing-data"}],"missing_fields":["docs_url","schemas"],"status":"callable"},"categories":["baseline-augmented","baseline-curated","identity-reviewed","official-source-repo","official-website","sdk"],"completeness_score":78,"contract_version":"2026-07-03.2","example_count":0,"examples":[],"generated_at":"2026-07-27T10:51:25.049Z","integration_readiness":83,"name":"MANTIS","netuid":123,"readiness":{"components":{"active_lifecycle":true,"auth_clarity":true,"callable_now":true,"documented":false,"has_callable_api":true,"has_candidate_api":true,"has_public_docs":false,"has_source_repo":true,"profile_complete":true},"readiness_tier":"buildable","readiness_version":2,"score":83,"readiness_verified":true},"schema_version":1,"service_count":11,"services":[{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"community","base_url":"https://mantis123.com/dashboard/api/history/incentive","capability":"MANTIS dashboard incentive history","description":"Public no-auth GET /dashboard/api/history/incentive on mantis123.com returning a per-block JSON time series of per-UID incentive values for SN123 MANTIS (block, timestamp, and an inc map keyed by miner UID). Discovered by reading the console's own app.js, which calls this literal no-param path directly. Contains only UID-keyed numeric incentive data, no hotkeys/coldkeys/wallet addresses.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer"],"live_status":"ok"},"fixture_status":{"artifact_path":null,"captured_at":null,"reason":"response exceeds byte limit","status":"capture-failed"},"health":{"status":"ok","classification":"live","latency_ms":258,"last_ok":"2026-07-27T22:15:19.089Z","last_checked":"2026-07-27T22:15:19.089Z","stale":false,"observed_by":"live-cron-prober"},"kind":"subnet-api","provider":"mantis","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://mantis123.com/dashboard/api/history/incentive'","python":"import requests\n\nresp = requests.get(\"https://mantis123.com/dashboard/api/history/incentive\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://mantis123.com/dashboard/api/history/incentive\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-123-mantis-dashboard-history-incentive"},{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"community","base_url":"https://mantis123.com/dashboard/api/snap/breakouts","capability":"MANTIS dashboard breakout events","description":"Public no-auth GET /dashboard/api/snap/breakouts on mantis123.com returning per-ticker breakout event history (trigger/resolution blocks, direction, labels, predictor counts). Sibling of the already-registered snap/meta surface — same host/pattern, discovered via the console app.js snap(\"breakouts\") call site. Live-verified 2026-07-21: HTTP 200 JSON.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer"],"live_status":"ok"},"fixture":{"artifact_path":"/metagraph/fixtures/sn-123-mantis-dashboard-snap-breakouts.json","captured_at":"2026-07-27T10:51:25.372Z","request":{"method":"GET","url":"https://mantis123.com/dashboard/api/snap/breakouts"},"response":{"content_type":"application/json","status":200}},"fixture_status":{"artifact_path":"/metagraph/fixtures/sn-123-mantis-dashboard-snap-breakouts.json","captured_at":"2026-07-27T10:51:25.372Z","reason":null,"status":"available"},"health":{"status":"ok","classification":"live","latency_ms":105,"last_ok":"2026-07-27T22:15:19.089Z","last_checked":"2026-07-27T22:15:19.089Z","stale":false,"observed_by":"live-cron-prober"},"kind":"subnet-api","provider":"mantis","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://mantis123.com/dashboard/api/snap/breakouts'","python":"import requests\n\nresp = requests.get(\"https://mantis123.com/dashboard/api/snap/breakouts\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://mantis123.com/dashboard/api/snap/breakouts\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-123-mantis-dashboard-snap-breakouts"},{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"community","base_url":"https://mantis123.com/dashboard/api/snap/clusters","capability":"MANTIS dashboard miner clusters","description":"Public no-auth GET /dashboard/api/snap/clusters on mantis123.com returning per-ticker miner clustering data as public SS58 address groups (no coldkeys or wallet secrets). Sibling of snap/meta — app.js snap(\"clusters\"). Live-verified 2026-07-21: HTTP 200 JSON.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer"],"live_status":"ok"},"fixture":{"artifact_path":"/metagraph/fixtures/sn-123-mantis-dashboard-snap-clusters.json","captured_at":"2026-07-27T10:51:25.372Z","request":{"method":"GET","url":"https://mantis123.com/dashboard/api/snap/clusters"},"response":{"content_type":"application/json","status":200}},"fixture_status":{"artifact_path":"/metagraph/fixtures/sn-123-mantis-dashboard-snap-clusters.json","captured_at":"2026-07-27T10:51:25.372Z","reason":null,"status":"available"},"health":{"status":"ok","classification":"live","latency_ms":137,"last_ok":"2026-07-27T22:15:19.089Z","last_checked":"2026-07-27T22:15:19.089Z","stale":false,"observed_by":"live-cron-prober"},"kind":"subnet-api","provider":"mantis","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://mantis123.com/dashboard/api/snap/clusters'","python":"import requests\n\nresp = requests.get(\"https://mantis123.com/dashboard/api/snap/clusters\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://mantis123.com/dashboard/api/snap/clusters\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-123-mantis-dashboard-snap-clusters"},{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"community","base_url":"https://mantis123.com/dashboard/api/snap/meta","capability":"MANTIS dashboard challenge/emission metadata","description":"Public no-auth GET /dashboard/api/snap/meta on mantis123.com returning SN123 MANTIS's live challenge roster (per-ticker row counts), challenge_weights, total_weight, and emission_rules (burn_pct, young/EMA parameters, source_revision). Discovered by reading the console's own app.js, which calls this literal path (snap(\"meta\")) to populate the dashboard header -- not a guessed/parameterized value. Response confirms netuid 123. Distinct from the OpenAPI-less MANTIS source repo and from the TaoMarketCap indexed feed.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer"],"live_status":"ok"},"fixture":{"artifact_path":"/metagraph/fixtures/sn-123-mantis-dashboard-snap-meta.json","captured_at":"2026-07-27T10:51:25.372Z","request":{"method":"GET","url":"https://mantis123.com/dashboard/api/snap/meta"},"response":{"content_type":"application/json","status":200}},"fixture_status":{"artifact_path":"/metagraph/fixtures/sn-123-mantis-dashboard-snap-meta.json","captured_at":"2026-07-27T10:51:25.372Z","reason":null,"status":"available"},"health":{"status":"ok","classification":"live","latency_ms":137,"last_ok":"2026-07-27T22:15:19.089Z","last_checked":"2026-07-27T22:15:19.089Z","stale":false,"observed_by":"live-cron-prober"},"kind":"subnet-api","provider":"mantis","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://mantis123.com/dashboard/api/snap/meta'","python":"import requests\n\nresp = requests.get(\"https://mantis123.com/dashboard/api/snap/meta\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://mantis123.com/dashboard/api/snap/meta\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-123-mantis-dashboard-snap-meta"},{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"community","base_url":"https://mantis123.com/dashboard/api/snap/metagraph","capability":"MANTIS dashboard metagraph snapshot","description":"Public no-auth GET /dashboard/api/snap/metagraph on mantis123.com returning a per-UID metagraph snapshot (hotkey, incentive, emission, stake, trust) at the latest synced block. Same public-hotkey-only shape as history/incentive. Sibling of snap/meta — app.js snap(\"metagraph\"). Live-verified 2026-07-21: HTTP 200 JSON.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer"],"live_status":"ok"},"fixture":{"artifact_path":"/metagraph/fixtures/sn-123-mantis-dashboard-snap-metagraph.json","captured_at":"2026-07-27T10:51:25.372Z","request":{"method":"GET","url":"https://mantis123.com/dashboard/api/snap/metagraph"},"response":{"content_type":"application/json","status":200}},"fixture_status":{"artifact_path":"/metagraph/fixtures/sn-123-mantis-dashboard-snap-metagraph.json","captured_at":"2026-07-27T10:51:25.372Z","reason":null,"status":"available"},"health":{"status":"ok","classification":"live","latency_ms":158,"last_ok":"2026-07-27T22:15:19.089Z","last_checked":"2026-07-27T22:15:19.089Z","stale":false,"observed_by":"live-cron-prober"},"kind":"subnet-api","provider":"mantis","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://mantis123.com/dashboard/api/snap/metagraph'","python":"import requests\n\nresp = requests.get(\"https://mantis123.com/dashboard/api/snap/metagraph\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://mantis123.com/dashboard/api/snap/metagraph\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-123-mantis-dashboard-snap-metagraph"},{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"community","base_url":"https://mantis123.com/dashboard/api/snap/miners","capability":"MANTIS dashboard miner totals","description":"Public no-auth GET /dashboard/api/snap/miners on mantis123.com returning per-ticker miner participation totals (ch_totals). Sibling of snap/meta — app.js snap(\"miners\"). Live-verified 2026-07-21: HTTP 200 JSON.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer"],"live_status":"ok"},"fixture":{"artifact_path":"/metagraph/fixtures/sn-123-mantis-dashboard-snap-miners.json","captured_at":"2026-07-27T10:51:25.372Z","request":{"method":"GET","url":"https://mantis123.com/dashboard/api/snap/miners"},"response":{"content_type":"application/json","status":200}},"fixture_status":{"artifact_path":"/metagraph/fixtures/sn-123-mantis-dashboard-snap-miners.json","captured_at":"2026-07-27T10:51:25.372Z","reason":null,"status":"available"},"health":{"status":"ok","classification":"live","latency_ms":66,"last_ok":"2026-07-27T22:15:19.089Z","last_checked":"2026-07-27T22:15:19.089Z","stale":false,"observed_by":"live-cron-prober"},"kind":"subnet-api","provider":"mantis","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://mantis123.com/dashboard/api/snap/miners'","python":"import requests\n\nresp = requests.get(\"https://mantis123.com/dashboard/api/snap/miners\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://mantis123.com/dashboard/api/snap/miners\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-123-mantis-dashboard-snap-miners"},{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"community","base_url":"https://mantis123.com/dashboard/api/snap/participation","capability":"MANTIS dashboard participation history","description":"Public no-auth GET /dashboard/api/snap/participation on mantis123.com returning per-ticker time series of participation counts. Sibling of snap/meta — app.js snap(\"participation\"). Live-verified 2026-07-21: HTTP 200 JSON.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer"],"live_status":"ok"},"fixture":{"artifact_path":"/metagraph/fixtures/sn-123-mantis-dashboard-snap-participation.json","captured_at":"2026-07-27T10:51:25.372Z","request":{"method":"GET","url":"https://mantis123.com/dashboard/api/snap/participation"},"response":{"content_type":"application/json","status":200}},"fixture_status":{"artifact_path":"/metagraph/fixtures/sn-123-mantis-dashboard-snap-participation.json","captured_at":"2026-07-27T10:51:25.372Z","reason":null,"status":"available"},"health":{"status":"ok","classification":"live","latency_ms":152,"last_ok":"2026-07-27T22:15:19.089Z","last_checked":"2026-07-27T22:15:19.089Z","stale":false,"observed_by":"live-cron-prober"},"kind":"subnet-api","provider":"mantis","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://mantis123.com/dashboard/api/snap/participation'","python":"import requests\n\nresp = requests.get(\"https://mantis123.com/dashboard/api/snap/participation\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://mantis123.com/dashboard/api/snap/participation\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-123-mantis-dashboard-snap-participation"},{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"community","base_url":"https://pub-879ad825983e43529792665f4f510cd6.r2.dev/datalog.db","capability":"MANTIS historical datalog archive","description":"Public no-auth downloadable SQLite datalog of the SN123 MANTIS validator's full historical multi-asset signal/price time series — the DATALOG_ARCHIVE_URL declared in the official repo's config.py, distinct from and complementary to the latest_prices.json snapshot (this is the complete historical archive, served as a SQLite database file). Verified as a live SQLite artifact (magic bytes 'SQLite format 3'). Freshness/size are probe-derived and not asserted here. Confirmed ~74.3GiB (Content-Length 79805812736) via HEAD; probe intentionally uses HEAD rather than GET to avoid downloading the full archive on every check.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer"],"live_status":"ok"},"fixture_status":{"artifact_path":null,"captured_at":null,"reason":"fixture capture only samples enabled GET probes","status":"non-get"},"health":{"status":"ok","classification":"live","latency_ms":183,"last_ok":"2026-07-27T22:15:19.089Z","last_checked":"2026-07-27T22:15:19.089Z","stale":false,"observed_by":"live-cron-prober"},"kind":"data-artifact","provider":"mantis","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://pub-879ad825983e43529792665f4f510cd6.r2.dev/datalog.db'","python":"import requests\n\nresp = requests.get(\"https://pub-879ad825983e43529792665f4f510cd6.r2.dev/datalog.db\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://pub-879ad825983e43529792665f4f510cd6.r2.dev/datalog.db\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-123-mantis-datalog-archive"},{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"community","base_url":"https://pub-ba8c1b8edb8046edaccecbd26b5ca7f8.r2.dev/latest_prices.json","capability":"MANTIS price & funding data artifact","description":"Public no-auth JSON data artifact of asset prices and funding rates published by the SN123 MANTIS validator — the PRICE_DATA_URL declared in the official repo's config.py (line 63). Freshness/uptime are probe-derived and not asserted here.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer"],"live_status":"ok"},"fixture_status":{"artifact_path":null,"captured_at":null,"reason":"non-json response","status":"capture-failed"},"health":{"status":"ok","classification":"live","latency_ms":168,"last_ok":"2026-07-27T22:15:19.089Z","last_checked":"2026-07-27T22:15:19.089Z","stale":false,"observed_by":"live-cron-prober"},"kind":"data-artifact","provider":"mantis","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://pub-ba8c1b8edb8046edaccecbd26b5ca7f8.r2.dev/latest_prices.json'","python":"import requests\n\nresp = requests.get(\"https://pub-ba8c1b8edb8046edaccecbd26b5ca7f8.r2.dev/latest_prices.json\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://pub-ba8c1b8edb8046edaccecbd26b5ca7f8.r2.dev/latest_prices.json\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-123-mantis-price-feed"},{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"community","base_url":"https://api.taomarketcap.com/public/v1/subnets/123/candle-chart/","capability":"SN123 TaoMarketCap OHLCV candle-chart dataset","description":"Public no-auth GET /public/v1/subnets/123/candle-chart on api.taomarketcap.com returning a machine-readable JSON time-series of hourly OHLCV candles for SN123 MANTIS's alpha token: each record carries period_name, timestamp, block_number, open/high/low/close, volume, start_volume, and tao_price_usd/eur, every record scoped to subnet_id 123. A standalone historical price/volume dataset, distinct from MANTIS's own model-input data artifacts (latest_prices.json / datalog.db). This indexed feed is the concrete public JSON market-data endpoint for netuid 123, documented in the TaoMarketCap developer API (its public-oas3.json lists this GET with an optional API key, i.e. no-auth access is supported). TaoMarketCap now enforces a trailing slash (the non-slash path 301s); tracked URL updated to the canonical non-redirecting form.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer","status-degraded"],"live_status":"degraded"},"fixture_status":{"artifact_path":null,"captured_at":null,"reason":"http 429","status":"capture-failed"},"health":{"status":"degraded","classification":"rate-limited","latency_ms":null,"last_ok":"2026-07-27T22:00:18.291Z","last_checked":"2026-07-27T22:15:19.089Z","stale":false,"observed_by":"live-cron-prober"},"kind":"data-artifact","provider":"taomarketcap","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://api.taomarketcap.com/public/v1/subnets/123/candle-chart/'","python":"import requests\n\nresp = requests.get(\"https://api.taomarketcap.com/public/v1/subnets/123/candle-chart/\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://api.taomarketcap.com/public/v1/subnets/123/candle-chart/\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-123-taomarketcap-candle-chart"},{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"registry-observed","base_url":"https://mantis123.com/health","capability":"MANTIS health endpoint","description":"Common read-only path discovered from a public project website root. Requires verification before promotion.","eligibility":{"callable":false,"reasons":["not-bittensor-base-layer"],"live_status":"unknown"},"fixture":{"artifact_path":"/metagraph/fixtures/sn-123-website-common-health.json","captured_at":"2026-07-27T10:51:25.372Z","request":{"method":"GET","url":"https://mantis123.com/health"},"response":{"content_type":"application/json","status":200}},"fixture_status":{"artifact_path":"/metagraph/fixtures/sn-123-website-common-health.json","captured_at":"2026-07-27T10:51:25.372Z","reason":null,"status":"available"},"health":{"status":"unknown","classification":null,"latency_ms":null,"last_ok":null,"last_checked":null,"stale":false,"observed_by":"unavailable"},"kind":"subnet-api","provider":"mantis","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://mantis123.com/health'","python":"import requests\n\nresp = requests.get(\"https://mantis123.com/health\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://mantis123.com/health\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-123-website-common-health"}],"slug":"sn-123","subnet_type":"application","operational_observed_at":"2026-07-27T22:15:19.089Z","health_source":"live-cron-prober"},"meta":{"artifact_path":"/metagraph/agent-catalog/123.json","cache":"standard","contract_version":"2026-07-03.2","generated_at":"2026-07-27T10:51:25.049Z","published_at":"2026-07-27T10:51:25.049Z","source":"live-cron-prober","operational_observed_at":"2026-07-27T22:15:19.089Z"}}