I tried out OpenAI GPT-5.5 / GPT-5.4 which became GA on Amazon Bedrock using 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 specifically on 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 described 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 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, the following must be completed.
- Model access for GPT-5.5 / GPT-5.4 must be enabled in the target region
- Authentication via the AWS credential chain must be possible (IAM role,
AWS_PROFILE, environment variables, etc.) - The executing principal must have Bedrock model invocation permissions granted
Regions and Model IDs
The availability as of June 2, 2026 is as follows. 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
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 Method
Authentication to the Responses API endpoint is done via Bearer token. There are two ways to obtain one.
Method 1: Short-term token (used in this article)
Generate a short-term token from the AWS credential chain (IAM role / profile) using aws-bedrock-token-generator. The maximum validity period is 12 hours, but it cannot be used beyond the expiration of the original AWS credentials. IAM permissions to call Bedrock and botocore[crt] are required.
Method 2: Bedrock API Key
A long-term key issued from the console or CLI. For details, refer to the official documentation.
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 will occur when running provide_token(). This is because awscrt (AWS Common Runtime), which is used internally, is missing. Be sure to install "botocore[crt]" along with openai and aws-bedrock-token-generator.
Note that this article has been verified with the versions listed in the "Execution Environment" section. Attribute names of response objects and error types may change with different versions.
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 was successful.
The reasoning.effort Parameter
The effort field in the reasoning parameter controls the depth of reasoning. In this article, we verified the behavior by specifying low, medium, and high.
In our testing, when effort=low was specified for GPT-5.5, the reasoning_tokens in the response was 0. On the other hand, when calling GPT-5.4 with effort=high, the response in this case had a value in reasoning_tokens, and the output contained a block of type: "reasoning".
Calling via curl
You can also call the API using curl without 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 specified, reasoning_tokens was 0 and the output was simple.
Trying GPT-5.4 as Well
GPT-5.4 is available in Oregon in addition to Ohio.
Calling from Ohio (us-east-2)
Using the client for us-east-2 mentioned 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 successfully. The response in this case 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 from 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 successfully 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)
Attempting to call GPT-5.5 in Oregon resulted in a 404 error. As of June 2, 2026, GPT-5.5 is only available in Ohio.
Calling in Japanese
We verified whether it works correctly 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
We confirmed that GPT-5.5 / GPT-5.4 on Amazon Bedrock can be called from the OpenAI SDK. Obtaining a short-term token via aws-bedrock-token-generator is straightforward, and reasoning control via reasoning.effort also works. The ability to leverage existing IAM authentication, governance, and billing mechanisms without issuing an API Key directly to OpenAI is a unique advantage of going through Bedrock. We plan to explore streaming and Codex, which were out of scope this time, in the future.
Reference Links

