{"openapi":"3.1.0","info":{"title":"Boundary Guard","summary":"The runtime trust layer for production agents.","description":"Deterministic trust and data-hygiene infrastructure for production agents.","version":"0.2.0"},"paths":{"/":{"get":{"summary":"Boundary Guard landing page and service manifest","operationId":"root__get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/healthz":{"get":{"summary":"Healthz","operationId":"healthz_healthz_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":{"type":"string"},"type":"object","title":"Response Healthz Healthz Get"}}}}}}},"/risk-scan":{"post":{"summary":"Risk scan untrusted text before trust","operationId":"risk_scan_risk_scan_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RiskScanRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Risk Scan Risk Scan Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required — the paid host emits an x402 challenge before serving this endpoint.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}},"/json-extract":{"post":{"summary":"Extract a JSON payload from mixed text","operationId":"json_extract_json_extract_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonExtractRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Json Extract Json Extract Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required — the paid host emits an x402 challenge before serving this endpoint.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}},"/schema-normalize":{"post":{"summary":"Normalize untrusted data to a stable schema","operationId":"schema_normalize_schema_normalize_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SchemaNormalizeRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Schema Normalize Schema Normalize Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required — the paid host emits an x402 challenge before serving this endpoint.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}},"/pii-redact":{"post":{"summary":"Redact emails, phones, and secret-like values","operationId":"pii_redact_pii_redact_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PiiRedactRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Pii Redact Pii Redact Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required — the paid host emits an x402 challenge before serving this endpoint.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}},"/contact-extract":{"post":{"summary":"Extract structured contact info from messy text","operationId":"contact_extract_contact_extract_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactExtractRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Contact Extract Contact Extract Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required — the paid host emits an x402 challenge before serving this endpoint.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}},"/text-chunk":{"post":{"summary":"Split long text into deterministic overlapping chunks","operationId":"text_chunk_text_chunk_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TextChunkRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Text Chunk Text Chunk Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required — the paid host emits an x402 challenge before serving this endpoint.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}},"/guard":{"post":{"summary":"Run the full boundary pass and return a Boundary Receipt","operationId":"guard_guard_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuardRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Guard Guard Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}},"402":{"description":"Payment Required — the paid host emits an x402 challenge before serving this endpoint.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}}}}}}},"components":{"schemas":{"ContactExtractRequest":{"properties":{"text":{"type":"string","title":"Text","description":"Messy text or scraped content that may contain emails, phones, URLs, or domains"}},"type":"object","required":["text"],"title":"ContactExtractRequest"},"GuardPolicyRequest":{"properties":{"require_json":{"type":"boolean","title":"Require Json","default":false},"max_risk_score":{"type":"integer","title":"Max Risk Score","default":39},"block_issue_kinds":{"items":{"type":"string"},"type":"array","title":"Block Issue Kinds"},"on_extract_failure":{"type":"string","enum":["retry","block"],"title":"On Extract Failure","default":"retry"},"on_normalize_failure":{"type":"string","enum":["retry","block"],"title":"On Normalize Failure","default":"retry"},"policy_version":{"type":"string","title":"Policy Version","default":"guard-v1"}},"type":"object","title":"GuardPolicyRequest"},"GuardRequest":{"properties":{"text":{"type":"string","title":"Text","description":"Untrusted model/tool text to evaluate before an agent trusts, stores, or acts on it"},"schema":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Schema"},"policy":{"$ref":"#/components/schemas/GuardPolicyRequest"}},"type":"object","required":["text"],"title":"GuardRequest"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"JsonExtractRequest":{"properties":{"text":{"type":"string","title":"Text","description":"Mixed prose/markdown/text that may contain a JSON payload"}},"type":"object","required":["text"],"title":"JsonExtractRequest"},"PiiRedactRequest":{"properties":{"text":{"type":"string","title":"Text","description":"Raw text that may contain emails, phones, or secret-like values to redact"}},"type":"object","required":["text"],"title":"PiiRedactRequest"},"RiskScanRequest":{"properties":{"text":{"type":"string","title":"Text","description":"Raw text to scan for prompt-injection, secret, and PII risk"}},"type":"object","required":["text"],"title":"RiskScanRequest"},"SchemaNormalizeRequest":{"properties":{"data":{"title":"Data"},"schema":{"additionalProperties":true,"type":"object","title":"Schema"}},"type":"object","required":["data","schema"],"title":"SchemaNormalizeRequest"},"TextChunkRequest":{"properties":{"text":{"type":"string","title":"Text","description":"Long text to split into deterministic overlapping chunks for ingestion or RAG"},"max_chars":{"type":"integer","maximum":10000.0,"minimum":1.0,"title":"Max Chars","description":"Maximum characters per chunk","default":800},"overlap_chars":{"type":"integer","maximum":5000.0,"minimum":0.0,"title":"Overlap Chars","description":"Characters of overlap between adjacent chunks","default":120}},"type":"object","required":["text"],"title":"TextChunkRequest"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"servers":[{"url":"https://boundary-guard.vercel.app","description":"Plain preview"},{"url":"https://boundary-guard-x402.onrender.com","description":"Paid x402 host"}]}