ChatGPT file upload limits — the real numbers, and the honest workaround
Half the articles on this topic quote different caps, because the limits have changed over time and most posts never cite anything. These figures come from OpenAI's own FAQ — with the date attached.
Published 29 August 2026 · limits as documented by OpenAI at that date
The documented limits
From OpenAI's File Uploads FAQ, the caps that actually bite:
| Limit | Documented value |
|---|---|
| Per file (hard cap) | 512 MB |
| Per text/document file | 2 million tokens |
| Spreadsheets / CSV | ~50 MB (varies with row size) |
| Images | 20 MB each |
| Upload frequency (paid) | 80 files per 3 hours |
| Upload frequency (free) | 3 files per day |
| Storage per user | 25 GB |
Two notes before you plan around this table. First, OpenAI adjusts these numbers over time — when it matters, check the FAQ linked above rather than any blog post, including this one. Second, the caps interact: a file can pass the megabyte limit and still trip the token limit, and vice versa. That's why the fixes below target both.
Which limit are you actually hitting?
- “You've reached our limit of file uploads. Try again later.” That's the frequency meter, not your file. On the free tier, three files a day goes quickly. Waiting resets it — but the better fix is needing fewer uploads at all (below).
- A single file gets rejected. Size or token cap. Splitting the file works but multiplies your upload count; shrinking the content works better.
- The upload succeeds, but answers only cover part of the document. Not an upload limit at all — the file fit the meter, but not comfortably in working context. Same remedy as the token cap.
Why “compress the PDF” doesn't work
The most-shared workaround — run the file through a PDF compressor — only addresses megabytes. Compression squeezes the images and fonts inside the container; the token count barely moves, because tokens are the words, and the words are untouched. If you're hitting the 2-million-token ceiling or the context wall, a smaller file with the same text changes nothing.
The workaround that actually respects how limits work
Every limit in the table is a limit on files. None of them is a limit on pasted text. So the honest workaround is to stop shipping containers:
- Convert the document to Markdown — our PDF, Word, PowerPoint and HTML converters run free in your browser — then paste the text into the chat. No upload, no meter, and typically a fraction of the tokens the file would have cost.
- Ten files? Make them one. Zip the folder and use the ZIP to Markdown converter: every document inside becomes a section of a single .md. On the free tier that's the difference between “three of my ten files today” and “all of them, now”.
- Keep the .md for next time. A conversion is done once; an upload is paid every conversation. The Markdown file you download today is tomorrow's paste.
The short version
512 MB and 2M tokens per file, ~50 MB for spreadsheets, 80 files per 3 hours on paid, 3 a day free — per OpenAI's FAQ, which is the only source worth trusting as these change. Compression shrinks megabytes, not tokens. Converting to Markdown shrinks both, and pasted text skips every one of these meters entirely.
Need fewer uploads, not more?
Convert files to Markdown in your browser and paste the text — pasted content doesn't touch the upload meter, and it costs a fraction of the tokens.
Open the converter →