Attribution Data API

Get cost breakdown by agent

Returns cost aggregation grouped by agent_id from usage event metadata. Call it with a GET request to /attribution-data/by-agent, authenticated with a restricted API key and the "costs:read" scope.

Returns cost aggregation grouped by agent_id from usage event metadata. Events without an agent_id are bucketed as "Unassigned". Convenience shortcut for GET /attribution-data/by-dimension with dimension=agent_id. Use by-dimension when you need cross-dimension filtering (filter_key/filter_value) or CSV export. Requests count toward your per-API-key rate limit; sustained overruns return 429 with the standard error envelope.

Authentication and scopes

Authenticate with a restricted API key in the Authorization: Bearer <key> header. This endpoint requires the costs:read scope.

Parameters

NameInTypeRequiredDescription
start_datequerystringYesStart of date range (ISO 8601, inclusive).
end_datequerystringYesEnd of date range (ISO 8601, exclusive).

Response fields

Fields returned in the 200 response body. Nested objects are listed under their parent. A field marked optional may be absent from the body; one marked nullable is always present but its value may be null.

FieldTypeDescription
itemsobject[]Cost breakdown items.
attribution_valuestringAttribution value (e.g., agent name or workflow name).
total_coststringTotal cost for this attribution value.
input_tokensnumber (double)Input tokens used.
output_tokensnumber (double)Output tokens used.
cache_creation_input_tokensnumber (double) nullableCache-creation input tokens; null = provider did not report.
cache_read_input_tokensnumber (double) nullableCache-read input tokens; null = provider did not report.
reasoning_tokensnumber (double) nullableReasoning tokens; null = not reported.
input_coststringInput cost (USD, decimal string).
output_coststringOutput cost (USD, decimal string).
cache_creation_coststring nullableCache-creation cost (USD string); null = not reported.
cache_read_coststring nullableCache-read cost (USD string); null = not reported.
reasoning_coststring nullableReasoning cost (USD string); null = not reported.
event_countnumber (double)Number of events.
percent_of_totalnumber (double)Percentage of the total cost within this query scope (date range plus any filter_key/filter_value filter). Values across items sum to 100.
total_coststringTotal cost across all items.

Error codes

Errors return the standard error envelope with a code, message, and a correlationId you can quote to support.

StatusWhen it happens
400Invalid request data. Check that start_date and end_date are valid ISO 8601 dates and fix the field named in error.message.
401Missing or invalid API key. Send your key as Authorization: Bearer YOUR_API_KEY.
403API key lacks the costs:read scope. Create or update an API key with the costs:read scope, then retry.
429Rate limit or plan quota exceeded. Slow down and retry after the current window resets.

Rate limits and retries

Rate limit or plan quota exceeded. Slow down and retry after the current window resets.