---
title: "Get Attribution Rollups"
method: POST
path: "/api/v1/spend-insights/attribution/search"
tags: ["Spend Insights"]
---

# Get Attribution Rollups

`POST /api/v1/spend-insights/attribution/search`

## Request

- Base URL: `https://example.conductor.one`
- URL: `https://example.conductor.one/api/v1/spend-insights/attribution/search`
- Auth: HTTP bearer and OAuth 2
  - Client credentials
  - Token URL: `/auth/v1/token`

Get ranked settled-spend attribution groups for one dimension and time window.

## Request body

- C1ApiSpendinsightsV1GetAttributionRollupsRequest: GetAttributionRollupsRequest specifies how to group settled spend.
  - `dimension` 'ATTRIBUTION_DIMENSION_UNSPECIFIED' | 'ATTRIBUTION_DIMENSION_USER' | 'ATTRIBUTION_DIMENSION_DEPARTMENT' | 'ATTRIBUTION_DIMENSION_AGENT' | 'ATTRIBUTION_DIMENSION_SESSION' | 'ATTRIBUTION_DIMENSION_MODEL' | 'ATTRIBUTION_DIMENSION_CALL_SOURCE' | 'ATTRIBUTION_DIMENSION_SUBJECT_FUND_SOURCE' | 'ATTRIBUTION_DIMENSION_APP': Dimension used to group settled calls.
  - `endTime` string, date-time, nullable
  - `filters` C1ApiSpendinsightsV1AttributionFilters: AttributionFilters narrows settled usage before grouping. All predicates are exact matches and combine with AND; values within one list combine with OR.
    - `appIds` string[], nullable: Application IDs to include.
    - `departmentAbsent` boolean: Select only calls whose spend-time department snapshot was absent. This cannot be combined with departments.
    - `departments` string[], nullable: Spend-time department snapshots to include.
    - `modelIds` string[], nullable: Model IDs to include.
    - `userIds` string[], nullable: User IDs to include.
  - `pageSize` integer: Maximum number of groups to return. The default is 25 and the maximum is 100.
  - `pageToken` string: Pagination token from a previous response with the same window, dimension, and filters.
  - `startTime` string, date-time, nullable

## Response `200`

GetAttributionRollupsResponse contains one page of ranked attribution groups.

- C1ApiSpendinsightsV1GetAttributionRollupsResponse: GetAttributionRollupsResponse contains one page of ranked attribution groups.
  - `groups` C1ApiSpendinsightsV1AttributionGroup[], nullable: Groups ordered by settled spend descending, then key ascending.
    - `billableTokens` string, int64: Total billable tokens attributed to this group.
    - `blendedCostPerMillionTokensNano` string, int64: Blended settled cost per million billable tokens in this group.
    - `cacheReadTokens` string, int64: Input tokens served from cache for this group.
    - `cacheReadValueNano` string, int64: Savings from cache reads compared with uncached input prices.
    - `cacheWriteCostNano` string, int64: Cost of writing tokens to cache.
    - `cacheWriteTokens` string, int64: Tokens written to cache for this group.
    - `displayName` string: Display name recorded when the calls ran, when available.
    - `inputTokens` string, int64: Input tokens attributed to this group.
    - `key` string: Stable value for the requested dimension. Empty for the missing-value group.
    - `missing` boolean: Whether this group represents calls missing the requested dimension.
    - `outputTokens` string, int64: Output tokens attributed to this group.
    - `reasoningTokens` string, int64: Reasoning tokens attributed to this group.
    - `settledCalls` string, int64: Number of settled calls in this group.
    - `settledNano` string, int64: Settled spend attributed to this group.
  - `nextPageToken` string: Token for the next page. Empty when no more groups remain.

## Changes

- **2026-10-06** `918a4e749f56`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/conductorone/apis/c1-api/changes/api/v1/spend-insights/attribution/search/post.md)

---

[API](https://skmtc.dev/conductorone/apis/c1-api.md) - [All operations](https://skmtc.dev/conductorone/apis/c1-api/llms.txt) - [OpenAPI document](https://skmtc.dev/conductorone/apis/c1-api/revisions/fe943bedf41b?raw)
