---
title: "File upload limits"
canonical: "https://canmyagentuse.com/features/upload-limits"
contentKind: "feature"
locale: "en"
description: "Document file size, count, duration, page, project, or rolling upload limits."
llmSummary: "File upload limits record documented size, count, page, duration, frequency, and storage limits with their scope. Accepting one test file does not establish every limit."
publishedAt: "2026-08-28T00:00:00.000Z"
updatedAt: "2026-08-28T00:00:00.000Z"
verifiedAt: "2026-08-28"
tags: ["perception","uploads","limits","quota"]
---

# File upload limits

File upload limits record documented size, count, page, duration, frequency, and storage limits with their scope. Accepting one test file does not establish every limit.

- HTML: https://canmyagentuse.com/features/upload-limits
- JSON: https://canmyagentuse.com/api/v1/features/upload-limits.json
- Markdown: https://canmyagentuse.com/features/upload-limits.md

Terminology basis: **Measured product property** — https://docs.x.ai/grok/faq.

## Current support at a glance

File upload limits: 9 supported, 0 partial, 0 unsupported, 22 unreviewed across 31 cataloged products.

- Reviewed current products: 9 of 31
- Supported: 9
- Partial: 0
- Unsupported: 0
- Unreviewed: 22
- Not applicable: 0

Unknown or unreviewed means insufficient published evidence; it does not mean unsupported.

File support is not operationally useful without its limits. This row records per-file bytes, files per message or run, pages per document, audio or video duration, image dimensions, project storage, rolling daily or hourly quotas, and any separate organization cap.

Every number needs a scope: format, plan, model, client, workspace, region, and review date. Evidence should also describe the failure mode—preflight rejection, asynchronous processing failure, truncation, sampling, or silent omission—and whether the harness shows remaining quota before an upload.

## Catalog context

- Category: [perception](/categories/perception.md)
- Terminology basis: Measured product property
- Aliases: attachment limit, max file size, upload quota, file count limit
- Family: [File and media inputs](/features/file-inputs.md)
- Siblings: [Audio file input](/features/audio-file-input.md), [Document input](/features/office-document-input.md), [Image input](/features/image-input.md), [PDF input](/features/pdf-documents.md), [Video input](/features/video-input.md)

## Compatibility assertions

Unknown means insufficient published evidence; it does not mean unsupported.

### ChatGPT (web)

- Harness: [ChatGPT](/harnesses/chatgpt-web.md)
- current: **Unknown**
- preview: **Unknown**

### Claude (web)

