Skip to content
All migrations
Migration guide

From AWS Bedrock to ClaudeAPI.cheap.
Same Claude models. 70-80% off the bill.

Bedrock packages Claude with the full AWS billing apparatus — retail pricing plus region multipliers, IAM, VPC, CloudWatch charges, and the boto3 SDK with its model-ID-versioning quirks. We sit in front of the same Opus, Sonnet, and Haiku models at the Pro discount. The migration swaps boto3 for the standard Anthropic SDK — fewer lines of code, simpler errors.

99.5% uptime
Pay with crypto
Balance never expires
Named human support
No quantization

Real pricing math

Per 1M tokens, USD. Bedrock prices track Anthropic list in most regions; some Asia-Pacific and EU regions add 5-15% on top via cross-region inference fees.

Model
AWS Bedrock
ClaudeAPI.cheap Pro
You save
Claude Opus 4.7
in / out per 1M tokens
$5.00 / $25.00
$1.00 / $5.00
80%
Claude Sonnet 4.6
in / out per 1M tokens
$3.00 / $15.00
$0.60 / $3.00
80%
Claude Haiku 4.5
in / out per 1M tokens
$1.00 / $5.00
$0.20 / $1.00
80%
Example: 100M Opus input tokens / month
AWS Bedrock (us-west-2)
$500/mo
ClaudeAPI.cheap Pro
$100/mo
You save
$400/mo

Doesn't include Bedrock's CloudWatch logging, VPC endpoint hourly, or KMS encryption surcharges — those compound the savings further. Pro tier is $19 lifetime, paid once.

Why teams leave AWS Bedrock for a proxy

1. Bedrock prices retail, not wholesale

AWS resells Claude at the same headline rates Anthropic publishes — sometimes with a regional uplift. Bedrock's pricing page reads ~identical to api.anthropic.com per 1M tokens. The AWS value-add (IAM, VPC, multi-region) costs what it costs; the Claude math itself isn't discounted.

2. Drop boto3 + region routing complexity

Bedrock model IDs encode the AWS region inference profile (us.anthropic.claude-..., apac.anthropic.claude-...), the model version timestamp, and the suffix :0. Hard-coded model strings break when AWS rotates inference profiles. Standard Anthropic SDK IDs (claude-opus-4-7) are stable.

3. Multi-vendor through one key

Bedrock catalog is broader than Claude only, but the Bedrock shape forces a per-vendor body schema. ClaudeAPI.cheap dispatches Opus/Sonnet/Haiku, GPT-5 family, and Gemini 3 Pro/Flash from one sk-cc- key — Anthropic-format request body for Claude, OpenAI-format request body for GPT and Gemini. One auth, one balance, one invoice.

4. Crypto-prepaid — no surprise CloudWatch bill

AWS bills card-on-file end-of-month plus all the ancillary CloudWatch / KMS / data-transfer line items. We bill against a prepaid USDT/BTC/ETH balance with zero hidden line items — a runaway agent hits the balance ceiling, not your AWS root account credit limit. Pricing per model is posted publicly.

5. New models ship same week Anthropic publishes

Bedrock typically lags Anthropic direct by 1-3 weeks per model release while AWS provisions regional inference and signs the carve-out. We track the Anthropic catalog directly — Opus 4.7 was available here within days of its release. Catalog at /models.

Migration in 3 steps

1

Get an API key (30 seconds)

Sign up at claudeapi.cheap/signup — email + crypto top-up, no card. Generate an sk-cc-... key from the dashboard.

2

Swap boto3 for the Anthropic SDK

Bedrock's invoke_model takes a JSON-stringified body wrapped in a specific anthropic_version envelope. The Anthropic Python SDK uses the cleaner messages.create shape. Side-by-side:

Before — boto3 + Bedrock
python
import boto3, json client = boto3.client("bedrock-runtime", region_name="us-west-2") response = client.invoke_model( modelId="us.anthropic.claude-opus-4-7-v1:0", body=json.dumps({ "anthropic_version": "bedrock-2023-05-31", "max_tokens": 100, "messages": [{"role": "user", "content": "Say hi."}], }), ) result = json.loads(response["body"].read()) print(result["content"][0]["text"])
After — Anthropic SDK + ClaudeAPI.cheap
python
from anthropic import Anthropic client = Anthropic( base_url="https://claudeapi.cheap/api/proxy", api_key="sk-cc-your-claudeapi-cheap-key", ) response = client.messages.create( model="claude-opus-4-7", max_tokens=100, messages=[{"role": "user", "content": "Say hi."}], ) print(response.content[0].text)

