Patronus Protect · Schema
Patronus local runtime v1 NDJSON frame
AI SafetyPrompt InjectionSecurityLLMAgent-NativeMCPDLPPIIOn-DeviceAI Firewall
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://patronus.studio/schemas/runtime-v1.schema.json",
"title": "Patronus local runtime v1 NDJSON frame",
"oneOf": [
{ "$ref": "#/$defs/request" },
{ "$ref": "#/$defs/reply" },
{ "$ref": "#/$defs/error" }
],
"$defs": {
"id": { "type": "string", "pattern": "^[A-Za-z0-9_-]{1,128}$" },
"session": { "type": "string", "pattern": "^[A-Za-z0-9_-]{32,128}$" },
"text_payload": {
"oneOf": [
{ "type": "string" },
{ "type": "array", "items": { "type": "string" } }
]
},
"request": {
"type": "object", "additionalProperties": false,
"required": ["id", "method", "params"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"method": { "enum": ["hello", "submit", "check", "read_redacted", "cancel"] },
"params": { "type": "object" }
},
"allOf": [
{
"if": { "properties": { "method": { "const": "hello" } } },
"then": { "properties": { "params": { "maxProperties": 0 } } }
},
{
"if": { "properties": { "method": { "const": "submit" } } },
"then": { "properties": { "params": { "$ref": "#/$defs/submit" } } }
},
{
"if": { "properties": { "method": { "enum": ["check", "read_redacted", "cancel"] } } },
"then": { "properties": { "params": { "$ref": "#/$defs/lookup" } } }
}
]
},
"submit": {
"type": "object", "additionalProperties": false,
"required": ["session", "direction", "tool", "call_id", "payload"],
"properties": {
"session": { "$ref": "#/$defs/session" },
"direction": { "enum": ["request", "response"] },
"tool": { "type": "string", "minLength": 1, "maxLength": 512 },
"call_id": { "type": "string", "minLength": 1, "maxLength": 512 },
"payload": { "$ref": "#/$defs/text_payload" }
},
"description": "The service additionally enforces byte limits on UTF-8 tool/call IDs and serialized payloads."
},
"lookup": {
"type": "object", "additionalProperties": false,
"required": ["session", "scan_id"],
"properties": {
"session": { "$ref": "#/$defs/session" },
"scan_id": { "$ref": "#/$defs/id" }
}
},
"reply": {
"type": "object", "additionalProperties": false, "required": ["id", "result"],
"properties": {
"id": { "$ref": "#/$defs/id" },
"result": { "anyOf": [
{ "$ref": "#/$defs/hello" },
{ "$ref": "#/$defs/status" },
{ "$ref": "#/$defs/redacted" },
{ "$ref": "#/$defs/unavailable" }
] }
}
},
"error": {
"type": "object", "additionalProperties": false, "required": ["id", "error"],
"properties": {
"id": { "anyOf": [{ "$ref": "#/$defs/id" }, { "const": "" }] },
"error": {
"type": "object", "additionalProperties": false, "required": ["code", "message"],
"properties": {
"code": { "type": "string" },
"message": { "const": "Local security scan request could not be completed." }
}
}
}
},
"hello": {
"type": "object", "additionalProperties": false,
"required": ["protocol_version", "provider", "scanner_version", "ark_version", "ready", "runtime"],
"properties": {
"protocol_version": { "const": 1 }, "provider": { "const": "local" },
"scanner_version": { "type": "string" }, "ark_version": { "type": "string" },
"ready": { "type": "boolean" },
"runtime": {
"type": "object", "additionalProperties": { "type": "integer", "minimum": 0 },
"required": ["response_wait_ms", "request_timeout_ms", "scan_timeout_ms", "retention_seconds", "max_payload_bytes", "max_store_bytes", "max_pending_jobs"]
}
}
},
"status": {
"type": "object", "additionalProperties": false, "required": ["scan_id", "status"],
"properties": {
"scan_id": { "$ref": "#/$defs/id" },
"status": { "enum": ["pending", "approved", "dangerous", "failed", "incomplete", "cancelled", "expired"] },
"job_status": { "enum": ["queued", "running", "completed", "failed", "incomplete", "cancelled", "expired"] },
"findings": { "type": "array", "items": { "$ref": "#/$defs/finding" } },
"coverage": { "anyOf": [{ "type": "null" }, { "$ref": "#/$defs/coverage" }] },
"redacted_available": { "type": "boolean" }, "result": { "$ref": "#/$defs/text_payload" }
},
"if": { "properties": { "status": { "const": "approved" } } },
"then": { "properties": { "job_status": { "const": "completed" } } },
"else": { "not": { "required": ["result"] } },
"description": "Only approved response checks contain result. Request checks and cancellation never contain payloads."
},
"redacted": {
"type": "object", "additionalProperties": false, "required": ["scan_id", "status", "result"],
"properties": { "scan_id": { "$ref": "#/$defs/id" }, "status": { "const": "redacted" }, "result": { "$ref": "#/$defs/text_payload" } }
},
"unavailable": {
"type": "object", "additionalProperties": false, "required": ["status"],
"properties": { "status": { "const": "unavailable" } }
},
"coverage": {
"type": "object", "additionalProperties": false,
"required": ["fields_total", "fields_scanned", "bytes_total", "bytes_scanned", "complete"],
"properties": {
"fields_total": { "type": "integer", "minimum": 0 }, "fields_scanned": { "type": "integer", "minimum": 0 },
"bytes_total": { "type": "integer", "minimum": 0 }, "bytes_scanned": { "type": "integer", "minimum": 0 },
"complete": { "type": "boolean" }
}
},
"finding": {
"type": "object", "additionalProperties": false,
"required": ["field_id", "start_byte", "end_byte", "category", "label", "confidence"],
"properties": {
"field_id": { "type": "integer", "minimum": 0 }, "start_byte": { "type": "integer", "minimum": 0 },
"end_byte": { "type": "integer", "minimum": 0 }, "category": { "type": "string" }, "label": { "type": "string" },
"level": { "enum": ["l1", "l2", "l3"] },
"confidence": { "type": "number", "minimum": 0, "maximum": 1 }
}
}
}
}
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
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/patronus-protect-runtime-v1.schema"
All schemas
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.