Dua env var untuk bermigrasi dari Anthropic.
Gunakan endpoint /anthropic kami agar kode Claude SDK Anda yang ada tetap bekerja tanpa perubahan. Bentuk request sama, bentuk response sama, plus guardrails + observability.
Diff lengkap
Sebelum vs sesudah
# BEFORE: raw Anthropic
from anthropic import Anthropic
client = Anthropic(api_key="sk-ant-...")
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "Hi"}],
)
# AFTER: through Anoman
from anthropic import Anthropic
client = Anthropic(
base_url="https://api.anoman.io/anthropic", # ← 1
api_key="anm-sk-...", # ← 2
)
response = client.messages.create(
model="claude-sonnet-4-6", # same slug — works unchanged
max_tokens=1024,
messages=[{"role": "user", "content": "Hi"}],
)Pilihan endpoint
Base URL yang mana?
Anoman menyediakan model yang sama melalui DUA endpoint:
https://api.anoman.io/v1 → format OpenAI Messages
https://api.anoman.io/anthropic → format Anthropic Messages
Gunakan /anthropic jika:
- Anda bermigrasi dari Anthropic SDK
- Anda memakai Claude Code, Agent TARS, atau tool apa pun yang mengharapkan
bentuk request/response Anthropic
- Anda ingin tetap memakai fitur khusus Anthropic seperti
marker cache_control di dalam konten pesan Anda
Gunakan /v1 jika:
- Anda bermigrasi dari OpenAI / LangChain / CrewAI / dll.
- Anda ingin antarmuka yang netral vendor
Anda bisa mencampur: API key yang sama bekerja di kedua endpoint.Yang tetap sama
- Setiap metode Anthropic SDK bekerja tanpa perubahan.
- Streaming via
stream=True— urutan event SSE identik (message_start,content_block_delta, dst.). - Tool calling — blok Anthropic
tool_useyang identik. - Vision (input gambar) — format array content-block yang identik.
cache_controlmarker — diteruskan secara transparan, upstream tetap menghormatinya.- Klien async (
AsyncAnthropic) — didukung penuh. - Penanganan error — kelas exception yang sama.
Yang otomatis Anda dapatkan
// Anthropic's response shape — unchanged.
// Plus an _anoman extension field that the SDK harmlessly ignores.
{
"id": "msg_01...",
"type": "message",
"role": "assistant",
"content": [{"type": "text", "text": "..."}],
"stop_reason": "end_turn",
"usage": {"input_tokens": 12, "output_tokens": 8},
"_anoman": {
"guardrails": {
"injection": { "status": "pass", "score": 0.02 },
"pii": { "status": "pass" }
},
"routing": { "region": "id" },
"cost_usd": "0.000045",
"weighted_tokens": 80
}
}Keuntungan sama seperti migrasi OpenAI — guardrails di setiap request, observability, pencatatan biaya, pengungkapan residency regional, failover multi-provider.
Claude Code + CLI agent
Tanpa perubahan kode — cukup env var
Claude Code, Agent TARS, dan tool lain yang memakai SDK Anthropic membaca ANTHROPIC_BASE_URL dari environment. Dua env var dan CLI Anda yang ada berjalan lewat Anoman:
# Drop-in for Claude Code / Anthropic CLI:
export ANTHROPIC_BASE_URL=https://api.anoman.io/anthropic
export ANTHROPIC_API_KEY=anm-sk-...
claude
# Every prompt now goes through:
# - ML-based prompt injection detection
# - PII masking (per your policy group's mode)
# - Content moderation
# - Tool policy enforcement (if you've set one)
# Cached, traced, billed transparently.Panduan lengkap integrasi Claude Code di /docs/agents/claude-code.
Di luar Claude
Endpoint /anthropic menerima slug model dari provider non-Anthropic juga — kami menerjemahkan bentuk request secara otomatis. Jadi model: gpt-4o atau model: deepseek-v3 juga bekerja di endpoint ini. Berguna saat Anda ingin A/B test alternatif tanpa mengubah lokasi panggilan Anthropic-SDK Anda.
Coba — API key gratis + tanpa perubahan kode.
Dua env var. Integrasi lima menit.