# client.cost.records

> client.cost.records — the cost.records operations.

`client.cost.records` — the `cost.records` operations.

On `AsyncKindgi` every method is the same, awaited.

## `client.cost.records.list()`

```python signature
list(
    *,
    limit: int | None = None,
    cursor: str | None = None,
    run_id: str | UUID | None = None,
    agent_id: str | UUID | None = None,
    conversation_id: str | UUID | None = None,
    category: str | None = None,
    provider_id: str | UUID | None = None,
    model: str | None = None,
    served_model: str | None = None,
    root_run_id: str | UUID | None = None,
    include_descendants: bool | None = None,
    from_: str | None = None,
    to: str | None = None,
    scope_kind: Literal['tenant', 'org', 'project'] | None = None,
    scope_id: str | UUID | None = None,
    inherit: bool | None = None,
    include: Literal['rawUsage'] | None = None,
    timeout: float | None = None,
) -> CostRecordCollectionPage
```

List cost records. `GET /v1/cost/records`

Cursor-paginated. Filters (all AND): `runId` (with `includeDescendants`, its whole subtree), `rootRunId`, `agentId`, `conversationId`, `category`, `providerId`, `model`, `servedModel`, `from`, `to`. Sort order is fixed: `occurredAt desc, id desc`. Records represent one accounted resource event each — a model call (`category` `llm.inference`: one record per call, with its model, usage and what the vendor said about it), tool invocation, storage write, sandbox execution, etc. `include=rawUsage` adds each model call's usage as the vendor reported it.

## `client.cost.records.get()`

```python signature
get(
    record_id: str | UUID,
    /,
    *,
    include: Literal['rawUsage'] | None = None,
    timeout: float | None = None,
) -> CostRecord
```

Fetch a cost record. `GET /v1/cost/records/{recordId}`
