Skip to main content
API referenceSurfaces

Surface Verify

Last updated

GET
/api/v1/surfaces/{surface_id}/verify

Probe ONE registered surface right now and report whether it is actually callable. Catalog-resolved, not arbitrary URL fetching: name a surface the registry knows and the Worker probes the URL it has on file, echoing the resolved identity (surface_key, netuid, kind, url, provider, auth_required) beside the verdict (status, classification, callable) and its evidence (latency_ms, status_code, error). from_cache says whether this was a fresh probe. Use it as the last step before integrating, after list_subnet_apis/get_api_schema. Mirrored by the verify_integration MCP tool. Served live (no static file); 404 surface_not_found when no catalogued surface matches.

Path Parameters

surface_id*string

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/v1/surfaces/string/verify"
{  "data": {    "auth_required": true,    "callable": false,    "classification": "example",    "error": "example",    "from_cache": false,    "kind": "example",    "latency_ms": 120,    "netuid": 7,    "probed_at": "2026-06-01T00:00:00.000Z",    "provider": "example-provider",    "schema_version": 1,    "status": "ok",    "status_code": 1,    "surface_id": "example",    "surface_key": "example",    "url": "https://api.metagraph.sh/example"  },  "meta": {    "artifact_path": "example",    "cache": "short",    "contract_version": "2026-06-29.1",    "generated_at": "2026-06-01T00:00:00.000Z",    "pagination": {      "collection": "example",      "cursor": 1,      "limit": 1,      "next_cursor": 1,      "order": "asc",      "returned": 1,      "sort": "example",      "total": 1    },    "published_at": "2026-06-01T00:00:00.000Z",    "source": "live-cron-prober",    "stale_contract": {      "built_under": "example",      "live": "example"    }  },  "ok": true,  "schema_version": 1}