Base URL
Authentication
All requests require two headers:Decision contract
POST /api/v1/evaluate is the primary enforcement API. Call it before your runtime dispatches a proposed tool or agent action, then honor the returned decision.
Human hold. On the MCP connector path, a borderline action can be held for a human before dispatch. Unresolved holds fail closed.
POST /api/v1/evaluate is strictly synchronous and always returns ALLOW or DENY; if that path would need to wait, it returns DENY with REVIEW_REQUIRED_FAIL_CLOSED.
Sector8 returns the verdict. Your application owns enforcing it at the dispatch boundary for actions routed through evaluate.
Coverage applies to proposed actions your runtime routes through this API. Unconnected tools and bypassed dispatch paths are not automatically covered.
Policy model
Sector8 uses versioned policy sets, bound per tenant. The active tenant binding determines which policy version evaluate applies for routed actions in that environment. Baseline safety checks remain active alongside tenant-bound policy. Agent-scoped policy can add narrower controls for a specific agent or action. Operators can bind, suspend, resume, and review policy state through the control plane; evaluate is the runtime path that returns the enforceable decision. Decision artifacts commonly include:
See Evaluate for request and response examples.
Endpoints
Telemetry records what happened. It is not a substitute for evaluate-before-dispatch.
Reason codes
reason_code is an opaque support/evidence field. Honor decision for dispatch. Do not write exhaustive if reason_code == ... handling — the set is not a closed public enum and the same unsafe action may be blocked by different layers.
Illustrative values you may see:
Exact
reason_code and policy_version_id values depend on your active policy, environment, and evaluation path.
Client timeout
ForPOST /api/v1/evaluate, set an HTTP client timeout of at least 10 seconds (10s recommended default). Fail closed on timeout. Aggressive 1–2s timeouts will block legitimate ALLOW traffic.
Rate limits
The shipped app and MCP server enforce per-session, per-tool rate limiting via an in-memory sliding window. The current injected runtime limit is 8 requests per 10 seconds per session and tool combination. The limiter implementation’s class default is 25 requests per 10 seconds. Requests over the limit returnRATE_LIMIT_EXCEEDED.
Contact support to adjust limits for your deployment.