← All docs

Endpoints

Create a response

POST/v1/responses

Loading models…

With the SDK use extra_body={"reasoning_effort":"low","everyais":{"parameter_policy":"strict"}}. Native reasoning objects and stateful fields such as previous_response_id return 400. Flat function/tool_choice are rewritten to the nested Chat form, and text.format (OpenAI's flat {"type":"json_schema","name","schema","strict"} or the nested Chat form) becomes response_format. store is accepted only as false. To continue a tool conversation, send every response output item (including reasoning) back with the function_call_output — Gemini's tool signature travels in the reasoning item's encrypted_content.

Body

modelstringYes
Model ID
inputstring | arrayYes
A string, or an array of message / function_call / function_call_output items
instructionsstringNo
system instructions
temperaturenumberNo
0–2
top_pnumberNo
0–1
streambooleanNo
Stream events token by token
backgroundbooleanNo
If true, submits as an async job and returns queued immediately
tools / tool_choicearray / string|objectNo
Same format as chat
reasoning_effortstringNo
Common low / medium / high / xhigh / max. Extra values such as none / minimal are published per model
textobjectNo
format (chat response_format) · verbosity (low/medium/high, GPT routes only)
prompt_cache_key / safety_identifierstringNo
GPT routes only; same meaning as in chat
userstringNo
End-user identifier
everyaisobjectNo
Gateway caching options

Model options

Check the table above for the values the selected model supports (in the API: capabilities, limits, and parameter_constraints in GET /v1/models). Whether an unsupported value is adjusted or rejected with 400 is described under parameter policy in model selection and access.

Omission uses the model's highest native effort (on manual thinking-budget models, the highest whose budget fits under your max tokens). A missing common level is executed as high. none disables reasoning only when the model publishes it as an extra value. Use Chat for web search, response_format, and parallel_tool_calls.

GET /v1/responses/{id}

Poll the status of a job submitted with background: true.

json
{
  "id": "resp_abc123",
  "object": "response",
  "created_at": 1709884800,
  "model": "everyais/gemini-3-5-flash-lite",
  "status": "queued",
  "output": [],
  "error": null,
  "incomplete_details": null,
  "usage": null
}

status transitions queued → in_progress → completed / incomplete / failed / cancelled. Once it completes, the full stored Response body is returned.

Returns 404 if the job does not exist, has expired, or belongs to another key or user.

POST /v1/responses/{id}/cancel

Transitions a job in queued or in_progress state to cancelled and refunds the reserved credit. A job that has already finished is returned as its current Response with no status change.

Contact support