Upload a large file using multipart upload
Initiate a multipart upload for large files (typically >100MB). This will return presigned URLs for each part.
Each presigned URL is valid for 900 seconds (15 minutes) and can be used multiple times.
The workflow is:
- Call this endpoint to get presigned URLs for each part
- Upload each part to its respective presigned URL using PUT requests
- Call the complete multipart upload endpoint with all part ETags
The input should contain:
fileName: the name of the file to be uploadedfileType: the MIME type of the filefileSize: the size of the file in MBpartSizeLimit: (optional) the size limit for each part in MBisSplit: whether the file should be split after upload (optional, default: false)isSplitExcel: whether to split Excel files by worksheets (optional, default: false)callbackURL: the url that will be called after processing (optional)ocrModel: the OCR model to use (optional)schemaLocking: whether the schema should be locked (optional)directoryId: the directory id where the file should be uploaded (optional)destinationPath: slash-delimited folder path where the file should be placed (e.g. “mammals/walrus”). Folders are auto-created if they do not exist. Can be used together with directoryId (optional)isEphemeral: whether the file and all related data should be deleted after the file is processed, must be one of true or false (optional, default: false)pageCount: page count of the file, used for early validation against page limits (optional)
How It Works
1. Initiate Upload
2. Upload Parts
3. Complete Upload
Idempotency-Key request header so a retry
cannot apply the change twice. See
Idempotent requests.Authorizations
API key for authentication
Headers
Optional opaque key (max 255 chars, UUIDv4 recommended) making this request idempotent for 24h: a retry with the same key and body replays the original response with Idempotent-Replayed: true.
Body
File name
"large-file.pdf"
File type
"application/pdf"
File size in MB
150.5
Part size limit in MB (optional, default will be calculated)
10
Is split
false
Is split excel - whether to split Excel files by worksheets
false
Callback URL
"https://example.com/callback"
OCR model
Beethoven_ENG_O5.6, Beethoven_ENG_G5.5, Beethoven_ENG_GP25, Beethoven_ENG_GP25.1, Beethoven_ENG_GP25.2, Beethoven_CUS_O5.1, Beethoven_CUS_O5.2, Unified (google-document-ai-ocr-gemini-v10), Aegis (google-document-ai-ocr-gemini-aegis-v1), Beethoven_ZH_O5.9, Beethoven_JP_O5.3, Beethoven_JP_G5.4, Beethoven_TH_O5.1, Beethoven_TH_G5.1, Beethoven_CUS_GP25.1, Beethoven_Direct_Form_Filling (GP2.5) "Beethoven_ENG_O5.6"
Schema locking
false
Directory Id
"649e2d2d2d2d2d2d2d2d2d2d"
Slash-delimited folder path for the uploaded document (e.g. "mammals/walrus"). Folders are auto-created if they do not exist. Can be used together with directoryId.
"mammals/walrus"
Is ephemeral
false
Page count of the PDF file. Used for early validation against page limits.
50
Optional request ID to group files uploaded in the same API session. If not provided, one is auto-generated.
"my-batch-request-123"
Retain the original file name of a ZIP upload. Only applies to zip uploads (fileType "application/zip" or a .zip file name) and is ignored for all other files. When true, the original zip name is preserved (control characters, path separators and ".." are stripped, leading/trailing dots and whitespace trimmed, capped at 255 characters) and surfaced on the extracted files as zipArchiveName. When false (default), the name is sanitized as before.
false
Response
Multipart upload initiated successfully. Use the presigned URLs to upload each part.