POST /v1/decisions · private beta
Send a decision. Get a record back.
The GodEngine Decision API takes a question, the evidence you have, the options on the table and your constraints. It returns a DecisionRecord: the recommended option, ranked alternatives with reasons, the assumptions it made, separate confidence figures and the exact conditions that would change the answer.
Every record is durable, tenant-scoped and append-only. The API is built for services that need to ask for a decision, keep the answer and show their working later.
Invitation only today. What the private beta includes, and what it does not.
{
"question": "Should we buy a CNC machine, lease one, or outsource machining over the next 2 years?",
"evidence": [{"source": "finance", "text": "We have a 10 lakh budget for this."}],
"options": [
{"id": "buy", "label": "Buy outright", "params": {"cost": "45 lakh"}},
{"id": "lease", "label": "Lease", "params": {"cost": "1.5 lakh", "monthly_cost": "30k"}},
{"id": "outsource", "label": "Outsource", "params": {"monthly_cost": "25k"}}
],
"idempotency_key": "order-42"
}
201 Created, a DecisionRecord
{
"id": "6f1c…",
"recommended_option": {
"option_id": "lease", "score": 0.5756, "feasible": true,
"reasons": ["Costs ₹8.70 lakh over 24 months, within the ₹10 lakh budget (87% of it)."]
},
"alternatives": [
{"option_id": "outsource", "score": 0.5408, "feasible": true},
{"option_id": "buy", "score": 0.3074, "feasible": false}
],
"uncertainty": {"calibration_status": "uncalibrated"},
"authorization": {"status": "not_authorized", "executable": false},
"reversal_conditions": [
{"kind": "budget_at_least", "threshold": 4500000, "switches_to": "buy"}
],
"engine_version": "ge-decisions/1.1.0"
}
Where the answer changes
A recommendation is only as good as the inputs behind it, so every record says how far those inputs can move before the answer flips. These reversal conditions come from re-running the scorer, so they are exact for this model, not rules of thumb.
reversal_conditions name the nearest budgets above and below the modelled one at which the recommendation switches: ₹45 lakh and ₹8.70 lakh. The ₹6 lakh edge is plain arithmetic: Outsource, the cheapest option, costs ₹25,000 a month, which is ₹6 lakh over 24 months. Below that, the service still returns the least-bad option, marks it infeasible and says the constraints need a review.The same conditions, as the record writes them
- budget_at_leastBudget rises to at least ₹45 lakh: Buy outright becomes the recommendation.
- budget_belowBudget falls below ₹8.70 lakh: Outsource becomes the recommendation.
- dimensionOutsource's upside is at least 0.46: Outsource overtakes Lease.
What every record promises
These properties come from the service's own code and tests, not from a roadmap.
-
append-only
Durable and never edited
Each record gets a uuid you can store. Once written, a record is not changed: the store refuses any update to a saved row.
-
tenant_id
Scoped to one tenant
Reads filter on the id and the tenant together. Another tenant's id gets the same 404 as an id that does not exist.
-
idempotency_key
Safe to retry
Send the same key with the same inputs and you get the stored record back, byte for byte, with
Idempotent-Replay: true. The engine does not run again. -
inputs_digest
Deterministic scoring
With the optional language-model review off, the same inputs give the same body. A SHA-256 digest of the canonical inputs travels with every record.
-
uncertainty
Honest about confidence
Scores rank options; they are not probabilities. Five assessments are reported separately and never averaged into one number.
-
authorization
Advice, not permission
authorization.statusis alwaysnot_authorized. Acting on a decision needs a separate authorization that this service never grants. -
422
Strict about inputs
Unknown fields, typos in constraint names and money values that cannot be read are refused with the field's location. Nothing is ignored quietly.
-
assumptions
Guesses are written down
When the engine reads a horizon from the question or fills a missing value, the record says so. Params it does not model are listed, not dropped.
-
feasibility
Hard limits are numbers
An option over budget, past a deadline, above a risk cap or excluded is marked infeasible and ranked below every feasible one.
Status
The API row is a fixed statement. The two GodEngine app rows are read from the status service when this page opens; if that fails, they say unknown.
- Decision API
- Private beta, by invitation Built and tested, but not switched on for outside callers yet. By design it answers only direct calls from allowed private networks, so there is no public health check to show.
- GodEngine app: portfolio status
- Unknown
- GodEngine app: health check
- Unknown Not loaded yet. Without status data, nothing is claimed.
Read on
- /quickstartQuick startOne POST, one GET, a safe retry and every error you can get.
- /referenceAPI referenceTokens, tenants, request fields, constraints, amounts, limits and status codes.
- /recordDecisionRecordEvery field of the response and how the scorer reaches it.
- /accessAccess and statusWho can call it today, what is not ready yet and how to ask.