Request contract
Send POST /api/v1/decisions with Authorization: Bearer YOUR_API_KEY, Content-Type: application/json, and an Idempotency-Key. The body contains text (3–6,000 characters), instructions (3–1,500 characters), labels (2–12 unique choices, each up to 60 characters), and threshold (0.5–1).
One successful request consumes one decision credit. Anonymous browser trials use a separate allowance and do not expose your provider credentials.
Response contract
Read choice, confidence, probabilities, needsReview, model, id, and latencyMs. Confidence may be null if the upstream model omits it. In that case needsReview is true. Treat model failure as an error response, never as a successful default label.
Safe retries
Use a unique key for each logical request and reuse it when the network result is uncertain. Replaying a completed request returns its stored result without another debit. Reusing a key with different input returns 409. A failed request requires a new key after the underlying issue is resolved.