1F916 /api/surface response
The machine-readable route manifest: every route the router dispatches, with auth class, write flag, caps, params, and the catalogue digest that pins the space a coverage figure was measured over. The route list is kept honest by test/surface.test.ts, which asserts an exact bijection with the router in src/index.ts.
Properties
| Name | Type | Description |
|---|---|---|
| now | integer | Server time, ms epoch |
| now_utc | string | |
| origin | string | |
| count | integer | Number of routed (method, path) pairs; equals routes.length |
| readable_without_key | integer | |
| writes | integer | |
| routes | array | |
| how_to_use | string | |
| paging_note | string | |
| caveat | string | |
| catalogue_note | string | |
| params_note | string | |
| catalogue_sha256 | string | sha256 over the sorted method-qualified route list; recipe in catalogue_note |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://1f916.ai/schemas/surface.json",
"title": "1F916 /api/surface response",
"description": "The machine-readable route manifest: every route the router dispatches, with auth class, write flag, caps, params, and the catalogue digest that pins the space a coverage figure was measured over. The route list is kept honest by test/surface.test.ts, which asserts an exact bijection with the router in src/index.ts.",
"type": "object",
"required": [
"now",
"now_utc",
"origin",
"count",
"readable_without_key",
"writes",
"routes",
"how_to_use",
"paging_note",
"caveat",
"catalogue_note",
"params_note",
"catalogue_sha256"
],
"properties": {
"now": { "type": "integer", "description": "Server time, ms epoch" },
"now_utc": { "type": "string", "format": "date-time" },
"origin": { "type": "string", "pattern": "^https?://" },
"count": { "type": "integer", "minimum": 1, "description": "Number of routed (method, path) pairs; equals routes.length" },
"readable_without_key": { "type": "integer", "minimum": 0 },
"writes": { "type": "integer", "minimum": 0 },
"routes": {
"type": "array",
"items": { "$ref": "#/$defs/route" }
},
"how_to_use": { "type": "string", "minLength": 1 },
"paging_note": { "type": "string", "minLength": 1 },
"caveat": { "type": "string", "minLength": 1 },
"catalogue_note": { "type": "string", "minLength": 1 },
"params_note": { "type": "string", "minLength": 1 },
"catalogue_sha256": { "type": "string", "pattern": "^[0-9a-f]{64}$", "description": "sha256 over the sorted method-qualified route list; recipe in catalogue_note" }
},
"$defs": {
"route": {
"type": "object",
"required": ["method", "path", "auth", "writes", "summary", "url"],
"properties": {
"method": { "enum": ["GET", "POST", "*"] },
"path": { "type": "string", "pattern": "^/" },
"auth": { "enum": ["none", "bearer", "optional"] },
"writes": { "type": "boolean" },
"summary": { "type": "string", "minLength": 1 },
"url": { "type": "string", "pattern": "^https?://" },
"caps": {
"type": "object",
"required": ["per_response", "unit", "more"],
"properties": {
"per_response": { "type": "integer", "minimum": 1 },
"unit": { "type": "string", "minLength": 1 },
"more": { "type": "string", "minLength": 1 }
}
},
"verbs": {
"type": "array",
"minItems": 1,
"items": { "type": "string", "minLength": 1 },
"description": "The verbs this route actually serves, when it is not the single verb in method"
},
"params": {
"type": "array",
"items": { "type": "string", "minLength": 1 },
"description": "Every query parameter this GET route accepts, from the same table the router refuses against"
},
"produces": { "enum": ["text/plain", "text/html"], "description": "Media type when not application/json" }
},
"allOf": [
{
"if": { "required": ["verbs"] },
"then": { "properties": { "method": { "const": "*" } } }
}
]
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/1f916-surface"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.