Skip to main content
POST
BaseURL: Use https://direct.evolink.ai by default; https://api.evolink.ai is the fallback endpoint.

Authorizations

Authorization
string
header
required

Authenticate with your EvoLink API Key as a Bearer token.

Get an API Key:

Visit the API Key management page.

Request header:

Body

application/json

The request body accepts only model, input, and questions. Any other field (such as stream) returns 400 invalid_request.

model
enum<string>
required

Model ID. Use gemini-decision-1.

This model is not a chat model and only works on this endpoint. For example, sending it to the GPT Decisions endpoint /v1/decisions returns 400 model_endpoint_mismatch.

Available options:
gemini-decision-1
Example:

"gemini-decision-1"

input
required

Shared input for all questions: a text string, a single content block, or an array of content blocks (text, image, audio, video, or PDF document). Input cannot be empty. Adjacent text blocks are joined in order with no separator, so add your own spaces or newlines. To pass JSON data, serialize it to a string and send it as text.

Minimum string length: 1
Example:

"I was charged twice for my order."

questions
object
required

Questions to evaluate, as a map from question key to question: 1 to 1,000 questions. You choose the keys (1 to 64 characters matching [A-Za-z0-9_-]+), and each answer is returned under the same key. The model never sees the keys, so write the full question in instructions.

Each question is evaluated independently against the same input and cannot see the others; question types can be mixed. If questions depend on one another, split them into separate requests. The input and all questions share a 262,144-token context window.

Example:

Response

One answer per question, keyed by the question keys in the request

answers
object

One answer per question, keyed by the question keys in the request. Each answer’s type matches its question. Empty when prompt_feedback.block_reason is set

usage
object

Token usage. Only input tokens are billed (total_input_tokens): text, image, audio, video, and PDF tokens cost the same, and output is always 0. A minimum charge applies to each request. See Model pricing for current prices. Context caching is not supported; repeated input is billed separately for each request. If an HTTP 200 response contains prompt_feedback.block_reason, input usage is still billed. If valid usage is not returned, billing uses an estimate.

prompt_feedback
object

Feedback from input content filters. When block_reason is set, the input was blocked, no questions were evaluated, and answers is empty. If returned with HTTP 200, the request is still billed; see usage.