I Tried Out OpenAI GPT-6 Astra, Now Generally Available on Amazon Bedrock
This page has been translated by machine translation. View original
Introduction
On September 8, 2026, OpenAI's GPT-6 Astra became generally available on Amazon Bedrock.
I tried calling GPT-6 Astra through the Converse / OpenAI-compatible path of bedrock-runtime and the OpenAI-compatible path of bedrock-mantle.
Verification
Model list
I retrieved the list of foundation models, filtered by the OpenAI provider.
aws bedrock list-foundation-models \
--by-provider OpenAI \
--region us-east-1
The returned list included the following entry.
{
"modelArn": "arn:aws:bedrock:us-east-1::foundation-model/openai.gpt-6-astra",
"modelId": "openai.gpt-6-astra",
"modelName": "GPT-6 Astra",
"providerName": "OpenAI",
"inputModalities": [
"TEXT",
"IMAGE"
],
"outputModalities": [
"TEXT"
],
"responseStreamingSupported": true,
"customizationsSupported": [],
"inferenceTypesSupported": [
"INFERENCE_PROFILE"
],
"modelLifecycle": {
"status": "ACTIVE",
"startOfLifeTime": "2026-09-08T17:00:00+00:00"
}
}
The model ID is openai.gpt-6-astra, with text and image input and text output. It also supports response streaming.
Converse
The model ID shown in the list is openai.gpt-6-astra, but the ID to specify when invoking is global.openai.gpt-6-astra. I ran Converse against us-east-1.
aws bedrock-runtime converse \
--region us-east-1 \
--model-id global.openai.gpt-6-astra \
--messages '[{"role":"user","content":[{"text":"Say ok"}]}]' \
--inference-config '{"maxTokens":64}'
The response is as follows.
{
"output": {
"message": {
"role": "assistant",
"content": [
{
"text": "ok"
}
]
}
},
"stopReason": "end_turn",
"usage": {
"inputTokens": 8,
"outputTokens": 5,
"totalTokens": 13,
"cacheReadInputTokens": 0
}
}
When I sent the same request to us-east-1, us-west-2, and ap-northeast-1, all returned a stopReason of end_turn, the response text ok, and usage of 8 input / 5 output / 13 total.
I also got a response from InvokeModel with the same model ID.
This is the result of passing {"messages":[{"role":"user","content":"Say ok"}],"max_completion_tokens":16} as the input body.
{"choices":[{"finish_reason":"stop","index":0,"message":{"annotations":[],"content":"ok","refusal":null,"role":"assistant"}}],"created":1788919066,"id":"chatcmpl-y3ldv7w2nvet7ibewtphemha2kmyudqvrasturqhjottjo2tbm3q","model":"global.openai.gpt-6-astra","object":"chat.completion","service_tier":"default","usage":{"completion_tokens":5,"completion_tokens_details":{"accepted_prediction_tokens":0,"audio_tokens":0,"reasoning_tokens":0,"rejected_prediction_tokens":0},"prompt_tokens":8,"prompt_tokens_details":{"audio_tokens":0,"cache_write_tokens":0,"cached_tokens":0},"total_tokens":13},"system_fingerprint":null}
OpenAI-compatible path
I sent a Responses API-style body to the OpenAI-compatible path of bedrock-runtime.
{"model":"global.openai.gpt-6-astra","input":"Say ok","store":false}
I saved this as gpt6-astra-responses-body.json and sent it with curl to /openai/v1/responses. For authentication, I passed the same temporary credentials as the AWS CLI via environment variables and attached curl's SigV4 signature.
curl --silent --show-error \
--aws-sigv4 'aws:amz:us-east-1:bedrock' \
--user "$AWS_ACCESS_KEY_ID:$AWS_SECRET_ACCESS_KEY" \
-H "x-amz-security-token: $AWS_SESSION_TOKEN" \
-H 'Content-Type: application/json' \
--data-binary @gpt6-astra-responses-body.json \
https://bedrock-runtime.us-east-1.amazonaws.com/openai/v1/responses
The HTTP status was 200. In the response, model was global.openai.gpt-6-astra, status was completed, the output text was ok, and usage was 8 / 5 / 13 (input_tokens / output_tokens / total_tokens), the same as Converse.
Sending the same model ID to /openai/v1/chat/completions also returned HTTP status 200. The finish_reason was stop, the response text was ok, and usage was prompt_tokens 8 / completion_tokens 5 / total_tokens 13. I specified the output limit with max_completion_tokens.
Calling from the OpenAI SDK with IAM role environment variables
The basic example for the official OpenAI SDK uses a Bedrock API key. The code in this article does not replace the authentication method of that SDK sample; it is a demonstration that adds a SigV4 signature to the HTTP client. According to the endpoint specification, both Runtime and Mantle support SigV4 authentication. Here, with AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, and AWS_SESSION_TOKEN already obtained from an IAM role or similar set as environment variables, I added a SigV4 signature to the HTTP requests sent by the OpenAI SDK.
The principal running the Responses API on Runtime needs bedrock:InvokeModel on the inference profile and the default project. The code below assumes that temporary credentials with that permission are already set in the environment variables.
import json
import os
import httpx
from botocore.auth import SigV4Auth
from botocore.awsrequest import AWSRequest
from botocore.credentials import Credentials
from openai import OpenAI
REGION = "us-west-2"
SIGNING_SERVICE = "bedrock"
MODEL_ID = "global.openai.gpt-6-astra"
credentials = Credentials(
os.environ["AWS_ACCESS_KEY_ID"],
os.environ["AWS_SECRET_ACCESS_KEY"],
os.environ.get("AWS_SESSION_TOKEN"),
)
class SigV4Signer(httpx.Auth):
requires_request_body = True
def auth_flow(self, request):
aws_request = AWSRequest(
method=request.method,
url=str(request.url),
data=request.content,
headers={"content-type": request.headers.get("content-type", "application/json")},
)
SigV4Auth(credentials, SIGNING_SERVICE, REGION).add_auth(aws_request)
for key, value in aws_request.headers.items():
request.headers[key] = value
yield request
client = OpenAI(
api_key="unused-sigv4",
base_url=f"https://bedrock-runtime.{REGION}.amazonaws.com/openai/v1",
http_client=httpx.Client(auth=SigV4Signer(), timeout=120.0),
)
response = client.responses.create(
model=MODEL_ID,
input="Can you explain the features of Amazon Bedrock?",
)
print("=== output_text ===")
print(response.output_text)
print("=== usage ===")
print(json.dumps(response.usage.model_dump(), indent=2))
I installed openai, botocore, and httpx in a python:3.12-slim container and ran it, passing the credentials to the container only via environment variables. response.output_text returned a body explaining Bedrock's features, and usage was 16 input, 1,010 output (of which 145 were reasoning), and 1,026 total tokens. An excerpt of the output is as follows.
=== output_text ===
**Amazon Bedrock is AWS’s managed platform for building generative AI applications.** It gives you access to foundation models and tools for connecting them to your data, automating workflows, and adding security controls—without having to manage the underlying model-serving infrastructure for its standard managed offerings.
Here are its main features:
### 1. Access to multiple foundation models
...
=== usage ===
{
"input_tokens": 16,
"output_tokens": 1010,
"total_tokens": 1026
}
Mantle
GPT-6 Astra was also available from bedrock-mantle. When I sent openai.gpt-6-astra to the OpenAI-compatible Responses API in us-west-2, it returned HTTP 200 and status: completed. The output text was ok, and usage was the same 8 / 5 / 13.
Unlike bedrock-runtime, the model ID specified for bedrock-mantle has no profile prefix. When I specified the same model ID in us-east-1, it returned an HTTP 404 with The model 'openai.gpt-6-astra' does not exist. The model card also states that the only Region where it is available on bedrock-mantle is us-west-2.
Calling Mantle from the OpenAI SDK with IAM role environment variables
You can use the same SigV4Signer with Mantle. All you need is credentials in environment variables that are allowed bedrock-mantle:CreateInference. Change the Region, signing service name, model ID, and base_url from the Runtime version of the code as follows.
REGION = "us-west-2"
SIGNING_SERVICE = "bedrock-mantle"
MODEL_ID = "openai.gpt-6-astra"
client = OpenAI(
api_key="unused-sigv4",
base_url=f"https://bedrock-mantle.{REGION}.api.aws/openai/v1",
http_client=httpx.Client(auth=SigV4Signer(), timeout=120.0),
)
response = client.responses.create(
model=MODEL_ID,
input="Can you explain the features of Amazon Bedrock?",
)
print(response.output_text)
I saved this block together with the Runtime version's SigV4Signer in a single file and ran it. In a measurement where I passed temporary credentials via environment variables to a python:3.12-slim container, response.output_text returned a long text explaining Bedrock's features. The beginning is as follows.
**Amazon Bedrock is AWS’s fully managed service for building generative AI applications.** It lets you access foundation models, connect them to your data, and deploy AI-powered workflows without managing the underlying model-serving infrastructure.
Its main features include:
### 1. Access to multiple foundation models
...
As shown, the main body of the SDK call is shared, and switching the destination, the SigV4 service name, and the model ID was enough to call either Runtime or Mantle.
Pricing
Bedrock's unit prices are listed on the model card, and direct-sale prices are on OpenAI's model page. Claude Fable 5.1 supports global cross-Region inference according to the Bedrock model card, and the Anthropic model page lists $10.00 for input and $50.00 for output (both per 1M tokens).
I compared the prices per 1M input and output tokens for short contexts up to 272K tokens, without using caching. Bedrock prices are the global cross-Region inference unit prices.
| Model / How to call | Input | Output |
|---|---|---|
| GPT-6 Astra / Bedrock | $10.00 | $50.00 |
| GPT-6 Astra / OpenAI direct | $10.00 | $50.00 |
| Claude Fable 5.1 / Bedrock | $10.00 | $50.00 |
For GPT-6 Astra on Bedrock, in-Region inference and geographic cross-Region inference have unit prices 10% higher than this table for both input and output.
Summary
GPT-6 Astra, which OpenAI announced on September 3, 2026, is now available on Amazon Bedrock as well.
With GPT-5.6, the bedrock-mantle endpoint was offered first. GPT-6 Astra is available on bedrock-runtime from the day of GA, and the official documentation now recommends bedrock-runtime for new applications.
GPT-6 Astra is currently OpenAI's high-end model, and I look forward to its rollout to AI agents such as Kiro in the future, as well as the expansion of the regions covered by geographic cross-Region inference.

