PasteSheet icon PasteSheet logo mark — a spreadsheet grid with a curly brace on a green rounded square PasteSheet

Google Sheets API quota exceeded — how to fix it

A 429 from the Sheets API is not a bug and not something you can pay your way out of per-request. It is a per-minute quota, and the fix is almost always to stop asking Google so often.

Last updated

Key facts

  • The error is 429 RESOURCE_EXHAUSTED, and it means you crossed 300 reads/minute for the project or 60/minute for one user. source
  • Google's own guidance is exponential backoff with jitter — retry after 1s, 2s, 4s, 8s plus a random offset, rather than immediately. source
  • Backoff only slows the bleeding. Caching removes the cause: a cached endpoint reads the sheet once per TTL no matter how much traffic hits it.

Why am I getting a 429 from the Google Sheets API?

Because you crossed a per-minute quota. Google allows 300 read requests per minute per project and 60 read requests per minute per user per project, and returns HTTP 429 once you exceed either (Google's published usage limits). The quota refills every minute.

The 60-per-user limit is the one that catches people out. It is far tighter than the project limit, so a single busy user — or a single chatty AI agent — can trip it while your project-wide usage looks fine.

What usually causes it

  • Reading on every page load. A page that fetches the sheet per visitor multiplies traffic straight into Google's quota.
  • An AI agent exploring. One question becomes a schema read plus several filtered queries — agents are chatty by nature.
  • Polling. A dashboard refreshing every few seconds will find the ceiling quickly.
  • Row-by-row reads. Fetching cells or rows individually instead of in one range read.

The fix: stop asking Google every time

Exponential backoff is the band-aid — it stops the errors but keeps you at the ceiling. The actual fix is a cache: read the sheet once, serve every subsequent request from memory, and refresh on an interval you choose.

That is the whole idea behind PasteSheet. It reads your sheet, caches the rows, and serves them from a fast endpoint. A thousand readers in a minute cost Google one read, not a thousand — so the quota stops being your problem. You set the refresh window yourself, from 30 seconds up to an hour. The full walkthrough is in using Google Sheets as a REST API.

Quota at a glance

Limit Value Who it applies to
Read requests / minute 300 Per project
Read requests / minute 60 Per user, per project — the usual culprit
Write requests / minute 300 Per project
On exceeding 429 Refills every minute

What it costs

MCP is included on the Free plan. Connect any public endpoint over MCP with no Google Cloud project and no credit card. Private endpoints and the account-wide workspace server need a paid plan (from Starter ($9/mo)) for the keys and OAuth they authenticate with.

Pro adds full-text search and aggregation (count, sum, avg, group_by) that your AI agent can call through query_rows.

Starter

For indie makers shipping a real app.

$9 /mo
Endpoints
10
Requests / mo
50,000
Row cap
5,000
  • Custom cache TTL
  • Type-mapped columns

Frequently asked questions

What is the Google Sheets API rate limit?

Google allows 300 read requests per minute per project and 60 per minute per user per project. Write limits match. Exceeding either returns a 429, and the quota refills each minute.

Can I pay Google to raise the quota?

You can request a quota increase in the Google Cloud console, but it is not an instant paid upgrade and it is not guaranteed. Caching is faster to implement and usually removes the need entirely.

Does exponential backoff fix it?

It stops the errors surfacing, but you are still bounded by the same per-minute ceiling — requests just wait. If your read volume genuinely exceeds the quota, you need to reduce reads, not retry them.

How does caching remove the limit?

Because your traffic no longer reaches Google. The sheet is read once per cache window and everything else is served from the cache, so a thousand readers in a minute cost one Google read rather than a thousand.

Sources

Related guides

Turn your sheet into an API in minutes

Paste a Google Sheet URL and get a live REST API and MCP server — no backend, no code, free to start.