All server tools

Web fetch

openrouter:web_fetch

Lets any model read a web page. When the model needs the contents of a URL, OpenRouter fetches it with the configured engine, extracts the readable content, and returns it to the model.

How it works

For reading a specific page or PDF, like a link in the prompt or documentation to summarize.

  1. Your model requests the URL of a page or PDF it needs to read.

  2. OpenRouter fetches it with the configured engine and extracts the readable text.

  3. Your model uses the content in its answer, and can fetch more URLs.

Providers and pricing

The default engine, auto, uses the model provider’s native fetch when the model supports it and falls back to Exa otherwise.

  • Favicon for https://exa.ai

    Exa

    $0.001 / page

    Extract page content with Exa.

  • Favicon for https://parallel.ai

    Parallel

    $0.001 / page

    Extract page content with Parallel.

  • Favicon for https://openrouter.ai

    OpenRouter

    Free

    Direct page fetch, up to 50 per request.

  • Favicon for https://firecrawl.dev

    Firecrawl

    $0.0025 / page

    Scrape pages using Firecrawl.

  • Favicon for https://anthropic.com

    Anthropic

    Native

    Built-in web fetch on Claude Opus 4.7 and later and Claude Sonnet 5.

    Via Anthropic, Claude Platform on AWS, Amazon Bedrock

Standard model token costs apply to every request.

Using this tool

OpenRouter runs the tool during the request and returns the result to the model, so no client-side tool loop is needed.

Supported APIs: Chat Completions, Responses, and Anthropic Messages.

Shell
curl https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "openai/gpt-5.2",
  "tools": [
    {
      "type": "openrouter:web_fetch"
    }
  ],
  "messages": [
    {
      "role": "user",
      "content": "Summarize the page at https://openrouter.ai/docs/guides/features/server-tools"
    }
  ]
}'

Setup, parameters, and examples in the docs.

Read the integration guide