LLM models
GPT-5.6 Terra
On this page
GPT-5.6 — frontier reasoning and generation through one API.
| modelId | gpt-5-6-terra |
| Modality | text |
| Pricing | See this model on the Pricing page for the current per-call price (with your markup). |
Operations
| Operation | modelId | Endpoint | Required input |
|---|---|---|---|
| Default | gpt-5-6-terra | POST /api/v1/generate | prompt |
| Poll task | — | GET /api/v1/task/{id}?model=gpt-5-6-terra | — |
Input parameters
| Field | Type | Required | Values / example |
|---|---|---|---|
| prompt | string | Yes | Text value (example: Compare two ways to store user files for a small API: object storage with signed URLs, versus streaming through our own server. For each, give the failure mode… — full value in the request example) |
| web_search | boolean | No | Web search feeds the results back as input tokens, so a searched turn typically costs many times a normal turn (measured: 6–87×). Billed per token as usual — nothing extra per search. (true/false) (example: false) |
| stream | boolean | No | Send true to receive the reply as an event stream (Content-Type: text/event-stream). Omit it and you get a single JSON response — streaming is opt-in on this endpoint. (true/false) (example: true) |
| images | string[] | No | Up to 4 images per message — JPEG, PNG, GIF or WebP, 5 MB each. Send each one as a data: URL or an https URL. Images are billed as input tokens. (image URL) |
| max_tokens | number | No | Maximum response length in tokens, reasoning included. Leave empty for the default of 4,096. (range 1-128000) |
| system | string | No | System instruction for the model. Defaults to "You are GPT-5.6 Terra, developed by OpenAI." when omitted. |
| messages | array | No | A conversation instead of a single prompt: an array of { "role", "content" } objects, where role is user, assistant, system or tool (a function result, with tool_call_id); an assistant message may carry tool_calls instead of text — see tools. Send the whole conversation — we do not limit how many messages it has, and we do not drop old ones; the model's context window is the limit. Send prompt or messages, not both. Do not flatten a conversation into one prompt with "User:" / "Assistant:" labels — the model reads that as a single message, and a model using web search then searches for the whole block instead of your question. |
| tools | array | No | Functions the model may call, up to 64. Each is { "type": "function", "function": { "name", "description", "parameters" } } with parameters a JSON Schema object (the flat Responses form and Anthropic's { "name", "description", "input_schema" } are accepted too); strict: true is accepted. When the model calls one, the response carries toolCalls: run the function, then send the conversation back in messages with the assistant's tool_calls and one { "role": "tool", "tool_call_id", "content" } message per result — and the same tools again. Function calling cannot be combined with web search in the same request. |
| tool_choice | string | object | No | auto (the model decides; the default when tools is set), none (no call), required (at least one call), or { "type": "function", "function": { "name" } } to require that function. |
Example request
bash
curl -X POST https://you.bot/api/v1/generate \
-H "Authorization: Bearer $YOUBOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"modelId":"gpt-5-6-terra","input":{"prompt":"Compare two ways to store user files for a small API: object storage with signed URLs, versus streaming through our own server. For each, give the failure mode that bites first at scale, the cost that grows fastest, and one thing that is hard to change later. Then pick one for a service serving 10,000 files a day and say what would change your mind. Under 250 words.","web_search":false,"stream":true,"images":["data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAAFklEQVR4nGP8z4AATAxIHFQeMg8OAgB1yQIDpk8YwwAAAABJRU5ErkJggg=="],"max_tokens":4096}}'