Every Google Sheets limit, in one table
Last verified
Google Sheets has three kinds of limits that matter for automation. The first is size: as of September 2026, a spreadsheet can hold up to 20 million cells or 100 MB. Google doubled the cap from 10 million that month (Rapid Release domains from September 10, Scheduled Release from September 28), so many guides and AI answers are now out of date. The second is IMPORT functions. IMPORTXML, IMPORTHTML, IMPORTDATA, IMPORTFEED and IMPORTRANGE share a traffic budget that is enforced on the spreadsheet's creator. IMPORTRANGE is capped at 10 MB of received data per request. The third is the Sheets API: 300 read and 300 write requests per minute per project, and 60 of each per minute per user per project. That per-user figure is the source of the 429 errors that integrations report.
Every value here comes from Google's help center, developer documentation or the Workspace Updates blog, verified November 12, 2026. Google does not currently publish a column limit or a per-tab limit on the official file-size page, so this page does not state one. For the error messages these limits produce, see Google Sheets import errors. Script-based automation has its own quotas, covered under Apps Script quotas.
Official reference: Google Drive Help - Files you can store in Google Drive
Jump to: Spreadsheet size limits · IMPORTXML, IMPORTHTML, IMPORTDATA, IMPORTFEED and IMPORTRANGE · Google Sheets API quotas · When you hit a limit · Staying under it
Spreadsheet size limits
The official limit is per spreadsheet file, counted across all tabs: 20 million cells or 100 MB for spreadsheets created in or converted to Google Sheets. Empty cells in the grid count, so deleting unused rows and columns frees capacity. The 100 MB figure also applies to imported files. Google's September 2026 announcement says it plans to raise the byte-size limit for imported spreadsheets later. Until then, a large CSV or .xlsx file can fail on bytes even when it is under 20 million cells.
| What | Limit | Source |
|---|---|---|
| Cells per spreadsheet | 20,000,000 | docs ↗ |
| File size for spreadsheets created in or converted to Sheets | 100 MB | docs ↗ |
| Characters per cell when converting from Excel | 50,000 | docs ↗ |
| Connected Sheets pivot tables | 200,000 rows | docs ↗ |
| Connected Sheets extracts | 500,000 rows or 5 million cells | docs ↗ |
| Rollout of the 20M-cell limit | Gradual, from September 10, 2026 | docs ↗ |
IMPORTXML, IMPORTHTML, IMPORTDATA, IMPORTFEED and IMPORTRANGE
Google does not publish a fixed number of IMPORT formulas per sheet. Instead it enforces a traffic limit on the creator of the document, summed across all open documents that person created. A collaborator's edits can also count against the creator's quota. When the budget is exhausted, cells show Loading... with the error quoted below. Refresh timing is documented, and so are a few hard rules: no volatile inputs, and a one-time Allow access prompt for external URLs.
| What | Limit | Source |
|---|---|---|
| Number of IMPORT functions | No fixed count published; traffic-based | docs ↗ |
| IMPORTRANGE data per request | 10 MB | docs ↗ |
| IMPORTDATA / IMPORTHTML / IMPORTXML refresh | Every hour while the document is open | docs ↗ |
| IMPORTRANGE reload | On open, or if opened within the past 5 minutes | docs ↗ |
| Volatile inputs | Not allowed (TODAY excepted) | docs ↗ |
| IMPORTRANGE access grants | Count toward the source sheet's 600-user share limit | docs ↗ |
| IMPORTXML result size | No number published | docs ↗ |
Google Sheets API quotas
The Sheets API counts requests per minute, with separate read and write buckets. There is no daily limit as long as you stay inside the per-minute quotas, which refill every minute. A batch request counts as one request regardless of how many subrequests it contains, so batching is the most effective lever. Integration platforms that use one Google Cloud project for all their customers share the project-level 300-per-minute pool. Per-user quotas apply to each connected Google account.
| What | Limit | Source |
|---|---|---|
| Read requests per minute per project | 300 | docs ↗ |
| Read requests per minute per user per project | 60 | docs ↗ |
| Write requests per minute per project | 300 | docs ↗ |
| Write requests per minute per user per project | 60 | docs ↗ |
| Daily request limit | None | docs ↗ |
| Batch requests | Count as 1 request | docs ↗ |
| Recommended payload size | 2 MB maximum (recommendation, not a hard limit) | docs ↗ |
| Request processing time | 180 seconds | docs ↗ |
What happens when you hit a limit
Size: edits, pastes or API calls that would push the file past the cell limit are rejected. The API error begins This action would increase the number of cells in the workbook above the limit of followed by the cell count.
IMPORT functions: over-budget formulas show Loading... with Error Loading data may take a while because of the large number of requests. Try to reduce the amount of IMPORTHTML, IMPORTDATA, IMPORTFEED, or IMPORTXML functions across spreadsheets you've created. Oversized IMPORTXML queries return Result too large.
Sheets API: exceeding a per-minute quota returns HTTP 429: Too many requests. In practice the message reads Quota exceeded for quota metric 'Read requests' and limit 'Read requests per minute per user' of service 'sheets.googleapis.com' (or the 'Write requests' equivalent). Quotas refill every minute, so a retry after up to 60 seconds succeeds.
Staying under the limits
Batch API calls. One spreadsheets.values.batchGet or batchUpdate counts as a single request, which turns hundreds of cell writes into one call. Google also recommends truncated exponential backoff (wait 2^n seconds plus random jitter, capped around 32 to 64 seconds) on 429s.
Request a quota increase for the per-project limits in the Google Cloud console if your own project is the bottleneck.
Shrink the grid. Delete unused rows and columns, archive old data to a second spreadsheet, or move large datasets to BigQuery and use Connected Sheets.
Reduce IMPORT churn. Aggregate in the source sheet and IMPORTRANGE only the summary. Avoid chains and cycles of IMPORTRANGE, and replace hundreds of IMPORTXML calls with a scheduled fetch that writes static values.
Definitions
- IMPORTHTMLIMPORTHTML is a Google Sheets function that imports a whole HTML table or list from a web page into your sprea
- IMPORTXMLIMPORTXML is a Google Sheets function that fetches a URL from Google's servers and returns whatever an XPath q
- Google Sheets APIThe Google Sheets API is Google's REST API for reading and writing Google Sheets from your own code. Version 4
Google Sheets errors and guides
Other platforms
Frequently asked questions
What is the Google Sheets cell limit in 2026?
20 million cells per spreadsheet, or 100 MB, for files created in or converted to Google Sheets. Google doubled the limit from 10 million in September 2026, rolling it out from September 10 (Rapid Release) and September 28 (Scheduled Release). The limit counts every cell in every tab, including empty ones.
How many rows can Google Sheets have?
Google does not publish a separate row limit; rows are bounded by the 20 million cell total. A tab with 20 columns could in principle reach 1 million rows, while a tab with 200 columns could reach 100,000. Empty columns count toward the total, so deleting unused columns raises the number of rows you can use.
Is the 10 million cell limit still in effect?
No. The help center now states up to 20 million cells or 100 MB, and the Workspace Updates blog announced general availability on September 10, 2026. Some third-party articles and older answers still quote 10 million. If a spreadsheet is still blocked at 10 million, the rollout may not have reached your domain yet.
How many IMPORTXML or IMPORTHTML formulas can one sheet have?
Google doesn't publish a fixed number. The limit is traffic-based and enforced on the creator of the document, across all open documents they created. When it's exceeded you see the 'Loading data may take a while because of the large number of requests' error. Fewer, larger imports and less churn on source cells help.
How often does IMPORTXML refresh?
IMPORTDATA, IMPORTHTML and IMPORTXML check for updates every hour while the document is open, even if nothing changes. Reopening or refreshing the browser tab does not trigger a refresh. Deleting and re-adding the formula, or overwriting the cells with the same formula, does trigger one.
What are the Google Sheets API rate limits?
300 read requests and 300 write requests per minute per project, and 60 reads and 60 writes per minute per user per project. There is no daily cap. Exceeding a quota returns HTTP 429, and quotas refill every minute. Batch requests count as one request no matter how many ranges they touch.
Why do I get 'Quota exceeded for quota metric Read requests' from Zapier, Make or n8n?
The integration is making more than 60 read requests per minute for your Google account, or the platform's shared Google Cloud project has reached 300 per minute. Lower the polling frequency, read whole ranges instead of single cells, or connect through your own Google Cloud project where you can request a higher quota.
Is there a character limit per cell in Google Sheets?
The official file-size page documents one character rule: when converting from Excel, any cell with more than 50,000 characters is removed. Keep long text such as scraped HTML out of single cells, or store it in Google Docs or Drive and keep a link in the sheet.
Pace the work instead of tripping the limit
Autonoly workflows run on a schedule or a trigger with per-node retries and timeouts, so a job can be spread out and retried rather than run in one burst. Platform limits still apply in full; no tool can lift them.