Claude Platform Docs
AdminMonitoring

Rate Limits API

Frage die API-Ratenlimits deiner Organisation programmatisch mit der Rate Limits API ab.

Die Rate Limits API bietet programmatischen Zugriff auf die „rate limits“ (Ratenlimits), die für deine Organisation und ihre Workspaces konfiguriert sind. Dies sind dieselben Informationen, die auf der Seite Ratenlimits in der Claude Console angezeigt werden.

Verwende diese API, um:

  • Gateways und Proxys synchron zu halten: Lies deine aktuellen Limits beim Start und nach Zeitplan aus, anstatt Werte fest zu codieren, die abweichen, wenn Anthropic sie anpasst.
  • Interne Benachrichtigungen zu betreiben: Vergleiche Nutzungsdaten aus der Usage and Cost API mit deinen konfigurierten Limits.
  • Die Workspace-Konfiguration zu prüfen: Überprüfe, ob Workspace-Überschreibungen dem entsprechen, was deine Bereitstellungsautomatisierung erwartet.

Die SDK- und CLI-Beispiele auf dieser Seite erstellen den Standard-Client, der den Admin-API-Key aus der Umgebungsvariable ANTHROPIC_API_KEY liest. Die SDKs stellen diese Endpunkte als client.organization.rate_limits und client.organization.workspaces.rate_limits bereit; die List-Methoden in Python, TypeScript, C#, Go und Java geben einen Iterator zurück, der next_page für dich verfolgt, während die Beispiele für PHP, Ruby und curl eine Seite lesen.

Schnellstart

Liste die für deine Organisation konfigurierten Ratenlimits auf:

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}")

Ratenlimits der Organisation

Der Endpunkt /v1/organizations/rate_limits gibt die Ratenlimits zurück, die auf Organisationsebene für die Messages API und ihre unterstützenden Ressourcen angewendet werden. Limits für andere Produkte, wie Claude Managed Agents, sind nicht enthalten.

Wichtige Konzepte

  • Ratenlimit-Gruppen: Jeder Eintrag in der Antwort repräsentiert eine Ratenlimit-Gruppe. Modell-Ratenlimits sind so gruppiert, dass sich mehrere Modellversionen einen einzigen Satz von Limits teilen, und andere Gruppen decken Ressourcen wie die Message Batches API, die Files API, die Token Counting API, Agent Skills und das Web-Search-Tool ab.
  • group-Objekt: Es ist in jedem Eintrag vorhanden und identifiziert die Ratenlimit-Gruppe, für die der Eintrag gilt. Es hat immer type, einen der group_type-Werte, und id, einen opaken Bezeichner mit dem Präfix rlg_. Bei model_group-Einträgen hat es außerdem display_name, Anthropics aktuelle Bezeichnung für die Gruppe, wie etwa Claude Sonnet 4.x. Die Bezeichnung dient nur der Anzeige und kann sich ändern. Andere Gruppentypen haben keinen display_name.
  • Die id innerhalb von group: Eine Gruppe hat in jeder Organisation und bei jeder Workspace-Überschreibung dieselbe id, und diese ändert sich nie. Verwende sie, um Einträge organisationsübergreifend oder mit deinem eigenen Katalog abzugleichen. Die eigene id des Eintrags unterscheidet sich je nach Organisation, und models ändert sich, wenn Anthropic ein Modell zwischen Gruppen verschiebt. Keines von beiden ist ein stabiler Schlüssel für die Gruppe.
  • group_type: Abgekündigt zugunsten von type innerhalb von group. Es wird weiterhin zurückgegeben, entspricht immer diesem Wert und hat kein Entfernungsdatum. Der Query-Parameter group_type ist nicht abgekündigt. Siehe Filtern nach Gruppentyp für die Liste der Werte.
  • models-Liste: Bei model_group-Einträgen listet das Feld models jede Modell-ID und jeden Alias auf, die auf die Limits dieser Gruppe angerechnet werden. Verwende diese Liste, um nachzuschlagen, zu welcher Gruppe ein beliebiger Modell-String gehört. Bei anderen Gruppentypen ist models null.
  • limits-Liste: Jede Gruppe enthält eine Liste von {type, value}-Paaren. Das Feld type identifiziert den Limiter (wie requests_per_minute, input_tokens_per_minute oder output_tokens_per_minute) und value ist das konfigurierte Limit. Siehe Ratenlimits, um zu erfahren, wie jeder Limiter gemessen und durchgesetzt wird.
  • source bei Workspace-Limits: Beim Workspace-Endpunkt enthält jeder Limit-Wert außerdem source, das angibt, woher value stammt: {"type": "workspace"} für eine im Workspace gespeicherte Überschreibung oder {"type": "organization"} für einen von der Organisation geerbten Wert. Standardmäßig gibt der Workspace-Endpunkt nur Überschreibungen zurück, daher ist source.type dort immer workspace; geerbte Werte erscheinen, wenn du include_inherited=true übergibst. Siehe Workspace-Ratenlimits.

Vollständige Parameterdetails und Antwortschemas findest du in der API-Referenz für Organisations-Ratenlimits.

