# File Uploads Tool - Full Documentation
## Overview
Upload, manage, and retrieve files in Notion. Supports single and multi-part upload modes.
## Workflow
1. `create` - Create an upload session (get file_upload_id)
2. `send` - Send file data as base64 (repeat for multi-part)
3. `complete` - Finalize the upload
4. Use the file_upload_id in page/block content to reference the uploaded file
## Actions
### create
Create a file upload session.
```json
{"action": "create", "filename": "report.pdf", "content_type": "application/pdf"}
```
Multi-part upload (for large files):
```json
{"action": "create", "filename": "video.mp4", "content_type": "video/mp4", "mode": "multi_part", "number_of_parts": 3}
```
### send
Send file data (base64-encoded) to an upload session.
```json
{"action": "send", "file_upload_id": "xxx", "file_content": "<base64-encoded-data>"}
```
For multi-part uploads, specify the part number:
```json
{"action": "send", "file_upload_id": "xxx", "file_content": "<base64-encoded-data>", "part_number": 1}
```
### complete
Complete the upload session.
```json
{"action": "complete", "file_upload_id": "xxx"}
```
### retrieve
Get details about a file upload.
```json
{"action": "retrieve", "file_upload_id": "xxx"}
```
### list
List all file uploads with optional limit.
```json
{"action": "list", "limit": 10}
```
## Parameters
- `file_upload_id` - File upload ID (required for send, complete, retrieve)
- `filename` - File name (required for create)
- `content_type` - MIME type (required for create, e.g., "image/png", "application/pdf")
- `mode` - Upload mode: "single" (default) or "multi_part"
- `number_of_parts` - Number of parts for multi-part uploads
- `part_number` - Part number when sending multi-part data
- `file_content` - Base64-encoded file content (for send)
- `limit` - Max results for list action