Reference · Tools
Claude File Upload
Upload files to Anthropic for use with Claude.
Claude File Upload sends a binary file from your workflow to Anthropic's Files API and returns the file's ID, name, MIME type, size, and creation time. That file ID can then be passed to Claude Chat, Vision, Structured Output, Thinking, or Citations nodes — so a PDF or image is uploaded once and referenced across multiple Claude calls in the same workflow.
- Node type
- Action (binary)
- Parameters
- 5
- Outputs
- Output, Error
- Credentials
- Anthropic
Claude File Upload
Upload files to Anthropic for use with Claude.
Overview
Claude File Upload uses the Anthropic Files API (POST /v1/files) to upload files for use with Claude models. It takes a file from binary data on the incoming item and uploads it as multipart/form-data. The upload response is returned with the file’s id, filename, mime type, size and creation time. That file ID can then be used by the other Claude nodes — Chat, Thinking, Structured Output, Vision and Citations all accept an Anthropic file ID — so a file is uploaded once and referenced many times.
Category: AI
Tool Name: claude_file_upload
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 for setup instructions.
Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Binary Property Name | string | No | data | The name of the binary property containing the file to upload. Names are case-sensitive — see the upstream node’s Binary Data panel for the exact names to use. Supports expressions. |
| Purpose | options | No | assistants | Legacy label for the uploaded file. NOT sent to Anthropic — their Files API takes no purpose field; a file’s role is set at use time by the content block that references it. Kept for backward compatibility only. |
Options: assistants (a file for use with Claude assistants and conversations), vision (an image file for Claude vision analysis) | ||||
| Options | collection | No | {} | Output settings. |
| — Response Field Name | string | No | file | The output field name where the file upload response will be stored. |
| Include Input | boolean | No | false | Whether to include the original input item fields in the output alongside the upload response. |
| Max Concurrency | number | No | 5 | Maximum number of items to process concurrently. |
Output Data
One upload per input item, and one output item per input item. The full upload response lands on the field named by Response Field Name (file by default), and the file ID is also lifted onto fileId for convenience. Binary data on the input item is forwarded unchanged, so the original bytes stay available downstream. With Include Input on, the original item fields are merged in alongside the result.
{
"file": {
"id": "file_011...",
"filename": "contract.pdf",
"mime_type": "application/pdf",
"size_bytes": 184320,
"created_at": "2026-01-01T00:00:00Z"
},
"fileId": "file_011..."
}
fileis the upload response exactly as Anthropic returned it.fileIdis the same value asfile.id, promoted to the top level because that is what the downstream Claude nodes ask for. Every node that accepts an Anthropic file ID also falls back to readingfileIdfrom the item, so a File Upload node wired straight into a Claude Chat, Thinking, Structured Output, Vision or Citations node needs no expression at all.- How Claude treats the file is decided where it is used, not here: set Attachment Type on the consuming node (or pick the matching Image Source / Document Source mode) to say whether it should be read as a document or as an image.
Reference the result downstream by expression, e.g. {{ $json.fileId }}.
Usage Examples
- Upload an image for Claude vision analysis
- Upload a document for use with Claude assistants
- Upload a PDF for Claude to analyze
- Upload a code file for Claude to review
- Upload files in bulk for batch conversation processing
Example Configuration
Minimal — upload the file on the standard data property:
{
"type": "claude_file_upload",
"parameters": {
"binaryPropertyName": "data",
"purpose": "assistants"
}
}
Upload an image from a custom binary property:
{
"type": "claude_file_upload",
"parameters": {
"binaryPropertyName": "screenshot",
"purpose": "vision"
}
}
Keep the original item fields and name the output field:
{
"type": "claude_file_upload",
"parameters": {
"binaryPropertyName": "contractPdf",
"purpose": "assistants",
"includeInput": true,
"maxConcurrency": 3,
"options": {
"responseFieldName": "uploadedContract"
}
}
}
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 File Upload sends binary files to the Anthropic Files API via multipart/form-data, registering them for use with Claude models. The node’s Purpose parameter is a backward-compatibility relic and is not transmitted — Anthropic infers a file’s role from the content block that references it later. Use this tool when a workflow requires attaching images, documents, or other files to Claude API calls before initiating a file-based conversation. It outputs the Anthropic file object (id, filename, mime_type, size_bytes, created_at) plus a top-level fileId, which downstream Claude nodes consume via {{ $json.fileId }}.
Frequently asked questions
What does this node actually return, and how do I use the file ID downstream?
The node outputs the full Anthropic file object — id, filename, mime_type, size_bytes, and created_at — plus a convenience top-level field called fileId. In any downstream Claude node that accepts a file reference, use {{ $json.fileId }} to pass it. You do not need to re-upload the file for each Claude call.
What is the Purpose parameter for, and do I need to set it?
Purpose is a backward-compatibility field and is not actually sent to Anthropic. Anthropic infers a file's role from the content block that references it later, so you can leave Purpose at its default. It has no effect on the upload or how Claude uses the file.
Which Claude nodes can consume the file ID this node produces?
The file ID returned by Claude File Upload is accepted by the Claude Chat, Thinking, Structured Output, Vision, and Citations nodes. Upload the file once at the start of your workflow, then reference {{ $json.fileId }} in whichever of those nodes need it — there is no need to repeat the upload.
What credentials do I need to configure?
The node requires an Anthropic credential (type: anthropic), which is your Anthropic API key. The same credential type is shared with the other Claude nodes in BusyBot, so if you have already connected an Anthropic account for Claude Chat or Vision, you can select the same credential here.
What kinds of files can I upload, and where does the binary data come from?
The node reads binary data from the incoming workflow item, so any file that a preceding node provides as binary — images, PDFs, documents — can be uploaded. The file is sent to Anthropic as multipart/form-data. The MIME type and filename are taken from the binary data itself; you do not set them manually in this node.
Build with the Claude File Upload node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Anthropic credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.