For files larger than 100MB, use the presigned URL method. This uploads directly to cloud storage, bypassing the 100MB limit of the standard Upload endpoint.Documentation Index
Fetch the complete documentation index at: https://docs.reducto.ai/llms.txt
Use this file to discover all available pages before exploring further.
| Method | Max Size | When to Use |
|---|---|---|
| Direct upload | 100MB | Most files |
| Presigned URL (this page) | 5GB | Large PDFs, high-res scans, large spreadsheets |
How It Works
- Request a presigned URL from Reducto (no file attached)
- Upload your file directly to cloud storage using the presigned URL
- Use the file_id with Parse, Split, or Extract endpoints
Step 1: Request a Presigned URL
Call the upload endpoint without attaching a file:Step 2: Upload to Presigned URL
Upload your file using a PUT request to the presigned URL:Step 3: Process with Parse, Split, or Extract
Use thefile_id from Step 1 (not the presigned URL) with any Reducto endpoint:
Complete Example
Here’s the full workflow in one script:Troubleshooting
403 Forbidden on presigned URL
403 Forbidden on presigned URL
Cause: The presigned URL has expired.Fix: Presigned URLs expire after a short time (typically 1 hour). Request a new presigned URL and try again.
Upload succeeds but Parse fails
Upload succeeds but Parse fails
Cause: You might be passing the
presigned_url instead of the file_id.Fix: Always use the file_id (starts with reducto://) with Parse, Split, or Extract — not the presigned URL.Timeout during upload
Timeout during upload
Cause: Large files on slow connections can timeout.Fix:
- Use a wired connection if possible
- Consider chunked/multipart upload for files >1GB
- Implement retry logic with exponential backoff
Unexpected upload errors
Unexpected upload errors
Cause: Using incompatible upload methods or headers.Fix:
- Don’t include a Content-Type header — presigned URLs don’t require it
- For cURL, use
-T filenameinstead of--data-binary @filename - In Go, use
bytes.NewReader()to ensure proper Content-Length handling
Related
Direct Upload
For files under 100MB — simpler, one-step upload.
Parse
Extract text, tables, and figures from uploaded documents.
Batch Processing
Process many large files in parallel.
Async Processing
Use webhooks for long-running jobs.