Skip to main content

Web Fetch

The web fetch tool allows models to retrieve full content from specified web pages and PDF documents. This enables AI models to access real-time information from the internet and incorporate web content into their responses.

Web Fetch retrieves the full content from specific web pages that you provide URLs for, while Web Search performs internet searches to find relevant information based on your queries.

FeatureWeb FetchWeb Search
PurposeRetrieve content from specific URLsSearch the internet for information
InputYou provide exact URLs to fetchYou provide search queries/questions
OutputFull page content from specified URLsSearch results with relevant information
Use Cases- Analyzing specific articles
- Comparing content from known websites
- Extracting data from particular pages
- Finding current news/events
- Researching topics
- Getting real-time information

Example Web Fetch: "Fetch the content from https://example.com/pricing and summarize it" Example Web Search: "What are the latest AI developments this week?"

Supported Providers:

  • Anthropic API (anthropic/)

Supported Tool Types:

  • web_fetch_20250910 - Web content retrieval tool with usage limits, domain filtering, and citation support

Quick Start

Python

from openai import OpenAI

client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.haimaker.ai/v1"
)

# Web fetch tool
tools = [
{
"type": "web_fetch_20250910",
"name": "web_fetch",
"max_uses": 5,
}
]

response = client.chat.completions.create(
model="anthropic/claude-3-5-sonnet-latest",
messages=[
{
"role": "user",
"content": "Please analyze the content at https://example.com/article and summarize the main points"
}
],
tools=tools
)

print(response.choices[0].message.content)

cURL

curl https://api.haimaker.ai/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "anthropic/claude-3-5-sonnet-latest",
"messages": [
{
"role": "user",
"content": "Please fetch and analyze the content from https://news.ycombinator.com and tell me about the top stories"
}
],
"tools": [
{
"type": "web_fetch_20250910",
"name": "web_fetch",
"max_uses": 5
}
]
}'

Supported Models

Web fetch is available on the following Anthropic API models:

  • claude-opus-4-1-20250805 (Claude Opus 4.1)
  • claude-opus-4-20250514 (Claude Opus 4)
  • claude-sonnet-4-20250514 (Claude Sonnet 4)
  • claude-3-7-sonnet-20250219 (Claude Sonnet 3.7)
  • claude-3-5-sonnet-latest (Claude Sonnet 3.5 v2 - deprecated)
  • claude-3-5-haiku-latest (Claude Haiku 3.5)
note

The web fetch tool currently does not support websites dynamically rendered via JavaScript.

Usage Examples

Basic Web Content Retrieval

from openai import OpenAI

client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.haimaker.ai/v1"
)

tools = [
{
"type": "web_fetch_20250910",
"name": "web_fetch",
"max_uses": 3,
}
]

response = client.chat.completions.create(
model="anthropic/claude-3-5-sonnet-latest",
messages=[
{
"role": "user",
"content": "Fetch the latest news from https://techcrunch.com and summarize the top 3 articles"
}
],
tools=tools
)

print(response.choices[0].message.content)

Content Comparison

from openai import OpenAI

client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.haimaker.ai/v1"
)

tools = [
{
"type": "web_fetch_20250910",
"name": "web_fetch",
"max_uses": 5,
}
]

response = client.chat.completions.create(
model="anthropic/claude-3-5-sonnet-latest",
messages=[
{
"role": "user",
"content": "Compare the pricing information from https://openai.com/pricing and https://anthropic.com/pricing and create a comparison table"
}
],
tools=tools
)

print(response.choices[0].message.content)

Spec

Web Fetch Tool (web_fetch_20250910)

The web fetch tool supports the following parameters:

{
"type": "web_fetch_20250910",
"name": "web_fetch",

// Optional: Limit the number of fetches per request
"max_uses": 10,

// Optional: Only fetch from these domains
"allowed_domains": ["example.com", "docs.example.com"],

// Optional: Never fetch from these domains
"blocked_domains": ["private.example.com"],

// Optional: Enable citations for fetched content
"citations": {
"enabled": true
},

// Optional: Maximum content length in tokens
"max_content_tokens": 100000
}