$1 / 24 hours
Decisions API v1
The API endpoint is https://json.earthruntime.com/v1/decisions. API requests require a key and active paid access. Service availability and request limits apply. Try it for $1 / 24 hours The sandbox runs only saved recordings and never calls this endpoint.
Request a structured decision
POST /v1/decisions requires a Bearer key and JSON. All three fields below are required; unknown fields are rejected. Each schema field is a nonempty list of distinct strings, not arbitrary JSON Schema.
{
"context": "The customer cannot log in.",
"schema": {"route": ["identity", "finance"]},
"decoding": "parallel_constrained"
}Choose parallel_constrained or naive. The intended backend uses the same Qwen2.5 Instruct model for both paths. Streaming, boolean schema fields, 255-choice enums, model selection, and chat-model compatibility are outside this v1 local slice. The recorded demos use the older experiment schema; they are not drop-in v1 requests.
Make an API request
After you receive your API key, set DECISIONS_API_KEY privately in your own client environment. Never paste a key into this website, share it, or place it in a URL. This example is documentation only; it does not run in your browser.
curl https://json.earthruntime.com/v1/decisions \
-H "Authorization: Bearer $DECISIONS_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"context":"The customer cannot log in.","schema":{"route":["identity","finance"]},"decoding":"parallel_constrained"}'One-time US$1 access lasts 24 hours from confirmed payment, with no subscription or automatic renewal. Save your API key privately. Return in the same browser to retrieve it; if you lose its cookies or switch browsers, contact support for help. Repeat purchases, top-ups, and account merging are not supported. The separate account preview uses sample data and cannot sign you in, collect payment, deliver keys, or grant access.
Local mock quickstart
Only after starting the sibling API locally, use its supplied local demo key. This example targets your own loopback server; it is not a public service.
curl http://127.0.0.1:8788/v1/decisions \
-H "Authorization: Bearer $DECISIONS_DEMO_KEY" \
-H "Content-Type: application/json" \
-d '{"context":"The customer cannot log in.","schema":{"route":["identity","finance"]},"decoding":"parallel_constrained"}'The local API defaults to port 8788; use the port printed by the server if changed. Set DECISIONS_DEMO_KEY in your client shell to the local test key printed by that server. The mock always chooses the first enum value regardless of the input. This cannot test decision quality.
// Illustrative mock response fields; IDs and expiry vary.
{
"api_version": "v1",
"mode": "mock",
"model": "mock-qwen2.5-instruct",
"decoding": "parallel_constrained",
"decision": {"route": {"value": "identity", "probability": null}},
"probability_status": "unvalidated"
}Full responses also include request_id and entitlement id/expires_at. A valid schema is not evidence of a correct answer. Supplied probabilities are not calibrated confidence.
Access, expiry & rotation
A key needs the explicit product scope decisions.api.v1 and a matching tenant/environment grant. An existing prepaid balance alone does not grant access. Every request rechecks access. Entitlements are valid at their start time and invalid at the exact expiry time. Revocation and expiration are separate; rotating a key does not extend the grant.
Issuance and rotation are internal operations, not documented public routes. The confirmed offer is one-time $1 for 24 hours beginning at confirmed payment. Delivery delays do not restart the window; expiry remains 24 hours after that confirmation. The account page remains a sample-data prototype and does not provide working top-up controls. Token allowances and overages remain unresolved. If you are charged but your purchase is not fulfilled, we will refund it. Other refund requests require approval; email contact@earthruntime.com. Please contact us about an access delivery failure rather than purchasing again.
Refunds & experiment shutdown
If you are charged but your purchase is not fulfilled, we will refund it. Other refund requests require approval; email contact@earthruntime.com.
If the experiment ends, we will stop sales and top-ups, close unpaid checkouts, and reconcile pending payments. We will honor paid access until it expires. The remaining paid window is normally at most 48 hours once pending payments are resolved; unresolved payments may affect the final end date. If we must stop early, we will refund unused time. We will publish the shutdown date and notify customers.
This documentation page does not process payments, issue refunds, or announce a shutdown date.
Local validation limits
65,536-byte request body; 1–16,384 context characters; 1–32 schema fields; 1–64 unique string choices per field; each choice 1–256 characters. These are local validation defaults, not purchased quotas. These numbers do not establish production capacity or a purchased request allowance. Requests share capacity: one inference request is handled at a time across users, so busy or rate-limit responses can occur. A 24-hour access window does not promise unlimited requests or dedicated capacity.
Errors
| Status | Meaning |
|---|---|
| 400 | Invalid request or unknown fields |
| 401 | Missing, invalid, expired, or revoked key |
| 403 | Wrong product scope or absent, not-started, expired, revoked, or mismatched entitlement |
| 429 | Rate limit reached; wait before trying again |
| 502 / 503 / 504 | Invalid inference output, unavailable dependency, or inference timeout |
Errors use {"error":{"code":"…","message":"…","request_id":"…"}}. A 403 is not an instruction to pay again. Retries are not deduplicated inference requests.
OpenCode and MCP
No working OpenCode model-picker or MCP integration is claimed. A decision endpoint is not a chat model. Integration instructions will follow an implemented and tested adapter.
Recording provenance
All seven examples come from an existing local capture of the Qwen2.5 1.5B Instruct experiment. The capture ran parallel constrained decoding first, then normal generation. Playback preserves that ordering and saved token arrival times. The displayed milliseconds are saved server measurements. The “Show final results” control skips animation without changing those numbers; reduced-motion preferences do the same.
Source hashes and original JSON are retained in this candidate’s evidence directory. Exact capture time, checkpoint hash, warm/cold conditions, and repeat samples are unavailable. Earlier three-example captures are not mixed into this dataset. There is no basis for aggregate speed, accuracy, energy, or carbon claims.
Support, returns, and security have supplied expected answers. The four larger examples have no answer keys, so the replay reports only structural differences and leaves decision correctness unassessed. Some original sample text has incomplete amounts; those inputs remain as recorded. The examples do not authorize financial, security, or operational actions.
Missing or invalid recordings
If a capture is absent, its selector entry must say “recording unavailable,” with no generated substitute or timing. A future capture needs an approved isolated environment, fixed input/schema and expected answers, raw output and token events, model/checkpoint identity, UTC timestamp, server and client timing definitions, warm/cold state, and correctness review. Do not use the public browser to perform capture.
Service availability
The checkout page shows current availability. The examples on this site are recorded and do not make live API calls.