Claude API in China: Access, Payment & Setup (2026)
How developers in China use the Claude API: onboarding hurdles, choosing a relay, verifying billing, plus runnable code for both endpoint styles.
Claude remains a favourite for coding and long-document work, but the official channel puts three hard requirements in front of most developers in China: an overseas phone number, an overseas payment method, and passing risk review after signup. Here are the realistic paths, with runnable code.
Path 1: Official direct (teams with an overseas entity)
If you have an overseas company and card, console.anthropic.com is the cleanest route. Three caveats:
- Prepaid, $5 minimum
- Strict risk controls — changing IPs can trigger reviews
- Rate limits scale with deposits; new accounts are tightly capped
Without an overseas entity, don't force it. Use path two.
Path 2: Official relay (most people)
An "official relay" buys official API capacity wholesale and resells it. How to tell a real one:
- Behaviour matches the official model: thinking, tool use and image input all work
- Billing mirrors the official structure: per-token, input and output priced separately
- Sane pricing: typically 40–60% below list. Absurd discounts mean reverse-engineered channels
zaimod's Claude pricing at the default group (November 2026, USD per 1M tokens):
| Model | Input | Output |
|---|---|---|
| claude-sonnet-5 | $4.00 | $20.00 |
| claude-sonnet-5-thinking | $4.00 | $20.00 |
| claude-opus-4-7 | $8.00 | $40.00 |
| claude-opus-5 | $5.00 | $25.00 |
| claude-fable-5 | $30.00 | $150.00 |
Top-ups accept local payment methods and credits don't expire — the main convenience over official prepaid billing.
Two ways to connect
A. OpenAI-compatible endpoint (smallest change)
from openai import OpenAI
client = OpenAI(
api_key="sk-your-zaimod-key",
base_url="https://api.zaimod.com/v1",
)
resp = client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user", "content": "Review this code for race conditions"}],
stream=True,
)
for chunk in resp:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")B. Anthropic-native endpoint (full feature set)
Thinking blocks and native tool use stay intact via /v1/messages:
import anthropic
client = anthropic.Anthropic(
api_key="sk-your-zaimod-key",
base_url="https://api.zaimod.com",
)
msg = client.messages.create(
model="claude-sonnet-5",
max_tokens=4096,
messages=[{"role": "user", "content": "Write an async downloader with retries"}],
)
print(msg.content[0].text)Reliability playbook
- Primary + fallback: claude-sonnet-5 as primary, gpt-5.6-terra or gemini-3-pro-preview as backup
- Retry with backoff: exponential (1s → 2s → 4s) on 429/5xx; never hot-loop
- Reconcile daily: a token-usage spike usually means a missing loop terminator
Common pitfalls
- Missing max_tokens: Claude requires it explicitly on the native endpoint; the OpenAI-compatible layer substitutes a default but don't rely on it
- System prompt placement: in the Anthropic protocol, system is a top-level parameter, not a message role
- Long-context cost: stuffing a whole repo into 200K tokens costs dollars per call. Retrieve first, then inject context
zaimod carries the full Claude lineup — signup takes two minutes →