gpt-6-astra
GPT-6 Astra — OpenAI's most capable model, built for the hardest end-to-end work. OpenAI-compatible /api/v1/chat/completions on reapi.ai with a 1,050,000-token context window, 128,000 max output tokens, four reachable reasoning-effort rungs, and text plus image input.
OpenAI's GPT-6 Astra — "our most capable model, built for the hardest
end-to-end 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, reasoning_effort from low to xhigh, text and image
input, structured outputs and streaming. OpenAI rates its reasoning
Highest and its speed Fast. The wire model id is gpt-6-astra.
Current rates live on the model page.
Quick example
curl https://reapi.ai/api/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-astra",
"messages": [
{ "role": "user", "content": "Review this migration plan and list every step that can fail, with its rollback." }
],
"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-6-astra",
messages=[{"role": "user", "content": "Review this migration plan and list every step that can fail, with its rollback."}],
reasoning_effort="high",
max_completion_tokens=16000,
stream=True,
)
for chunk in stream:
delta = chunk.choices[0].delta.content if chunk.choices else None
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-6-astra",
messages: [{ role: "user", content: "Review this migration plan and list every step that can fail, with its rollback." }],
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-6-astra",
"messages": []map[string]string{
{"role": "user", "content": "Review this migration plan and list every step that can fail, with its rollback."},
},
"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_KEYCreate 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/completionsBase 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-6 Astra release
entry lists v1/responses and v1/chat/completions among its endpoints, so
Chat Completions is a documented, supported surface — with one real
caveat, covered under Tool calling.
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.
| Field | Result |
|---|---|
reasoning_effort | Accepts low, medium, high, xhigh, max. none and minimal return 400 |
temperature | Only the default value is accepted; any other value returns 400 |
top_p | Not supported by this model — any value returns 400 |
n | Only 1; a larger value returns 400 |
tools, tool_choice, parallel_tool_calls | Not documented by OpenAI for Chat Completions on this model — not promised on this endpoint, see below |
max_completion_tokens | Applied, up to 128,000 |
max_tokens | Accepted (returns 200). max_completion_tokens is the field OpenAI documents for this model — prefer it in new code |
response_format | Applied, including json_schema with strict |
frequency_penalty, presence_penalty | Accepted (200), but OpenAI documents neither for this model — do not rely on them |
web_search_options | Enables web search for the request. Each such request carries roughly 4,400 extra input tokens of tool context, billed at the input rate, and reasoning_effort: "minimal" is then rejected |
stop, seed, logprobs, top_logprobs, logit_bias, prediction, verbosity, audio, modalities, service_tier, safety_identifier, moderation, prompt_cache_options, prompt_cache_retention | Accepted (200) and ignored — no effect on the response |
legacy functions / function_call | function_call together with tool_choice returns 400; use tools / tool_choice |
The sampling restrictions (temperature, top_p) and the effort values are
also stated in OpenAI's release notes; the rest was found by testing. The
playground on the model page offers only the fields this model accepts.
Request body
model — string, required
Must be gpt-6-astra exactly. OpenAI lists gpt-6-astra as the only snapshot
of this model, so there is no dated alias to pin.
messages — array, required
Conversation history, each entry an object with role and content. Roles are
system, user and assistant. 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. Omitted, the request runs under the model's ceiling.
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 — a
budget of a few dozen tokens on a non-streamed request comes back as a 400
"model output limit was reached" rather than a partial answer.
reasoning_effort — string
How much the model thinks before answering. See Reasoning effort. OpenAI states no default for GPT-6 Astra; set it explicitly.
stream — boolean, default false
When true, tokens arrive as server-sent events terminated by data: [DONE],
with a final chunk carrying usage. Worth enabling on this model: at high
effort it 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.
response_format — object, optional
Constrains the answer's shape, including a JSON schema for machine-consumed output. Structured outputs are supported on GPT-6 Astra.
Reasoning effort
OpenAI's model page: "reasoning.effort supports low, medium, high, xhigh, and
max." Its release notes add that GPT-6 Astra does not support none, and
its reasoning guide says defaults are model-dependent without naming one for
this model.
| Effort | OpenAI's stated best-for |
|---|---|
low | Efficient reasoning with modest added latency: tool use, planning, search, multi-step decisions |
medium | Quality and reliability where the task involves planning and judgement — agentic coding, research, delegated long-horizon work |
high | Hard reasoning, complex debugging, deep planning, high-value tasks where quality beats latency |
xhigh | Deep 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" |
All five rungs reach the model through this endpoint (measured 2026-09-07);
none and minimal are rejected with a 400. The
table above is OpenAI's own description; the parameter table earlier on this
page is what this endpoint answers.
OpenAI also documents, for GPT-6 Astra on its Responses API only: changing the
reasoning effort mid-conversation (configuration_update), async tool calling,
mid-turn steering over WebSockets, and misalignment monitoring. None of these is
part of a Chat Completions request through this endpoint.
Tool calling
OpenAI's release notes for GPT-6 Astra: "Tool calling requires the Responses API. If you use tools with Chat Completions, follow the Responses migration guide." Its reasoning guide says the same in one line: "Chat Completions does not support function calling with GPT-6 Astra."
This endpoint therefore does not promise tool calling on GPT-6 Astra: what
the model accepts today can change with the vendor's routing, and only the
documented surface is guaranteed. Structured outputs (response_format) and
streaming are documented for Chat Completions and work here. Route agentic
work that depends on a tool loop to a model that documents tools on Chat
Completions, such as GPT-5.6 Sol.
Image input
| Modality | Supported |
|---|---|
| Text in | ✅ |
| Image in | ✅ |
| Text out | ✅ |
| Audio in / out | ❌ |
| Video in | ❌ |
Images go in as image_url content parts and are accepted at their original
dimensions. Output is text only.
Pricing dimensions
Billing is per token, from your reAPI credit balance, with separate input and output rates and a second tier for long prompts:
- Reasoning tokens bill as output. Effort is the first lever on cost.
- Prompts over 272K tokens re-price the whole request at the long-context tier — OpenAI's own rule for this model, mirrored here.
- Tier is the second lever. GPT-6 Astra shares its context window, output ceiling and endpoint with the GPT-5.6 family, so moving down a tier changes reasoning depth and price, not capability surface.
Every rate sits below OpenAI's published per-token rate, on both tiers and
both dimensions; 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.
Prompt caching is priced separately, on both tiers. A cache read costs a fraction of plain input and a cache write costs more than it, and all four rates have their own rows in the pricing table. Each request is charged the exact amount the serving gateway settled it at, so a cache-heavy request is billed on those rates rather than on the plain input rate.
Response shape
Non-streaming (stream: false)
{
"id": "chatcmpl-...",
"object": "chat.completion",
"created": 1788600000,
"model": "gpt-6-astra",
"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.
Streaming (stream: true)
Server-sent events, each data: line carrying a chat.completion.chunk with the
incremental text in choices[0].delta.content. The last chunk before
data: [DONE] carries usage; a chunk with an empty choices array is
normal and should be skipped.
Errors
Failures use the standard envelope: error.code, error.message and
error.request_id. See the errors catalog for the full
code list. Common cases:
| Trigger | What to do |
|---|---|
| Missing or invalid API key | Create a key under API keys in the reAPI dashboard |
Unknown model value | Send gpt-6-astra exactly |
reasoning_effort set to none or minimal | Use low, medium, high, xhigh or max |
n greater than 1 | Send one request per completion |
tools in the request | Not documented by OpenAI for this model on Chat Completions — not guaranteed here; prefer a model that documents tools on Chat Completions |
temperature other than the default, or any top_p | Remove the field; the model rejects it |
max_completion_tokens above the ceiling | Lower it; the documented maximum output is 128,000 |
| Truncated answer on a hard prompt | The reasoning pass consumed the allowance — raise max_completion_tokens |
| Insufficient balance | Top up your reAPI credits |
| Upstream rate limit | Retry with backoff, or route through another tier |
Tips
- Set the effort on every request. OpenAI names no default for this model;
highis the usual starting point for the work it is priced for. - Stream, and set a generous
max_completion_tokensso a deep pass has room to finish. - 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 — and watch the 272K line, where the long-context tier starts.
- Need a guaranteed tool loop? Use GPT-5.6 Sol on this endpoint, or OpenAI's Responses API directly.
Related
- GPT-6 Astra model page — current rates
- GPT-5.6 Sol — the tier below, with tool calling on this endpoint
- GPT-5.6 Terra — the balanced tier
- GPT-5.6 Luna — the volume tier
- Errors catalog
- Authentication
- Quickstart