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

> Node: Claude Vision (`claude_vision`) · Action (binary) · v1
> Category: AI · Credentials: Anthropic (`anthropic`)
> Updated: 2026-08-16

# Claude Vision

> Analyze images using Anthropic Claude's vision capabilities.

## Overview

Sends an image (from binary data, a URL, or a previously uploaded Anthropic file) along with a text prompt to Anthropic's Claude Messages API (POST /v1/messages) with image content blocks. Returns the model's text analysis of the image. Supports Claude Opus, Sonnet, and Haiku models with base64-encoded binary images, direct URL references, or file_id references. The response text is stored in a configurable output field (default: "response") along with model name, token usage, and stop reason.

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

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

## Node Type

**Action (Binary)** — handles file/binary data operations

## 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 vision analysis. Always uses the latest version (auto-updated). |
| | | | | Options: Claude Opus (most capable — complex visual analysis and reasoning), Claude Sonnet (balanced — strong visual analysis at lower cost and latency), Claude Haiku (fastest — simple image tasks and high-volume work). Each option tracks the current release of its tier, so the underlying model ID updates without any change to your node. |
| System Prompt | `string` | No | — | Optional system prompt to set the model's behavior and context for image analysis. Supports expressions. |
| User Message | `string` | No | `Describe this image in detail` | The text prompt to send alongside the image. Describes what analysis to perform. Supports expressions. |
| Image Source | `options` | No | `binary` | Where to get the image — from binary data, a URL, or a previously-uploaded Anthropic file_id. |
| | | | | Options: `binary` (read the image from binary data attached to the input item), `url` (provide an image URL for Claude to analyze), `file` (reference an image previously uploaded to Anthropic via Claude File Upload) |
| Binary Property Name | `string` | No | `data` | The name of the binary property containing the image data. Names are case-sensitive — see the upstream node's Binary Data panel for the exact names to use. _(shown when Image Source is `binary`)_ |
| Image URL | `string` | No | — | URL of the image to analyze. Falls back to item.imageUrl if empty. Supports expressions. _(shown when Image Source is `url`)_ |
| Anthropic File ID | `string` | No | — | The file_id returned by a previous Claude File Upload node. Only used when Image Source is "file". Falls back to item.fileId if empty. Supports {{ $json.fileId }} expressions from an upstream Claude File Upload node. Supports expressions. _(shown when Image Source is `file`)_ |
| 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 | — | Sampling temperature (0-1). Lower values are more deterministic. Leave unset to use the model default. |
| — Response Field Name | `string` | No | `response` | The output field name where the vision analysis 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 values recommended for vision due to larger payloads. |

## Output Data

One image per input item, and one output item per input item. The analysis text lands on the field named by Response Field Name (`response` by default). Binary data on the input item is forwarded unchanged — including the image itself — so downstream nodes can still work with the file. With Include Input on, the original item fields are merged in alongside the result.

```json
{
  "response": "The model's description or analysis of the image",
  "model": "claude-...",
  "usage": { "input_tokens": 1620, "output_tokens": 288 },
  "stopReason": "end_turn"
}
```

- `model` is the model that actually answered, as reported by Anthropic.
- `usage` is the token accounting Anthropic returned for the call — images consume input tokens in proportion to their resolution.
- `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

- Describe what is in an uploaded image
- Extract text from a screenshot using Claude vision
- Classify product images by category
- Analyze charts and graphs from binary data
- Identify objects in photos from URLs

## Example Configuration

Describe an image attached to the item as binary data:

```json
{
  "type": "claude_vision",
  "parameters": {
    "imageSource": "binary",
    "binaryPropertyName": "data",
    "userMessage": "Describe this image in detail"
  }
}
```

Read structured data out of a chart supplied by URL:

```json
{
  "type": "claude_vision",
  "parameters": {
    "imageSource": "url",
    "imageUrl": "{{ $json.chartUrl }}",
    "userMessage": "Extract all data points and labels from this chart.",
    "options": {
      "maxTokens": 2048,
      "temperature": 0,
      "responseFieldName": "chartData"
    }
  }
}
```

Document OCR from a scan on a custom binary property:

```json
{
  "type": "claude_vision",
  "parameters": {
    "imageSource": "binary",
    "binaryPropertyName": "scan",
    "systemPrompt": "You are an expert OCR system. Extract text exactly as it appears, preserving formatting.",
    "userMessage": "Extract all text from this document image.",
    "includeInput": true,
    "options": {
      "maxTokens": 4096,
      "temperature": 0,
      "responseFieldName": "extractedText"
    }
  }
}
```

Analyze an image already uploaded by a Claude File Upload node:

```json
{
  "type": "claude_vision",
  "parameters": {
    "imageSource": "file",
    "imageFileId": "{{ $json.fileId }}",
    "userMessage": "Identify any visible defects in this product image.",
    "options": {
      "maxTokens": 512,
      "responseFieldName": "defectAnalysis"
    }
  }
}
```

### 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 Vision analyzes images by sending binary data, a URL reference, or an Anthropic file_id from an upstream Claude File Upload node alongside a text prompt to Anthropic Claude via the Messages API. Use it when a workflow needs to extract information, describe content, or answer questions about visual inputs using the Opus, Sonnet or Haiku tier. It produces a response text field containing the model analysis, plus model name, token usage counts, and stop reason on the main output.