GPT-6 Astra on Bedrock went GA on September 8, 2026, and unlike most model launches this one changes how you write the client code, not just which string you put in modelId. There are two different endpoint families, two different capability sets, a 1,050,000-token context window, and a pricing cliff sitting at 272K input tokens. Get the combination wrong and you’ll spend an afternoon wondering why prompt caching silently does nothing.
Here’s the working engineer’s map of the thing, based on the AWS launch post, the model card, and OpenAI’s own Bedrock guide.
The shape of GPT-6 Astra on Bedrock
Base model ID: openai.gpt-6-astra. Context window is 1,050,000 tokens, which AWS markets as “up to 1 million input tokens” — the extra 50K is headroom, not a promise you should budget against. Max output is 128,000 tokens. Knowledge cutoff is April 30, 2026, so anything after that needs to come in through your prompt or a tool call.
The capability pitch is deeper reasoning on the kind of work that used to get punted to a human: financial analysis where the source documents disagree with each other, contract review that flags risk-bearing provisions rather than summarizing paragraphs, codebase investigation that follows a call chain across dependencies, and computer/browser use inside agentic workflows. It is also the first OpenAI model classified at “Critical” cybersecurity capability, which is not marketing garnish — expect tighter access and usage controls around it, and plan your IAM story accordingly.
Two endpoints, two personalities
This is the part that trips people up. Astra is served from two distinct endpoint families and they do not support the same feature set.
bedrock-runtime — https://bedrock-runtime.{region}.amazonaws.com/openai/v1. This is the one most teams want. It supports the OpenAI Responses API, Chat Completions, and Bedrock’s native Converse API. Streaming works. Vision input works. Bedrock Guardrails work, but only through Converse. What it does not do: InvokeModel (gone, stop trying), server-side tool use, or prompt caching.
bedrock-mantle — https://bedrock-mantle.us-west-2.api.aws/openai/v1. us-west-2 only, in-Region only, no cross-Region profiles. It supports Responses and Chat Completions, adds server-side tool use, and adds prompt caching — but caching only via the Responses API. It does not support Converse, which means it does not support Guardrails either.
So the trade is blunt: Guardrails and Converse on one side, prompt caching and server-side tools on the other. If you’re doing regulated content filtering, you’re on bedrock-runtime. If you’re hammering the same 400K-token corpus fifty times an hour, mantle’s cache is worth the Region lock-in. Some teams will run both and route per workload, which is fine as long as your observability can tell the two apart.
Model IDs and cross-Region inference
You almost certainly want a cross-Region inference profile rather than the bare model ID. Two exist:
us.openai.gpt-6-astra— the US geo profile. Routes across us-east-1, us-east-2, us-west-1, us-west-2 and ca-central-1.global.openai.gpt-6-astra— the global profile. Adds EU (Frankfurt, Stockholm, Ireland, London, Paris), APAC (Tokyo, Seoul, Osaka, Mumbai, Singapore, Sydney) and South America (São Paulo) to the routing pool.
Global CRIS is also cheaper per token, which is an unusual and welcome inversion of the normal “convenience costs more” rule. The catch is obvious: with the global profile your request can be served from a Region on another continent. If you have data-residency commitments in writing, use the geo profile and eat the ~10% premium.

Calling it with the OpenAI SDK
Because the endpoint is OpenAI-compatible, the official Python SDK works with almost nothing changed. Point base_url at the Bedrock endpoint and use a Bedrock API key as the API key.
from openai import OpenAI
# base_url set to the Bedrock OpenAI-compatible endpoint,
# api_key = your Bedrock API key
client = OpenAI()
response = client.responses.create(
model="us.openai.gpt-6-astra",
input="Reconcile these two quarterly filings and list every "
"line item where the numbers disagree.",
)
print(response.output_text)
Chat Completions works the same way if you have existing code shaped that way. Streaming is a flag, not a different code path. Vision input goes in as image content blocks exactly as it does against api.openai.com.
Converse when you need Guardrails
If you want Bedrock’s policy engine in the request path — denied topics, PII redaction, contextual grounding checks — you go through Converse with boto3, and you go through bedrock-runtime.
import boto3
brt = boto3.client("bedrock-runtime", region_name="us-east-1")
resp = brt.converse(
modelId="us.openai.gpt-6-astra",
messages=[
{
"role": "user",
"content": [{"text": "Summarize the indemnity clauses."}],
}
],
guardrailConfig={
"guardrailIdentifier": "abcd1234efgh",
"guardrailVersion": "1",
},
)
print(resp["output"]["message"]["content"][0]["text"])
print(resp["usage"])
Watch resp["usage"] from day one. With a million-token window it is trivially easy to send a request that costs more than your entire previous month of inference, and the usage block is the only thing that will tell you before the bill does.
Pricing tiers: the 272K cliff
Astra is Standard service tier only — no Priority, no Flex, no Reserved capacity. Rates are per million tokens and split at 272K input tokens. Short context (≤272K input), in-Region: $11 in, $13.75 cache write, $1.10 cache read, $55 out. Same tier on Global CRIS: $10 / $12.50 / $1.00 / $50.
Cross 272K input tokens and everything roughly doubles: $22 / $27.50 / $2.20 / $82.50 in-Region, $20 / $25 / $2.00 / $75 on Global CRIS. Note that the doubling applies to the whole request, not the overflow. A 280K-token prompt is not 272K at the cheap rate plus 8K at the expensive one — it is 280K at the expensive one. Check current numbers on the Bedrock pricing page before you build a cost model on them.
Data handling and audit
Inference data is not used to train models. Zero data retention is available on request through your AWS account team. Abuse-detection classifiers may retain flagged traffic for up to 30 days, which is worth knowing before you promise a security reviewer that nothing is ever stored. Everything is encrypted in transit and at rest, and every invocation shows up in CloudTrail. Turn on model invocation logging too — CloudTrail tells you a call happened, invocation logging tells you what it cost and what went into it.
Astra is also reachable from ChatGPT Work and Codex when those are configured against Bedrock, which is a quietly useful way to give developers the model under your account’s controls instead of a shadow subscription. The What’s New entry and the September 14 Weekly Roundup have the launch details if you want the primary sources.
At Enkompass (enkompass.net), this is our home turf. We’ve shipped production Bedrock workloads that actually move the needle instead of just demoing well — including the unglamorous parts like token budgets and guardrail policies. If you’d rather have seasoned cloud people handle it instead of learning the hard way at 2 AM, let’s talk. Reach out through our contact page or call us directly at +1-828-436-5667 — we’ll help you turn this from a someday-project into a done-deal.
