Claude Platform Docs

Mendapatkan Biaya dari Waktu ke Waktu

client.Beta.Organization.Analytics.CostReport.List(ctx, query) (*PageCursor[BetaAnalyticsCostReportTimeBucket], error)
GET/v1/organizations/analytics/cost_report

Mendapatkan biaya dalam USD dari waktu ke waktu dalam suatu rentang tanggal.

Mengembalikan biaya yang dikelompokkan per menit, jam, atau hari, dan secara opsional dirinci berdasarkan produk, model, jendela konteks, wilayah inferensi, kecepatan, jenis biaya, atau jenis token. Tersedia untuk organisasi dengan paket Claude Enterprise. Memerlukan kunci API dengan scope read:analytics.

Parameters
query BetaOrganizationAnalyticsCostReportListParams
StartingAt Time⁠Query parameter

Start of range, inclusive. RFC 3339 tz-aware. Must be within the last 365 days and no earlier than 2026-01-01T00:00:00Z.

formatdate-time
BucketWidth BetaOrganizationAnalyticsCostReportListParamsBucketWidth OptionalQuery parameter

Time bucket granularity.

const BetaOrganizationAnalyticsCostReportListParamsBucketWidthDay BetaOrganizationAnalyticsCostReportListParamsBucketWidth = "1d"
const BetaOrganizationAnalyticsCostReportListParamsBucketWidthHour BetaOrganizationAnalyticsCostReportListParamsBucketWidth = "1h"
const BetaOrganizationAnalyticsCostReportListParamsBucketWidthMinute BetaOrganizationAnalyticsCostReportListParamsBucketWidth = "1m"
ClaudeTagCategories []BetaAnalyticsClaudeTagCategory OptionalQuery parameter

Filter to Claude Tag (Claude in Slack) usage in specific spend categories. Usage with no category never matches. dm usage is reported under the user's product rather than claude-tag, so combining this filter with products[]=claude-tag excludes it. Use group_by[]=claude_tag_category to break out per-category values.

maxItems100
const BetaAnalyticsClaudeTagCategoryDm BetaAnalyticsClaudeTagCategory = "dm"
const BetaAnalyticsClaudeTagCategoryEngaged BetaAnalyticsClaudeTagCategory = "engaged"
const BetaAnalyticsClaudeTagCategoryMonitoring BetaAnalyticsClaudeTagCategory = "monitoring"
const BetaAnalyticsClaudeTagCategoryProactive BetaAnalyticsClaudeTagCategory = "proactive"
const BetaAnalyticsClaudeTagCategoryScheduled BetaAnalyticsClaudeTagCategory = "scheduled"
ClaudeTagUserIDs []string OptionalQuery parameter

Filter to Claude Tag (Claude in Slack) usage attributed to specific Slack users, by Slack user ID (for example U0123ABCDEF), not claude.ai user ID. Usage that is not Claude Tag, and Claude Tag usage not attributed to a single user, never matches. Use group_by[]=claude_tag_user_id to break out per-user values.

maxItems100
ContextWindows []BetaAnalyticsContextWindow OptionalQuery parameter

Filter to specific context-window pricing tiers. Use group_by[]=context_window to break out per-tier values.

maxItems100
const BetaAnalyticsContextWindowFrom0To200k BetaAnalyticsContextWindow = "0-200k"
const BetaAnalyticsContextWindowFrom200kTo1M BetaAnalyticsContextWindow = "200k-1M"
EndingAt param.Opt[Time] OptionalQuery parameter

End of range, exclusive. When omitted, defaults to the earlier of now and starting_at + 31 days. The range may span at most 31 days.

formatdate-time
GroupBy []string OptionalQuery parameter

Dimensions to break each time bucket out by. Defaults to no grouping (one total per bucket). Each bucket reports at most its top 100 groups; a group beyond that cap has no row in that bucket (there is no remainder row), so grouped buckets are not exhaustive when a dimension has more than 100 distinct values.

maxItems100
const BetaOrganizationAnalyticsCostReportListParamsGroupByClaudeTagCategory BetaOrganizationAnalyticsCostReportListParamsGroupBy = "claude_tag_category"
const BetaOrganizationAnalyticsCostReportListParamsGroupByClaudeTagUserID BetaOrganizationAnalyticsCostReportListParamsGroupBy = "claude_tag_user_id"
const BetaOrganizationAnalyticsCostReportListParamsGroupByContextWindow BetaOrganizationAnalyticsCostReportListParamsGroupBy = "context_window"
const BetaOrganizationAnalyticsCostReportListParamsGroupByCostType BetaOrganizationAnalyticsCostReportListParamsGroupBy = "cost_type"
const BetaOrganizationAnalyticsCostReportListParamsGroupByInferenceGeo BetaOrganizationAnalyticsCostReportListParamsGroupBy = "inference_geo"
const BetaOrganizationAnalyticsCostReportListParamsGroupByModel BetaOrganizationAnalyticsCostReportListParamsGroupBy = "model"
const BetaOrganizationAnalyticsCostReportListParamsGroupByProduct BetaOrganizationAnalyticsCostReportListParamsGroupBy = "product"
const BetaOrganizationAnalyticsCostReportListParamsGroupByRBACGroupID BetaOrganizationAnalyticsCostReportListParamsGroupBy = "rbac_group_id"
const BetaOrganizationAnalyticsCostReportListParamsGroupBySlackChannelID BetaOrganizationAnalyticsCostReportListParamsGroupBy = "slack_channel_id"
const BetaOrganizationAnalyticsCostReportListParamsGroupBySpeed BetaOrganizationAnalyticsCostReportListParamsGroupBy = "speed"
const BetaOrganizationAnalyticsCostReportListParamsGroupByTokenType BetaOrganizationAnalyticsCostReportListParamsGroupBy = "token_type"
InferenceGeos []BetaAnalyticsInferenceGeoFilter OptionalQuery parameter

