<!-- BusyBot node reference — https://busybot.net/tools/claude-web-fetch/ -->

> Node: Claude Web Fetch (`claude_web_fetch`) · Action · v1
> Category: AI · Credentials: Anthropic (`anthropic`)
> Updated: 2026-08-16

# Claude Web Fetch

> Fetch and process URL content using Claude.

## Overview

Claude Web Fetch retrieves content from a URL, then sends the fetched content to Anthropic's Claude Messages API (POST /v1/messages) for analysis or summarization. The URL content is provided as context in the user message alongside a customizable instruction (default: "Summarize this content"). Supports configurable model selection, system prompt, temperature, max tokens, and a content truncation limit of 100,000 characters. Returns the Claude response text and the source URL in configurable output fields.

**Category:** AI  
**Tool Name:** `claude_web_fetch`  
**Version:** 1

**Appearance:** Icon: `anthropic` | Color: `#d4a574`

## Node Type

**Action** — processes input items and produces output

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Anthropic** credentials.
See the [Credentials Guide](https://busybot.net/credentials/anthropic/) for setup instructions.

### Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Model | `options` | No | `Claude Sonnet` | The Claude model to use for processing the URL content. Always uses the latest version (auto-updated). |
| | | | | Options: Claude Opus (most capable — complex analysis and long-form content), Claude Sonnet (balanced — strong quality at lower cost and latency), Claude Haiku (fastest — quick summaries and high-volume processing). Each option tracks the current release of its tier, so the underlying model ID updates without any change to your node. |
| URL | `string` | Yes | — | The URL to fetch content from. Falls back to item.json.url if empty. Supports expressions like {{ $json.url }}. |
| User Message | `string` | No | `Summarize this content` | Instruction for what Claude should do with the fetched content. Default: "Summarize this content". Supports expressions. |
| System Prompt | `string` | No | — | Optional system prompt to set Claude's behavior when processing the URL content. Supports expressions. |
| Options | `collection` | No | `{}` | Advanced generation and output settings. |
| — Max Tokens | `number` | No | `4096` | Maximum number of tokens to generate in the response. |
| — Temperature | `number` | No | `1` | Sampling temperature (0-1). Lower values produce more focused, deterministic output. |
| — Response Field Name | `string` | No | `response` | The output field name where the Claude response text will be stored. |
| Include Input | `boolean` | No | `false` | Whether to include the original input item fields in the output alongside the response. |
| Max Concurrency | `number` | No | `5` | Maximum number of items to process concurrently. Lower than typical due to URL fetching overhead. |

## Output Data

One fetch and one API call per input item, and one output item per input item. Claude's analysis lands on the field named by Response Field Name (`response` by default). Binary data on the input item is forwarded unchanged, and with Include Input on the original item fields are merged in alongside the result.

```json
{
  "response": "Claude's analysis of the fetched page",
  "sourceUrl": "https://example.com/article",
  "contentLength": 48213,
  "wasTruncated": false,
  "model": "claude-...",
  "usage": { "input_tokens": 12480, "output_tokens": 604 },
  "stopReason": "end_turn"
}
```

- `sourceUrl` is the URL that was actually fetched, after the item fallback is applied — useful when the URL comes from upstream data.
- `contentLength` is the character count of the page content that was retrieved.
- `wasTruncated` is `true` when the page exceeded the 100,000-character limit and only the leading portion was sent to the model.
- `model` is the model that actually answered, as reported by Anthropic.
- `usage` is the token accounting Anthropic returned for the call.
- `stopReason` says why generation stopped — for example `end_turn` (finished naturally) or `max_tokens` (hit the Max Tokens cap).

Reference the result downstream by expression, e.g. `{{ $json.response }}`.

## Usage Examples

- Summarize a web page using Claude
- Extract key information from a URL
- Analyze the content of a documentation page
- Fetch and process blog posts for content review
- Convert web page content into structured data

## Example Configuration

Minimal — summarize one page:

```json
{
  "type": "claude_web_fetch",
  "parameters": {
    "url": "https://example.com/article",
    "userMessage": "Summarize this content"
  }
}
```

Structured extraction from a research page:

```json
{
  "type": "claude_web_fetch",
  "parameters": {
    "url": "{{ $json.url }}",
    "userMessage": "Extract the abstract, key findings, and methodology from this research paper.",
    "systemPrompt": "You are a scientific research assistant. Return structured, factual summaries only.",
    "maxConcurrency": 3,
    "options": {
      "maxTokens": 8192,
      "temperature": 0.1,
      "responseFieldName": "paperSummary"
    }
  }
}
```

High-volume page classification, with the URL supplied by upstream items:

```json
{
  "type": "claude_web_fetch",
  "parameters": {
    "url": "",
    "userMessage": "Classify this page as one of: blog, news, product, documentation, or other. Respond with only the category label.",
    "systemPrompt": "You are a webpage classifier. Output only the category label, nothing else.",
    "includeInput": true,
    "maxConcurrency": 5,
    "options": {
      "maxTokens": 64,
      "temperature": 0,
      "responseFieldName": "pageCategory"
    }
  }
}
```

Leaving URL empty makes the node read `url` from each incoming item, which is the usual pattern when a previous step produced the list of links.

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Claude Web Fetch retrieves content from any URL using Node.js fetch and submits it to the Claude Messages API for analysis or summarization via a customizable instruction. Use it when a workflow needs to automatically extract insights, summaries, or structured data from web pages and remote documents in a single step. Outputs a response text field containing the Claude analysis and a source URL field confirming the content origin, with configurable model, system prompt, temperature, and max tokens.