Claude Platform Docs
관리모니터링

Rate Limits API

Rate Limits API를 사용하여 조직의 API 속도 제한을 프로그래밍 방식으로 조회하세요.

Rate Limits API는 조직 및 해당 워크스페이스에 구성된 "rate limit"(속도 제한)에 대한 프로그래밍 방식의 액세스를 제공합니다. 이는 Claude Console의 속도 제한 페이지에 표시되는 것과 동일한 정보입니다.

이 API를 사용하여 다음을 수행할 수 있습니다:

  • 게이트웨이와 프록시를 동기화 상태로 유지: Anthropic이 값을 조정할 때 어긋나게 되는 하드코딩된 값 대신, 시작 시와 일정에 따라 현재 제한을 읽어옵니다.
  • 내부 알림 구동: Usage and Cost API의 사용량 데이터를 구성된 제한과 비교합니다.
  • 워크스페이스 구성 감사: 워크스페이스 재정의가 프로비저닝 자동화에서 예상하는 내용과 일치하는지 확인합니다.

이 페이지의 SDK 및 CLI 예제는 기본 클라이언트를 생성하며, 이 클라이언트는 ANTHROPIC_API_KEY 환경 변수에서 Admin API 키를 읽습니다. SDK는 이러한 엔드포인트를 client.organization.rate_limits 및 client.organization.workspaces.rate_limits로 노출합니다. Python, TypeScript, C#, Go, Java의 list 메서드는 next_page를 자동으로 따라가는 이터레이터를 반환하며, PHP, Ruby, curl 예제는 한 페이지만 읽습니다.

빠른 시작

조직에 구성된 속도 제한을 나열합니다:

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

조직 속도 제한

/v1/organizations/rate_limits 엔드포인트는 Messages API 및 이를 지원하는 리소스에 대해 조직 수준에서 적용되는 속도 제한을 반환합니다. Claude Managed Agents와 같은 다른 제품의 제한은 포함되지 않습니다.

핵심 개념

  • 속도 제한 그룹: 응답의 각 항목은 하나의 속도 제한 그룹을 나타냅니다. 모델 속도 제한은 여러 모델 버전이 하나의 제한 세트를 공유하도록 그룹화되며, 다른 그룹은 Message Batches API, Files API, Token Counting API, 에이전트 스킬, 웹 검색 도구와 같은 리소스를 다룹니다.
  • group 객체: 모든 항목에 존재하며, 해당 항목이 적용되는 속도 제한 그룹을 식별합니다. 항상 group_type 값 중 하나인 type과 rlg_ 접두사가 붙은 불투명 식별자인 id를 가집니다. model_group 항목에는 Claude Sonnet 4.x와 같이 Anthropic이 현재 그룹에 붙인 레이블인 display_name도 있습니다. 이 레이블은 표시 전용이며 변경될 수 있습니다. 다른 그룹 유형에는 display_name이 없습니다.
  • group 내부의 id: 그룹은 모든 조직과 모든 워크스페이스 재정의에서 동일한 id를 가지며, 이 값은 절대 변경되지 않습니다. 이를 사용하여 조직 간 항목을 매칭하거나 자체 카탈로그와 대조하세요. 항목 자체의 id는 조직마다 다르며, models는 Anthropic이 모델을 그룹 간에 이동할 때 변경됩니다. 둘 다 그룹에 대한 안정적인 키가 아닙니다.
  • group_type: group 내부의 type으로 대체되어 지원 중단되었습니다. 여전히 반환되며, 항상 해당 값과 같고, 제거 일정은 없습니다. group_type 쿼리 매개변수는 지원 중단되지 않았습니다. 값 목록은 그룹 유형별 필터링을 참조하세요.
  • models 목록: model_group 항목의 경우, models 필드는 해당 그룹의 제한에 포함되는 모든 모델 ID와 별칭을 나열합니다. 이 목록을 사용하여 특정 모델 문자열이 어느 그룹에 속하는지 조회하세요. 다른 그룹 유형의 경우 models는 null입니다.
  • limits 목록: 각 그룹은 {type, value} 쌍의 목록을 가집니다. type 필드는 제한기(예: requests_per_minute, input_tokens_per_minute, output_tokens_per_minute)를 식별하고, value는 구성된 제한 값입니다. 각 제한기가 측정되고 적용되는 방식은 속도 제한을 참조하세요.
  • 워크스페이스 제한의 source: 워크스페이스 엔드포인트에서는 모든 제한 값에 source도 포함되며, 이는 value의 출처를 나타냅니다. 워크스페이스에 저장된 재정의의 경우 {"type": "workspace"}, 조직에서 상속된 값의 경우 {"type": "organization"}입니다. 기본적으로 워크스페이스 엔드포인트는 재정의만 반환하므로 source.type은 항상 workspace이며, include_inherited=true를 전달하면 상속된 값이 나타납니다. 워크스페이스 속도 제한을 참조하세요.

전체 매개변수 세부 정보와 응답 스키마는 Organization Rate Limits API 레퍼런스를 참조하세요.

