llmrelay vs AWS Bedrock
Bedrock buys you AWS-native IAM, procurement and one invoice. It does not buy you a discount. Token rates are Anthropic list, unchanged, in every region.
Claude Opus 4.7, per million tokens
Bedrock figures resolved on 26 July 2026 from the pricing feed the AWS page itself loads (b0.p.awsstatic.com pricing JSON), because the rendered page injects prices client-side.
The discount paths that don't exist yet on 4.7
Bedrock has three ways to pay less than on-demand. As of 26 July 2026, none of them apply to Opus 4.7:
- — Batch inference: the pricing page shows N/A in the batch columns for Opus 4.7 and 4.8. Opus 5 does have batch rows.
- — Reserved capacity: priced per hour per 1,000 TPM with a 1-month or 3-month commitment, published for Opus 4.6, Opus 4.5, Sonnet 4.6 and Haiku 4.5 — not 4.7.
- — Provisioned Throughput: no public price. The page says to reach out to your account team.
So the realistic Bedrock number for a team shipping on 4.7 today is $5.00 / $25.00, with a commitment negotiation as the only lever. llmrelay is $2.50 / $12.50 with no commitment and no sales call.
Where Bedrock is genuinely the right choice
- — Your security model is IAM roles and you don't want another API key in circulation.
- — Spend must land on the existing AWS invoice, possibly against committed spend or EDP credits.
- — You need the model inside a VPC alongside other AWS services, or in a specific AWS region for residency.
- — You're already deep in Bedrock Guardrails, Knowledge Bases, or Agents.
If AWS commit credits are covering your inference, Bedrock at list can be cheaper in real cash terms than anything external. That's a legitimate reason to stay.
Where llmrelay wins
You're paying double for integration you may not be using. A small team that only needs a Claude endpoint gets no value from IAM policies, and pays $2.50/M extra on input for the privilege.
There's also setup friction: model access requests, region availability checks, SigV4 signing or the AWS SDK. llmrelay is an OpenAI-compatible base URL and a bearer token.
Migration
# Before (Bedrock, via AWS SDK — SigV4, region, model ARN) bedrock-runtime.us-east-1.amazonaws.com model: anthropic.claude-opus-4-7-v1:0 # After (llmrelay — plain bearer token) OPENAI_BASE_URL=https://api.llmrelay.dev/v1 OPENAI_API_KEY=sk-llmrelay-... model: claude-opus-4-7
You drop the AWS SDK dependency and the signing layer. Anthropic-native /v1/messages is available too if your code already speaks that format.
A note on token counts
Anthropic states that Claude 4.7 and later use a newer tokenizer producing roughly 30% more tokens for the same text. That applies on Bedrock too — same rate card, more tokens per document than 4.6-era estimates. Build cost models on 4.7 tokenization or you'll understate spend on either platform.
Keep Bedrock for the AWS-native work. Move the rest.
Nothing stops you running both. Route VPC-bound and Guardrails traffic through Bedrock, and put ordinary Claude, GPT and Gemini calls on llmrelay at half of list.
Get API key →