GET /openapi.json
api-reference / v1
Operation projection
Fetch the signed API description
Full operation schema
{
"operationId": "openapi",
"summary": "Fetch the signed API description",
"security": [],
"responses": {
"200": {
"description": "OpenAPI document plus tools and x-agindow-signature; verify using an independently trusted key.",
"content": {
"application/json": {
"schema": {
"type": "object",
"description": "Signed OpenAPI 3.1 document with tool schemas"
}
}
}
},
"403": {
"description": "Host or browser origin refused"
},
"503": {
"description": "Signing unavailable"
}
}
}Responses
Status-specific responses from the published operation.
| HTTP | Definition |
|---|---|
| 200 | {"description":"OpenAPI document plus tools and x-agindow-signature; verify using an independently trusted key.","content":{"application/json":{"schema":{"type":"object","description":"Signed OpenAPI 3.1 document with tool schemas"}}}} |
| 403 | {"description":"Host or browser origin refused"} |
| 503 | {"description":"Signing unavailable"} |
Verify Ed25519 before use
Fetch GET /openapi.json from your configured surface origin. Read x-agindow-signature, require algorithm Ed25519 and canonicalization agindow.canonical-json/1. Resolve key_id through an independently trusted public-key configuration. Remove x-agindow-signature from the document; recursively sort object keys, preserve array order and JSON primitives, and encode the canonical JSON as UTF-8. Decode the base64 signature and verify the exact bytes with the pinned Ed25519 key. Reject unknown key_id, algorithm or canonicalization and any verification failure. Never trust a key delivered beside the document. The signed tools inputSchema/outputSchema are included in those bytes.
Authentication and errors
Credentials and runtime policy have distinct owners. The surface uses MCP transport errors; the guard runtime taxonomy is separate.