v1

latestOpenAPI 3.1.02026-07-2664485505.4 KB
File uploads

Create a file upload

post/v1/file_uploads

Headers

Notion-Version'2026-03-11' required

The API version to use for this request. The latest version is 2026-03-11.

Request body

mode'single_part' | 'multi_part' | 'external_url'

How the file is being sent. Use multi_part for files larger than 20MB. Use external_url for files that are temporarily hosted publicly elsewhere. Default is single_part.

filenamestring

Name of the file to be created. Required when mode is multi_part. Otherwise optional, and used to override the filename. Must include an extension, or have one inferred from the content_type parameter.

content_typestring

MIME type of the file to be created. Recommended when sending the file in multiple parts. Must match the content type of the file that's sent, and the extension of the filename parameter if any.

number_of_partsinteger

When mode is multi_part, the number of parts you are uploading. This must match the number of parts as well as the final part_number you send.

external_urlstring

When mode is external_url, provide the HTTPS URL of a publicly accessible file to import into your workspace.

Example request

{
  "filename": "business_summary.pdf",
  "content_type": "application/pdf"
}

Response

object'file_upload' required

Always file_upload

idstring uuid required
created_timestring date-time required
last_edited_timestring date-time required
in_trashboolean required
expiry_timestring date-time nullable required
status'pending' | 'uploaded' | 'expired' | 'failed' required

One of: pending, uploaded, expired, failed

filenamestring nullable required
content_typestring nullable required
content_lengthinteger nullable required
upload_urlstring
complete_urlstring