Quickstart
From API key to your first verified decision in about ten minutes.
Vera is consumed in two ways: through the operator console (the product your operations team uses) and through the API (the same engine as a callable component). This guide covers the API path.
1. Get access
Production deployments issue API keys from Settings → API keys in the console. Keys are prefixed vera_sk_ and scoped per integration — issue one key per connected system so access can be revoked independently.
export VERA_API_KEY="vera_sk_..."
export VERA_BASE_URL="https://<your-deployment>/api"
If you don't have a deployment yet, you can exercise the same pipeline interactively in the hosted demo (credentials on request), which runs against a dedicated field-service demonstration workspace.
2. Parse a rule
Send a plain-English business rule and get back its machine-checkable structured form:
curl -s "$VERA_BASE_URL/v1/rules/parse" \
-H "Authorization: Bearer $VERA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"text": "Gold-tier customers must get a P1 response within 4 hours."}'
The response contains the structured rule — scope, condition, requirement — exactly as the solver will enforce it. In the console, an operator confirms this form before the rule activates; via the API, you activate it explicitly.
3. Evaluate a plan
This is the core operation: hand Vera a candidate plan and receive a verdict per rule.
curl -s "$VERA_BASE_URL/v1/plans/evaluate" \
-H "Authorization: Bearer $VERA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"plan": {
"assignments": [
{ "work_order": "WO-4811", "technician": "T-103", "window": "2026-06-08T13:00/15:00" }
]
}
}'
A feasible plan returns "feasible": true with the list of satisfied rules. An infeasible one returns the unsat core — the minimal set of rules and facts that make the plan impossible, with a human-readable explanation. That explanation is computed from the proof, not generated freely.
4. Ask for a decision
POST /v1/reason runs the full pipeline: fact extraction from your description, memory recall, candidate generation, solver verification, ranked recommendation.
curl -s "$VERA_BASE_URL/v1/reason" \
-H "Authorization: Bearer $VERA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"task": "Technician T-117 called in sick. Reassign today'\''s jobs."}'
The response includes the recommended action, every alternative considered, and the trace ID. Whether the action executes immediately or waits for approval depends on the autonomy mode configured for that decision class — approve is the default.
Next steps
- Architecture — how the layers fit together
- API reference — every endpoint, error codes, idempotency
- MCP server — calling Vera from agent frameworks