Amazon Bedrock now has Claude Fable 5.1 available, so I tried calling it from the Converse API
This page has been translated by machine translation. View original
Introduction
On September 1, 2026, Anthropic's Claude Fable 5.1 became available on Amazon Bedrock and the Claude Platform on AWS.
I called Fable 5.1 via the Converse API and InvokeModel API from the AWS CLI, and reviewed the required setup and the responses returned.
Verification Details
Verification was conducted on September 2, 2026, in us-east-1, using AWS CLI 2.36.36. This version allowed the use of commands to check and change the data retention mode.
Data Retention Mode
The Fable 5.1 model card requires setting the account's data retention mode to aws_review via the Data Retention API before use.
Fable 5.1 is designated as a Covered Model, and according to the AWS blog, its use is subject to data retention of up to 30 days and review by Amazon representatives. aws_review is a mode in which AWS retains prompts and outputs within the AWS boundary for safety review purposes. Fable 5.1 does not require sharing with the model provider.
I read the current value before switching.
aws bedrock get-account-data-retention
aws bedrock put-account-data-retention --mode aws_review
The read result before switching.
{
"mode": "provider_data_share",
"updatedAt": "2026-06-09T23:46:41.595000+00:00"
}
The read result after switching.
{
"mode": "aws_review",
"updatedAt": "2026-09-01T19:49:15.480000+00:00"
}
The only parameter needed to make the change is --mode. No model ID is specified; this is configured at the account level.
Converse Call
I called the Converse API specifying a Global inference profile.
aws bedrock-runtime converse \
--model-id "global.anthropic.claude-fable-5-1" \
--messages '[{"role":"user","content":[{"text":"こんにちは!あなたのモデル名を教えてください。一言で。"}]}]' \
--inference-config '{"maxTokens":100}'
The response text, usage, and metrics were returned.
{
"output": {
"message": {
"role": "assistant",
"content": [
{
"text": "こんにちは!Claudeです。"
}
]
}
},
"stopReason": "end_turn",
"usage": {
"inputTokens": 32,
"outputTokens": 14,
"totalTokens": 46,
"cacheReadInputTokens": 0
},
"metrics": {
"latencyMs": 2062
}
}
In this Converse call, the content contained only a text block, and no reasoningContent block was included. The conditions under which thinking content is returned are covered in the next section.
A inference profile is specified for the model ID. In the Programmatic Access section of the model card, the In-Region endpoint URL is N/A. For Geo, specify us.anthropic.claude-fable-5-1; for Global, specify global.anthropic.claude-fable-5-1 as used above. The same prompt also returned a response when using the US Geo inference profile.
reasoning effort
The effort specifying the depth of thinking is placed under output_config. The model card states that effort has 5 levels—low / medium / high / xhigh / max—with the default being high. It also worked in the following form with the Converse API.
--additional-model-request-fields '{"output_config":{"effort":"max"}}'
To observe the effect of the setting numerically, I measured using InvokeModel, which can return output_tokens_details.thinking_tokens. In the native request body, output_config is placed at the top level.
{
"anthropic_version": "bedrock-2023-05-31",
"max_tokens": 6000,
"messages": [
{
"role": "user",
"content": "ある農場にニワトリとウシがいます。頭の数の合計は30、脚の数の合計は74です。それぞれ何頭ですか。考え方も示してください。"
}
],
"output_config": {
"effort": "max"
}
}
aws bedrock-runtime invoke-model \
--model-id "global.anthropic.claude-fable-5-1" \
--content-type application/json --accept application/json \
--body "fileb://body-effort-max.json" \
05-effort-max.json
The unspecified effort side is the same body with output_config removed. The same chicken-and-cow algebra prompt was run once each with effort unspecified and with max. The output tokens and elapsed time in the table below are from a single execution and will vary between runs even with the same prompt.
| effort | output_tokens | thinking_tokens | content blocks | measured elapsed |
|---|---|---|---|---|
| unspecified (default high) | 382 | 0 | text | 8,362 ms |
| max | 956 | 410 | thinking, text | 13,724 ms |
Elapsed time is the difference from date +%s%3N. The InvokeModel response has no field equivalent to Converse's metrics.latencyMs.
As shown in the table, the composition of content blocks changes depending on effort, so their positions cannot be fixed. The sample code in the AWS blog also selects the text block by type rather than by a fixed index.
Prompt Cache
According to the model card, the minimum number of tokens required for a single cache checkpoint is 512. The maximum number of checkpoints per request is 4, and the TTL values are 5 minutes and 1 hour. Checkpoints can be placed in system, messages, and tools.
I placed a cache checkpoint at the end of the system prompt (695 tokens). The format places a cachePoint block after the glossary body text. The following JSON omits some glossary lines in the middle.
[
{"text": "You are a glossary reference. Answer strictly from the glossary below.\n1. The term 'cache checkpoint' is defined in the Amazon Bedrock user guide as a concept used when invoking a model.\n2. The term 'foundation model' is defined in the Amazon Bedrock user guide as a concept used when invoking a model."},
{"cachePoint": {"type": "default"}}
]
aws bedrock-runtime converse \
--model-id "global.anthropic.claude-fable-5-1" \
--system "$(cat system-695.json)" \
--messages '[{"role":"user","content":[{"text":"Reply with the single word: ok"}]}]' \
--inference-config '{"maxTokens":20}'
The first request resulted in a cache write.
{
"usage": {
"inputTokens": 16,
"outputTokens": 4,
"totalTokens": 715,
"cacheReadInputTokens": 0,
"cacheWriteInputTokens": 695,
"cacheDetails": [
{
"ttl": "5m",
"inputTokens": 695
}
]
}
}
Running the same request about 2 seconds later, 695 tokens were counted as a cache read.
{
"usage": {
"inputTokens": 16,
"outputTokens": 4,
"totalTokens": 715,
"cacheReadInputTokens": 695
}
}
Next, without changing the request format, I reduced the number of glossary lines in the system prompt so that the total input fell below the minimum token count of 512, and ran the request.
1st run: {"inputTokens": 377, "outputTokens": 4, "totalTokens": 381, "cacheReadInputTokens": 0}
2nd run: {"inputTokens": 377, "outputTokens": 4, "totalTokens": 381, "cacheReadInputTokens": 0}
No cacheWriteInputTokens appeared on the first run, and in the response the full 377 input tokens were placed in inputTokens.
Summary
By switching the data retention mode to aws_review and specifying a model ID with an inference profile, it was possible to call Claude Fable 5.1 from the Converse API on the very day of its release.
The data retention mode is a per-account setting. Switching to aws_review means that prompts and outputs sent from that account become subject to retention and review, so please confirm your organization's data handling policy before trying this.
