CompactVerifySchemaResponse
The `"detail": "compact"` response shape (verifier_version 0.4.0): the same summary, next_actions, result, receipt fields, verify and attestation as VerifySchemaResponse - same field order, same values - with errors, errors_detail, flags, hints and the scores left out entirely (not emptied). Still fully signed: attest() runs on exactly this shape, not on a full response with fields hidden afterward. `extra="forbid"` (unlike the pydantic default) is deliberate: FastAPI's `response_model=VerifySchemaResponse | CompactVerifySchemaResponse` picks whichever member actually validates, and without this a "full" dict would also satisfy this model (pydantic's default is to silently ignore fields a model doesn't declare), non-deterministically returning a full response shaped as compact.
Properties
| Name | Type | Description |
|---|---|---|
| summary | object | |
| next_actions | array | |
| result | string | |
| verification_id | string | |
| task_id | string | |
| agent_id | object | |
| output_hash | object | |
| schema_hash | object | |
| rules_hash | object | |
| verified_at | string | |
| verifier_version | string | |
| enforce_rules | boolean | |
| strict_content_check | boolean | |
| verify | object | |
| attestation | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/sarnai-dev/json-schema/sarnai-dev-compact-verify-schema-response-schema.json",
"title": "CompactVerifySchemaResponse",
"description": "The `\"detail\": \"compact\"` response shape (verifier_version 0.4.0): the same summary,\nnext_actions, result, receipt fields, verify and attestation as VerifySchemaResponse -\nsame field order, same values - with errors, errors_detail, flags, hints and the scores\nleft out entirely (not emptied). Still fully signed: attest() runs on exactly this\nshape, not on a full response with fields hidden afterward.\n\n`extra=\"forbid\"` (unlike the pydantic default) is deliberate: FastAPI's\n`response_model=VerifySchemaResponse | CompactVerifySchemaResponse` picks whichever\nmember actually validates, and without this a \"full\" dict would also satisfy this\nmodel (pydantic's default is to silently ignore fields a model doesn't declare),\nnon-deterministically returning a full response shaped as compact.",
"x-generated": "2026-10-30",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/verify-openapi.json#/components/schemas/CompactVerifySchemaResponse",
"properties": {
"summary": {
"$ref": "#/$defs/Summary"
},
"next_actions": {
"items": {
"additionalProperties": {
"type": "string"
},
"type": "object"
},
"type": "array",
"title": "Next Actions"
},
"result": {
"type": "string",
"enum": [
"pass",
"fail"
],
"title": "Result"
},
"verification_id": {
"type": "string",
"title": "Verification Id"
},
"task_id": {
"type": "string",
"title": "Task Id"
},
"agent_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Agent Id"
},
"output_hash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Output Hash"
},
"schema_hash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Schema Hash"
},
"rules_hash": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Rules Hash"
},
"verified_at": {
"type": "string",
"title": "Verified At"
},
"verifier_version": {
"type": "string",
"title": "Verifier Version"
},
"enforce_rules": {
"type": "boolean",
"title": "Enforce Rules"
},
"strict_content_check": {
"type": "boolean",
"title": "Strict Content Check"
},
"verify": {
"$ref": "#/$defs/VerifySection"
},
"attestation": {
"$ref": "#/$defs/Attestation"
}
},
"additionalProperties": false,
"type": "object",
"required": [
"summary",
"next_actions",
"result",
"verification_id",
"task_id",
"agent_id",
"output_hash",
"schema_hash",
"rules_hash",
"verified_at",
"verifier_version",
"enforce_rules",
"strict_content_check",
"verify",
"attestation"
],
"$defs": {
"Attestation": {
"properties": {
"algorithm": {
"type": "string",
"const": "Ed25519",
"title": "Algorithm"
},
"key_version": {
"type": "string",
"title": "Key Version"
},
"timestamp": {
"type": "string",
"title": "Timestamp"
},
"signature": {
"type": "string",
"title": "Signature"
}
},
"type": "object",
"required": [
"algorithm",
"key_version",
"timestamp",
"signature"
],
"title": "Attestation"
},
"Summary": {
"properties": {
"result": {
"type": "string",
"enum": [
"pass",
"fail"
],
"title": "Result",
"description": "Same value as the top-level `result`."
},
"blocking_checks": {
"items": {
"type": "string"
},
"type": "array",
"title": "Blocking Checks",
"description": "Distinct check codes that caused 'fail' (the same codes used in `errors_detail[].check`, `flags[].check` and `hints[].check`), in first-seen order; empty on 'pass'."
}
},
"type": "object",
"required": [
"result",
"blocking_checks"
],
"title": "Summary",
"description": "Compact digest of the verdict, for a caller that wants the headline without reading\n`errors`/`flags` (verifier_version 0.4.0)."
},
"VerifySection": {
"properties": {
"public_key_url": {
"type": "string",
"title": "Public Key Url",
"description": "Agent-card URL listing the public key for key_version below, and every key this service has ever signed with."
},
"key_version": {
"type": "string",
"title": "Key Version",
"description": "Matches attestation.key_version."
},
"canonicalization": {
"type": "string",
"title": "Canonicalization",
"description": "How every hash below, and the signed bytes themselves, are computed."
},
"hash_algorithm": {
"type": "string",
"title": "Hash Algorithm",
"description": "Algorithm behind every *_hash field in this response."
},
"service": {
"type": "string",
"title": "Service",
"description": "This service's name."
},
"mcp": {
"type": "string",
"title": "Mcp",
"description": "This service's MCP (Model Context Protocol) endpoint."
}
},
"type": "object",
"required": [
"public_key_url",
"key_version",
"canonicalization",
"hash_algorithm",
"service",
"mcp"
],
"title": "VerifySection",
"description": "Compact, self-describing block every signed attestation and receipt carries (2026-09-30,\nverifier_version 0.4.0) - inside the signature, alongside `attestation` itself - so a\nverifier needs nothing but this response and the URL below, not a separate lookup or\nprior knowledge of this service's conventions."
}
}
}
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/sarnai-dev-compact-verify-schema-response"
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.