> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://openrouter.ai/docs/llms.txt.
> For full documentation content, see https://openrouter.ai/docs/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://openrouter.ai/docs/_mcp/server.

# ChatUsage - Python SDK

The Python SDK and docs are currently in beta.
Report issues on [GitHub](https://github.com/OpenRouterTeam/python-sdk/issues).

Token usage statistics

## Fields

| Field                       | Type                                                                                               | Required             | Description                                                         | Example                                                                                                                    |
| --------------------------- | -------------------------------------------------------------------------------------------------- | -------------------- | ------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `completion_tokens`         | *int*                                                                                              | :heavy\_check\_mark: | Number of tokens in the completion                                  |                                                                                                                            |
| `completion_tokens_details` | [OptionalNullable\[components.CompletionTokensDetails\]](../components/completiontokensdetails.md) | :heavy\_minus\_sign: | Detailed completion token usage                                     |                                                                                                                            |
| `cost`                      | *OptionalNullable\[float]*                                                                         | :heavy\_minus\_sign: | Cost of the completion                                              |                                                                                                                            |
| `cost_details`              | [OptionalNullable\[components.CostDetails\]](../components/costdetails.md)                         | :heavy\_minus\_sign: | Breakdown of upstream inference costs                               | `{"upstream_inference_completions_cost": 0.0004,"upstream_inference_cost": null,"upstream_inference_prompt_cost": 0.0008}` |
| `is_byok`                   | *Optional\[bool]*                                                                                  | :heavy\_minus\_sign: | Whether a request was made using a Bring Your Own Key configuration |                                                                                                                            |
| `prompt_tokens`             | *int*                                                                                              | :heavy\_check\_mark: | Number of tokens in the prompt                                      |                                                                                                                            |
| `prompt_tokens_details`     | [OptionalNullable\[components.PromptTokensDetails\]](../components/prompttokensdetails.md)         | :heavy\_minus\_sign: | Detailed prompt token usage                                         |                                                                                                                            |
| `total_tokens`              | *int*                                                                                              | :heavy\_check\_mark: | Total number of tokens                                              |                                                                                                                            |