# `Gemini.Types.Response.GenerateContentResponse`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/types/response/generate_content_response.ex#L60)

Response from content generation.

# `t`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/types/response/generate_content_response.ex#L71)

```elixir
@type t() :: %Gemini.Types.Response.GenerateContentResponse{
  candidates: [Gemini.Types.Response.Candidate.t()],
  create_time: DateTime.t() | nil,
  model_status: map() | nil,
  model_version: String.t() | nil,
  prompt_feedback: Gemini.Types.Response.PromptFeedback.t() | nil,
  response_id: String.t() | nil,
  usage_metadata: Gemini.Types.Response.UsageMetadata.t() | nil
}
```

# `extract_text`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/types/response/generate_content_response.ex#L85)

```elixir
@spec extract_text(t()) :: {:ok, String.t()} | {:error, String.t()}
```

Extract text content from the response.

# `finish_reason`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/types/response/generate_content_response.ex#L141)

```elixir
@spec finish_reason(t()) :: String.t() | nil
```

Get the finish reason from the first candidate.

# `from_api`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/types/response/generate_content_response.ex#L148)

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

Parse a generate content response from the API payload.

# `token_usage`
[🔗](https://github.com/nshkrdotcom/gemini_ex/blob/v0.11.0/lib/gemini/types/response/generate_content_response.ex#L187)

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

Get token usage information from the response.

---

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