Rate limits
Batas belanja Anda adalah token cap per pelanggan berdasarkan model tier class (mingguan + bulanan). RPM/TPM berperan sebagai burst guard anti-flood, dan token pack menambah headroom untuk lonjakan terencana.
Token cap berdasarkan model tier class
Batas belanja pada flat tier adalah batas token per kelas tier model yang keras, ditegakkan per pelanggan pada jendela mingguan dan bulanan. Tier class sebuah model (budget / mid / premium / ultra) ditentukan oleh harganya. Cap dibagi di seluruh key pada satu akun — N key mengambil dari satu bucket, menutup eksploit gaming multi-key yang dimiliki gateway lama. Lewati cap mingguan atau bulanan sebuah class dan request mengembalikan 402 token_quota_exceeded. Sebuah class tanpa baris untuk suatu tier tidak tersedia pada tier itu.
| Tier | Budget (wk / mo) | Mid (wk / mo) | Premium (wk / mo) | Ultra |
|---|---|---|---|---|
| Starter | 8M / 25M | — | — | — |
| Pro | 40M / 120M | 8M / 24M | 1.5M / 4M | — |
| Pay-As-You-Go | Tanpa kuota token tetap — alert cost-velocity halus + ketentuan pay-as-you-go | |||
| Enterprise | Tanpa kuota token tetap — alert cost-velocity halus + ketentuan kontrak |
Token menghitung input + output. Starter hanya menjalankan model budget. Pro menambahkan mid + premium. Ultra-class adalah wilayah Enterprise / PAYG. PAYG dan Enterprise tidak memiliki token cap keras — penggunaan diatur oleh alert cost-velocity internal yang halus ditambah ketentuan komersial Anda.
Sebuah reserved Free tier (budget saja, 1M wk / 3M mo) ada dalam skema tetapi belum memiliki pendaftaran aktif hari ini.
Override kustom per-pelanggan tersedia — hubungi [email protected].
Burst guard RPM / TPM + inflight cap
Terpisah dari token cap (batas belanja Anda), setiap tier memiliki burst guard RPM dan TPM plus sebuah inflight cap per key. Ini adalah limit anti-flood — mereka melindungi provider upstream dan tail latency Anda sendiri, bukan budget bulanan Anda. Memicu salah satunya mengembalikan 429 rate_limit_exceeded (atau concurrent_limit_exceeded untuk inflight cap).
| Tier | RPM | TPM | Max concurrent |
|---|---|---|---|
| Free | 20 | 40,000 | 25 |
| Starter | 30 | 60,000 | 60 |
| Pro | 120 | 500,000 | 150 |
| Pay-As-You-Go | 60 | 200,000 | 125 |
| Enterprise | 30,000 | 100M | 500 |
RPM = request / menit (laju). TPM = total token / menit (input + output). Max concurrent = request in-flight bersamaan per key — ruang untuk konkurensi, bukan batas throughput.
Dua batas yang berbeda
402 token_quota_exceeded— Anda menghabiskan token cap mingguan atau bulanan untuk sebuah model tier class. Response membawamodel_tier_classdanwindow(weekly|monthly). Retry tidak akan membantu sampai jendela bergulir — beli token pack, upgrade tier Anda, atau pindahkan workload ke class yang masih memiliki budget.429 rate_limit_exceeded— Anda memicu burst guard RPM/TPM. Transien: back off dan retry, dengan menghormatiRetry-After.
Baca ini alih-alih menabrak limit
Setiap response yang berhasil melaporkan budget burst-guard RPM/TPM Anda saat ini. Gunakan untuk melakukan throttle di sisi client sebelum guard memicu. Habisnya token cap muncul sebagai 402 token_quota_exceeded, berbeda dari flood guard 429 rate_limit_exceeded.
200 — header burst-guard di setiap response
402 — kuota token terlampaui (batas belanja)
429 — burst guard terpicu (flood RPM/TPM)
429 — cap concurrent (inflight)
| Header | Deskripsi |
|---|---|
x-anoman-rate-limit-rpm | Cap burst-guard RPM untuk tier Anda |
x-anoman-rate-remaining-rpm | Request tersisa pada menit berjalan |
x-anoman-rate-limit-tpm | Cap burst-guard TPM untuk tier Anda |
x-anoman-rate-remaining-tpm | Token tersisa pada menit berjalan |
retry-after | Header HTTP standar — detik untuk menunggu. Hanya pada 429. |
x-anoman-tier | Tier pelanggan (starter/pro/payg/enterprise) |
x-anoman-inflight-cap | Batas atas request bersamaan (hanya pada 429 dari bucket ini) |
x-anoman-inflight-current | Jumlah bersamaan saat ini (hanya pada 429) |
Hormati Retry-After
SDK OpenAI / Anthropic retry secara otomatis secara default, tetapi mereka mengabaikan Retry-After di beberapa versi. Berikut pola eksplisit yang memilih waktu tunggu yang disarankan server jika ada, jika tidak exponential backoff:
Python — hormati Retry-After
TypeScript — pola yang sama
Concurrent vs rate
Kedua kode 429 memiliki arti yang berbeda:
rate_limit_exceeded— Anda memicu burst guard RPM/TPM. Retry setelah jendela bergulir.concurrent_limit_exceeded— terlalu banyak in-flight pada saat bersamaan. Kurangi konkurensi atau tunggu satu selesai.
Inflight cap independen terhadap RPM/TPM. Akun Pro pada 120 RPM dengan inflight cap 150 dapat menembakkan 120 request sekuensial per menit atau hingga 150 bersamaan — tetapi tidak 150 bersamaan untuk panggilan 5 detik (itu akan membuat RPM melonjak jauh di atas 120).
Kenapa keduanya? RPM melindungi layanan upstream dari volume total. Inflight cap melindungi budget latensi Anda sendiri — terlalu banyak request in-flight yang menunggu di antrean upstream membuat semua orang lebih lambat. Inflight lebih rendah = tail latency yang dapat diprediksi.
Beli token ekstra saat Anda butuh headroom
Pada flat tier, ketika sebuah model tier class mendekati token cap-nya, beli token pack untuk menambah headroom sementara ke class itu selama durasi tetap. Ini adalah tambahan aditif ke cap class tersebut — bukan perubahan pada burst guard RPM/TPM Anda. Biaya dipotong dari saldo prabayar Anda.
Python — beli token pack
PAYG dan Enterprise tidak butuh token pack — mereka memang tidak memiliki token cap keras sejak awal.
Pantau token cap Anda secara real time
Dashboard Rate Limits menampilkan penggunaan token per-class dan burst guard RPM/TPM dengan sparkline.