Claude Platform Docs
AdminPemantauan

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 memiliki type, yang merupakan salah satu nilai group_type, dan id, sebuah pengidentifikasi opak dengan awalan rlg_. Pada entri model_group, objek ini juga memiliki display_name, label Anthropic saat ini untuk grup tersebut, seperti Claude Sonnet 4.x. Label ini hanya untuk tampilan dan dapat berubah. Tipe grup lainnya tidak memiliki display_name.
  • id di dalam group: Sebuah grup memiliki id yang sama di setiap organisasi dan di setiap override workspace, dan tidak pernah berubah. Gunakan untuk mencocokkan entri antar organisasi atau dengan katalog Anda sendiri. id milik entri itu sendiri berbeda per organisasi, dan models berubah ketika Anthropic memindahkan model antar grup. Keduanya bukan kunci yang stabil untuk grup.
  • group_type: Sudah deprecated dan digantikan oleh type di dalam group. Field ini masih dikembalikan, selalu sama dengan nilai tersebut, dan tidak memiliki tanggal penghapusan. Parameter kueri group_type tidak deprecated. Lihat Memfilter berdasarkan tipe grup untuk daftar nilainya.
  • Daftar models: Untuk entri model_group, field models mencantumkan 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, models bernilai null.
  • Daftar limits: Setiap grup membawa daftar pasangan {type, value}. Field type mengidentifikasi limiter (seperti requests_per_minute, input_tokens_per_minute, atau output_tokens_per_minute) dan value adalah batas yang dikonfigurasi. Lihat Batas laju untuk cara setiap limiter diukur dan diberlakukan.
  • source pada batas workspace: Pada endpoint workspace, setiap nilai batas juga membawa source, yang menyatakan asal value: {"type": "workspace"} untuk override yang disimpan pada workspace, atau {"type": "organization"} untuk nilai yang diwarisi dari organisasi. Secara default, endpoint workspace hanya mengembalikan override, sehingga source.type selalu workspace di sana; nilai yang diwarisi muncul ketika Anda meneruskan include_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 data sama 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_limit adalah nilai tingkat organisasi untuk limiter yang sama, atau null jika organisasi tidak memiliki batas yang dikonfigurasi untuk tipe limiter tersebut, dan source adalah {"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:

  • data memiliki 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.
  • source pada setiap nilai membedakan keduanya: {"type": "workspace"} adalah override yang disimpan, dan {"type": "organization"} adalah nilai yang diwarisi, di mana value sama dengan org_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?