# `LangChain.Tools.DeepResearch.ResearchResult`
[🔗](https://github.com/brainlid/langchain/blob/v0.13.0/lib/tools/deep_research/research_result.ex#L1)

Represents the final result of a completed Deep Research request.

This schema captures the research findings, citations, usage statistics,
and other metadata from a successful research operation.

Sources are stored as `LangChain.Message.Citation` structs, providing a
unified citation representation shared across all providers.

# `t`
[🔗](https://github.com/brainlid/langchain/blob/v0.13.0/lib/tools/deep_research/research_result.ex#L15)

```elixir
@type t() :: %LangChain.Tools.DeepResearch.ResearchResult{
  completion_time: integer() | nil,
  created_at: integer() | nil,
  id: String.t() | nil,
  model: String.t() | nil,
  output_text: String.t() | nil,
  sources: [LangChain.Message.Citation.t()],
  tool_calls: [any()],
  usage: any() | nil
}
```

# `changeset`
[🔗](https://github.com/brainlid/langchain/blob/v0.13.0/lib/tools/deep_research/research_result.ex#L56)

```elixir
@spec changeset(t(), map()) :: Ecto.Changeset.t()
```

Creates a changeset for research result.

# `format_for_display`
[🔗](https://github.com/brainlid/langchain/blob/v0.13.0/lib/tools/deep_research/research_result.ex#L106)

```elixir
@spec format_for_display(t()) :: String.t()
```

Formats the result for display, including the main text and source summary.

# `from_api_response`
[🔗](https://github.com/brainlid/langchain/blob/v0.13.0/lib/tools/deep_research/research_result.ex#L69)

```elixir
@spec from_api_response(map()) :: {:ok, t()} | {:error, Ecto.Changeset.t()}
```

Creates a ResearchResult from an OpenAI API response.

# `source_count`
[🔗](https://github.com/brainlid/langchain/blob/v0.13.0/lib/tools/deep_research/research_result.ex#L94)

```elixir
@spec source_count(t()) :: integer()
```

Gets the total number of sources cited in the research.

# `source_urls`
[🔗](https://github.com/brainlid/langchain/blob/v0.13.0/lib/tools/deep_research/research_result.ex#L126)

```elixir
@spec source_urls(t()) :: [String.t()]
```

Extracts just the URLs from the sources for easy reference.

# `tool_call_count`
[🔗](https://github.com/brainlid/langchain/blob/v0.13.0/lib/tools/deep_research/research_result.ex#L100)

```elixir
@spec tool_call_count(t()) :: integer()
```

Gets the total number of tool calls made during research.

---

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