Skip to main content
Sends file data to a previously created file upload. This endpoint accepts multipart/form-data instead of JSON.

Method

Parameters

file_upload_id
string
required
Identifier for a Notion file upload object, obtained from the id of the Create File Upload response.
file
object
required
The file data to upload.
file.data
string | Blob
required
Raw file contents as a string, Buffer, Blob, or File object.
file.filename
string
Optional filename. Overrides the filename specified in create.
part_number
string
Required for multi-part uploads. Stringified integer (e.g., "1", "2", "3") indicating which part is being sent. Must be sequential starting from "1" and match the number_of_parts specified in create.

Response

Returns an updated FileUpload object.
status
string
Updated status: "pending" (for multi-part, more parts needed) or "uploaded" (for single-part, or after all parts sent and complete called).
number_of_parts
object
For multi-part uploads, tracks progress:
  • total: Total number of parts expected
  • sent: Number of parts successfully uploaded
file_import_result
object
After successful upload, contains import results:
  • type: "success" or "error"
  • imported_time: ISO 8601 timestamp
  • error: Error details if type is "error"

Examples

Single-part upload

For files under 20MB, send all data in one request:

Multi-part upload

For files larger than 20MB, split into parts and send sequentially:

Browser file upload

Using the File API in browsers:

Notes

  • This endpoint sends HTTP multipart/form-data instead of JSON
  • For multi-part uploads, parts must be sent sequentially starting from "1"
  • The part_number parameter must be a string, not a number
  • After sending all parts, call complete to finalize the upload
  • File data is passed under the file.data property, not as the raw file