Agent-readable docs index: /llms.txt. Full docs in one file: /llms-full.txt. Download /docs.zip to grep all markdown files locally.

Verify the demo enforcement boundary

/api/v1/owner/workspace/guardians/{id}/verifyPOST
Checks registered local adapters using an isolated synthetic read. Creates and revokes a diagnostic run; no financial effect or model call. Records results only if the draft revision is unchanged. This is not a model-quality evaluation.
Examples are synthetic and illustrate response shape; IDs, signatures, and credentials are not usable authority.
Authorization
ownerSession *cookie halfspan_session
Authenticated HttpOnly owner session. Not an executor credential.
Request Bodyapplication/jsonrequired
Type: object
Response
200 · Successful response. A paused run is an application outcome, not an HTTP error.
id *string
draft *object
Show properties
name *string
Min length: 2Max length: 100
serviceId?string | null
Default: null
environment?"demo" | "staging" | "production"
Default: "demo"
channels?"browser" | "http" | "mcp" | "webmcp"[]
Default: []Max items: 4
operations?string[]
Default: []Max items: 30
mode?"exact" | "bounded"
Default: "exact"
budgetCents?string
Default: "13700"Pattern: ^(0|[1-9]\d*)$Max length: 18
instructions?string
Default: ""Max length: 4000
provider?"openai" | "kimi" | "openrouter"
Default: "openai"
revision *integer
Min: -9007199254740991Max: 9007199254740991
publishedVersion *integer | null
published *object | null
Show options
Any of:
Option 1
name *string
Min length: 2Max length: 100
serviceId?string | null
Default: null
environment?"demo" | "staging" | "production"
Default: "demo"
channels?"browser" | "http" | "mcp" | "webmcp"[]
Default: []Max items: 4
operations?string[]
Default: []Max items: 30
mode?"exact" | "bounded"
Default: "exact"
budgetCents?string
Default: "13700"Pattern: ^(0|[1-9]\d*)$Max length: 18
instructions?string
Default: ""Max length: 4000
provider?"openai" | "kimi" | "openrouter"
Default: "openai"
Option 2
Type: null
verification *object | null
Show options
Any of:
Option 1
revision *integer
Min: -9007199254740991Max: 9007199254740991
checkedAt *string
passed *boolean
checks *object[]
Show item properties
name *string
passed *boolean
detail *string
Option 2
Type: null
publishedVerification *object | null
Show options
Any of:
Option 1
revision *integer
Min: -9007199254740991Max: 9007199254740991
checkedAt *string
passed *boolean
checks *object[]
Show item properties
name *string
passed *boolean
detail *string
Option 2
Type: null
updatedAt *string
400 · Request validation failed.
error *string
reasonCode?string
401 · Sign in to the Halfspan workspace.
error *string
reasonCode?string
403 · Console requests must come from the local owner workspace.
error *string
reasonCode?string
404 · Run not found
error *string
reasonCode?string
500 · The local service could not complete this request.
error *string
reasonCode?string
Request example
curl -X POST "https://service.example.com/api/v1/owner/workspace/guardians/11111111-1111-4111-8111-111111111111/verify" \ -H "x-halfspan-owner: 1" \ -b "halfspan_session=<token>" \ -H "Content-Type: application/json" \ -d '{}'
Response example
{ "id": "00000000-0000-4000-8000-000000000001", "draft": { "name": "Checkout guardian", "serviceId": "local-merchant", "environment": "demo", "channels": [ "http" ], "operations": [ "merchant.catalog", "merchant.prepare", "merchant.purchase", "merchant.status" ], "mode": "exact", "budgetCents": "13700", "instructions": "Review the approved keyboard purchase.", "provider": "openai" }, "revision": 1, "publishedVersion": null, "published": null, "verification": { "revision": 1, "checkedAt": "2026-10-27T12:00:00Z", "passed": false, "checks": [ { "name": "Configuration", "passed": false, "detail": "Complete configuration before activation." } ] }, "publishedVerification": null, "updatedAt": "2026-10-27T12:00:00Z" }