Rate Limits API
Kueri batas laju API organisasi Anda secara terprogram dengan Rate Limits API.
Rate Limits API menyediakan akses terprogram ke "rate limit" (batas laju) yang dikonfigurasi untuk organisasi Anda dan workspace-nya. Ini adalah informasi yang sama dengan yang ditampilkan di halaman Batas laju di Claude Console.
Gunakan API ini untuk:
- Menjaga gateway dan proxy tetap sinkron: Baca batas Anda saat ini ketika startup dan secara terjadwal alih-alih melakukan hardcode nilai yang akan menyimpang ketika Anthropic menyesuaikannya.
- Mendukung peringatan internal: Bandingkan data penggunaan dari Usage and Cost API dengan batas yang telah Anda konfigurasi.
- Mengaudit konfigurasi workspace: Verifikasi bahwa override workspace sesuai dengan yang diharapkan oleh otomatisasi provisioning Anda.
Contoh SDK dan CLI di halaman ini membuat klien default, yang membaca kunci Admin API dari variabel lingkungan ANTHROPIC_API_KEY. SDK mengekspos endpoint ini sebagai client.organization.rate_limits dan client.organization.workspaces.rate_limits; metode list di Python, TypeScript, C#, Go, dan Java mengembalikan iterator yang mengikuti next_page untuk Anda, sedangkan contoh PHP, Ruby, dan curl membaca satu halaman.
Mulai cepat
Tampilkan daftar batas laju yang dikonfigurasi untuk organisasi Anda:
client = anthropic.Anthropic()
rate_limits = client.organization.rate_limits.list()
for entry in rate_limits:
models = f" ({', '.join(entry.models)})" if entry.models else ""
print(f"{entry.group.type}{models}")
for limit in entry.limits:
print(f" {limit.type}: {limit.value}")Batas laju organisasi
Endpoint /v1/organizations/rate_limits mengembalikan batas laju yang diterapkan pada tingkat organisasi untuk Messages API dan sumber daya pendukungnya. Batas untuk produk lain, seperti Claude Managed Agents, tidak disertakan.
Konsep utama
- Grup batas laju: Setiap entri dalam respons mewakili satu grup batas laju. Batas laju model dikelompokkan sehingga beberapa versi model berbagi satu set batas yang sama, dan grup lainnya mencakup sumber daya seperti Message Batches API, Files API, Token Counting API, agent skills, dan alat web search.
- Objek
group: Ada di setiap entri, objek ini mengidentifikasi grup batas laju tempat entri tersebut berlaku. Objek ini selalu memilikitype, yang merupakan salah satu nilaigroup_type, danid, sebuah pengidentifikasi opak dengan awalanrlg_. Pada entrimodel_group, objek ini juga memilikidisplay_name, label Anthropic saat ini untuk grup tersebut, sepertiClaude Sonnet 4.x. Label ini hanya untuk tampilan dan dapat berubah. Tipe grup lainnya tidak memilikidisplay_name. iddi dalamgroup: Sebuah grup memilikiidyang sama di setiap organisasi dan di setiap override workspace, dan tidak pernah berubah. Gunakan untuk mencocokkan entri antar organisasi atau dengan katalog Anda sendiri.idmilik entri itu sendiri berbeda per organisasi, danmodelsberubah ketika Anthropic memindahkan model antar grup. Keduanya bukan kunci yang stabil untuk grup.group_type: Sudah deprecated dan digantikan olehtypedi dalamgroup. Field ini masih dikembalikan, selalu sama dengan nilai tersebut, dan tidak memiliki tanggal penghapusan. Parameter kuerigroup_typetidak deprecated. Lihat Memfilter berdasarkan tipe grup untuk daftar nilainya.- Daftar
models: Untuk entrimodel_group, fieldmodelsmencantumkan setiap ID model dan alias yang dihitung terhadap batas grup tersebut. Gunakan daftar ini untuk mencari grup mana yang mencakup string model apa pun. Untuk tipe grup lainnya,modelsbernilainull. - Daftar
limits: Setiap grup membawa daftar pasangan{type, value}. Fieldtypemengidentifikasi limiter (sepertirequests_per_minute,input_tokens_per_minute, atauoutput_tokens_per_minute) danvalueadalah batas yang dikonfigurasi. Lihat Batas laju untuk cara setiap limiter diukur dan diberlakukan. sourcepada batas workspace: Pada endpoint workspace, setiap nilai batas juga membawasource, yang menyatakan asalvalue:{"type": "workspace"}untuk override yang disimpan pada workspace, atau{"type": "organization"}untuk nilai yang diwarisi dari organisasi. Secara default, endpoint workspace hanya mengembalikan override, sehinggasource.typeselaluworkspacedi sana; nilai yang diwarisi muncul ketika Anda meneruskaninclude_inherited=true. Lihat Batas laju workspace.
Untuk detail parameter lengkap dan skema respons, lihat referensi Organization Rate Limits API.
Menampilkan semua batas laju organisasi
client = anthropic.Anthropic()
rate_limits = client.organization.rate_limits.list()
for entry in rate_limits:
models = f" ({', '.join(entry.models)})" if entry.models else ""
print(f"{entry.group.type}{models}")
for limit in entry.limits:
print(f" {limit.type}: {limit.value}"){
"data": [
{
"type": "rate_limit",
"group_type": "model_group",
"group": {
"type": "model_group",
"id": "rlg_01Hq7YkP3mZ9dTwRx4cVbN2s",
"display_name": "Claude Opus 5.5"
},
"models": ["claude-opus-5-5"],
"limits": [
{ "type": "requests_per_minute", "value": 4000 },
{ "type": "input_tokens_per_minute", "value": 10000000 },
{ "type": "output_tokens_per_minute", "value": 800000 }
]
},
{
"type": "rate_limit",
"group_type": "model_group",
"group": {
"type": "model_group",
"id": "rlg_01Kd5wMv8nSq2LcXy6tRfJ4b",
"display_name": "Claude Opus 4.x"
},
"models": [
"claude-opus-4-5",
"claude-opus-4-5-20251101",
"claude-opus-4-6",
"claude-opus-4-7",
"claude-opus-4-8"
],
"limits": [
{ "type": "requests_per_minute", "value": 4000 },
{ "type": "input_tokens_per_minute", "value": 10000000 },
{ "type": "output_tokens_per_minute", "value": 800000 }
]
},
{
"type": "rate_limit",
"group_type": "batch",
"group": { "type": "batch", "id": "rlg_01Wn3pBz6kCg9vHtQ7mLxD5a" },
"models": null,
"limits": [{ "type": "enqueued_batch_requests", "value": 500000 }]
}
],
"next_page": null
}Mencari batas untuk model tertentu
Berikan ID model atau alias apa pun sebagai parameter kueri model untuk hanya mengembalikan entri yang memuatnya:
client = anthropic.Anthropic()
rate_limits = client.organization.rate_limits.list(model="claude-opus-5-5")
for entry in rate_limits:
models = f" ({', '.join(entry.models)})" if entry.models else ""
print(f"{entry.group.type}{models}")
for limit in entry.limits:
print(f" {limit.type}: {limit.value}")Jika string model tidak cocok dengan grup mana pun, endpoint mengembalikan error 404. Parameter model hanya didukung pada endpoint organisasi; endpoint workspace tidak menerimanya.
Batas laju workspace
Endpoint /v1/organizations/workspaces/{workspace_id}/rate_limits mengembalikan override batas laju yang dikonfigurasi untuk satu workspace. Untuk juga melihat nilai yang diwarisi workspace, teruskan include_inherited=true (lihat Menyertakan nilai yang diwarisi).
Secara default, respons hanya menyertakan override, sehingga apa pun yang tidak ada di dalamnya diwarisi dari organisasi:
- Grup yang tidak ada di
datasama sekali tidak memiliki override workspace. Workspace mewarisi batas tingkat organisasi untuk grup tersebut (bukan tanpa batas). - Di dalam grup yang ada, tipe limiter yang tidak ada di
limits[]tidak memiliki override workspace untuk limiter tersebut. Workspace mewarisi nilai organisasi untuknya. - Untuk setiap limiter yang ada,
org_limitadalah nilai tingkat organisasi untuk limiter yang sama, ataunulljika organisasi tidak memiliki batas yang dikonfigurasi untuk tipe limiter tersebut, dansourceadalah{"type": "workspace"}.
Untuk detail parameter lengkap dan skema respons, lihat referensi Workspace Rate Limits API.
client = anthropic.Anthropic()
rate_limits = client.organization.workspaces.rate_limits.list(
"wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ"
)
for entry in rate_limits:
models = f" ({', '.join(entry.models)})" if entry.models else ""
print(f"{entry.group.type}{models}")
for limit in entry.limits:
print(f" {limit.type}: {limit.value}"){
"data": [
{
"type": "workspace_rate_limit",
"group_type": "model_group",
"group": {
"type": "model_group",
"id": "rlg_01Hq7YkP3mZ9dTwRx4cVbN2s",
"display_name": "Claude Opus 5.5"
},
"models": ["claude-opus-5-5"],
"limits": [
{
"type": "requests_per_minute",
"value": 1000,
"org_limit": 4000,
"source": { "type": "workspace" }
},
{
"type": "input_tokens_per_minute",
"value": 500000,
"org_limit": 10000000,
"source": { "type": "workspace" }
}
]
},
{
"type": "workspace_rate_limit",
"group_type": "model_group",
"group": {
"type": "model_group",
"id": "rlg_01Kd5wMv8nSq2LcXy6tRfJ4b",
"display_name": "Claude Opus 4.x"
},
"models": [
"claude-opus-4-5",
"claude-opus-4-5-20251101",
"claude-opus-4-6",
"claude-opus-4-7",
"claude-opus-4-8"
],
"limits": [
{
"type": "requests_per_minute",
"value": 1000,
"org_limit": 4000,
"source": { "type": "workspace" }
},
{
"type": "input_tokens_per_minute",
"value": 500000,
"org_limit": 10000000,
"source": { "type": "workspace" }
}
]
}
],
"next_page": null
}Menyertakan nilai yang diwarisi
Untuk membaca batas yang berlaku pada workspace dalam satu permintaan, tambahkan parameter kueri opsional include_inherited. Nilai defaultnya adalah false; nilai yang bukan Boolean mengembalikan error 400. Dengan include_inherited=true:
datamemiliki satu entri untuk setiap grup yang berlaku pada workspace dan memiliki nilai tingkat organisasi, meskipun workspace tidak meng-override satu pun darinya. Grup model berlaku ketika workspace dapat mengakses setidaknya satu modelnya.limits[]pada setiap entri mencantumkan setiap tipe limiter yang memiliki nilai dari organisasi pada grup tersebut, ditambah tipe apa pun yang di-override oleh workspace. Setiap tipe muncul sekali, dengan override workspace jika ada yang disimpan dan nilai organisasi jika tidak, sehingga satu entri dapat mencampur keduanya.sourcepada setiap nilai membedakan keduanya:{"type": "workspace"}adalah override yang disimpan, dan{"type": "organization"}adalah nilai yang diwarisi, di manavaluesama denganorg_limit.
client = anthropic.Anthropic()
rate_limits = client.organization.workspaces.rate_limits.list(
"wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ",
include_inherited=True,
)
for entry in rate_limits:
models = f" ({', '.join(entry.models)})" if entry.models else ""
print(f"{entry.group.type}{models}")
for limit in entry.limits:
print(f" {limit.type}: {limit.value} ({limit.source.type})"){
"data": [
{
"type": "workspace_rate_limit",
"group_type": "model_group",
"group": {
"type": "model_group",
"id": "rlg_01Hq7YkP3mZ9dTwRx4cVbN2s",
"display_name": "Claude Opus 5.5"
},
"models": ["claude-opus-5-5"],
"limits": [
{
"type": "requests_per_minute",
"value": 1000,
"org_limit": 4000,
"source": { "type": "workspace" }
},
{
"type": "input_tokens_per_minute",
"value": 500000,
"org_limit": 10000000,
"source": { "type": "workspace" }
},
{
"type": "output_tokens_per_minute",
"value": 800000,
"org_limit": 800000,
"source": { "type": "organization" }
}
]
},
{
"type": "workspace_rate_limit",
"group_type": "model_group",
"group": {
"type": "model_group",
"id": "rlg_01Kd5wMv8nSq2LcXy6tRfJ4b",
"display_name": "Claude Opus 4.x"
},
"models": [
"claude-opus-4-5",
"claude-opus-4-5-20251101",
"claude-opus-4-6",
"claude-opus-4-7",
"claude-opus-4-8"
],
"limits": [
{
"type": "requests_per_minute",
"value": 1000,
"org_limit": 4000,
"source": { "type": "workspace" }
},
{
"type": "input_tokens_per_minute",
"value": 500000,
"org_limit": 10000000,
"source": { "type": "workspace" }
},
{
"type": "output_tokens_per_minute",
"value": 800000,
"org_limit": 800000,
"source": { "type": "organization" }
}
]
},
{
"type": "workspace_rate_limit",
"group_type": "batch",
"group": { "type": "batch", "id": "rlg_01Wn3pBz6kCg9vHtQ7mLxD5a" },
"models": null,
"limits": [
{
"type": "enqueued_batch_requests",
"value": 500000,
"org_limit": 500000,
"source": { "type": "organization" }
}
]
}
],
"next_page": null
}Memfilter berdasarkan tipe grup
Kedua endpoint menerima parameter kueri opsional group_type yang membatasi respons ke satu kategori:
client = anthropic.Anthropic()
rate_limits = client.organization.rate_limits.list(group_type="batch")
for entry in rate_limits:
models = f" ({', '.join(entry.models)})" if entry.models else ""
print(f"{entry.group.type}{models}")
for limit in entry.limits:
print(f" {limit.type}: {limit.value}")Nilai yang valid adalah model_group, batch, token_count, files, skills, dan web_search.
Paginasi
Kedua endpoint menerima parameter kueri page dan mengembalikan field next_page. Respons saat ini selalu satu halaman, jadi next_page adalah null. Lakukan loop pada next_page agar klien Anda melakukan paginasi dengan benar tanpa perubahan ketika respons bertambah.
Pertanyaan yang sering diajukan
String model mana yang muncul dalam daftar models?
Setiap ID model dan alias yang dihitung terhadap grup, termasuk ID bertanggal (seperti claude-sonnet-4-5-20250929) dan alias tidak bertanggal (seperti claude-sonnet-4-5). Cari string model apa pun yang Anda berikan ke Messages API dan Anda akan menemukannya dalam tepat satu entri model_group.
Apa artinya jika sebuah grup hilang dari respons workspace?
Secara default, respons workspace hanya mencantumkan override, sehingga grup yang tidak ada tidak memiliki override workspace dan mewarisi batas tingkat organisasi. Teruskan include_inherited=true untuk melihat nilai yang diwarisi pada endpoint workspace, atau kueri endpoint organisasi. Dengan include_inherited=true, sebuah grup hanya tidak ada ketika grup tersebut tidak berlaku pada workspace atau organisasi tidak menetapkan batas untuknya.
Bisakah saya memperbarui batas laju dengan API ini?
Tidak. Untuk mengatur batas laju workspace, buka halaman Batas laju di Claude Console, pilih workspace dari menu dropdown Workspace, lalu klik Edit di samping sebuah model.
Lihat juga
Was this page helpful?