Same response shape — Anthropic SDK exposes .content[0].text directly. No JSON marshal/unmarshal, no region argument, no IAM role. Roll back by switching the import back.

3

Verify with one curl

Confirm the proxy answers from any environment — no AWS credentials, no signed-request boilerplate.

bash
curl https://claudeapi.cheap/api/proxy/v1/messages \ -H "x-api-key: sk-cc-your-key" \ -H "anthropic-version: 2023-06-01" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-opus-4-7", "max_tokens": 100, "messages": [{"role": "user", "content": "Say hi in 5 words."}] }'

The first response logs to /dashboard/usage with exact token count and cost. After that, your existing Anthropic-SDK code is in production.

Model ID mapping

Bedrock IDs encode region inference profile + timestamp + version suffix. ClaudeAPI.cheap uses the canonical Anthropic IDs — same names you'd use against api.anthropic.com directly.

AWS Bedrock model ID
ClaudeAPI.cheap model ID
us.anthropic.claude-opus-4-7-v1:0
claude-opus-4-7
us.anthropic.claude-opus-4-6-v1:0
claude-opus-4-6
us.anthropic.claude-opus-4-5-v1:0
claude-opus-4-5
us.anthropic.claude-sonnet-4-6-v1:0
claude-sonnet-4-6
us.anthropic.claude-sonnet-4-5-v1:0
claude-sonnet-4-5
us.anthropic.claude-haiku-4-5-v1:0
claude-haiku-4-5

Cross-region profiles (apac., eu.) map to the same canonical ID — there's no per-region duplication on our side. Full catalog including GPT-5 and Gemini 3 at /models.

FAQ

If Bedrock and Anthropic Direct cost the same, why is one of them "more expensive"?

Headline per-token rate is roughly identical. Bedrock's "tax" is the surrounding AWS bill: CloudWatch log ingestion (~$0.50/GB), VPC endpoint hourly (~$0.01/h per endpoint per AZ), KMS key usage if you encrypt request bodies, and cross-region inference fees if you route from a region that doesn't host the model directly. For high- throughput agent workloads these accumulate to 10-25% on top of token cost. ClaudeAPI.cheap has zero ancillary line items.

Does prompt caching work after migration?

Yes. The cache_control blocks you used in the Bedrock request body work identically through the Anthropic SDK shape — write at 1.25× input, read at 0.1× input. Cache metadata in the response is intermittent (Anthropic-side, not our choice) — plan for 80-90% passthrough.

What about IAM, VPC endpoints, and AWS PrivateLink?

Not applicable — ClaudeAPI.cheap is a public HTTPS endpoint authenticated by a bearer token. For tenants that need IP-locked egress, the proxy is reachable from any HTTPS-capable network; you can whitelist claudeapi.cheap in your egress firewall. For VPC-internal traffic only, you would need to keep Bedrock or self-host LiteLLM. Most teams who migrate accept the trade for the discount + simpler ops.

Does the Bedrock Converse API map to anything?

Converse was AWS's vendor-neutral wrapper to call Claude, Llama, Mistral, etc. with one shape. ClaudeAPI.cheap solves the same multi-vendor problem at a different layer: onesk-cc- key, Anthropic-format for Claude, OpenAI-format for GPT and Gemini. Migration from Converse is straightforward — pick the appropriate request shape per vendor instead of the unified Converse envelope. The savings are large enough that most teams accept the change.

Data residency — HIPAA, EU GDPR, SOC 2?

We do not log request or response content. We do not have BAA (HIPAA) or SOC 2 attestation today — if those are required by your compliance program, Bedrock's AWS-native attestations may still be the right choice. See /trust and /privacy for the exact policies. We'll be straight about what we do and don't cover.

What if I'm not satisfied after migrating?

Email support@claudeapi.cheap within 7 days for a full refund of the remaining balance and the $19 Pro upgrade. Crypto refunds return to the originating wallet within 24 hours. Reverting to Bedrock is git revert on the SDK swap commit.

Cut your Bedrock bill — get an API key

No card, crypto only. Basic free forever; $19 lifetime Pro. Read our SLA →