{"openapi":"3.1.0","info":{"title":"Koreshield Agent Protection API","version":"0.5.6","description":"Server-side, scan-only contract for checking untrusted input, retrieved context, and proposed tool actions. Keep the API key outside model context, browser code, and mobile clients."},"servers":[{"url":"https://api.koreshield.com"}],"tags":[{"name":"Protection","description":"Detect-first checks at the three AI workflow trust boundaries."}],"paths":{"/v1/scan":{"post":{"tags":["Protection"],"summary":"Scan Input","operationId":"scan_input","security":[{"KoreshieldApiKey":[]}],"parameters":[{"name":"koreshield_session","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Koreshield Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InputScanResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/rag/scan":{"post":{"tags":["Protection"],"summary":"Scan Context","operationId":"scan_context","security":[{"KoreshieldApiKey":[]}],"parameters":[{"name":"koreshield_session","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Koreshield Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RAGScanRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContextScanResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/tools/scan":{"post":{"tags":["Protection"],"summary":"Scan Action","operationId":"scan_action","security":[{"KoreshieldApiKey":[]}],"parameters":[{"name":"koreshield_session","in":"cookie","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Koreshield Session"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToolScanRequest"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionScanResponse"}}}},"403":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActionScanResponse"}}},"description":"Forbidden"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"ActionScanResponse":{"properties":{"blocked":{"type":"boolean","title":"Blocked"},"would_block":{"type":"boolean","title":"Would Block"},"mode":{"type":"string","enum":["detect","enforce"],"title":"Mode"},"scan_id":{"type":"string","title":"Scan Id"},"is_safe":{"type":"boolean","title":"Is Safe"},"allowed":{"type":"boolean","title":"Allowed"}},"additionalProperties":true,"type":"object","required":["blocked","would_block","mode","scan_id","is_safe","allowed"],"title":"ActionScanResponse"},"ContextScanResponse":{"properties":{"blocked":{"type":"boolean","title":"Blocked"},"would_block":{"type":"boolean","title":"Would Block"},"mode":{"type":"string","enum":["detect","enforce"],"title":"Mode"},"scan_id":{"type":"string","title":"Scan Id"},"is_safe":{"type":"boolean","title":"Is Safe"}},"additionalProperties":true,"type":"object","required":["blocked","would_block","mode","scan_id","is_safe"],"title":"ContextScanResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InputScanResponse":{"properties":{"blocked":{"type":"boolean","title":"Blocked"},"would_block":{"type":"boolean","title":"Would Block"},"mode":{"type":"string","enum":["detect","enforce"],"title":"Mode"},"request_id":{"type":"string","title":"Request Id"},"is_safe":{"type":"boolean","title":"Is Safe"}},"additionalProperties":true,"type":"object","required":["blocked","would_block","mode","request_id","is_safe"],"title":"InputScanResponse"},"RAGScanRequest":{"properties":{"user_query":{"type":"string","maxLength":20000,"title":"User Query","default":""},"documents":{"items":{"$ref":"#/components/schemas/RetrievedDocumentRequest"},"type":"array","maxItems":20,"minItems":1,"title":"Documents"}},"type":"object","required":["documents"],"title":"RAGScanRequest"},"RetrievedDocumentRequest":{"properties":{"id":{"type":"string","maxLength":255,"minLength":1,"title":"Id"},"content":{"type":"string","maxLength":100000,"minLength":1,"title":"Content"},"metadata":{"additionalProperties":true,"type":"object","title":"Metadata"},"score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Score"}},"type":"object","required":["id","content"],"title":"RetrievedDocumentRequest"},"ScanRequest":{"properties":{"prompt":{"type":"string","maxLength":20000,"minLength":1,"title":"Prompt"},"context":{"additionalProperties":true,"type":"object","title":"Context"}},"type":"object","required":["prompt"],"title":"ScanRequest"},"ToolScanRequest":{"properties":{"tool_name":{"type":"string","maxLength":200,"minLength":1,"title":"Tool Name"},"args":{"additionalProperties":true,"type":"object","title":"Args"},"context":{"additionalProperties":true,"type":"object","title":"Context"}},"type":"object","required":["tool_name"],"title":"ToolScanRequest"},"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"}},"securitySchemes":{"KoreshieldApiKey":{"type":"apiKey","in":"header","name":"X-API-Key","description":"A revocable Koreshield integration key with only the scan scope."}}}}