- Harness: [Claude](/harnesses/claude-web.md)
- current: **Supported**
  - Target: hosted-observation — 2026-08-28 Claude web documentation observation; observed 2026-08-28
  - Environment: hosted-default
  - Constraint (runtime): up to 20 files per chat, 500 MB per file, images no larger than 8,000 by 8,000 pixels, and project files limited to 30 MB
  - Constraint (policy): plan and usage limits may apply; the complete rolling upload, project-storage, and remaining-quota envelope is not documented on the reviewed page
  - Evidence: [Anthropic Help Center — Uploading files to Claude](https://support.claude.com/en/articles/8241126-upload-files-to-claude) — documented; observed 2026-08-28
  - Qualification note 3: Evidence checked 2026-08-28: Claude chats accept up to 20 files with a 500 MB per-file limit, images must be no larger than 8,000 by 8,000 pixels, and project files have a separate 30 MB limit. The reviewed documentation does not expose a complete rolling upload or storage quota.
- preview: **Unknown**

### Gemini (web)

- Harness: [Gemini](/harnesses/gemini-web.md)
- current: **Supported**
  - Target: hosted-observation — 2026-08-28 Gemini Apps documentation observation; observed 2026-08-28
  - Environment: hosted-default
  - Constraint (runtime): up to 10 files per prompt; video up to 2 GB and other supported files up to 100 MB; one code folder or repository up to 5,000 files and 100 MB
  - Constraint (plan): total video is up to 5 minutes without a Google AI plan or 1 hour with Google AI Pro or Ultra; total audio is up to 10 minutes without a plan or 3 hours with Pro or Ultra
  - Constraint (policy): rolling account quota, project storage, and remaining-quota visibility are not fully documented on the reviewed page
  - Evidence: [Google Gemini Apps Help — Upload and analyze files](https://support.google.com/gemini/answer/14903178?co=GENIE.Platform%3DDesktop&hl=en) — documented; observed 2026-08-28
  - Qualification note 4: Evidence checked 2026-08-28: Gemini Apps accept up to 10 files in one prompt; videos can be up to 2 GB and other supported files up to 100 MB. Total video and audio duration varies by plan, and code folders or repositories have separate file-count and size limits.
- preview: **Unknown**

### Copilot (web)

- Harness: [Copilot](/harnesses/copilot-web.md)
- current: **Supported**
  - Target: hosted-observation — 2026-08-28 Microsoft Copilot web documentation observation; observed 2026-08-28
  - Environment: hosted-default
  - Constraint (runtime): up to 20 files per conversation and 50 MB per uploaded file
  - Constraint (policy): rolling, storage, page, duration, and remaining-quota limits are not established by the reviewed page
  - Evidence: [Microsoft Support — File upload in Microsoft Copilot](https://support.microsoft.com/en-US/microsoft-copilot/file-upload-in-microsoft-copilot) — documented; observed 2026-08-28
  - Qualification note 7: Evidence checked 2026-08-28: Microsoft Copilot web allows up to 20 files in one conversation and limits each uploaded file to 50 MB.
- preview: **Unknown**

### Grok (web)

- Harness: [Grok](/harnesses/grok-web.md)
- current: **Supported**
  - Target: hosted-observation — 2026-08-28 Grok Web documentation observation; observed 2026-08-28
  - Environment: hosted-default
  - Constraint (runtime): web documentation reports approximately 100 files per message but does not provide the complete per-file, page, duration, storage, or rolling quota envelope
  - Evidence: [xAI — Grok files and data FAQ](https://docs.x.ai/grok/faq) — documented; observed 2026-08-28
  - Qualification note 1: Evidence checked 2026-08-28: xAI's Grok FAQ reports approximately 100 files per message on the web but does not publish the complete size, storage, page, duration, or rolling quota envelope on that page.
- preview: **Unknown**

### Grok Bot (desktop)

- Harness: [Grok Bot](/harnesses/grok-bot-desktop.md)
- current: **Supported**
  - Target: hosted-observation — 2026-08-28 Grok Bot desktop documentation observation; observed 2026-08-28
  - Environment: hosted-default
  - Constraint (runtime): six attachments per desktop message; 25 MB each for documents, images, and audio; 200 MB each for video
  - Constraint (policy): page, duration, project storage, rolling quota, and remaining-quota visibility are not established by the reviewed page
  - Evidence: [xAI — Grok Bot files and results](https://docs.x.ai/grok-bot/files-and-results) — documented; observed 2026-08-28
  - Qualification note 2: Evidence checked 2026-08-28: Grok Bot's desktop composer accepts up to six attachments at once; documents, images, and audio can be up to 25 MB each, and video can be up to 200 MB. The reviewed page does not expose every storage, duration, page, or rolling quota.

### Perplexity (web)

- Harness: [Perplexity](/harnesses/perplexity-web.md)
- current: **Supported**
  - Target: hosted-observation — 2026-08-28 Perplexity web documentation observation; observed 2026-08-28
  - Environment: hosted-default
  - Constraint (runtime): general file uploads are limited to 40 MB per file; Enterprise documentation lists 50 MB per file and up to 30 files in a session
  - Constraint (plan): Enterprise Pro and Max publish separate weekly, repository, project, personal-repository, and total persistent-file quotas
  - Constraint (policy): the generic and Enterprise pages publish different per-file limits, so deployments should apply the exact account and surface limit rather than assuming one universal maximum
  - Evidence: [Perplexity Help Center — File uploads](https://www.perplexity.ai/help-center/en/articles/10354807-file-uploads) — documented; observed 2026-08-28
  - Evidence: [Perplexity Help Center — Enterprise file limits](https://www.perplexity.ai/help-center/en/articles/12009761-enterprise-file-limits) — documented; observed 2026-08-28
  - Qualification note 6: Evidence checked 2026-08-28: Perplexity's general web file-upload page documents a 40 MB per-file limit. Enterprise session, repository, and project documentation instead lists 50 MB per file, with plan-specific file-count, weekly-upload, and total persistent-file quotas.
- preview: **Unknown**

### Le Chat (web)

- Harness: [Le Chat](/harnesses/le-chat.md)
- current: **Supported**
  - Target: hosted-observation — 2026-08-28 Mistral Vibe web documentation observation; observed 2026-08-28
  - Environment: hosted-default
  - Constraint (runtime): Libraries allow up to 100 files in one upload and 100 MB per file
  - Constraint (plan): ordinary chat files are available on all plans but plan-based usage limits are not numerically published on the reviewed page
  - Constraint (policy): Le Chat is now Vibe at the same chat.mistral.ai entry point; the numeric limits in this cell are specifically for the Library path
  - Evidence: [Mistral Docs — Add context with Libraries](https://docs.mistral.ai/vibe/work/libraries) — documented; observed 2026-08-28
  - Evidence: [Mistral Docs — Vibe overview](https://docs.mistral.ai/vibe) — documented; observed 2026-08-28
  - Qualification note 8: Evidence checked 2026-08-28: Mistral's current Vibe documentation, which supersedes Le Chat at the same chat.mistral.ai entry point, documents Library uploads of up to 100 files at once and 100 MB per file. Ordinary chat file usage remains plan-limited without a public numeric allowance on the reviewed page.
- preview: **Unknown**

### Devin (web)

- Harness: [Devin](/harnesses/devin-web.md)
- current: **Unknown**
- preview: **Unknown**

### Replit Agent (web)

- Harness: [Replit Agent](/harnesses/replit-agent.md)
- current: **Unknown**
- preview: **Unknown**

### ChatGPT (desktop)

- Harness: [ChatGPT](/harnesses/chatgpt-desktop.md)
- current: **Unknown**
- preview: **Unknown**

### Claude (desktop)

- Harness: [Claude](/harnesses/claude-desktop.md)
- current: **Supported**
  - Target: hosted-observation — 2026-08-28 Claude desktop documentation observation; observed 2026-08-28
  - Environment: hosted-default
  - Constraint (runtime): Claude chat limits are up to 20 files, 500 MB per file, images no larger than 8,000 by 8,000 pixels, and project files limited to 30 MB
  - Constraint (policy): plan and usage limits may apply; the complete rolling upload, project-storage, and remaining-quota envelope is not documented on the reviewed page
  - Evidence: [Anthropic Help Center — Uploading files to Claude](https://support.claude.com/en/articles/8241126-upload-files-to-claude) — documented; observed 2026-08-28
  - Qualification note 3: Evidence checked 2026-08-28: Claude chats accept up to 20 files with a 500 MB per-file limit, images must be no larger than 8,000 by 8,000 pixels, and project files have a separate 30 MB limit. The reviewed documentation does not expose a complete rolling upload or storage quota.
- preview: **Unknown**

### Cursor (desktop)

- Harness: [Cursor](/harnesses/cursor.md)
- current: **Unknown**
- preview: **Unknown**

### OpenWork Desktop (desktop)

- Harness: [OpenWork Desktop](/harnesses/openwork-desktop.md)
- current: **Unknown**

### Copilot Chat (desktop)

- Harness: [Copilot Chat](/harnesses/vscode-copilot.md)
- current: **Unknown**
- preview: **Unknown**

### Chrome WebMCP origin trial (desktop)

- Harness: [Chrome WebMCP origin trial](/harnesses/chrome-webmcp-preview.md)
- current: **Unknown**

### Windsurf (desktop)

- Harness: [Windsurf](/harnesses/windsurf.md)
- current: **Unknown**
- preview: **Unknown**

### Zed Agent (desktop)

- Harness: [Zed Agent](/harnesses/zed-agent.md)
- current: **Unknown**
- preview: **Unknown**

### Continue (desktop)

- Harness: [Continue](/harnesses/continue.md)
- current: **Unknown**
- preview: **Unknown**

### Cline (desktop)

- Harness: [Cline](/harnesses/cline.md)
- current: **Unknown**
- preview: **Unknown**

### JetBrains AI (desktop)

- Harness: [JetBrains AI](/harnesses/jetbrains-ai.md)
- current: **Unknown**
- preview: **Unknown**

### Warp (desktop)

- Harness: [Warp](/harnesses/warp.md)
- current: **Unknown**
- preview: **Unknown**

### Claude CLI (cli)

- Harness: [Claude CLI](/harnesses/claude-cli.md)
- current: **Supported**
  - Target: dated-documentation — current Claude Code error documentation; observed 2026-08-28
  - Environment: local-default
  - Constraint (runtime): 30 MB maximum request-size boundary; attached PDFs are limited to 100 pages and 32 MB
  - Constraint (runtime): one image can be up to 8,000 pixels on its longest edge, or 2,000 pixels when many images are in context
  - Constraint (policy): rolling usage, project storage, and remaining quota are not documented by the reviewed page
  - Evidence: [Claude Code Docs — Error reference](https://code.claude.com/docs/en/errors) — documented; observed 2026-08-28
  - Qualification note 9: Evidence checked 2026-08-28: Claude Code documents a 30 MB maximum request-size failure, a PDF attachment boundary of 100 pages and 32 MB, and image dimension limits of 8,000 pixels for one image or 2,000 pixels when many images are in context. These are request and media boundaries, not a complete rolling or project quota.
- preview: **Unknown**

### ChatGPT CLI (cli)

- Harness: [ChatGPT CLI](/harnesses/chatgpt-cli.md)
- current: **Unknown**
- preview: **Unknown**

### Codex CLI (cli)

- Harness: [Codex CLI](/harnesses/codex-cli.md)
- current: **Unknown**
- preview: **Unknown**

### OpenCode (cli)

- Harness: [OpenCode](/harnesses/opencode.md)
- current: **Unknown**
- preview: **Unknown**

### Gemini CLI (cli)

- Harness: [Gemini CLI](/harnesses/gemini-cli.md)
- current: **Unknown**
- preview: **Unknown**

### Aider (cli)

- Harness: [Aider](/harnesses/aider.md)
- current: **Unknown**
- preview: **Unknown**

### Goose (cli)

- Harness: [Goose](/harnesses/goose.md)
- current: **Unknown**
- preview: **Unknown**

### Copilot CLI (cli)

- Harness: [Copilot CLI](/harnesses/copilot-cli.md)
- current: **Unknown**
- preview: **Unknown**

### Amp (cli)

- Harness: [Amp](/harnesses/amp-cli.md)
- current: **Unknown**
- preview: **Unknown**