모든 조직 속도 제한 나열

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
}

특정 모델의 제한 조회

모델 ID 또는 별칭을 model 쿼리 매개변수로 전달하면 해당 모델이 포함된 항목만 반환됩니다:

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

모델 문자열이 어떤 그룹과도 일치하지 않으면 엔드포인트는 404 오류를 반환합니다. model 매개변수는 조직 엔드포인트에서만 지원되며, 워크스페이스 엔드포인트는 이를 허용하지 않습니다.

워크스페이스 속도 제한

/v1/organizations/workspaces/{workspace_id}/rate_limits 엔드포인트는 단일 워크스페이스에 구성된 속도 제한 재정의를 반환합니다. 워크스페이스가 상속하는 값도 확인하려면 include_inherited=true를 전달하세요(상속된 값 포함 참조).

기본적으로 응답에는 재정의만 포함되므로, 응답에 없는 항목은 조직에서 상속됩니다:

  • data에 없는 그룹은 워크스페이스 재정의가 전혀 없는 것입니다. 워크스페이스는 해당 그룹에 대해 조직 수준의 제한을 상속합니다(무제한이 아닙니다).
  • 존재하는 그룹 내에서 limits[]에 없는 제한기 유형은 해당 제한기에 대한 워크스페이스 재정의가 없는 것입니다. 워크스페이스는 해당 제한기에 대해 조직 값을 상속합니다.
  • 존재하는 각 제한기에 대해 org_limit은 동일한 제한기의 조직 수준 값이며, 조직에 해당 제한기 유형에 대해 구성된 제한이 없으면 null이며, source는 {"type": "workspace"}입니다.

전체 매개변수 세부 정보와 응답 스키마는 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
}

상속된 값 포함

한 번의 요청으로 워크스페이스에 적용되는 제한을 읽으려면 선택적 include_inherited 쿼리 매개변수를 추가하세요. 기본값은 false이며, Boolean이 아닌 값은 400 오류를 반환합니다. include_inherited=true를 사용하면:

  • data에는 워크스페이스에 적용되고 조직 수준 값이 있는 각 그룹에 대해 하나의 항목이 포함되며, 워크스페이스가 그중 아무것도 재정의하지 않더라도 마찬가지입니다. 모델 그룹은 워크스페이스가 해당 그룹의 모델 중 하나 이상에 접근할 수 있을 때 적용됩니다.
  • 각 항목의 limits[]는 해당 그룹에서 조직이 값을 가진 모든 제한기 유형과, 워크스페이스가 재정의하는 모든 유형을 나열합니다. 각 유형은 한 번씩 나타나며, 재정의가 저장된 경우 워크스페이스의 재정의 값을, 그렇지 않으면 조직의 값을 가지므로 하나의 항목에 두 가지가 섞일 수 있습니다.
  • 각 값의 source로 이를 구분합니다. {"type": "workspace"}는 저장된 재정의이고, {"type": "organization"}은 상속된 값이며, 이 경우 value는 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
}

그룹 유형별 필터링

두 엔드포인트 모두 응답을 단일 카테고리로 제한하는 선택적 group_type 쿼리 매개변수를 허용합니다:

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

유효한 값은 model_group, batch, token_count, files, skills, web_search입니다.

페이지네이션

두 엔드포인트 모두 page 쿼리 매개변수를 허용하고 next_page 필드를 반환합니다. 현재 응답은 항상 단일 페이지이므로 next_page는 null입니다. 응답이 커질 때 변경 없이 클라이언트가 올바르게 페이지네이션하도록 next_page를 기준으로 반복하세요.

자주 묻는 질문

models 목록에는 어떤 모델 문자열이 표시되나요?

날짜가 포함된 ID(예: claude-sonnet-4-5-20250929)와 날짜가 없는 별칭(예: claude-sonnet-4-5)을 포함하여 해당 그룹에 합산되는 모든 모델 ID와 별칭이 표시됩니다. Messages API에 전달하는 모델 문자열을 조회하면 정확히 하나의 model_group 항목에서 찾을 수 있습니다.

워크스페이스 응답에서 그룹이 누락되었다면 무엇을 의미하나요?

기본적으로 워크스페이스 응답은 재정의만 나열하므로, 누락된 그룹은 워크스페이스 재정의가 없으며 조직 수준 제한을 상속합니다. 워크스페이스 엔드포인트에서 상속된 값을 보려면 include_inherited=true를 전달하거나 조직 엔드포인트를 조회하세요. include_inherited=true를 사용하면, 그룹이 워크스페이스에 적용되지 않거나 조직에 해당 그룹에 대한 제한이 설정되지 않은 경우에만 그룹이 누락됩니다.

이 API로 속도 제한을 업데이트할 수 있나요?

아니요. 워크스페이스 속도 제한을 설정하려면 Claude Console의 속도 제한 페이지로 이동하여 Workspace 드롭다운 메뉴에서 워크스페이스를 선택한 다음, 모델 옆의 Edit를 클릭하세요.

참고 항목

Was this page helpful?