curl --request POST \
--url https://direct.evolink.ai/v1/decisions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gpt-6-luna-decisions",
"input": "The package arrived with a broken screen.",
"questions": [
{
"type": "predicate",
"name": "damaged",
"instructions": "Does the customer report a damaged item?"
}
]
}
'{
"model": "gpt-6-luna",
"answers": [
{
"type": "predicate",
"name": "is_billing",
"probability": 1
},
{
"type": "choice",
"name": "department",
"choice": "billing",
"probabilities": [
{
"value": "billing",
"probability": 0.98
},
{
"value": "technical",
"probability": 0.01
},
{
"value": "other",
"probability": 0.01
}
],
"confidence": 0.97
},
{
"type": "score",
"name": "severity",
"score": 1.34,
"probabilities": [
{
"value": 0,
"label": "Cosmetic",
"probability": 0.04
},
{
"value": 1,
"label": "Workaround available",
"probability": 0.58
},
{
"value": 2,
"label": "Fully blocked",
"probability": 0.38
}
],
"confidence": 0.37
}
],
"usage": {
"input_tokens": 426,
"input_tokens_details": {
"cached_tokens": 0,
"cache_write_tokens": 0
},
"output_tokens": 0,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 426
}
}GPT Decisions - Complete Parameter Reference
- GPT-6 Luna Decisions (
gpt-6-luna-decisions) evaluates text, images, or both and returns three types of structured answers:predicatereturns the probability of “yes”,choiceselects one of the supplied options, andscorecalculates a probability-weighted score over ordered levels - Synchronous API: all answers are returned in a single request; no streaming or task polling
- The request body matches the OpenAI Decisions API: with the OpenAI SDK, point
base_urlto EvoLink. This endpoint also accepts the OpenAI model IDgpt-6-luna - Only input tokens are billed: output, cache reads, and cache writes are free. A minimum charge applies to each request; when a single input exceeds 272,000 tokens, the input price for the entire request is 2 times the standard rate. See Model pricing for current prices
- Images must be inline base64 data URLs (
data:image/...;base64,...); image URLs andfile_idare not supported. Up to 128 images per request - This endpoint rejects unknown fields: do not send Chat Completions parameters such as
stream,temperature, ormax_tokens - Suitable for content classification, ticket routing, relevance checks, and rule-based scoring. For text generation or custom JSON structures, use the Responses API
curl --request POST \
--url https://direct.evolink.ai/v1/decisions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "gpt-6-luna-decisions",
"input": "The package arrived with a broken screen.",
"questions": [
{
"type": "predicate",
"name": "damaged",
"instructions": "Does the customer report a damaged item?"
}
]
}
'{
"model": "gpt-6-luna",
"answers": [
{
"type": "predicate",
"name": "is_billing",
"probability": 1
},
{
"type": "choice",
"name": "department",
"choice": "billing",
"probabilities": [
{
"value": "billing",
"probability": 0.98
},
{
"value": "technical",
"probability": 0.01
},
{
"value": "other",
"probability": 0.01
}
],
"confidence": 0.97
},
{
"type": "score",
"name": "severity",
"score": 1.34,
"probabilities": [
{
"value": 0,
"label": "Cosmetic",
"probability": 0.04
},
{
"value": 1,
"label": "Workaround available",
"probability": 0.58
},
{
"value": 2,
"label": "Fully blocked",
"probability": 0.38
}
],
"confidence": 0.37
}
],
"usage": {
"input_tokens": 426,
"input_tokens_details": {
"cached_tokens": 0,
"cache_write_tokens": 0
},
"output_tokens": 0,
"output_tokens_details": {
"reasoning_tokens": 0
},
"total_tokens": 426
}
}https://direct.evolink.ai, which has better support for text models and long-lived connections. https://api.evolink.ai is the primary endpoint for multimodal services and serves as a fallback address for text models.gpt-6-luna-decisions can only be used on /v1/decisions. Using it on Chat Completions, Responses, or other endpoints returns 400 model_endpoint_mismatch. For conversation or text generation, use gpt-6-luna with Chat Completions or the Responses API.| Type | Suitable questions | How to use the result |
|---|---|---|
predicate | Yes/no questions, such as whether a message is a complaint or an image shows damage | probability is the probability of “yes”; set your own threshold and treat values above it as a match |
choice | Select one of several mutually exclusive categories, such as the department to route a ticket to | choice is the selected option; consider human review when confidence is low |
score | Evaluate ordered levels, such as issue severity | score is the probability-weighted level score (indices start at 0) and may be fractional |
input. If a later question depends on an earlier answer, split them into two requests.model, input, questions, and safety_identifier. Any additional field returns 400 unknown_parameter; images must be base64 data URLs; streaming is not supported.Authorizations
##All endpoints require Bearer Token authentication##
Get an API Key:
Visit the API Key management page to get your API Key
Add it to the request header:
Authorization: Bearer YOUR_API_KEY
Body
Model ID. Use gpt-6-luna-decisions; this endpoint also accepts the OpenAI model ID gpt-6-luna. Both have identical behavior and billing; usage and billing records are attributed to gpt-6-luna-decisions.
gpt-6-luna-decisions is only available on this endpoint. Using it on Chat Completions, Responses, or other endpoints returns 400 model_endpoint_mismatch.
gpt-6-luna-decisions, gpt-6-luna "gpt-6-luna-decisions"
The shared basis for all decisions: a text string or an array of user messages, which can contain text and inline images.
"I was charged twice for my order."
Questions to evaluate; at least 1 is required. Questions are independent and can mix different types; question name values must be unique within a request.
| Type | Purpose | Main result |
|---|---|---|
predicate | Check whether a condition holds | probability: probability that it holds (0 to 1) |
choice | Select one of the supplied options | choice: the selected option |
score | Score on ordered levels | score: probability-weighted level score |
If a later question depends on an earlier answer, split them into two requests.
1- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Optional. Your own end-user identifier (an opaque string), forwarded unchanged to the model provider for abuse detection
Response
One answer per question, in the same order as the questions in the request
The model that actually performed the decisions
"gpt-6-luna"
One answer per question, in the same order as the questions in the request. Use name to match the question and type to distinguish answer types
- Option 1
- Option 2
- Option 3
- Option 4
Show child attributes
Show child attributes
Token usage. Only input tokens are billed on this endpoint: output, cache reads, and cache writes are free. A minimum charge applies to each request; when a single input exceeds 272,000 tokens, the input price for the entire request is 2 times the standard rate. See Model pricing for current prices.
Show child attributes
Show child attributes