{"openapi":"3.1.0","info":{"title":"Behavry Verification Service","description":"Independently verify a Behavry APR evidence package. No Behavry account, no tenant access, and no database required. Nothing submitted here is stored.","version":"0.1.0"},"paths":{"/api/v1/verify":{"post":{"summary":"Verify Endpoint","description":"Verify an evidence package supplied as an upload or by URL.\n\n``trust_anchor`` is the JSON text of an anchor obtained from the issuing\ntenant. Supplying it is what makes the result independent of Behavry.","operationId":"verify_endpoint_api_v1_verify_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_verify_endpoint_api_v1_verify_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/verify.txt":{"post":{"summary":"Verify Text Endpoint","description":"Same verification, rendered as the plain-text report (for CI use).","operationId":"verify_text_endpoint_api_v1_verify_txt_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_verify_text_endpoint_api_v1_verify_txt_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"text/plain":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/trust-anchor.json":{"get":{"summary":"Trust Anchor Document","description":"The published keyset.\n\nEvery evidence package hardcodes this URL in its\n``verification_metadata.trust_anchor_url``, so it must always resolve.","operationId":"trust_anchor_document_trust_anchor_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/health":{"get":{"summary":"Health","operationId":"health_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Api V1 Health Get"}}}}}}},"/":{"get":{"summary":"Index","operationId":"index__get","responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}}}}}},"components":{"schemas":{"Body_verify_endpoint_api_v1_verify_post":{"properties":{"package":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"Package"},"package_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Package Url"},"trust_anchor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trust Anchor"}},"type":"object","title":"Body_verify_endpoint_api_v1_verify_post"},"Body_verify_text_endpoint_api_v1_verify_txt_post":{"properties":{"package":{"anyOf":[{"type":"string","contentMediaType":"application/octet-stream"},{"type":"null"}],"title":"Package"},"trust_anchor":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trust Anchor"}},"type":"object","title":"Body_verify_text_endpoint_api_v1_verify_txt_post"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"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"}}}}