- Upload a new file using the Direct Upload method (single-part)
- Retrieve existing files already uploaded to your workspace
Upload methods at a glance
The Notion API supports three ways to add files to your workspace:| Upload method | Description | Best for |
|---|---|---|
| Direct Upload | Upload a file (≤ 20MB) via a multipart/form-data request | The simplest method for most files |
| Direct Upload (multi-part) | Upload large files (> 20MB) in chunks across multiple requests | Larger media assets and uploads over time |
| Indirect Import | Import a file from a publicly accessible URL | Migration workflows and hosted content |
Supported block types
Uploaded files can be attached to:- Media blocks:
file,image,pdf,audio,video - Page properties:
filesproperties in databases - Page-level visuals: page
iconandcover
Supported file types
Before uploading, make sure your file type is supported. Here’s what the API accepts:| Category | Extensions | MIME types |
|---|---|---|
| Audio | .aac, .adts, .mid, .midi, .mp3, .mpga, .m4a, .m4b, .mp4, .oga, .ogg, .wav, .wma | audio/aac, audio/midi, audio/mpeg, audio/mp4, audio/ogg, audio/wav, audio/x-ms-wma |
| Document | .pdf, .txt, .json, .doc, .dot, .docx, .dotx, .xls, .xlt, .xla, .xlsx, .xltx, .ppt, .pot, .pps, .ppa, .pptx, .potx | application/pdf, text/plain, application/json, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.openxmlformats-officedocument.wordprocessingml.template, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.openxmlformats-officedocument.spreadsheetml.template, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.openxmlformats-officedocument.presentationml.template |
| Image | .gif, .heic, .jpeg, .jpg, .png, .svg, .tif, .tiff, .webp, .ico | image/gif, image/heic, image/jpeg, image/png, image/svg+xml, image/tiff, image/webp, image/vnd.microsoft.icon |
| Video | .amv, .asf, .wmv, .avi, .f4v, .flv, .gifv, .m4v, .mp4, .mkv, .webm, .mov, .qt, .mpeg | video/x-amv, video/x-ms-asf, video/x-msvideo, video/x-f4v, video/x-flv, video/mp4, application/mp4, video/webm, video/quicktime, video/mpeg |
File size limits
- Free workspaces are limited to 5 MiB (binary megabytes) per file
- Paid workspaces are limited to 5 GiB per file.
- Files larger than 20 MiB must be split into parts and uploaded using multi-part mode in the API.
Other limitations
The rest of the pages in this guide, as well as the API reference for the File Upload API, include additional validations and restrictions to keep in mind as you build your integration and send files. One final limit to note here is both the Create a file upload and Send a file upload APIs allow a maximum length of afilename (including the extension) of 900 bytes. However, we recommend using shorter names for performance and easier file management and lookup using the List file uploads API.
What’s Next
Now that you know what’s supported, let’s walk through a real upload using the simplest method: uploading a single file in one request.