# ParallelDeepResearch

> **Class** in `langchain_parallel`

📖 [View in docs](https://reference.langchain.com/python/langchain-parallel/tasks/ParallelDeepResearch)

High-level Runnable for Parallel deep-research tasks.

Defaults to the ``pro-fast`` processor -- the ``-fast`` variant of
``pro`` ("Exploratory web research") at 2-5x the speed for similar
accuracy. Drop the ``-fast`` suffix (``processor="pro"``, 2-10 min)
or step up to ``processor="ultra"`` (5-25 min) for the most thorough
multi-source investigative reports. For shorter, enrichment-style
structured tasks, use :class:`ParallelEnrichment` or pass
``processor="core-fast"`` here.

Always returns the full ``basis`` (citations + reasoning + confidence)
on the result; lower friction than wiring up
:class:`ParallelTaskRunTool` manually when all you want is "do deep
research on this question."

## Signature

```python
ParallelDeepResearch(
    self,
    *,
    processor: ProcessorLiteral = 'pro-fast',
    output_schema: Optional[Union[type[BaseModel], dict[str, Any], str]] = None,
    api_key: Optional[Union[str, SecretStr]] = None,
    base_url: str = 'https://api.parallel.ai',
    mcp_servers: Optional[list[McpServer]] = None,
)
```

## Description

**Example:**

```python
research = ParallelDeepResearch()  # processor="pro-fast"
result = research.invoke("Latest developments in renewable energy")
print(result["output"]["content"])
for fact in result["output"].get("basis", []):
    print(fact["field"], "->", fact["citations"])

# For the most thorough report:
research = ParallelDeepResearch(processor="ultra")
```

## Extends

- `Runnable[Union[str, dict[str, Any]], dict[str, Any]]`

## Constructors

```python
__init__(
    self,
    *,
    processor: ProcessorLiteral = 'pro-fast',
    output_schema: Optional[Union[type[BaseModel], dict[str, Any], str]] = None,
    api_key: Optional[Union[str, SecretStr]] = None,
    base_url: str = 'https://api.parallel.ai',
    mcp_servers: Optional[list[McpServer]] = None,
) -> None
```

| Name | Type |
|------|------|
| `processor` | `ProcessorLiteral` |
| `output_schema` | `Optional[Union[type[BaseModel], dict[str, Any], str]]` |
| `api_key` | `Optional[Union[str, SecretStr]]` |
| `base_url` | `str` |
| `mcp_servers` | `Optional[list[McpServer]]` |


## Properties

- `processor`
- `mcp_servers`

## Methods

- [`invoke()`](https://reference.langchain.com/python/langchain-parallel/tasks/ParallelDeepResearch/invoke)
- [`ainvoke()`](https://reference.langchain.com/python/langchain-parallel/tasks/ParallelDeepResearch/ainvoke)

---

[View source on GitHub](https://github.com/parallel-web/langchain-parallel/blob/c1f8c1d657b86eaf948c363f84fed6ea6bd65754/langchain_parallel/tasks.py#L642)