> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agno.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Web Context Provider with Parallel

> `ParallelBackend` speaks directly to Parallel's web API via the `parallel-web` SDK (>= 1.0).

`ParallelBackend` speaks directly to Parallel's web API via the `parallel-web` SDK (>= 1.0). Two tools: `web_search(objective)` returns URL + excerpt pairs for a natural-language objective; `web_extract(url)` fetches full-page content.

```python web_parallel.py theme={null}
"""
Web Context Provider with Parallel
==================================

`ParallelBackend` speaks directly to Parallel's web API via the
`parallel-web` SDK (>= 1.0). Two tools: `web_search(objective)` returns
URL + excerpt pairs for a natural-language objective; `web_extract(url)`
fetches full-page content.

Pick this over Exa when you want Parallel's search ranking, excerpt
shape, or pricing.

Requires:
    OPENAI_API_KEY
    PARALLEL_API_KEY   (https://platform.parallel.ai/)
    pip install parallel-web
"""

from __future__ import annotations

import asyncio

from agno.agent import Agent
from agno.context.web import ParallelBackend, WebContextProvider
from agno.models.openai import OpenAIResponses

# ---------------------------------------------------------------------------
# Create the provider
# ---------------------------------------------------------------------------
backend = ParallelBackend()  # reads PARALLEL_API_KEY from env
web = WebContextProvider(backend=backend, model=OpenAIResponses(id="gpt-5.4-mini"))

# ---------------------------------------------------------------------------
# Create the Agent
# ---------------------------------------------------------------------------
agent = Agent(
    model=OpenAIResponses(id="gpt-5.4"),
    tools=web.get_tools(),
    instructions=web.instructions() + "\nAlways cite URLs inline.",
    markdown=True,
)


# ---------------------------------------------------------------------------
# Run the Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    print(f"\nweb.status() = {web.status()}\n")
    prompt = "What is the latest stable release of CPython? Cite the source."
    print(f"> {prompt}\n")
    asyncio.run(agent.aprint_response(prompt))
```

## Run the Example

<Steps>
  <Snippet file="create-venv-step.mdx" />

  <Step title="Install dependencies">
    ```bash theme={null}
    uv pip install -U agno openai parallel-web
    ```
  </Step>

  <Step title="Export your API keys">
    <CodeGroup>
      ```bash Mac/Linux theme={null}
      export OPENAI_API_KEY="your_openai_api_key_here"
      export PARALLEL_API_KEY="your_parallel_api_key_here"
      ```

      ```bash Windows theme={null}
      $Env:OPENAI_API_KEY="your_openai_api_key_here"
      $Env:PARALLEL_API_KEY="your_parallel_api_key_here"
      ```
    </CodeGroup>
  </Step>

  <Step title="Run the example">
    Save the code above as `web_parallel.py`, then run:

    ```bash theme={null}
    python web_parallel.py
    ```
  </Step>
</Steps>

Full source: [cookbook/12\_context/03\_web\_parallel.py](https://github.com/agno-agi/agno/blob/main/cookbook/12_context/03_web_parallel.py)
