{"ok":true,"schema_version":1,"data":{"agent_readiness":{"blocker_level":"missing-data","blockers":[{"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"],"status":"callable"},"categories":["baseline-augmented","baseline-curated","identity-reviewed","inference","llm-serving","official-website","verified-compute"],"completeness_score":85,"contract_version":"2026-07-03.2","example_count":0,"examples":[],"generated_at":"2026-09-10T12:15:44.147Z","integration_readiness":100,"name":"engy","netuid":53,"readiness":{"components":{"active_lifecycle":true,"auth_clarity":true,"callable_now":true,"documented":true,"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":100,"readiness_verified":true},"schema_version":1,"service_count":8,"services":[{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"official","base_url":"https://provider.engy.ai/api/subnet/v1/epoch/1","capability":"engy provider epoch by index","description":"The PARAMETERIZED sibling of the /epoch/latest surface above: the same shape for any finalized epoch, so a caller can read history rather than only the current window. Tracked separately because /latest and /{index} are different capabilities -- one answers 'what is happening now', the other 'what happened then' -- and a probe of the first proves nothing about the second. Probed at index 1, the earliest finalized epoch, so the probe target does not age out.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer"],"live_status":"ok"},"fixture":{"artifact_path":"/metagraph/fixtures/sn-53-engy-epoch-index.json","captured_at":"2026-09-10T12:15:45.054Z","request":{"method":"GET","url":"https://provider.engy.ai/api/subnet/v1/epoch/1"},"response":{"content_type":"application/json","status":200}},"fixture_status":{"artifact_path":"/metagraph/fixtures/sn-53-engy-epoch-index.json","captured_at":"2026-09-10T12:15:45.054Z","reason":null,"status":"available"},"health":{"status":"ok","classification":"live","latency_ms":677,"last_ok":"2026-09-11T00:45:12.648Z","last_checked":"2026-09-11T00:45:12.648Z","stale":false,"observed_by":"live-cron-prober"},"kind":"subnet-api","provider":"hanlinai","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://provider.engy.ai/api/subnet/v1/epoch/1'","python":"import requests\n\nresp = requests.get(\"https://provider.engy.ai/api/subnet/v1/epoch/1\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://provider.engy.ai/api/subnet/v1/epoch/1\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-53-engy-epoch-index"},{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"official","base_url":"https://provider.engy.ai/api/subnet/v1/epoch/latest","capability":"engy provider epoch (latest)","description":"First-party no-auth GET returning the current epoch's finalized state for netuid 53 -- epoch_index, window bounds, digest and per-miner weights. RENAMED IN PLACE: the repo's own design spec records an amendment dated 2026-07-21 moving this from /api/subnet/v1/weights/latest, and states the old path was deleted rather than redirected, so a capture taken before that date points at a 404.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer"],"live_status":"ok"},"fixture":{"artifact_path":"/metagraph/fixtures/sn-53-engy-epoch-latest.json","captured_at":"2026-09-10T12:15:45.054Z","request":{"method":"GET","url":"https://provider.engy.ai/api/subnet/v1/epoch/latest"},"response":{"content_type":"application/json","status":200}},"fixture_status":{"artifact_path":"/metagraph/fixtures/sn-53-engy-epoch-latest.json","captured_at":"2026-09-10T12:15:45.054Z","reason":null,"status":"available"},"health":{"status":"ok","classification":"live","latency_ms":875,"last_ok":"2026-09-11T00:45:12.648Z","last_checked":"2026-09-11T00:45:12.648Z","stale":false,"observed_by":"live-cron-prober"},"kind":"subnet-api","provider":"hanlinai","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://provider.engy.ai/api/subnet/v1/epoch/latest'","python":"import requests\n\nresp = requests.get(\"https://provider.engy.ai/api/subnet/v1/epoch/latest\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://provider.engy.ai/api/subnet/v1/epoch/latest\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-53-engy-epoch-latest"},{"auth":{"location":"header","name":"Authorization","scheme":"basic","value_format":"Basic <base64(user:pass)>"},"auth_required":true,"auth_schemes":["http"],"authority":"official","base_url":"https://api.engy.ai/gw/meta","capability":"engy gateway capacity meta","description":"First-party no-auth GET on the gateway host returning its live worker/leg count. Miners divide their declared concurrency by this number, so a change silently re-scales every miner's effective capacity -- which makes it the one gateway value a reader needs to interpret the roster's capacity figures correctly. The README publishes the gateway at wss://api.engy.ai/gw and states the 8-worker minimum this endpoint reports.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer"],"live_status":"ok"},"fixture":{"artifact_path":"/metagraph/fixtures/sn-53-engy-gateway-meta.json","captured_at":"2026-09-10T12:15:45.054Z","request":{"method":"GET","url":"https://api.engy.ai/gw/meta"},"response":{"content_type":"application/json","status":200}},"fixture_status":{"artifact_path":"/metagraph/fixtures/sn-53-engy-gateway-meta.json","captured_at":"2026-09-10T12:15:45.054Z","reason":null,"status":"available"},"health":{"status":"ok","classification":"live","latency_ms":597,"last_ok":"2026-09-11T00:45:12.648Z","last_checked":"2026-09-11T00:45:12.648Z","stale":false,"observed_by":"live-cron-prober"},"kind":"subnet-api","provider":"hanlinai","schema_artifact":"/metagraph/schemas/sn-53-openapi-probe-api-engy-ai.json","schema_source":{"artifact":"/metagraph/schemas/sn-53-openapi-probe-api-engy-ai.json","hash":"2bd85cdcf5417b99c99b176eaf4ebc91aa096c10f09def5b1b040b57e25c0656","match":"same-origin-openapi","observed_at":"2026-09-10T12:15:45.054Z","status":"captured","surface_id":"sn-53-openapi-probe-api-engy-ai","url":"https://api.engy.ai/openapi.json"},"schema_status":"machine-readable","schema_url":"https://api.engy.ai/openapi.json","snippets":{"curl":"curl -sS 'https://api.engy.ai/gw/meta' \\\n  -H 'Authorization: Basic <base64(user:pass)>'","python":"import requests\n\nresp = requests.get(\"https://api.engy.ai/gw/meta\", headers={\"Authorization\": \"Basic <base64(user:pass)>\"})\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://api.engy.ai/gw/meta\", {\n  headers: { \"Authorization\": \"Basic <base64(user:pass)>\" },\n});\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-53-engy-gateway-meta"},{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"official","base_url":"https://provider.engy.ai/api/subnet/v1/miners","capability":"engy provider miner roster","description":"First-party no-auth GET returning the miner roster the gateway routes to, with miner ids and labels. The operator's own view of who is serving, as distinct from the metagraph's view of who is registered.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer"],"live_status":"ok"},"fixture":{"artifact_path":"/metagraph/fixtures/sn-53-engy-miners.json","captured_at":"2026-09-10T12:15:45.054Z","request":{"method":"GET","url":"https://provider.engy.ai/api/subnet/v1/miners"},"response":{"content_type":"application/json","status":200}},"fixture_status":{"artifact_path":"/metagraph/fixtures/sn-53-engy-miners.json","captured_at":"2026-09-10T12:15:45.054Z","reason":null,"status":"available"},"health":{"status":"ok","classification":"live","latency_ms":448,"last_ok":"2026-09-11T00:45:12.648Z","last_checked":"2026-09-11T00:45:12.648Z","stale":false,"observed_by":"live-cron-prober"},"kind":"subnet-api","provider":"hanlinai","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://provider.engy.ai/api/subnet/v1/miners'","python":"import requests\n\nresp = requests.get(\"https://provider.engy.ai/api/subnet/v1/miners\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://provider.engy.ai/api/subnet/v1/miners\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-53-engy-miners"},{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"official","base_url":"https://provider.engy.ai/api/subnet/v1/models","capability":"engy provider model catalog","description":"First-party no-auth GET returning the served model catalog with per-model pricing (input/output/cached per 1k in micro-units) and the TOPLOC verification parameters each model is checked under. The subnet's stated purpose is verified inference, so the parameters the verification runs at are part of what it publishes.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer"],"live_status":"ok"},"fixture":{"artifact_path":"/metagraph/fixtures/sn-53-engy-models.json","captured_at":"2026-09-10T12:15:45.054Z","request":{"method":"GET","url":"https://provider.engy.ai/api/subnet/v1/models"},"response":{"content_type":"application/json","status":200}},"fixture_status":{"artifact_path":"/metagraph/fixtures/sn-53-engy-models.json","captured_at":"2026-09-10T12:15:45.054Z","reason":null,"status":"available"},"health":{"status":"ok","classification":"live","latency_ms":771,"last_ok":"2026-09-11T00:45:12.648Z","last_checked":"2026-09-11T00:45:12.648Z","stale":false,"observed_by":"live-cron-prober"},"kind":"subnet-api","provider":"hanlinai","schema_artifact":null,"schema_source":null,"schema_status":null,"schema_url":null,"snippets":{"curl":"curl -sS 'https://provider.engy.ai/api/subnet/v1/models'","python":"import requests\n\nresp = requests.get(\"https://provider.engy.ai/api/subnet/v1/models\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://provider.engy.ai/api/subnet/v1/models\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-53-engy-models"},{"auth":{"location":"header","name":"Authorization","scheme":"basic","value_format":"Basic <base64(user:pass)>"},"auth_required":true,"auth_schemes":["http"],"authority":"registry-observed","base_url":"https://api.engy.ai/openapi.json","capability":"engy OpenAPI schema","description":"OpenAPI/Swagger document confirmed by a safe probe (validated spec structure) at a conventional path. Requires maintainer review before promotion.","eligibility":{"callable":false,"reasons":["not-bittensor-base-layer"],"live_status":"unknown"},"fixture":{"artifact_path":"/metagraph/fixtures/sn-53-openapi-probe-api-engy-ai.json","captured_at":"2026-09-10T12:15:45.054Z","request":{"method":"GET","url":"https://api.engy.ai/openapi.json"},"response":{"content_type":"application/json","status":200}},"fixture_status":{"artifact_path":"/metagraph/fixtures/sn-53-openapi-probe-api-engy-ai.json","captured_at":"2026-09-10T12:15:45.054Z","reason":null,"status":"available"},"health":{"status":"unknown","classification":null,"latency_ms":null,"last_ok":null,"last_checked":null,"stale":false,"observed_by":"unavailable"},"kind":"openapi","provider":"hanlinai","schema_artifact":"/metagraph/schemas/sn-53-openapi-probe-api-engy-ai.json","schema_source":{"artifact":"/metagraph/schemas/sn-53-openapi-probe-api-engy-ai.json","hash":"2bd85cdcf5417b99c99b176eaf4ebc91aa096c10f09def5b1b040b57e25c0656","match":"surface-id","observed_at":"2026-09-10T12:15:45.054Z","status":"captured","surface_id":"sn-53-openapi-probe-api-engy-ai","url":"https://api.engy.ai/openapi.json"},"schema_status":"machine-readable","schema_url":"https://api.engy.ai/openapi.json","snippets":{"curl":"curl -sS 'https://api.engy.ai/openapi.json' \\\n  -H 'Authorization: Basic <base64(user:pass)>'","python":"import requests\n\nresp = requests.get(\"https://api.engy.ai/openapi.json\", headers={\"Authorization\": \"Basic <base64(user:pass)>\"})\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://api.engy.ai/openapi.json\", {\n  headers: { \"Authorization\": \"Basic <base64(user:pass)>\" },\n});\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-53-openapi-probe-api-engy-ai"},{"auth":{"location":"header","name":"Authorization","scheme":"bearer","value_format":"Bearer <token>"},"auth_required":true,"auth_schemes":["http"],"authority":"registry-observed","base_url":"https://engy.ai/api/v1/openapi.json","capability":"engy OpenAPI schema","description":"OpenAPI/Swagger document confirmed by a safe probe (validated spec structure) at a conventional path. Requires maintainer review before promotion.","eligibility":{"callable":false,"reasons":["not-bittensor-base-layer"],"live_status":"unknown"},"fixture":{"artifact_path":"/metagraph/fixtures/sn-53-openapi-probe-engy-ai.json","captured_at":"2026-09-10T12:15:45.054Z","request":{"method":"GET","url":"https://engy.ai/api/v1/openapi.json"},"response":{"content_type":"application/json","status":200}},"fixture_status":{"artifact_path":"/metagraph/fixtures/sn-53-openapi-probe-engy-ai.json","captured_at":"2026-09-10T12:15:45.054Z","reason":null,"status":"available"},"health":{"status":"unknown","classification":null,"latency_ms":null,"last_ok":null,"last_checked":null,"stale":false,"observed_by":"unavailable"},"kind":"openapi","provider":"hanlinai","schema_artifact":"/metagraph/schemas/sn-53-openapi-probe-engy-ai.json","schema_source":{"artifact":"/metagraph/schemas/sn-53-openapi-probe-engy-ai.json","hash":"bac3a32097bc7ba467ef75058fb605af0525ccece4b96ee5ab6cde44e190ee24","match":"surface-id","observed_at":"2026-09-10T12:15:45.054Z","status":"captured","surface_id":"sn-53-openapi-probe-engy-ai","url":"https://engy.ai/api/v1/openapi.json"},"schema_status":"machine-readable","schema_url":"https://engy.ai/api/v1/openapi.json","snippets":{"curl":"curl -sS 'https://engy.ai/api/v1/openapi.json' \\\n  -H 'Authorization: Bearer <token>'","python":"import requests\n\nresp = requests.get(\"https://engy.ai/api/v1/openapi.json\", headers={\"Authorization\": \"Bearer <token>\"})\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://engy.ai/api/v1/openapi.json\", {\n  headers: { \"Authorization\": \"Bearer <token>\" },\n});\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-53-openapi-probe-engy-ai"},{"auth":null,"auth_required":false,"auth_schemes":[],"authority":"community","base_url":"https://api.taomarketcap.com/public/v1/subnets/53/","capability":"EfficientFrontier TaoMarketCap subnet snapshot API","description":"Public no-auth GET /public/v1/subnets/53/ on api.taomarketcap.com returning machine-readable JSON for SN53 on-chain subnet state, SubnetIdentitiesV3 metadata, economics, and dTAO market fields. SignalPlus EfficientFrontier documents validator scoring in its community source repository and mining app, but exposes no verified first-party no-auth public API endpoint; this indexed feed is documented in the TaoMarketCap developer API. TaoMarketCap now enforces a trailing slash (the non-slash path 301s); tracked URL updated to the canonical non-redirecting form. Rejects HEAD (405); probe uses GET.","eligibility":{"callable":true,"reasons":["not-bittensor-base-layer"],"live_status":"ok"},"fixture":{"artifact_path":"/metagraph/fixtures/sn-53-taomarketcap-subnet-api.json","captured_at":"2026-09-10T12:15:45.054Z","request":{"method":"GET","url":"https://api.taomarketcap.com/public/v1/subnets/53/"},"response":{"content_type":"application/json","status":200}},"fixture_status":{"artifact_path":"/metagraph/fixtures/sn-53-taomarketcap-subnet-api.json","captured_at":"2026-09-10T12:15:45.054Z","reason":null,"status":"available"},"health":{"status":"ok","classification":"live","latency_ms":150,"last_ok":"2026-09-11T00:45:12.648Z","last_checked":"2026-09-11T00:45:12.648Z","stale":false,"observed_by":"live-cron-prober"},"kind":"subnet-api","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/53/'","python":"import requests\n\nresp = requests.get(\"https://api.taomarketcap.com/public/v1/subnets/53/\")\nresp.raise_for_status()\nprint(resp.json())","typescript":"const resp = await fetch(\"https://api.taomarketcap.com/public/v1/subnets/53/\");\nif (!resp.ok) throw new Error(`HTTP ${resp.status}`);\nconst data = await resp.json();"},"surface_id":"sn-53-taomarketcap-subnet-api"}],"slug":"engy","subnet_type":"application","operational_observed_at":"2026-09-11T00:45:12.648Z","health_source":"live-cron-prober"},"meta":{"artifact_path":"/metagraph/agent-catalog/53.json","cache":"standard","contract_version":"2026-07-03.2","generated_at":"2026-09-10T12:15:44.147Z","published_at":"2026-09-10T12:15:44.147Z","source":"live-cron-prober","operational_observed_at":"2026-09-11T00:45:12.648Z"}}