OpenAI GPT-5.5 / GPT-5.4 Are Now GA on Amazon Bedrock, So I Tried Them Out with the Responses API
This page has been translated by machine translation. View original
Introduction
On June 1, 2026, OpenAI models (GPT-5.5, GPT-5.4) and Codex became generally available (GA) on Amazon Bedrock. This article focuses on verifying calling GPT-5.5 and GPT-5.4 via the Responses API. Codex, the Chat Completions API, and streaming are out of scope.
OpenAI models on Bedrock are called not through the Converse API but through a dedicated Responses API endpoint. We use the bedrock-mantle endpoint introduced in the official blog. The differences between the two are as follows.
| Aspect | Converse API | Responses API (for OpenAI models) |
|---|---|---|
| Endpoint | bedrock-runtime | bedrock-mantle |
| SDK | AWS SDK (boto3) | OpenAI SDK |
| Authentication | IAM / SigV4 | Bedrock API Key or short-term token derived from the AWS credential chain |
| Request format | Bedrock Converse format | OpenAI Responses API format |
| Target models | Various models on Bedrock | OpenAI models on Bedrock |
Prerequisites
To run the code in this article, you need to have completed the following.
- Model access for GPT-5.5 / GPT-5.4 is enabled in the target region
- You can authenticate via the AWS credential chain (IAM role,
AWS_PROFILE, environment variables, etc.) - The executing principal has been granted permission to invoke Bedrock models
Regions and model IDs
The following is the availability as of June 2, 2026. Please check the official documentation for the latest information.
| Model | Model ID | Region |
|---|---|---|
| GPT-5.5 | openai.gpt-5.5 |
us-east-2 (Ohio) only |
| GPT-5.4 | openai.gpt-5.4 |
us-east-2 (Ohio), us-west-2 (Oregon) |
Pricing
This is the pricing as of June 2, 2026. Please check the official pricing page for the latest information.
| Model | Input (per 1M tokens) | Output (per 1M tokens) | Cached Input (per 1M tokens) |
|---|---|---|---|
| GPT-5.5 | $5.50 | $33.00 | $0.55 |
| GPT-5.4 | $2.75 | $16.50 | $0.275 |
Authentication methods
Authentication to the Responses API endpoint uses a Bearer token. There are two ways to obtain one.
Method 1: Short-term token (used in this article)
Generate a short-term token with aws-bedrock-token-generator from the AWS credential chain (IAM role / profile). The validity period is up to 12 hours, but it cannot be used beyond the expiration of the original AWS credentials. You need IAM permissions that allow calling Bedrock, and botocore[crt].
Method 2: Bedrock API Key
This is a long-term key issued from the console or CLI. See the official documentation for details.
Execution environment
- Python: 3.14.4
- openai: 2.40.0
- aws-bedrock-token-generator: 1.1.0
- botocore: 1.43.2
- awscrt: 0.32.2
Calling GPT-5.5 with the OpenAI Python SDK
Setup
pip install openai aws-bedrock-token-generator "botocore[crt]"
If you forget botocore[crt], a MissingDependencyException occurs when running provide_token(). This is because awscrt (AWS Common Runtime), which is used internally, is missing. Be sure to install "botocore[crt]" as well, not just openai and aws-bedrock-token-generator.
Note that this article was verified with the versions listed in "Execution environment". With different versions, the attribute names of response objects and error types may change.
Calling code
from aws_bedrock_token_generator import provide_token
from openai import OpenAI
token = provide_token(region="us-east-2")
client = OpenAI(
base_url="https://bedrock-mantle.us-east-2.api.aws/openai/v1",
api_key=token,
)
response = client.responses.create(
model="openai.gpt-5.5",
input=[
{"role": "developer", "content": "You are a helpful assistant. Be concise."},
{"role": "user", "content": "What is Amazon Bedrock in one sentence?"},
],
reasoning={"effort": "medium"},
)
print(response.output_text)
print(f"Input: {response.usage.input_tokens} / Output: {response.usage.output_tokens}")
Execution result
Amazon Bedrock is a fully managed AWS service for building and scaling generative AI applications using foundation models from leading AI companies and Amazon.
Input: 28 / Output: 31
The call via Bedrock succeeded.
The reasoning.effort parameter
You can control the depth of reasoning with the effort field of the reasoning parameter. In this article, I checked the behavior by specifying low, medium, and high.
In this verification, when specifying effort=low with GPT-5.5, the reasoning_tokens in the response was 0. On the other hand, in the call with GPT-5.4 + effort=high, the response contained a reasoning_tokens value, and output included a block with type: "reasoning".
Calling with curl
You can also call it with curl without using the Python SDK.
TOKEN=$(python3 -c 'from aws_bedrock_token_generator import provide_token; print(provide_token(region="us-east-2"))')
curl -s "https://bedrock-mantle.us-east-2.api.aws/openai/v1/responses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOKEN" \
-d '{
"model": "openai.gpt-5.5",
"input": [
{"role": "user", "content": "What is the capital of Japan?"}
],
"reasoning": {"effort": "low"}
}'
Response (excerpt)
{
"id": "resp_xxx",
"model": "openai.gpt-5.5",
"object": "response",
"status": "completed",
"output": [
{
"id": "msg_xxx",
"type": "message",
"role": "assistant",
"status": "completed",
"content": [
{
"type": "output_text",
"text": "The capital of Japan is Tokyo."
}
]
}
],
"reasoning": {
"effort": "low",
"summary": null,
"context": "current_turn"
},
"usage": {
"input_tokens": 26,
"output_tokens": 11,
"output_tokens_details": { "reasoning_tokens": 0 },
"total_tokens": 37
}
}
In this example with effort=low, reasoning_tokens was 0 and the output was simple.
Trying GPT-5.4 too
GPT-5.4 is available in Oregon as well as Ohio.
Calling in Ohio (us-east-2)
Using the client for us-east-2 from earlier, change the model ID to openai.gpt-5.4.
response = client.responses.create(
model="openai.gpt-5.4",
input=[{"role": "user", "content": "Explain why the sky is blue in one sentence."}],
reasoning={"effort": "high"},
)
A response was returned normally. This response included a reasoning block.
GPT-5.4 response example (with reasoning block)
{
"id": "resp_xxx",
"model": "openai.gpt-5.4",
"object": "response",
"status": "completed",
"output": [
{
"id": "rs_xxx",
"type": "reasoning",
"summary": []
},
{
"id": "msg_xxx",
"type": "message",
"role": "assistant",
"status": "completed",
"content": [
{
"type": "output_text",
"text": "The sky looks blue because molecules in Earth's atmosphere scatter the shorter, bluer wavelengths of sunlight more strongly than the longer, redder wavelengths."
}
]
}
],
"reasoning": {
"effort": "high",
"summary": null,
"context": "current_turn"
},
"usage": {
"input_tokens": 16,
"output_tokens": 51,
"output_tokens_details": { "reasoning_tokens": 16 },
"total_tokens": 67
}
}
Calling in Oregon (us-west-2)
token = provide_token(region="us-west-2")
client_oregon = OpenAI(
base_url="https://bedrock-mantle.us-west-2.api.aws/openai/v1",
api_key=token,
)
response = client_oregon.responses.create(
model="openai.gpt-5.4",
input=[{"role": "user", "content": "Hello from Oregon!"}],
reasoning={"effort": "high"},
)
GPT-5.4 responded normally in Oregon as well.
GPT-5.5 is not available in Oregon
from openai import NotFoundError
try:
response = client_oregon.responses.create(
model="openai.gpt-5.5",
input=[{"role": "user", "content": "Hello"}],
reasoning={"effort": "medium"},
)
except NotFoundError as e:
print("GPT-5.5 is not available in us-west-2")
print(e)
When I tried to call GPT-5.5 in Oregon, a 404 error occurred. As of June 2, 2026, GPT-5.5 is offered only in Ohio.
Calling in Japanese
I checked whether it works without problems in Japanese as well.
response = client.responses.create(
model="openai.gpt-5.5",
input=[
{"role": "developer", "content": "日本語で簡潔に回答してください。"},
{"role": "user", "content": "Amazon Bedrock とは何ですか?"},
],
reasoning={"effort": "medium"},
)
A response was returned normally in Japanese as well.
Amazon Bedrock は、AWS 上で複数の基盤モデルを利用して生成 AI アプリケーションを構築・運用できるマネージドサービスです。
Summary
I confirmed that GPT-5.5 / GPT-5.4 on Amazon Bedrock can be called from the OpenAI SDK. Obtaining a short-term token with aws-bedrock-token-generator is easy, and reasoning control via reasoning.effort also works. Being able to leverage existing IAM authentication, governance, and billing mechanisms as they are, without issuing an API Key directly from OpenAI, is an advantage unique to going through Bedrock. I would like to try streaming and Codex, which were out of scope this time, in a follow-up.
References