Alle Ratenlimits der Organisation auflisten

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
}

Die Limits für ein bestimmtes Modell nachschlagen

Übergib eine beliebige Modell-ID oder einen Alias als Query-Parameter model, um nur den Eintrag zurückzugeben, der sie enthält:

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}")

Wenn der Modell-String keiner Gruppe entspricht, gibt der Endpunkt einen 404-Fehler zurück. Der Parameter model wird nur vom Organisations-Endpunkt unterstützt; der Workspace-Endpunkt akzeptiert ihn nicht.

Workspace-Ratenlimits

Der Endpunkt /v1/organizations/workspaces/{workspace_id}/rate_limits gibt die Ratenlimit-Überschreibungen zurück, die für einen einzelnen Workspace konfiguriert sind. Um auch die Werte zu sehen, die der Workspace erbt, übergib include_inherited=true (siehe Geerbte Werte einbeziehen).

Standardmäßig enthält die Antwort nur Überschreibungen, daher wird alles, was darin fehlt, von der Organisation geerbt:

  • Eine Gruppe, die in data fehlt, hat überhaupt keine Workspace-Überschreibung. Der Workspace erbt die Limits auf Organisationsebene für diese Gruppe (er ist nicht unbegrenzt).
  • Innerhalb einer vorhandenen Gruppe hat ein Limiter-Typ, der in limits[] fehlt, keine Workspace-Überschreibung für diesen Limiter. Der Workspace erbt dafür den Wert der Organisation.
  • Für jeden vorhandenen Limiter ist org_limit der Wert auf Organisationsebene für denselben Limiter oder null, wenn die Organisation kein konfiguriertes Limit für diesen Limiter-Typ hat, und source ist {"type": "workspace"}.

Vollständige Parameterdetails und Antwortschemas findest du in der API-Referenz für Workspace-Ratenlimits.

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
}

Geerbte Werte einbeziehen

Um die geltenden Limits eines Workspace in einer einzigen Anfrage auszulesen, füge den optionalen Query-Parameter include_inherited hinzu. Er ist standardmäßig false; ein Wert, der kein Boolean ist, gibt einen 400-Fehler zurück. Mit include_inherited=true:

  • data enthält einen Eintrag für jede Gruppe, die für den Workspace gilt und einen Wert auf Organisationsebene hat, auch wenn der Workspace nichts davon überschreibt. Eine Modellgruppe gilt, wenn der Workspace auf mindestens eines ihrer Modelle zugreifen kann.
  • Die limits[] jedes Eintrags listen jeden Limiter-Typ auf, für den die Organisation einen Wert in dieser Gruppe hat, sowie jeden Typ, den der Workspace überschreibt. Jeder Typ erscheint einmal, mit der Überschreibung des Workspace, wo eine gespeichert ist, und andernfalls mit dem Wert der Organisation, sodass ein Eintrag beides mischen kann.
  • Das source jedes Werts unterscheidet sie: {"type": "workspace"} ist eine gespeicherte Überschreibung, und {"type": "organization"} ist ein geerbter Wert, bei dem value gleich org_limit ist.
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
}

Filtern nach Gruppentyp

Beide Endpunkte akzeptieren einen optionalen Query-Parameter group_type, der die Antwort auf eine einzelne Kategorie beschränkt:

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}")

Gültige Werte sind model_group, batch, token_count, files, skills und web_search.

Paginierung

Beide Endpunkte akzeptieren einen page-Query-Parameter und geben ein next_page-Feld zurück. Antworten sind derzeit immer eine einzelne Seite, daher ist next_page gleich null. Iteriere über next_page, damit dein Client ohne Änderungen korrekt paginiert, wenn die Antwort wächst.

Häufig gestellte Fragen

Welche Modell-Strings erscheinen in der models-Liste?

Jede Modell-ID und jeder Alias, der auf die Gruppe angerechnet wird, einschließlich datierter IDs (wie claude-sonnet-4-5-20250929) und undatierter Aliase (wie claude-sonnet-4-5). Schlage einen beliebigen Modell-String nach, den du an die Messages API übergibst, und du findest ihn in genau einem model_group-Eintrag.

Was bedeutet es, wenn eine Gruppe in der Workspace-Antwort fehlt?

Standardmäßig listet die Workspace-Antwort nur Überschreibungen auf, daher hat eine fehlende Gruppe keine Workspace-Überschreibung und erbt das Limit auf Organisationsebene. Übergib include_inherited=true, um geerbte Werte beim Workspace-Endpunkt zu sehen, oder frage den Organisations-Endpunkt ab. Mit include_inherited=true fehlt eine Gruppe nur, wenn sie nicht für den Workspace gilt oder die Organisation kein Limit dafür festgelegt hat.

Kann ich Ratenlimits mit dieser API aktualisieren?

Nein. Um Workspace-Ratenlimits festzulegen, gehe zur Seite Ratenlimits in der Claude Console, wähle den Workspace aus dem Dropdown-Menü Workspace aus und klicke neben einem Modell auf Edit.

Siehe auch

Was this page helpful?