---
title: "Get Messages Usage Report"
method: GET
path: "/v1/organizations/usage_report/messages?beta=true"
---

# Get Messages Usage Report

`GET /v1/organizations/usage_report/messages?beta=true`

## Request

- Base URL: `https://api.anthropic.com`
- URL: `https://api.anthropic.com/v1/organizations/usage_report/messages?beta=true`
- Auth: none declared
- TypeScript: <https://skmtc.dev/anthropics/apis/anthropic-api/docs/v1/organizations/usage_report/messages%3Fbeta=true/get.ts> (a function with typed inputs; its response is checked against the schema)

[Legacy] Get a report of your organization's Messages API usage, aggregated into time buckets.

This endpoint is part of the legacy Usage and Cost API. For new integrations, use [`GET /v1/organizations/analytics/usage`](/docs/en/api/beta/organization/analytics/usage/list) in the Usage and Cost Analytics API instead. To move an existing integration, see [Migrate from the Usage and Cost API](/docs/en/manage-claude/usage-cost-analytics-api#migrate-from-usage-cost-api).

## Query parameters

- `limit` integer: Maximum number of time buckets to return in the response. The default and max limits depend on `bucket_width`: • `"1d"`: Default of 7 days, maximum of 31 days • `"1h"`: Default of 24 hours, maximum of 168 hours • `"1m"`: Default of 60 minutes, maximum of 1440 minutes
- `page` string, nullable: Optionally set to the `next_page` token from the previous response.
- `starting_at` string, date-time, required: Time buckets that start on or after this RFC 3339 timestamp will be returned. Each time bucket will be snapped to the start of the minute/hour/day in UTC.
- `ending_at` string, date-time, nullable: Time buckets that end before this RFC 3339 timestamp will be returned.
- `api_key_ids[]` string[], nullable: Restrict usage returned to the specified API key ID(s).
- `workspace_ids[]` string[], nullable: Restrict usage returned to the specified workspace ID(s).
- `account_ids[]` string[], nullable: Restrict usage returned to the specified user account ID(s).
- `service_account_ids[]` string[], nullable: Restrict usage returned to the specified service account ID(s).
- `models[]` string[], nullable: Restrict usage returned to the specified model(s).
- `service_tiers[]` BetaUsageReportServiceTier[], nullable: Restrict usage returned to the specified service tier(s).
- `context_window[]` BetaMessagesUsageReportContextWindow[], nullable: Restrict usage returned to the specified context window(s). See the `context_window` response field for how a request is classified.
- `inference_geos[]` BetaInferenceGeoFilter[], nullable: Restrict usage returned to the specified inference geo(s). Use `not_available` for models that do not support specifying `inference_geo`.
- `speeds[]` BetaSpeed[], nullable: Restrict usage returned to the specified speed(s).
- `group_by[]` BetaMessagesUsageReportGroupBy[], nullable: Group by any subset of the available options.
- `bucket_width` '1d' | '1h' | '1m'

## Headers

- `anthropic-beta` AnthropicBeta[]: Optional header to specify the beta version(s) you want to use.
  - union: Beta names you can send in the `anthropic-beta` header. See [Beta headers](https://platform.claude.com/docs/en/api/beta-headers) for how to send them and where to find the name a feature needs.
    - string
    - 'message-batches-2024-09-24' | 'prompt-caching-2024-07-31' | 'computer-use-2024-10-22' | 'computer-use-2025-01-24' | 'pdfs-2024-09-25' | 'token-counting-2024-11-01' | 'token-efficient-tools-2025-02-19' | 'output-128k-2025-02-19' | 'files-api-2025-04-14' | 'mcp-client-2025-04-04' | 'mcp-client-2025-11-20' | 'dev-full-thinking-2025-05-14' | 'interleaved-thinking-2025-05-14' | 'code-execution-2025-05-22' | 'extended-cache-ttl-2025-04-11' | 'context-1m-2025-08-07' | 'context-management-2025-06-27' | 'model-context-window-exceeded-2025-08-26' | 'skills-2025-10-02' | 'fast-mode-2026-02-01' | 'output-300k-2026-03-24' | 'user-profiles-2026-03-24' | 'user-profiles-2026-08-18' | 'user-profiles-2026-09-04' | 'advisor-tool-2026-03-01' | 'managed-agents-2026-04-01' | 'cache-diagnosis-2026-04-07' | 'dreaming-2026-04-21' | 'thinking-token-count-2026-05-13' | 'server-side-fallback-2026-06-01' | 'server-side-fallback-2026-07-01' | 'fallback-credit-2026-06-01' | 'fallback-credit-2026-07-01' | 'agent-memory-2026-07-22' | 'mid-conversation-tool-changes-2026-07-01' | 'compact-2026-01-12' | 'computer-use-2025-11-24' | 'mcp-tunnels-2026-06-22' | 'structured-outputs-2025-11-13' | 'task-budgets-2026-03-13' | 'thinking-display-updates-2026-08-18' | 'ce-user-management-2026-07-13' | 'mid-conversation-output-config-2026-07-01' | 'thinking-binding-controls-2026-08-01' | 'mid-conversation-system-clear-at-2026-08-21' | 'compact-2026-09-04' | 'inline-tools-2026-09-15' | 'mcp-client-2026-09-15' | 'ce-plugins-2026-09-01' | 'spend-limit-reads-2026-09-26' | 'telemetry-destinations-2026-08-11' | 'webhooks-2026-10-07' | 'admin-user-sign-out-2026-10-08' | 'message-threads-2026-08-12' | 'analytics-usage-cost-2026-08-24' | 'experimental-claude-tag-2026-10-21'
- `anthropic-version` string: The version of the Claude API you want to use. Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning).

## Response `200`

Successful Response

- BetaGetMessagesUsageReportResponse
  - `data` BetaMessagesUsageReportTimeBucket[], required: List of time buckets for this page, oldest first: one per `bucket_width` interval, including intervals with no usage (their `results` list is empty). A page holds at most `limit` buckets.
    - `starting_at` string, date-time, required: Start of the time bucket (inclusive) in RFC 3339 format.
    - `ending_at` string, date-time, required: End of the time bucket (exclusive) in RFC 3339 format.
    - `results` BetaMessagesUsageReportItem[], required: List of usage items for this time bucket. There may be multiple items if one or more `group_by[]` parameters are specified.
      - `uncached_input_tokens` integer, required: The number of uncached input tokens processed.
      - `cache_creation` BetaCacheCreation, required
        - `ephemeral_1h_input_tokens` integer, required: The number of input tokens used to create the 1 hour cache entry.
        - `ephemeral_5m_input_tokens` integer, required: The number of input tokens used to create the 5 minute cache entry.
      - `cache_read_input_tokens` integer, required: The number of input tokens read from the cache.
      - `output_tokens` integer, required: The number of output tokens generated.
      - `server_tool_use` BetaServerToolUse, required
        - `web_search_requests` integer, required: The number of web search requests made.
      - `api_key_id` string, nullable, required: ID of the API key used. `null` if not grouping by API key or if the request did not use an API key, as with usage in the Claude Console or from most Claude Managed Agents sessions.
      - `workspace_id` string, nullable, required: ID of the Workspace used. `null` if not grouping by workspace or for the default workspace.
      - `account_id` string, nullable, required: ID of the user account that made the request. `null` if not grouping by account or if no user account made the request.
      - `service_account_id` string, nullable, required: ID of the service account that made the request. `null` if not grouping by service account or if no service account made the request. This can be the ID of an Anthropic-managed service account, such as one that runs Claude Managed Agents sessions, which the Service Accounts endpoints do not return.
      - `model` string, nullable, required: Model used. `null` if not grouping by model.
      - `service_tier` 'batch' | 'flex' | 'flex_discount' | 'priority' | 'priority_on_demand' | 'standard', required
      - `context_window` '0-200k' | '200k-1M', required
      - `inference_geo` 'global' | 'not_available' | 'us', required
      - `speed` 'standard' | 'fast', required
  - `has_more` boolean, required: Indicates if there are more results.
  - `next_page` string, nullable, required: Opaque cursor for the next page, or `null` when `has_more` is false. Pass it as the `page` parameter in the next request.

## Other responses

- `400`: Invalid argument - The client specified an invalid argument
- `401`: Unauthenticated - The request does not have valid authentication credentials
- `403`: Permission denied - The caller does not have permission to execute the specified operation
- `404`: Not found - Some requested entity was not found
- `408`: Deadline exceeded - The deadline expired before the operation could complete
- `409`: Aborted - The operation was aborted due to concurrency issue
- `412`: Failed precondition - Operation was rejected because the system is not in required state
- `413`: Out of range - Operation was attempted past the valid range
- `429`: Resource exhausted - Some resource has been exhausted (rate limiting)
- `431`: Request header fields too large - Request metadata was too large
- `499`: Cancelled - The operation was cancelled by the client
- `500`: Internal - Internal server error
- `501`: Unimplemented - The operation is not implemented or supported
- `503`: Unavailable - The service is currently unavailable
- `504`: Deadline exceeded - Upstream service did not respond in time
- `529`: Overloaded - The service is temporarily overloaded

## Changes

- **2026-11-05** `037a593978dc`: 1 info
  - added the enum value `admin-user-sign-out-2026-10-08` to the property `items/anyOf[subschema #2]/` of the `header` request parameter `anthropic-beta`
- **2026-10-23** `f538a797852c`: 1 info
  - added the enum value `experimental-claude-tag-2026-10-21` to the property `items/anyOf[subschema #2]/` of the `header` request parameter `anthropic-beta`
- **2026-10-23** `8071e43a8476`: 1 info
  - added the enum value `analytics-usage-cost-2026-08-24` to the property `items/anyOf[subschema #2]/` of the `header` request parameter `anthropic-beta`
- **2026-10-22** `376dea998624`: 1 info
  - added the enum value `message-threads-2026-08-12` to the property `items/anyOf[subschema #2]/` of the `header` request parameter `anthropic-beta`
- **2026-10-21** `94c83daca660`: 1 warning
  - deleted the `header` request parameter `x-api-key`

[Operation history](https://skmtc.dev/anthropics/apis/anthropic-api/changes/v1/organizations/usage_report/messages%3Fbeta=true/get.md)

---

[API](https://skmtc.dev/anthropics/apis/anthropic-api.md) - [All operations](https://skmtc.dev/anthropics/apis/anthropic-api/llms.txt) - [OpenAPI document](https://skmtc.dev/anthropics/apis/anthropic-api/revisions/690622377a5e?raw)
