> ## 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.

# Parallel Extract - Clean Content From URLs

> The Extract API turns specific URLs into clean, structured text - handling JavaScript-heavy pages and PDFs - so your agent can read sources you already have in hand instead of searching for them.

```python extract_content.py theme={null}
"""
Parallel Extract - Clean Content From URLs
==========================================

The Extract API turns specific URLs into clean, structured text - handling
JavaScript-heavy pages and PDFs - so your agent can read sources you already
have in hand instead of searching for them.

Reach for Extract when you KNOW the URLs: documentation, a filing, a
competitor's pricing page, a linked PDF.

Prerequisites:
- pip install parallel-web
- export PARALLEL_API_KEY=<your-api-key>
"""

from agno.agent import Agent
from agno.models.openai import OpenAIResponses
from agno.tools.parallel import ParallelTools

# ---------------------------------------------------------------------------
# Tools - Extract only
# ---------------------------------------------------------------------------
# Disable Search so the agent reads the URLs we give it rather than hunting
# for new ones. Excerpts return the most relevant passages; the agent can
# request full_content on a call when it needs the entire page.
extract_tools = ParallelTools(
    enable_search=False,
    enable_extract=True,
)

# ---------------------------------------------------------------------------
# Create the Agent
# ---------------------------------------------------------------------------
agent = Agent(
    model=OpenAIResponses(id="gpt-5.4"),
    tools=[extract_tools],
    markdown=True,
    instructions=[
        "Extract content from the URLs the user provides.",
        "Summarize the key points and cite each URL you used.",
    ],
)

# ---------------------------------------------------------------------------
# Run the Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    agent.print_response(
        "Read https://parallel.ai and https://docs.parallel.ai and tell me "
        "what APIs Parallel offers and who they are for.",
        stream=True,
    )
```

## 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 `extract_content.py`, then run:

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

Full source: [cookbook/integrations/parallel/02\_extract\_content.py](https://github.com/agno-agi/agno/blob/main/cookbook/integrations/parallel/02_extract_content.py)
