# `Gemini.Types.Interactions.Usage`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/types/interactions/usage.ex#L157)

Token usage statistics for an Interaction.

# `t`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/types/interactions/usage.ex#L174)

```elixir
@type t() :: %Gemini.Types.Interactions.Usage{
  cached_tokens_by_modality:
    [Gemini.Types.Interactions.CachedTokensByModality.t()] | nil,
  input_tokens_by_modality:
    [Gemini.Types.Interactions.InputTokensByModality.t()] | nil,
  output_tokens_by_modality:
    [Gemini.Types.Interactions.OutputTokensByModality.t()] | nil,
  tool_use_tokens_by_modality:
    [Gemini.Types.Interactions.ToolUseTokensByModality.t()] | nil,
  total_cached_tokens: non_neg_integer() | nil,
  total_input_tokens: non_neg_integer() | nil,
  total_output_tokens: non_neg_integer() | nil,
  total_thought_tokens: non_neg_integer() | nil,
  total_tokens: non_neg_integer() | nil,
  total_tool_use_tokens: non_neg_integer() | nil
}
```

# `from_api`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/types/interactions/usage.ex#L188)

```elixir
@spec from_api(map() | nil) :: t() | nil
```

# `to_api`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/types/interactions/usage.ex#L214)

```elixir
@spec to_api(t() | map() | nil) :: map() | nil
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
