Scope
This public preview includes the following:- Usage quantities at hourly grain (for example, GPU-hours, GiB-hours, and IP-hours)
- Filters for time range, product family, cluster, and zone
- JSON and CSV response formats
- Pagination for large results
- Cost or dollar amounts. This release returns usage quantities only. Cost fields such as billed or effective cost are planned for a later release on the same schema.
- Project-level attribution or resource tags.
- Per-resource or per-node rows. Usage is aggregated. See Data grain.
BillingAccountName, ChargeClass, ChargeDescription, RegionName, and ResourceType.
Prerequisites
Before you call the API, make sure you have the following:- A CoreWeave API access token. Store the token securely.
- FOCUS export enabled for your organization. If you receive a
403 Forbiddenresponse, contact Support to request access.
Make your first request
The export endpoint is:Authorization header, pass your token. Replace [API-ACCESS-TOKEN] with your CoreWeave API access token:
Query parameters
All parameters are optional. Times use ISO 8601 in UTC.
The following constraints apply:
- The time range can’t exceed 90 days per request.
- Historical data is available from January 1, 2026 onward. Requests for earlier periods return no data for that portion of the range.
Response
A successful response includes metadata and usage rows as JSON. When you setformat=csv, the response is a CSV file. The following sections describe the JSON envelope, the row schema, data grain, and pagination.
JSON envelope
A successful JSON response has this shape:Row schema (FOCUS 1.2)
Each row is one hourly usage bucket. Columns follow FOCUS 1.2 naming. CoreWeave-specific columns use thex_ prefix per the FOCUS convention.
If source metadata isn’t available, some fields may be
null during the public preview. If a field you need is empty, contact Support.
Data grain
The API offers the following mutually exclusive views. Usegroup_by to select one:
group_by=location(default): one row per(hour, zone, cluster, SKU). Location is a physical property of the usage.x_CapacityPlanandPricingCategoryarenullin this view.group_by=capacity_plan: one row per(hour, SKU, capacity plan). Capacity plan (On-Demand,Reservation,Spot, orFlex) is a rating-time property of your organization’s usage. It can’t be tied to a specific location, soRegionId,RegionName,x_ClusterId, andx_ClusterNamearenullin this view.
PricingQuantity is identical across both views.
Pagination
The API paginates results (default 100 rows per page, maximum 1,000). When more data exists, the JSON response includesnext_page_token. Pass that value back as page_token until the token is absent.
To fetch the next page:
- Replace
[PAGE-TOKEN]with thenext_page_tokenvalue from the previous response.
X-Next-Page-Token, X-Page-Size, X-FOCUS-Version, and X-Data-As-Of.
CSV format
When you setformat=csv, the API returns the following:
- The response
Content-Typeistext/csv; charset=utf-8, delivered as a file attachment. - The first row is a header that uses exact FOCUS column names. All columns appear in both views. Columns that don’t apply to the active view are left empty (not omitted), so the layout is stable.
- Fields that contain commas, quotes, or newlines are double-quoted per RFC 4180.
- Pagination works the same as JSON: one page per request. Use the
X-Next-Page-Tokenheader for the next page.
Errors
All error responses use this shape:Related resources
For more information about billing usage and API access, see the following resources:- Billing insights: View the same billable usage in the Cloud Console.
- Manage API access tokens: Create and manage tokens for API authentication.
- Usage by Product and Zone: Grafana dashboards for cost and usage monitoring.
- FOCUS: The FinOps Open Cost and Usage Specification.