---
title: "Get Cost Report"
method: GET
path: "/v1/organizations/cost_report?beta=true"
---

# Get Cost Report

`GET /v1/organizations/cost_report?beta=true`

## Query parameters

- `limit` integer — Maximum number of time buckets to return in the response.
- `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.
- `group_by[]` BetaCostReportGroupBy[], nullable — Group by any subset of the available options.
- `bucket_width` '1d'

## Headers

- `anthropic-beta` string — Optional header to specify the beta version(s) you want to use. To use multiple betas, use a comma separated list like `beta1,beta2` or specify the header multiple times for each beta.
- `x-api-key` string — Your unique Admin API key for authentication. This key is required in the header of all Admin API requests, to authenticate your account and access Anthropic's services. Get your Admin API key through the [Console](https://console.anthropic.com/settings/admin-keys).
- `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

- BetaGetCostReportResponse
  - `data` BetaCostReportTimeBucket[], required — List of time buckets for this page, oldest first: one per `bucket_width` interval, including intervals with no costs (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` BetaCostReportItem[], required — List of cost items for this time bucket. There may be multiple items if one or more `group_by[]` parameters are specified.
      - `currency` string, required — Currency code for the cost amount. Currently always `"USD"`.
      - `amount` string, required — Cost amount in lowest currency units (e.g. cents) as a decimal string. For example, `"123.45"` in `"USD"` represents `$1.23`.
      - `workspace_id` string, nullable, required — ID of the Workspace this cost is associated with. `null` if not grouping by workspace or for the default workspace.
      - `description` string, nullable, required — Description of the cost item. `null` if not grouping by description.
      - `cost_type` 'code_execution' | 'session_usage' | 'tokens' | 'web_search', required
      - `context_window` '0-200k' | '200k-1M', required
      - `model` string, nullable, required — Model name used. `null` if not grouping by description or for non-token costs.
      - `service_tier` 'batch' | 'standard', required
      - `token_type` 'cache_creation.ephemeral_1h_input_tokens' | 'cache_creation.ephemeral_5m_input_tokens' | 'cache_read_input_tokens' | 'output_tokens' | 'uncached_input_tokens', required
      - `inference_geo` 'global' | 'not_available' | 'us', 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-09-02** `4789294140a2` — 16 info
  - added the non-success response with the status `400`
  - added the non-success response with the status `401`
  - added the non-success response with the status `403`
  - added the non-success response with the status `404`
  - …12 more
- **2026-08-26** `942a11636c42` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/anthropics/apis/anthropic-api/changes/v1/organizations/cost_report?beta=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/1bb7c7a0a4a9?raw)
