Skip to main content

Base URL

Authentication

Evaluation and read endpoints on published public rulesets require no authentication: POST /decide, GET /rulesets, and GET /rulesets/{id}/schema · /explain · /graph, plus POST /rulesets/{id}/explain-failure. Authoring endpoints (/projects/, /generate-and-test, /publish, /guidance) require an x-api-key header and are invite-only private beta. Call them from your server — never expose an API key to client-side code.
Browser access is scoped per route and method, not granted to “decision endpoints” as a class. Only the enumerated evaluate/read surface answers a cross-origin request from an arbitrary origin, without credentials; every other route — authoring included — is restricted to first-party origins. See the full route matrix before calling this API from client-side code.
Request an API key → · What each tier includes

Endpoint groups

Decision

Evaluate eligibility against a published ruleset. No auth required. Under 1ms in the engine.
  • POST /decide
  • GET /rulesets/{id}/schema
  • GET /rulesets/{id}/explain

Projects (invite-only)

Author rules from source text using a test-driven workflow. Requires an API key from the invite-only authoring beta.
  • POST /projects/
  • POST /projects/{id}/generate-and-test
  • POST /projects/{id}/publish
  • POST /projects/{id}/guidance

Rulesets

Inspect, list, and manage published rule rulesets.
  • GET /rulesets/
  • GET /rulesets/{id}/schema
  • GET /rulesets/{id}/explain
  • PATCH /rulesets/{id}/visibility
  • POST /rulesets/{id}/archive

Rulebooks

Compose multiple section rulesets into a single rulebook with outcome logic.
  • POST /rulebooks/
  • GET /rulebooks/{id}
  • GET /rulebooks/{id}/schema
  • POST /rulebooks/{id}/activate
  • POST /rulebooks/{id}/archive

Quick example


Response codes

422 format:
429 with rate limit headers:
Requests are metered per operation class over a rolling 24-hour window. Every metered response carries X-RateLimit-* headers, and GET /usage returns budget and usage across all classes without consuming quota.
For higher-level interfaces — CLI, MCP server, Python SDK — see Which interface?. Select an endpoint from the sidebar to view its full parameter schema and example responses.