Amazon Bedrock serves Claude through two surfaces. The legacy one — InvokeModel and Converse on the bedrock-runtime endpoint — wraps Claude in AWS API conventions: ARN-versioned model identifiers, a "anthropic_version": "bedrock-2023-05-31" body field, and AWS event-stream encoding for streaming. The current surface, "Claude in Amazon Bedrock," serves Anthropic's Messages API directly at https://bedrock-mantle.{region}.api.aws/anthropic/v1/messages with the same request body shape as the first-party API and standard SSE streaming. The legacy surface remains available, but current-generation models are pushing the decision: Claude Sonnet 5 is not on the legacy surface at all, and Fable 5, Opus 4.8, and Opus 4.7 have no ARN-versioned IDs.
The code changes
| Legacy surface | Current (Mantle) surface | |
|---|---|---|
| Python client | AnthropicBedrock | AnthropicBedrockMantle(aws_region="us-east-1") |
| Model IDs | global.anthropic.claude-opus-4-6-v1, us.anthropic.claude-sonnet-4-5-20250929-v1:0 | anthropic.claude-opus-4-8, anthropic.claude-fable-5, anthropic.claude-sonnet-5 |
| Version marker | anthropic_version body field (bedrock-2023-05-31) | Standard Anthropic request shape |
| Streaming | AWS event-stream encoding | Standard SSE |
| Endpoint / IAM | bedrock-runtime; bedrock:InvokeModel etc. | bedrock-mantle; bedrock-mantle:CreateInference |
With the SDK, the visible diff is small:
from anthropic import AnthropicBedrockMantle
client = AnthropicBedrockMantle(aws_region="us-east-1")
msg = client.messages.create(
model="anthropic.claude-opus-4-8",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}],
)
Credentials keep working unchanged: the client resolves them via the standard AWS precedence — constructor args, env vars, config files, SSO, roles, instance metadata. Note the ID form changes twice: the routing prefix (global./us.) disappears, and 4.6+ models go dateless. Routing is now chosen by endpoint configuration — the current surface offers global endpoints (no premium) and regional endpoints (10% premium, for data residency) — rather than by editing the model ID string. One behavioral note if you relied on it: the legacy Converse API needed citations enabled for full visual PDF understanding; check your PDF paths as part of validation.
The operational changes people miss
- IAM policies must change. The Mantle surface uses a distinct action namespace: grants of
bedrock:InvokeModeldo nothing for it. Principals needbedrock-mantle:CreateInferenceon the allowed model ARNs, and VPC users need the separatecom.amazonaws.{region}.bedrock-mantlePrivateLink endpoint. - Quotas are separate buckets. The two endpoints track per-model quotas independently, even for the same model — your legacy-surface quota history does not carry over. Mantle enforces input-TPM and output-TPM (no RPM quotas), reserves input tokens plus
max_tokensat admission, and does not count cached reads against input TPM. Increases go through an AWS Support case, not the Service Quotas console. - Model invocation logging does not follow you. Bedrock's invocation logging captures only
bedrock-runtimecalls; Mantle-endpoint calls are not captured by it. Claude in Amazon Bedrock emits to CloudWatch and CloudTrail — rebuild your audit pipeline against those before cutting over, not after. - The FTU form is not required. The one-time Anthropic use-case form that legacy Bedrock accounts submit does not apply to models accessed through the
bedrock-mantleendpoint — one less onboarding step for new accounts. - Beta features become reachable. The legacy surface does not support the
anthropic-betaheader; see the beta-header article for what that unlocks and what still is not on Bedrock at all (Anthropic's Message Batches API, Files API, and server-side web tools remain unavailable on either surface).
bedrock-mantle → rebuild logging against CloudWatch/CloudTrail → swap the client and model IDs behind your provider factory → run both surfaces in parallel on a traffic slice → verify quotas, latency, and audit records → retire the legacy path.Where to go next
For the ID mechanics in detail, read the anthropic. prefix rule. If you are weighing Bedrock against Anthropic-operated options on AWS, the legacy API comparison and the Claude Platform on AWS migration guide frame the alternatives.