Upload Limits of Major Services
Upload size limits for common web services and cloud storage providers — a reference for designing validation and boundary tests.
Email and messaging
Mail and chat services cap attachment size. Gmail and Outlook both settle on 25 MB, but Base64 encoding adds overhead, so the file you can actually send is somewhat smaller.
| Service | Limit | Notes | Test file |
|---|---|---|---|
| Gmail | 25MB | Anything over 25 MB is turned into a Google Drive link automatically | 24.9MB / 25MB / 25.1MB |
| Outlook | 25MB | Up to 150 MB on Microsoft 365 (set by the administrator) | 24.9MB / 25MB / 25.1MB |
| LINE | 50MB | Video is capped at five minutes; images are compressed on send | 50MB |
| Discord (free) | 25MB | Up to 500 MB with Nitro | 24.9MB / 25MB / 25.1MB |
| Discord Nitro | 500MB | Nitro Basic allows 50 MB | - |
| Slack | 1GB | Every plan allows uploads up to 1 GB | - |
Social and media platforms
Social networks restrict both the format and the size of uploads. Images in particular are usually resized and recompressed, so the original file size is rarely preserved.
| Service | Limit | Notes |
|---|---|---|
| Twitter / X (images) | 5MB(PNG/JPG) | 15 MB for GIFs, 512 MB for video via the browser |
| 8 MB (images) | 4 GB for video and 4 GB for Reels | |
| 10 MB (images) | 10 GB for video |
CMSs and web applications
In WordPress and other CMSs the default upload limit comes from the PHP configuration and the server's own limits. See how to change the WordPress upload limit for the details.
| Service / CMS | Default limit | Notes | Test file |
|---|---|---|---|
| WordPress | 2MB〜10MB | Depends on PHP and the server configuration; can be changed | 9.9MB / 10MB / 10.1MB |
| Shopify | 20MB | Same for images, video and other files | - |
Cloud storage and developer services
Cloud storage and developer services generally accept large uploads, but the ceiling for a single request often differs from the ceiling for a multipart upload.
| Service | Limit | Notes |
|---|---|---|
| AWS S3 | 5 GB (single PUT) / 5 TB (multipart) | Multipart is recommended above 100 MB |
| Google Drive | 5TB | Requires free space on your storage plan |
| Dropbox | 2 GB (web) / 50 GB (desktop app) | Up to 350 GB through the API |
| GitHub | 100 MB per file | Up to 5 GB with Git LFS; 5 GB is the recommended ceiling for a whole repository |
| Cloudflare(Free) | 100MB | 500 MB on Pro, 500 MB on Business, unlimited on Enterprise |
How to test an upload limit
Boundary testing is the way to pin down a service's real limit. Try three files — just under, exactly at, and just over the cap — and you can tell whether the validation is precise.
DevLab provides threshold test files at each size, exact to the byte. MD5 and SHA-256 digests are listed alongside them so you can verify integrity after downloading.
Caveats
- The figures above reflect 2024. Check each service's current documentation.
- With Base64 encoding you can only send about 75% of the nominal limit — the encoding costs a factor of 4/3.
- Within one service the limit can differ by plan and by whether you go through the API or the browser.
- Network conditions and timeout settings can make an upload fail even below the stated limit.