TypeScript SDK
File Uploads
Send a file upload
Use this API to transmit file contents to Notion for a file upload.
POST
TypeScript SDK
For this endpoint, use aDocumentation Index
Fetch the complete documentation index at: https://developers.notion.com/llms.txt
Use this file to discover all available pages before exploring further.
Content-Type of multipart/form-data, and provide your file contents under the file key.
The use of multipart form data is unique to this endpoint. Other Notion APIs, including Create a file upload and Complete a file upload, use JSON parameters.Include a
boundary with the Content-Type header of your request as per RFC 2388. Most request libraries (e.g. fetch, ky) automatically handle this as long as you provide a form data object but don’t overwrite the Content-Type explicitly.For more tips and examples, view the file upload guide.mode=multi_part, each part must include a form field part_number to indicate which part is being sent. Parts may be sent concurrently up to standard Notion API rate limits, and may be sent out of order as long as all parts (1, …, part_number) are successfully sent before calling the complete file upload API.
The maximum allowed length of a file name is 900 bytes, including any file extension included in the file name or inferred based on the content_type. However, we recommend using shorter names for performance and easier file management and lookup using the List file uploads API.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
The API version to use for this request. The latest version is 2026-03-11.
Available options:
2026-03-11 Path Parameters
Identifier for a Notion file upload object.
Body
multipart/form-data
Response
Always file_upload
Allowed value:
"file_upload"One of: pending, uploaded, expired, failed
Available options:
pending, uploaded, expired, failed Required range:
x >= 0- Success
- Error