Seedance 2.5 is live — 30-second cinematic video with native audio & real-person references
rreAPI Docs

gpt-5.6-sol

GPT-5.6 Sol — OpenAI's frontier tier of the GPT-5.6 family and the target of the bare gpt-5.6 alias. OpenAI-compatible /api/v1/chat/completions on reapi.ai with a 1,050,000-token context window, 128,000 max output tokens, six reasoning-effort rungs, and text plus image input.

OpenAI's GPT-5.6 Sol — the frontier model for complex professional work — exposed through reAPI as a drop-in OpenAI-compatible Chat Completions endpoint. A 1,050,000-token context window, 128,000 max output tokens, six reasoning_effort rungs from none to max defaulting to medium, text and image input, and functions, web search, file search and computer use. OpenAI rates its reasoning Highest in this family and its speed Fast. The wire model id is gpt-5.6-sol. Current rates live on the model page.

The URL and the model id differ. This page and the model page spell the slug gpt-5-6-sol because a URL cannot carry dots. The string your request body needs is gpt-5.6-sol.

Quick example

curl https://reapi.ai/api/v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.6-sol",
    "messages": [
      { "role": "user", "content": "Review this migration plan and identify the failure modes." }
    ],
    "reasoning_effort": "high",
    "max_completion_tokens": 16000,
    "stream": true
  }'
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://reapi.ai/api/v1",
)

stream = client.chat.completions.create(
    model="gpt-5.6-sol",
    messages=[{"role": "user", "content": "Review this migration plan and identify the failure modes."}],
    reasoning_effort="high",
    max_completion_tokens=16000,
    stream=True,
)
for chunk in stream:
    delta = chunk.choices[0].delta.content
    if delta:
        print(delta, end="")
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "YOUR_API_KEY",
  baseURL: "https://reapi.ai/api/v1",
});

const stream = await client.chat.completions.create({
  model: "gpt-5.6-sol",
  messages: [{ role: "user", content: "Review this migration plan and identify the failure modes." }],
  reasoning_effort: "high",
  max_completion_tokens: 16000,
  stream: true,
});

for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

func main() {
    body, _ := json.Marshal(map[string]any{
        "model": "gpt-5.6-sol",
        "messages": []map[string]string{
            {"role": "user", "content": "Review this migration plan and identify the failure modes."},
        },
        "reasoning_effort":       "high",
        "max_completion_tokens":  16000,
    })
    req, _ := http.NewRequest("POST",
        "https://reapi.ai/api/v1/chat/completions", bytes.NewReader(body))
    req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
    req.Header.Set("Content-Type", "application/json")

    resp, _ := http.DefaultClient.Do(req)
    defer resp.Body.Close()
    out, _ := io.ReadAll(resp.Body)
    fmt.Println(string(out))
}

Authentication

Use your reAPI API key — the same key that calls the image, video and audio endpoints — as a bearer token:

Authorization: Bearer YOUR_API_KEY

Create one under API keys in your reAPI dashboard. Chat requests are billed from the same credit balance as every other model on the platform.


Endpoint

POST /api/v1/chat/completions

Base URL https://reapi.ai/api/v1. The wire format is OpenAI-compatible, so the same SDKs work once you swap the base URL, the key and the model string.

OpenAI states that its reasoning models "work better with the Responses API", and that "while the Chat Completions API is still supported, you'll get improved model intelligence and performance by using Responses." The GPT-5.6 release entry lists v1/responses, v1/chat/completions and v1/batch as this family's endpoints — so Chat Completions is a documented, supported surface, and this is a vendor preference rather than a restriction.


Parameter support on this model

Every field in OpenAI's Chat Completions reference (37 request-body fields as of 2026-09-07) was sent to this endpoint one at a time on that date. Fields not listed below behave as documented by OpenAI.

FieldResult
reasoning_effortAccepts none, low, medium, high, xhigh, max. minimal returns 400
temperatureOnly the default value is accepted; any other value returns 400
top_pNot supported by this model — any value returns 400
nOnly 1; a larger value returns 400
tools, tool_choice, parallel_tool_callsApplied — function calling works, including strict schemas
max_completion_tokensApplied, up to 128,000
max_tokensAccepted (returns 200). max_completion_tokens is the field OpenAI documents — prefer it in new code
response_formatApplied, including json_schema with strict
frequency_penalty, presence_penaltyAccepted (200), but OpenAI documents neither for this model — do not rely on them
web_search_optionsEnables web search for the request. Each such request carries roughly 4,400 extra input tokens of tool context, billed at the input rate
stop, seed, logprobs, top_logprobs, logit_bias, prediction, verbosity, audio, modalities, service_tier, safety_identifier, moderation, prompt_cache_options, prompt_cache_retentionAccepted (200) and ignored — no effect on the response
legacy functions / function_callfunction_call together with tool_choice returns 400; use tools / tool_choice

The sampling restrictions (temperature, top_p) are what OpenAI states for its reasoning models; the rest was found by testing. There is no minimal on this family.

Request body

model — string, required

Must be gpt-5.6-sol exactly. The bare gpt-5.6 alias also routes here; sending the suffixed id pins the tier you are paying for.

messages — array, required

Conversation history, each entry an object with role and content. Roles are system, user, assistant and tool. Text and image parts are supported — see Image input.

max_completion_tokens — integer

Upper bound on generated tokens for this response, reasoning tokens included. The documented maximum output is 128,000 tokens.

