Gateway
Satu API. Semua provider.
Endpoint yang kompatibel dengan OpenAI dan Anthropic. Pengganti drop-in — ubah base_url dan api_key, tidak ada yang lain.
Permukaan API
Referensi endpoint lengkap
Kompatibel OpenAI (/v1/)
- POST
/v1/chat/completionsCompletion utama. Mengembalikan 202 untuk request yang memenuhi syarat batch. - POST
/v1/completionsText completion lama. - GET
/v1/modelsKatalog model dengan flag tier dan dukungan batch. - POST
/v1/embeddingsPassthrough embeddings.
Kompatibel Anthropic (/anthropic/)
- POST
/anthropic/v1/messagesProxy penuh Anthropic Messages API dengan streaming. Set ANTHROPIC_BASE_URL=https://api.anoman.io/anthropic.
Publik — tanpa auth (/public/v1/)
- GET
/public/v1/pricingHarga model — markup 0%, pass-through pada biaya provider. Tanpa auth. - GET
/public/v1/statusStatus sistem + kesehatan provider. Tanpa auth. - GET
/public/v1/modelsKatalog model publik. Tanpa auth.
Native Anoman (/anoman/v1/)
- POST
/anoman/v1/keysBuat API key virtual. - GET
/anoman/v1/batch/{job_id}Poll status batch job atau ambil hasilnya. - GET
/anoman/v1/usage/savingsRincian penghematan biaya cache dan batch. - GET
/anoman/v1/events/streamStream SSE — event gateway real-time. - POST
/anoman/v1/burst/activateBeli pengali rate limit sementara (2x/5x/10x).
Referensi API lengkap dengan skema request/response: Docs / API Reference →
Routing batch
Hemat 50% untuk beban kerja non-interaktif
Analisis dokumen, tugas agent latar belakang, pembuatan laporan semalam — request yang memenuhi syarat otomatis dirutekan ke batch API native provider (Anthropic, OpenAI, Google) dengan penghematan biaya 50%.
from openai import OpenAI
client = OpenAI(base_url="https://api.anoman.io/v1", api_key="anm-sk-...")
# Returns 202 for batch-eligible requests
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "Summarise this doc..."}],
extra_headers={"prefer_batch": "true"}
)
if response.status_code == 202:
job_id = response.json()["id"]
# Poll until complete
result = client.get(f"/anoman/v1/batch/{job_id}")Transparansi respons
Setiap respons membawa konteks penuh
{
"choices": [{ "message": { "content": "..." } }],
"usage": { "prompt_tokens": 512, "completion_tokens": 128 },
"_anoman": {
"guardrails": {
"injection": { "status": "pass", "score": 0.12 },
"pii": { "status": "pass" },
"content": { "status": "pass" },
"policy": { "status": "pass" }
},
"routing": {
"mode": "realtime",
"region": "id",
"provider_type": "cloud_direct"
},
"cache": { "hit": false, "type": "none" },
"weighted_tokens": 1240,
"cost_usd": "0.0023",
"burst": { "active": false }
}
}