ChatGPT upload limits

ChatGPT file upload limits in 2026: size, count and file types

As of October 2026, ChatGPT caps uploads at 512 MB per file, 2,000,000 tokens per text document and roughly 50 MB per CSV or spreadsheet. If your dataset is bigger, filter or aggregate it in rows.page first, free and without signing up, right in your browser.

.csv.json.parquet
Drop a file here
Stays in your browserUp to 1.5 GB

No file handy? Open CO2 emissions by country and year (50k rows, 14 MB).

ChatGPT upload limits at a glance

OpenAI sets different caps by file type, plan and where you attach the file. A failed upload usually hits one of the smaller limits long before 512 MB. Every number below was checked against the OpenAI Help Center in October 2026.

ChatGPT upload limits (checked October 2026)
LimitValue
Documents and presentations512 MB per file
Text and document files2,000,000 tokens per file (not spreadsheets)
CSV and spreadsheetsAbout 50 MB, depending on row size
Images20 MB per image
Upload rate80 files every 3 hours
Free plan3 file uploads per day
Upload storage25 GB per user, 100 GB per organization
Project files5 on Free, 25 on Go and Plus, 40 on Pro, Business, Enterprise and Edu
Custom GPT knowledge20 files

Why does ChatGPT reject a file under 512 MB?

The 512 MB ceiling applies to documents and presentations, but most files hit a format-specific cap first. Text and document files such as PDF, DOCX and TXT stop at 2,000,000 tokens, so a text-heavy file far below 512 MB can still be too long.

Spreadsheets skip the token cap. CSV, TSV, XLS and XLSX files top out at roughly 50 MB instead, and wide rows reach that sooner. Images have their own cap of 20 MB each.

For data analysis, ChatGPT also reads JSON, XML, YAML and Markdown files. Parquet is not on OpenAI's list, so convert .parquet files to CSV or JSON before uploading.

How many files can you upload to ChatGPT?

Small files run into count limits instead. OpenAI gives no single number of files per conversation; it varies by plan, model and upload type. These caps are fixed, though OpenAI may lower the rate limits during peak hours:

  • Rolling rate: up to 80 files every 3 hours. Failed attempts can count toward it, and ChatGPT does not show how much of it is left.
  • Free plan: 3 file uploads per day.
  • Storage: 25 GB per user and 100 GB per organization. Check your usage in Settings > Storage.
  • Projects: 5 files on Free, 25 on Go and Plus, 40 on Pro, Business, Enterprise and Edu.
  • Custom GPTs: up to 20 knowledge files, with the same size caps.

What happens when you upload a big CSV to ChatGPT

For data analysis, ChatGPT writes and runs Python code in a Jupyter notebook environment that can read the files you attached. That environment cannot make web requests, so it cannot download a file from a link you paste, whether the file sits on S3, GitHub, Google Drive or rows.page.

OpenAI also notes that a file can upload fine and still be too large or complex for a complete analysis. If an answer looks partial, ask ChatGPT to work on specific columns or rows, or split the file into smaller ones.

How to shrink a large CSV or Parquet file for ChatGPT in rows.page

rows.page runs DuckDB-WASM in your browser tab, so the file stays on your machine unless you click Share. It opens CSV, TSV, JSON, JSONL and Parquet, with up to 1.5 GB per tab for the text formats; Parquet is not held to that check. It does not open Excel files, so save a big workbook as CSV first.

  1. Drop your .csv, .tsv, .json, .jsonl or .parquet file onto rows.page.
  2. Check the Columns panel for types, empty values and top values.
  3. Filter rows in the filter box, for example country:NL or price:>20, or click a histogram bar.
  4. Or type a DuckDB SQL query that starts with SELECT, WITH or FROM. The table is called data.
  5. Open Export and pick CSV, JSON, JSONL or Parquet. Only the current filtered view or SQL result is exported.

This query collapses a large event log into one row per day, country and status:

sql
SELECT
  date_trunc('day', created_at) AS day,
  country,
  status,
  count(*) AS events,
  sum(amount) AS total_amount,
  median(amount) AS median_amount
FROM data
WHERE created_at >= '2026-01-01'
GROUP BY ALL
ORDER BY day DESC, events DESC

If ChatGPT needs raw rows, drop wide text columns and keep a subset. Exclude the hidden __rid row number too, or DISTINCT treats every row as unique:

sql
SELECT DISTINCT * EXCLUDE (__rid, raw_payload, debug_log)
FROM data
WHERE status = 'error'
LIMIT 50000

A filtered view exports every matching row, while a SQL result exports up to 1,000,000 rows. CSV exports are comma-delimited UTF-8 without a BOM.

How to share a large dataset without uploading it to ChatGPT

If you only upload to ChatGPT to show someone a slice of the data, share it from rows.page instead. Click Share in the explorer, or run curl -T data.csv https://rows.page, to get a link like https://rows.page/<10-character id> for files up to 100 MB.

Without an account you get 50 pushes and 1 GB per IP address per UTC day, and links expire after 7 days. The filter, sort and visible columns live in the URL, so Copy link on the dataset page shares exactly what you see. Sign in with Google to keep a dataset on your account, or pick Pro ($12 per month) or Max ($39 per month) for private datasets.

rows.page limits and prices

WhatLimit or price
Open a file in your browserFiles up to 1.5 GB, $0, no account, nothing uploaded
Share a link without an account$0, files up to 100 MB, link deleted 7 days after creation
Free account$0, 10 datasets kept, last 3 versions
Pro$12/month, 100 datasets, files up to 500 MB, private links
Max$39/month, 1,000 datasets, files up to 2 GB, private links

Questions

Can ChatGPT open a file from a URL if it is over the upload limit?

Not for data analysis. The Python environment ChatGPT uses cannot make web requests, so it cannot fetch a file from a link. Shrink the file and attach it directly.

Does the 2,000,000 token limit apply to CSV and Excel files?

No. The token cap applies to text and document files such as PDF, DOCX and TXT. Spreadsheets and CSV files skip it and are limited to roughly 50 MB instead, depending on row size.

Can I upload Parquet files to ChatGPT?

Parquet is not on OpenAI's list of supported file types, which covers PDF, DOCX, TXT, PPTX, XLSX, XLS, CSV, TSV, JSON, XML, YAML and Markdown. Open the .parquet file in rows.page, filter it if needed, and export it as CSV or JSON.

Why did ChatGPT block my upload when my file is under 50 MB?

You probably hit a count limit, not a size limit. ChatGPT allows 80 files every 3 hours, 3 uploads per day on the Free plan and 25 GB of upload storage per user, and failed attempts can count toward the rate limit. Projects hold 5 files on Free, 25 on Go and Plus, and 40 on Pro, Business, Enterprise and Edu.

Can rows.page open a 300 MB Excel .xlsx file that ChatGPT rejected?

No, rows.page does not read .xlsx or .xls files. Save the sheet as .csv in Excel, then open the .csv in rows.page, which handles up to 1.5 GB per browser tab, and filter or aggregate it below 50 MB.