{"openapi":"3.1.0","info":{"title":"ACS Lite API","version":"1.0.0","description":"ACS Lite — Automated Content Safety for text. Rule-based moderation powered by a probabilistic decision engine. Each credential is bound to a ruleset. Single and batch, allow/review/block."},"servers":[{"url":"https://acs-lite.api.efficientstack.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Your API key, e.g. acs_live_..."}},"schemas":{"ModerationResult":{"type":"object","properties":{"index":{"type":"integer"},"id":{"type":"string","nullable":true},"decision":{"type":"string","enum":["allow","review","block","error"]},"flagged":{"type":"boolean"},"score":{"type":"integer","minimum":0,"maximum":5},"confidence":{"type":"number"},"rules":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"probability":{"type":"number"},"score":{"type":"integer"},"action":{"type":"string","enum":["block","review"]}}}},"reason":{"type":"string"},"probabilities":{"type":"object","additionalProperties":{"type":"number"}},"cached":{"type":"boolean"},"ruleset":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"version":{"type":"integer"}}},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"RulesetRef":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"version":{"type":"integer"}}}}},"paths":{"/api/v1/check":{"post":{"summary":"Moderate content","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["content"],"properties":{"content":{"oneOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"id":{"type":"string"},"rules":{"type":"array","items":{"type":"string"},"description":"Subset of the key's ruleset."},"thresholds":{"type":"object"},"context":{"type":"object","properties":{"content_type":{"type":"string"},"surface":{"type":"string"},"locale":{"type":"string"}}},"include":{"type":"array","items":{"type":"string","enum":["rules","reason","probabilities"]}},"cache":{"type":"boolean","default":true},"metadata":{"type":"object"},"client_id":{"type":"string"},"timeout_ms":{"type":"integer"}}}}}},"responses":{"200":{"description":"Moderation verdict","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/ModerationResult"}]}}}},"400":{"description":"Invalid request"},"401":{"description":"Authentication failed"},"402":{"description":"The key reached its hard spend budget (budget_exceeded)"},"429":{"description":"Rate limited"},"503":{"description":"Engine unavailable"}}}},"/api/v1/batch":{"post":{"summary":"Moderate up to 200 items","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["items"],"properties":{"items":{"type":"array","maxItems":200,"items":{"oneOf":[{"type":"string"},{"type":"object","properties":{"id":{"type":"string"},"content":{"type":"string"},"metadata":{"type":"object"}},"required":["content"]}]}},"rules":{"type":"array","items":{"type":"string"}},"thresholds":{"type":"object"},"include":{"type":"array","items":{"type":"string"}},"cache":{"type":"boolean"}}}}}},"responses":{"200":{"description":"Batch verdicts"},"400":{"description":"Invalid request"},"401":{"description":"Authentication failed"},"402":{"description":"The key reached its hard spend budget (budget_exceeded)"},"429":{"description":"Rate limited"},"503":{"description":"Engine unavailable"}}}},"/api/v1/rules":{"get":{"summary":"List the ruleset bound to the calling key","responses":{"200":{"description":"Ruleset"}}}},"/api/v1/me":{"get":{"summary":"Key info, ruleset, limits, budget and usage","responses":{"200":{"description":"Key"}}}},"/api/v1/health":{"get":{"summary":"Liveness probe","security":[],"responses":{"200":{"description":"OK"}}}}}}