{"openapi":"3.1.0","info":{"title":"Veilforge Privacy Gateway","description":"Local-first reversible privacy firewall for LLM traffic.","version":"1.0.0"},"paths":{"/api/v1/health":{"get":{"summary":"Health","operationId":"health_api_v1_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/detect":{"post":{"summary":"Detect","operationId":"detect_api_v1_detect_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TextInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mask":{"post":{"summary":"Mask","operationId":"mask_api_v1_mask_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TextInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/unmask":{"post":{"summary":"Unmask","operationId":"unmask_api_v1_unmask_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TextInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/analyze":{"post":{"summary":"Analyze","operationId":"analyze_api_v1_analyze_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TextInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/sessions":{"get":{"summary":"Sessions","operationId":"sessions_api_v1_sessions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}},"post":{"summary":"Create Session","operationId":"create_session_api_v1_sessions_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/analytics":{"get":{"summary":"Analytics","operationId":"analytics_api_v1_analytics_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v1/chat/completions":{"post":{"summary":"Chat","operationId":"chat_v1_chat_completions_post","parameters":[{"name":"x-veilforge-session","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"X-Veilforge-Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Payload"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"TextInput":{"properties":{"text":{"type":"string","maxLength":500000,"title":"Text"},"session_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Session Id"},"custom_dictionary":{"anyOf":[{"additionalProperties":{"items":{"type":"string"},"type":"array"},"type":"object"},{"type":"null"}],"title":"Custom Dictionary"}},"type":"object","required":["text"],"title":"TextInput"},"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"}}}}