Projects or custom GPTs for your documents?
ComparisonsLast checked
Short answer
Pick a Project when the files support your own ongoing work and the set will keep changing. Pick a custom GPT when you want to hand the same packaged behaviour to other people. Projects hold 25 files per project files on Plus and 40 files per project on Pro, Team, Education and Business. A custom GPT holds 10 files per GPT, and that ceiling is for the lifetime of the GPT rather than per conversation.
Custom GPTs are no longer something a personal account can build
GPT creation and publishing have been withdrawn from personal accounts, Free, Go, Plus and Pro alike, and remain available only inside Business, Enterprise and Edu workspaces. If you are on a personal plan, the comparison below is background rather than a choice: Projects are the only half of it still open to you.
Both attach documents that survive past a single chat, which is what separates them from dragging a PDF into a conversation and losing it when the thread gets too long. Both let ChatGPT draw on those documents without you re-uploading anything.
The three differences that decide it are the file ceiling, whether the limit ever refreshes, and who else gets to use the result.
What each one actually is
A Project is a container. It holds chats, files and a set of instructions that apply to everything inside it. Start a new conversation in the project and it can already see the files. The chats stay grouped, so the project accumulates into a working record rather than scattering across your sidebar.
A custom GPT is a configured assistant. Name, description, instructions, knowledge files, tool settings, and optionally Actions that call an external API. It sits in your sidebar as its own entry, and it can be shared by link or published.
The shorthand: a Project organises your work. A custom GPT packages a behaviour.
The file ceilings, side by side
| Projects | Custom GPTs | |
|---|---|---|
| Files | 25 files per project on Plus, 40 files per project on Pro, Team, Education and Business | 10 files per GPT |
| Scope of the limit | Per project | Lifetime of the GPT |
| Multiply it | Create another project | Create another GPT |
That middle row is the one people get caught by. Most ChatGPT limits are rates. The daily allowance on Free refreshes daily, the rolling cap of 80 files every 3 hours refreshes over three hours. The custom GPT ceiling does not refresh at all.
Plan the ten before you build the GPT
The natural way to build a custom GPT is to add documents as they occur to you. Do that and you arrive at ten with a set nobody deliberately chose, half of it marginal.
Decide what the GPT needs to know first, then work out how to fit that into ten files. It is a very different exercise from uploading one thing at a time and hoping.
Personal against shareable
This is usually the real decision, and it has nothing to do with file counts.
A custom GPT exists to be handed over. Someone else opens it and gets your instructions, your knowledge files and your tool configuration without knowing any of that is there. That is the point of it. If the thing you are building is for a team, a client or the public, it is a GPT.
A Project centres on your own work. It is a place to keep the twelve documents behind a piece of research, along with every conversation you had about them. What can be shared with colleagues depends on your plan and OpenAI has changed this more than once, so check your current settings rather than trusting any article on the specifics.
If nobody else will ever use it, the sharing advantage of a GPT buys you nothing, and you are giving up half the file allowance for it.
Instructions and tools, where GPTs pull ahead
Both carry standing instructions. A custom GPT carries more than that.
Actions. A GPT can call an external API you define. Projects cannot. If the assistant needs to look something up in a live system rather than in a static file, that alone decides it.
Tool configuration. A GPT lets you switch capabilities on and off deliberately, which matters when you want consistent behaviour from someone who did not build it.
A stable identity. People find a GPT by name and get the same thing every time. A project is a place you go, not a thing you invoke.
What is identical in both
Neither container changes the per-file rules. The same limits apply wherever the document lands:
| Limit | Value |
|---|---|
| Size per file | 512 MB |
| Text and document length | 2 million tokens |
| Spreadsheets | about 50 MB |
| Storage, shared across everything | 25 GB |
That last row is worth pausing on. Chats, every Project and every custom GPT you ever built draw on the same 25 GB pool, and it never clears with time. Old GPTs holding large reference documents are a common reason for hitting an upload limit while feeling like you have uploaded nothing recently.
Images behave the same in both too. Except on Enterprise, ChatGPT extracts the digital text from a document and discards the images. So a scanned handbook contributes nothing in a Project and nothing in a GPT, and neither will tell you. The container looks well stocked and the answers come out vague.
Making either allowance go further
Both ceilings count files, not content, so combining is almost always the move.
Group related documents into one file by subject rather than uploading them individually. Ten well organised files carry far more usable knowledge than ten arbitrary ones. When you concatenate, put an obvious marker before each original so the boundaries survive:
=== Supplier agreement, 2026 ===
...
=== Amendment 1, March 2026 ===
...
Convert to plain text before uploading. Smaller, cleaner, and it strips images that were going to be discarded anyway. Then leave out whatever nobody will ask about, because a tighter set produces better answers than a comprehensive one.
The decision
If other people will use it and you are in a Business, Enterprise or Edu workspace, build a custom GPT and accept 10 files per GPT files as a permanent budget you have to plan. On a personal account that route is closed, so the decision makes itself.
If it is your own work and the document set will grow, use a Project. More files, per project rather than per lifetime, and another project whenever you need another allowance.
If you need both, build the GPT for the stable part and keep a Project for the material still in motion.
Common questions
Which one holds more files?
Projects, comfortably. A project takes 25 files on Plus and 40 on Pro, Team, Education and Business, and each project you create gets its own allowance. A custom GPT takes 10, and that is for the lifetime of the GPT.
Does the custom GPT file limit ever reset?
No. OpenAI specifies up to 10 files per GPT for the lifetime of that GPT, which is unusual among ChatGPT limits because most of the others are rates that refresh. Past ten you are swapping files rather than adding them.
Can I put the same document in both?
Yes, you upload it into each separately. Both copies count against the same 25 GB per user storage pool, which also covers ordinary chats, so duplicating large reference documents across several places adds up quietly.
Which one can I give to other people?
A custom GPT is the one designed for handing over, since it can be shared by link or published. There is a large caveat now: GPT creation and publishing have been withdrawn from personal accounts, Free, Go, Plus and Pro alike, and survive only in Business, Enterprise and Edu workspaces. On a personal account the choice is between a Project and nothing.
Keep reading
How many files can you put in a ChatGPT Project? 5, 25 or 40
Free 5, Go and Plus 25, Pro and Business 40 files per project. OpenAI's own FAQ still prints 20 for Plus, and the project allowance is not your chat one.
How many knowledge files can a custom GPT hold? 10, for its lifetime
10 files per GPT, and that is a lifetime cap rather than per conversation. They also eat your 25 GB storage, and GPT creation has left personal accounts.
The ChatGPT storage limit: 25 GB, and the 500 MB one nobody mentions
25 GB per user, and a separate 500 MB Library cap on Free that bites first. Deleting old chats no longer frees either one, so here is what still does.