anoman
Docs · Autentikasi

API key dan autentikasi.

Key Anoman adalah bearer token yang dikirim di header Authorization. Key di-scope per pelanggan, terikat ke sebuah tier, dan dapat dirotasi dari dashboard.

Format key

API key Anoman

Setiap key dimulai dengan prefix anm-sk- diikuti 40+ karakter random byte yang di-encode base64.

Contoh key

anm-sk-Mh4uZf2W8Rk1JtX9...
  • Raw key ditampilkan tepat satu kali saat pembuatan — segera salin.
  • Kami hanya menyimpan hash bcrypt. Key yang hilang tidak dapat dipulihkan — buat yang baru.
  • Key di-scope per baris API key, bukan per pelanggan. Satu pelanggan bisa memiliki banyak key dengan tier, budget, dan policy yang berbeda.
  • Key berada di app.anoman.io/dashboard/keys.

Format header

Authorization: Bearer

Kirim key di bearer header OAuth 2.0 standar. SDK OpenAI dan Anthropic melakukan ini secara otomatis saat Anda menyetel parameter api_key mereka.

curl https://api.anoman.io/v1/chat/completions \
  -H "Authorization: Bearer anm-sk-..." \
  -H "Content-Type: application/json" \
  -d '{"model": "gpt-4o-mini", "messages": [{"role": "user", "content": "Hi"}]}'
Catatan kompatibilitas. Anoman juga menerima header x-api-key (untuk kompatibilitas Anthropic SDK pada endpoint /anthropic/). Bearer lebih disukai di tempat lain.

Error autentikasi

Ketika autentikasi gagal

Semua kegagalan autentikasi mengembalikan HTTP 401 atau 403 dengan body JSON yang sesuai bentuk di bawah. Field code membedakan tipe kegagalan sehingga Anda dapat mencabangkan penanganan di sisi client.

{
  "error": {
    "type": "invalid_request_error",
    "code": "auth_invalid",
    "message": "Invalid API key. Get one at https://app.anoman.io/dashboard/keys"
  }
}
HTTPKodePenyebab
401auth_missingTidak ada header Authorization yang dikirim
401auth_invalidKey rusak atau tidak dikenal
403auth_revokedKey dicabut dari dashboard
402budget_exceededBudget bulanan tercapai. Top up atau tunggu reset siklus.

Lihat referensi kode error lengkap untuk mode kegagalan non-autentikasi.

Praktik terbaik

Menyimpan dan merotasi key

Perlakukan key Anoman Anda seperti bearer OAuth — siapa pun yang memegang key bisa menghabiskan budget Anda. Muat dari secret manager atau environment variable; jangan pernah commit ke source control.

import os
from openai import OpenAI

# Read from env at startup. Fail fast if absent.
api_key = os.environ.get("ANOMAN_API_KEY")
if not api_key:
    raise RuntimeError("ANOMAN_API_KEY must be set")

client = OpenAI(base_url="https://api.anoman.io/v1", api_key=api_key)

Pola scoping yang direkomendasikan

  • Satu key per environment — pisahkan key development, staging, production agar Anda bisa mencabut key dev yang bocor tanpa berdampak ke prod.
  • Satu key per service jika stack Anda memiliki banyak call site (web backend, batch worker, dll.). Memungkinkan Anda mengatribusikan penggunaan di traces dan mencabut secara presisi.
  • Budget per key — setel cap USD bulanan pada setiap key di dashboard. Script yang liar kemudian mengenai 402 alih-alih menguras akun Anda.

Rotasi

  1. Buat key baru di dashboard (key yang ada tetap aktif).
  2. Deploy key baru ke env var service Anda.
  3. Cabut key lama setelah Anda memastikan tidak ada trafik padanya (terlihat di last_used_at).

Respons kebocoran

Jika sebuah key terekspos (ter-commit ke GitHub, terunggah di screenshot, dll.):

  1. Cabut segera melalui dashboard — berlaku dalam 60 detik.
  2. Terbitkan key pengganti.
  3. Audit log trace untuk penggunaan tak terduga pada jendela antara kebocoran dan pencabutan.
  4. Hubungi kami di [email protected] jika Anda mencurigai penyalahgunaan — kami dapat mengorelasikan dengan log internal kami.

Butuh key?

Gratis dibuat. Tanpa kartu.