List costs
Billed cost per time bucket, groupable by FOCUS columns; amounts are exact decimal strings in the currency the organization is charged in (BillingCurrency).
/organization/v1/costs● SupportedRequest parameters
starting_atstring必填query: Window start (inclusive), UTC ISO 8601, e.g. 2026-09-26T00:00:00Z
ending_atstring必填query: Window end (exclusive), UTC ISO 8601; at most 93 days after starting_at (the charges export has no such cap)
bucket_widthstring必填query: Bucket width: 1h (aligned to the hour) or 1d (aligned to the UTC day)
time_zonestring可选query: IANA time zone name (for example Asia/Shanghai) whose local hours or days form the buckets. Defaults to UTC. Offsets such as +08:00 are rejected. The window widens to whole local buckets; a day that crosses a daylight-saving change lasts 23 or 25 hours. starting_at and ending_at stay UTC instants.
group_byarray可选query: Columns to group by (repeatable): ServiceName, ServiceCategory, ResourceId, ConsumedUnit; usage always splits ConsumedUnit out server-side
pagestring可选query: The opaque cursor from the previous page's next_page — pass it back unchanged
Returns
200 page
Errors follow the problem+json format — see error codes
Response
HTTP 200
Cost page
application/json
| Name | Type | Description |
|---|---|---|
| object | string | Object type; always `page`. |
| data | array<object> | Cost buckets in time order, one per hour or day of the requested window. |
| data[].object | string | Object type; always `bucket`. |
| data[].starting_at | string | Start of the bucket, UTC, inclusive. |
| data[].ending_at | string | End of the bucket, UTC, exclusive. |
| data[].estimated | boolean | Always false; kept for the AWS GetCostAndUsage shape. |
| data[].results | array<object> | Aggregates of the bucket, one entry per group requested with group_by. |
| has_more | boolean | Whether more results exist beyond this page; request again with `page` set to `next_page` to read them. |
| next_page | string | null | Opaque cursor for the next page; null on the last page. Pass it unchanged as `page`. |
Response fields
| Field | Description |
|---|---|
object | always "page" |
data[].object | always "bucket" |
data[].starting_at / data[].ending_at | Bucket start and end (UTC, aligned to the hour or the day) |
data[].estimated | Always false: a charge is final when it is recorded; kept to match the AWS GetCostAndUsage shape |
data[].results[].ServiceName | Serving service name (present only when group_by requests ServiceName) |
data[].results[].ServiceCategory | FOCUS service category (present only when requested) |
data[].results[].ResourceId / data[].results[].ResourceName | Resource id and display name; ResourceName rides ResourceId and falls back to the id when unresolvable |
data[].results[].BilledCost | The group's cost in the bucket, a decimal string in BillingCurrency |
data[].results[].BillingCurrency | The currency charged, CNY or USD; a group charged in both currencies in one bucket is two rows |
has_more / next_page | Whether more pages follow; the next page's opaque cursor (null when done) |
For the transactions behind one event see Get a usage event.
Organization API
Your organization's usage and spend: totals per time bucket, per-call detail, and a full export. The organization is determined by the caller's API key — there is no organization id in the path, and any valid key of the organization can read it.
List usage
Consumed quantity per time bucket, groupable by FOCUS columns; quantities of different units stay on separate rows and are never added together.