Skip to content

How to get more than 10 files into ChatGPT, now that a message takes 20

Getting past the limitsLast checked

Short answer

On web, a single message now takes 20 files per message, doubled from 10 on 13 February 2026, so for an ordinary chat the ten you remember is out of date. Where a real ceiling remains, bundle: concatenate the documents into one text file with a header line naming each, and upload that. One file instead of twelve, and ChatGPT can still answer about any single document inside it. A custom GPT holds 10 files per GPT for its lifetime and a Project holds 25 files per project on Plus.

Which ten you are actually hitting

There is no single ten. Three different ceilings get reported as one, and the fixes are not the same.

Where you areThe ceilingHow it clears
One message20 files per message on webSend another message
Ordinary conversationNo published totalNothing to clear. Only the rolling rate applies
Project5 files per project on Free, 25 files per project on Go and Plus, 40 files per project on Pro and BusinessRemove a file to add one
Custom GPT knowledge10 files per GPTNothing. It is for the GPT's lifetime
Any of the above80 files every 3 hoursWaiting about an hour

In an ordinary chat, nothing stops at ten. The number you meet is how many files attach to a single message, and since 13 February 2026 that number is 20 files per message on web. OpenAI's release note is unambiguous: "You can now upload up to 20 files at once (previously 10)." It did not say whether the mobile apps match, so treat 20 as a web figure. Past that, the answer is more messages rather than a workaround. Every file still counts separately against 80 files every 3 hours, and on Free against 3 file uploads per day, which is where twelve files becomes a real problem.

Inside a Project or a custom GPT, the ceiling is genuine, and the only lever is making each slot carry more.

Bundling turns many files into one

The count limits count files, not bytes. So stop having many files.

On macOS or Linux:

for f in docs/*.txt docs/*.md; do
  printf '\n\n===== FILE: %s =====\n\n' "$f"
  cat "$f"
done > bundle.txt

On Windows PowerShell:

Get-ChildItem docs\* -Include *.txt,*.md | ForEach-Object {
  "`n===== FILE: $($_.Name) =====`n"
  Get-Content $_.FullName -Raw
} | Set-Content bundle.txt

PDFs and Word files have to become text first, because concatenating binaries produces a file nobody can read. Open each one and save as plain text, then bundle the results. That conversion also shrinks them enormously, and it strips images that would have been discarded anyway.

The header line is the part that matters

Without headers a bundle is one undifferentiated wall of text, and ChatGPT blends the documents together. Ask what the March report said and you get an answer averaged across all twelve.

Three things earn their place in the header:

A consistent marker, the same shape every time, so the boundaries are unmistakable. The real filename, plus a date if the name does not carry one. And a contents list at the very top of the bundle, numbered, in the same order as the files below it.

Ask for the list back

Send one message after uploading: "List every file in this bundle, in order." If the last two are missing, the file was truncated on the way in, and every answer you would have got after that was quietly built on part of the material.

Where bundling stops helping

Bundling defeats the limits that count. It does nothing about the one that measures length.

A text or document file caps at 2 million tokens, and a bundle is one file for that purpose. That is a great deal of plain text, so a dozen ordinary reports are nowhere near it, but a folder of book length manuscripts is a different matter. Past that point you are splitting again rather than joining.

Two things should stay out of the bundle. Spreadsheets, because they are exempt from the token cap and because ChatGPT works on a CSV as data rather than as prose, which is lost the moment you paste it into a text file. And scans, because ChatGPT supports text only, except Enterprise, so a bundle of scanned pages contributes nothing at all.

Projects and custom GPTs need different planning

A Project cap is a working set. Files can be removed, so 25 files per project on Plus is a ceiling on what the project holds at once rather than on what it may ever hold. Group related documents into themed bundles, and clear out whatever the current work does not touch. Note that the Projects article caps simultaneous uploads inside a project at 10 on every plan, which is a different limit from the per message count and is often what people mistake for it.

A custom GPT is not like that. 10 files per GPT is for the lifetime of the GPT, so once you have used the tenth you are replacing files, not adding them. Plan this before you build. A GPT that needs to know thirty documents wants ten bundles grouped by topic, each with its contents list at the top, uploaded once and deliberately. One caveat before you plan around it: GPT creation and publishing are no longer available on personal accounts, Free, Go, Plus and Pro alike, only inside Business, Enterprise and Edu workspaces. On a personal account you cannot reach this limit at all.

The decision, in short

If you are in an ordinary chat, nothing is capped at ten. A message takes 20 files per message on web, so send the files across a couple of messages, and bundle only to protect your rolling allowance.

If you are in a Project, bundle by theme and remove what you are not using.

If you are building a custom GPT, bundle before you upload anything at all, because those ten slots never come back.

Common questions

Is there a 10 file limit in ChatGPT?

Not since February 2026. The per message attach count on web doubled from 10 to 20 then, so a single message now takes 20 files. The ten that remains is custom GPT knowledge, which holds 10 files for the lifetime of that GPT. An ordinary conversation has no published total at all, only the rolling cap of 80 files every 3 hours.

How do I upload 20 documents at once?

Concatenate them into one text file with a header line naming each document, then upload that single file. It counts as one upload, and ChatGPT can still answer about any individual document because the headers mark the boundaries.

Can I zip the files instead?

No. ChatGPT does not unpack archives, so a zip arrives as one file it cannot see inside. You spend an upload slot and get nothing readable back. Concatenating into text is the version of the idea that works.

Does bundling get round the size limit too?

No. Bundling defeats the limits that count files, not the one that measures length. A text or document file caps at 2 million tokens, and a bundle is a single file for that purpose, so a very large bundle needs splitting rather than joining.

Keep reading