Skip to main content
api.aethis.ai serves engine 0.49.1, which is the contract these pages describe; every response carries engine_version so you can confirm which build answered you. What the deployed engine serves.
One command. No account, no API key, no model-provider key, nothing installed beyond curl. It returns a real decision from the production engine.
This is the evaluate tier, and it is open to everyone. Authoring and publishing your own rules is a separate, invite-only tier — what the two tiers are.

Decide

You get back a decision plus the audit envelope that makes it replayable:
That is a Free School Meals child-eligibility check, compiled from the governing guidance and evaluated as formal logic. No language model ran. Send the same inputs again and you get the same inputs_hash and the same decision, every time.
Read field_errors before decision. Misspell a field — change "child.age" to "child.aeg" — and the response comes back with that key in field_errors.On the deployed engine you will still see "decision": "eligible" beside it, because the missing child.age is not required for this particular route through the rules. That combination is exactly what the release candidate removes: a blocking input error will force "undetermined". Until it lands, check field_errors yourself and never treat a decision as terminal while it is non-empty.

Ask what a ruleset expects

You do not have to guess the field names. Every public ruleset publishes its input contract:

See what else is live

Every currently-active public ruleset, with its slug, description and rule count. Pick another slug, go back to the first command, change one string.

What you just used

  • No key. Decisions, schemas, explanations and graphs on published public rulesets are open. Anonymous callers are rate-limited per client; the budgets are on the REST API page.
  • No model provider. Nothing in this path calls a language model. Models are used once, at authoring time, to propose the logic; the decision itself is compiled rule evaluation.
  • A real audit trail. decision_id and inputs_hash identify the call, and ruleset_id identifies the published rules that produced it. The envelope also carries a resolved ruleset_version and a content_digest that pins the exact rule content, both served today. Store decision_id and inputs_hash at minimum, and content_digest if you need to prove which published rules answered.

Next

Show the reasoning

Add include_trace or include_explanation and get the per-criterion working, plus the verbatim clause each criterion cites.

More live rulesets

Spacecraft certification, construction insurance, consumer credit — all anonymous, all copy-pasteable.

Pick an interface

The same call from the CLI, the Python SDK, or your coding agent over MCP.

Author your own rules

Compiling your own source documents into rules is invite-only. Here is what that tier includes and how to request it.