Filter to specific inference regions. not_available matches rows where the region is unset. Use group_by[]=inference_geo to break out per-region values.

maxItems100
const BetaAnalyticsInferenceGeoFilterGlobal BetaAnalyticsInferenceGeoFilter = "global"
const BetaAnalyticsInferenceGeoFilterNotAvailable BetaAnalyticsInferenceGeoFilter = "not_available"
const BetaAnalyticsInferenceGeoFilterUs BetaAnalyticsInferenceGeoFilter = "us"
Limit param.Opt[int64] OptionalQuery parameter

Maximum number of time buckets per page. Defaults and caps vary by bucket_width (1d: default 7, max 31; 1h: default 24, max 168; 1m: default 60, max 256).

minimum1
Models []string OptionalQuery parameter

Models to include. Defaults to all models. Use group_by[]=model to break out per-model values.

maxItems100
Page param.Opt[string] OptionalQuery parameter

Opaque cursor from a previous response's next_page field.

Products []BetaAnalyticsProductFilter OptionalQuery parameter

Product surfaces to include. Defaults to all products. Use group_by[]=product to break out per-product values.

maxItems100
const BetaAnalyticsProductFilterChat BetaAnalyticsProductFilter = "chat"
const BetaAnalyticsProductFilterChatCoworkUnified BetaAnalyticsProductFilter = "chat_cowork_unified"
const BetaAnalyticsProductFilterClaudeTag BetaAnalyticsProductFilter = "claude-tag"
const BetaAnalyticsProductFilterClaudeCode BetaAnalyticsProductFilter = "claude_code"
const BetaAnalyticsProductFilterClaudeDesign BetaAnalyticsProductFilter = "claude_design"
const BetaAnalyticsProductFilterClaudeInChrome BetaAnalyticsProductFilter = "claude_in_chrome"
const BetaAnalyticsProductFilterCowork BetaAnalyticsProductFilter = "cowork"
const BetaAnalyticsProductFilterOfficeAgent BetaAnalyticsProductFilter = "office_agent"
RBACGroupIDs []string OptionalQuery parameter

Filter to usage attributed to specific RBAC groups. Accepts tagged RBAC group IDs (rbac_group_...) or bare group UUIDs. A row matches when the user belonged to any of the listed groups on the (UTC) day the usage occurred; usage with no group attribution never matches.

maxItems100
SlackChannelIDs []string OptionalQuery parameter

Filter to usage originating from specific Slack channels. Use group_by[]=slack_channel_id to break out per-channel values.

maxItems100
Speeds []string OptionalQuery parameter

Filter to fast or standard inference mode. Use group_by[]=speed to break out per-mode values.

maxItems100
const BetaOrganizationAnalyticsCostReportListParamsSpeedFast BetaOrganizationAnalyticsCostReportListParamsSpeed = "fast"
const BetaOrganizationAnalyticsCostReportListParamsSpeedStandard BetaOrganizationAnalyticsCostReportListParamsSpeed = "standard"
UserIDs []string OptionalQuery parameter

Filter to specific users by tagged user ID.

maxItems100
Returns
type BetaAnalyticsCostReportTimeBucket struct { EndingAt; Results; StartingAt }
Mendapatkan Biaya dari Waktu ke Waktu
package main

import (
	"context"
	"fmt"
	"time"

	"github.com/anthropics/anthropic-sdk-go"
	"github.com/anthropics/anthropic-sdk-go/option"
)

func main() {
	client := anthropic.NewClient(
		option.WithAPIKey("my-anthropic-api-key"),
	)
	page, err := client.Beta.Organization.Analytics.CostReport.List(context.TODO(), anthropic.BetaOrganizationAnalyticsCostReportListParams{
		StartingAt: time.Now(),
	})
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", page)
}
Returns Examples
Response 200
{
  "data": [
    {
      "ending_at": "2019-12-27T18:11:19.117Z",
      "results": [
        {
          "amount": "amount",
          "claude_tag_category": "dm",
          "claude_tag_user_id": "U0123ABCDEF",
          "context_window": "0-200k",
          "cost_type": "code_execution",
          "currency": "USD",
          "inference_geo": "global",
          "list_amount": "list_amount",
          "model": "claude-opus-5-5",
          "product": "chat",
          "rbac_group_id": "rbac_group_012rppKaSVsmTo6NqRDXQXNF",
          "requests": 0,
          "slack_channel_id": "C0123ABCDEF",
          "speed": "fast",
          "token_type": "cache_creation.ephemeral_1h_input_tokens"
        }
      ],
      "starting_at": "2019-12-27T18:11:19.117Z"
    }
  ],
  "data_refreshed_at": "2019-12-27T18:11:19.117Z",
  "has_more": true,
  "next_page": "next_page",
  "organization_id": "org_013FP9SaFPBg7Kw7fetjn6cF"
}