DEV Community

brian austin
brian austin

Posted on

Claude Code with ANTHROPIC_BASE_URL: the $2/month rate limit escape hatch

Claude Code with ANTHROPIC_BASE_URL: the $2/month rate limit escape hatch

You're deep in a refactor. Claude Code is cooking. Then:

Claude: I've hit the rate limit. Please wait before continuing.
Enter fullscreen mode Exit fullscreen mode

Session dead. Flow broken. The fix is one environment variable.

What ANTHROPIC_BASE_URL actually does

Claude Code reads ANTHROPIC_BASE_URL at startup. If set, every API call goes through that URL instead of api.anthropic.com. This is the official Anthropic escape hatch for teams who want to proxy, cache, or route Claude traffic differently.

The variable is documented in the Claude Code source and is intentional — not a hack.

The $2/month proxy approach

# Set once in your shell profile
export ANTHROPIC_BASE_URL=https://simplylouie.com
export ANTHROPIC_API_KEY=your_simplylouie_api_key

# Launch Claude Code normally
claude
Enter fullscreen mode Exit fullscreen mode

That's it. Claude Code behaves identically. Same commands, same workflow, same output quality. The only difference: requests route through SimplyLouie's proxy instead of hitting Anthropic's rate-limited direct endpoint.

SimplyLouie: simplylouie.com — $2/month flat, 7-day free trial, no usage caps.

Real curl examples against the API

If you want to test the proxy directly before setting it in Claude Code:

# Test basic connectivity
curl -s https://simplylouie.com/api/health

# Send a message (same format as Anthropic API)
curl -X POST https://simplylouie.com/api/chat \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_LOUIE_KEY' \
  -d '{
    "model": "claude-opus-4-5",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Hello, are you working?"}
    ]
  }'

# Expected response
{
  "id": "msg_xxx",
  "type": "message",
  "role": "assistant",
  "content": [{"type": "text", "text": "Yes, working perfectly."}],
  "model": "claude-opus-4-5",
  "stop_reason": "end_turn"
}
Enter fullscreen mode Exit fullscreen mode

The rate limit math

Anthropics Claude Pro plan ($20/month) has rate limits designed for individual chat use — not for Claude Code sessions that can generate 50,000+ tokens per hour during active development.

When you're:

  • Running test suites and fixing failures in a loop
  • Doing multi-file refactors across 20+ files
  • Using parallel subagents on different branches
  • Debugging complex errors with full stack traces

...you hit limits fast. The proxy approach routes around this.

Setting it permanently

# ~/.bashrc or ~/.zshrc
export ANTHROPIC_BASE_URL=https://simplylouie.com
export ANTHROPIC_API_KEY=sk-louie-your-key-here

# Reload
source ~/.bashrc

# Verify Claude Code picks it up
claude --version  # then start a session, check it routes correctly
Enter fullscreen mode Exit fullscreen mode

For teams: set it in .env

If you're sharing a codebase where multiple devs use Claude Code:

# .env (add to .gitignore if you're storing keys here)
ANTHROPIC_BASE_URL=https://simplylouie.com
ANTHROPIC_API_KEY=team-shared-key
Enter fullscreen mode Exit fullscreen mode

Or per-developer in their shell profile so the key stays off disk:

# Each dev adds to their own ~/.zshrc
export ANTHROPIC_BASE_URL=https://simplylouie.com
export ANTHROPIC_API_KEY=their-own-louie-key
Enter fullscreen mode Exit fullscreen mode

What changes, what doesn't

Feature Direct Anthropic Via proxy
Claude model quality ✅ Same model ✅ Same model
Claude Code commands ✅ All work ✅ All work
CLAUDE.md memory ✅ Works ✅ Works
Hooks ✅ Works ✅ Works
Rate limits ⚠️ Hit during heavy use ✅ Flat rate
Monthly cost $20/month $2/month

The developer API endpoint

For developers building on top of the API (not just Claude Code):

# Get your API key after signup
curl -X POST https://simplylouie.com/api/keys/create \
  -H 'Authorization: Bearer YOUR_SESSION_TOKEN' \
  -H 'Content-Type: application/json'

# Use the key in any Claude-compatible SDK
pip install anthropic
Enter fullscreen mode Exit fullscreen mode
import anthropic

client = anthropic.Anthropic(
    api_key="sk-louie-your-key",
    base_url="https://simplylouie.com"
)

message = client.messages.create(
    model="claude-opus-4-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Build me a REST endpoint"}]
)
print(message.content)
Enter fullscreen mode Exit fullscreen mode

Same SDK, same code, different base URL. No other changes needed.

TL;DR

export ANTHROPIC_BASE_URL=https://simplylouie.com
export ANTHROPIC_API_KEY=your_louie_key
claude  # works normally, no rate limits, $2/month
Enter fullscreen mode Exit fullscreen mode

Sign up at simplylouie.com — 7-day free trial, card required, cancel anytime. $2/month after that.

The rate limit problem is a solved problem. One variable.

Top comments (0)