Create decision
Classify or score information with a model marked supports_decisions: true. Jev uses OpenRouter; GPT-6 Luna uses OpenAI directly. Both accept the same question schema. The endpoint does not select a fallback model.
POST
cURL
How are credits checked?
How are credits checked?
GPT-6 Luna Decisions uses input-only pricing with a separate long-context tier, not its chat rates. Gumloop checks credits before sending the request to a provider; insufficient credits return HTTP
402 credit_limit_exceeded. A provider call whose cost is fully waived because you use your own API key is exempt from this preflight.Which question type should I use?
Which question type should I use?
Choose your own question ids. Each answer uses the same id as its question.
state, instructions, and individual criteria descriptions can be strings, JSON objects, or arrays. The API uses the same OpenRouter-shaped Decisions schema for both Jev and GPT-6 Luna. Gumloop translates it to OpenAI’s schema for Luna, so keep noul for yes/no questions.Which models and request options are supported?
Which models and request options are supported?
Use an id from
GET /models with supports_decisions: true: typesafe/jev-1.14, typesafe/jev-1.13 through OpenRouter, or gpt-6-luna directly through OpenAI. is_classifier_model: true means decisions-only. GPT-6 Luna also supports POST /chat/completions under the same id.- Unknown or restricted ids, models without Decisions support, and unsupported proxy configurations return
model_unavailable. The endpoint does not select a fallback model. - Responses are not streamed.
providerpreferences apply to OpenRouter, not OpenAI. Gumloop applies its zero-data-retention policy after OpenRouter preferences; you cannot disable it. OpenAI requests do not forward theproviderfield.- The response
modelidentifies the exact served version. Usage records retain that version too. - If OpenAI refuses any question, the request returns HTTP 422 (
provider_error).details.provider_messagenames the refused question ids, and the request does not return partial answers. - For OpenAI,
useris sent assafety_identifier, truncated to 128 characters.
How are requests billed?
How are requests billed?
Charges follow your pricing and bring-your-own-key (BYOK) policy. Gumloop uses the provider-reported cost when positive, or the model’s Decisions catalog token rates when the cost is zero or absent. See Credits.GPT-6 Luna Decisions uses input-only pricing, with a separate long-context tier. There are no separate output or cache charges. Its Decisions rates differ from its chat rates.Approved calls from an agent script are attributed to the current task under Chat & Reasoning. See Code sandbox & secrets.
Authorizations
A personal API key or an OAuth 2.0 access token. Personal API keys also require the x-auth-key header with your user ID.
Query Parameters
Body
application/json
Response
One answer per question, under the question's id.