Reasoning tokens bill as output tokens and occupy the context window. A budget sized only for the visible answer can truncate on a harder prompt, and it is the usual reason an invoice exceeds an estimate built from answer length.

reasoning_effort — string, default "medium"

How much the model thinks before answering. See Reasoning effort.

stream — boolean, default false

When true, tokens arrive as server-sent events terminated by data: [DONE]. Worth enabling on this tier in particular: at high effort the model can think for a long time before the first visible token, and a non-streamed request with a large budget can reach an HTTP timeout.

tools / tool_choice — optional

Function definitions and the selection strategy. Functions, web search, file search and computer use are all available on this family, and this generation adds programmatic tool calling.

response_format — object, optional

Constrains the answer's shape, including a JSON schema for machine-consumed output.


Reasoning effort

Six rungs, and unlike some families these do not collapse into one another — each is a distinct behaviour. The default is medium: OpenAI's docs state that "if you omit reasoning.effort, GPT-5.6 defaults to medium in both modes."

EffortOpenAI's stated best-for
noneLatency-critical tasks that do not benefit from reasoning or multi-chained tool calls — voice, fast retrieval, classification
lowEfficient reasoning with modest added latency: tool use, planning, search, multi-step decisions
mediumDefault. Quality and reliability where the task involves planning and judgement — agentic coding, research, spreadsheets and slides, delegated long-horizon work
highHard reasoning, complex debugging, deep planning, high-value tasks where quality beats latency
xhighDeep research and long asynchronous runs — security and code review, enterprise productivity. "Only use when your evals show a clear benefit"
max"Maximum reasoning for your most complex tasks. If you are currently using xhigh, evaluate if max results in stronger performance"

There is no minimal on this family.

All six rungs reach the model through this endpoint (measured 2026-09-07); minimal is rejected with a 400. The table above is OpenAI's own description of the family; the parameter table earlier on this page is what this endpoint answers.

This is the tier the top of that ladder exists for. Starting at high and evaluating xhigh and max against your own cases is the usual approach; the medium default will under-use what you are paying for.

OpenAI also documents a Pro reasoning mode for GPT-5.6 (reasoning.mode, independent of effort), and multi-agent orchestration in beta. Both are features of OpenAI's Responses API, so neither is part of a Chat Completions request through this endpoint.


Image input

ModalitySupported
Text in
Image in
Text out

This generation accepts images at their original dimensions, with original or auto image detail — no resizing step required before a screenshot or scan goes in. Output is text only.


Pricing dimensions

Billing is per token, from your reAPI credit balance, with separate input and output rates. Three things to keep in mind:

  • Reasoning tokens bill as output. The default effort is medium, so a request that omits the field is paying for a reasoning pass.
  • Effort is the first lever, and on this family every rung is real — a middle setting buys a middle cost.
  • The tier is the second lever. All three GPT-5.6 tiers share this context window, this output ceiling, this effort ladder and this endpoint, so moving between them changes reasoning depth and price, not capability surface.

Both token rates sit below OpenAI's published per-token rate, on input and output alike; the model page reads them live. Current numbers are on the model page — that table is the canonical source, not this page. The platform constants are 1 credit = $0.001 and $1 = 1,000 credits; a request's cost is its input and output tokens at the per-million rates, converted at that ratio.

OpenAI prices cached input as a separate dimension. reAPI does not publish a cached-input rate for this model, so bill against the input and output rates in the pricing table.


Response shape

Non-streaming (stream: false)

{
  "id": "chatcmpl-...",
  "object": "chat.completion",
  "created": 1785000000,
  "model": "gpt-5.6-sol",
  "choices": [
    {
      "index": 0,
      "message": { "role": "assistant", "content": "..." },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 1204,
    "completion_tokens": 860,
    "total_tokens": 2064
  }
}

usage.completion_tokens includes reasoning tokens, so it is the number to reconcile a bill against. On OpenAI's own Responses API the split is reported under output_tokens_details.reasoning_tokens.

Streaming (stream: true)

Server-sent events, each data: line carrying a chat.completion.chunk with the incremental text in choices[0].delta.content, terminated by data: [DONE].


Errors

Failures use reAPI's standard error envelope. See the errors catalog for the full code list. Common cases:

TriggerWhat to do
Missing or invalid API keyCreate a key under API keys in the reAPI dashboard
Unknown model valueSend gpt-5.6-sol with the dots — not the hyphenated slug
reasoning_effort set to minimalNot on this family — use none, low, medium, high, xhigh or max
temperature other than the default, or any top_pRemove the field; the model rejects it
n greater than 1Send one request per completion
reasoning.mode or multi-agent fieldsResponses-API features; not part of a Chat Completions request
max_completion_tokens above the ceilingLower it; the documented maximum output is 128,000
Truncated answer on a hard promptThe reasoning pass consumed the allowance — raise max_completion_tokens
Insufficient balanceTop up your reAPI credits
Upstream rate limitRetry with backoff, or route through another tier

Tips

  • Start at high, not the default. The default is medium; if a route is on this tier it is usually because it needs more than that.
  • Evaluate max only against xhigh. OpenAI's own framing is to compare the two rather than jump straight to the top.
  • Stream, and set a generous max_completion_tokens so a deep pass has room to finish.
  • Send the suffixed id in production. gpt-5.6 works, but it follows whatever OpenAI points the alias at later.
  • Keep the routine turns on a cheaper tier. Same key, same endpoint, one model string apart — escalation is a field, not an integration.
  • Give it the whole system. A 1.05M-token window is only useful if you actually put the repository, the tests and the history in it.

Table of Contents