Asset 20 8 2
Does AI recommend your business? Run the free check →

Join 15,000 business owners, marketers and entrepreneurs. The Sunday newsletter you'll be annoyed only arrives once a week.

Article

Notion API Rate Limit: Requests Per Minute and 429s

The Notion API gives each connection 600 requests per minute, about 10 per second, on Business and Enterprise workspaces, and 180 per minute, about 3 per second, on all other plans. Querying a data source is limited separately to about 3 requests per second. Go over a limit and you'll get HTTP 429 with a Retry-After header.

If you're syncing a CRM, a content calendar or a client portal into a workspace, the rate limit decides how fast that sync can run. There's more than one limit in play, and the headline number isn't always the one that stops you.

Request and payload caps in one place

ItemLimitApplies to
Requests per connection600 per minute (about 10 per second)Business and Enterprise workspaces
Requests per connection180 per minute (about 3 per second)All other plans
Data source queriesAbout 3 per secondPer connection
Payload size1000 block elements and 500KBA single request
Rich text content2000 characterstext.content in one rich text object
Array size100 elementsBlock arrays, multi-select options, relations, people

All of these come from the request limits page in the Notion developer docs.

How the per-minute allowance works

Each connection gets a fixed allowance of requests per 60-second window, set by the workspace's plan. You can spend that allowance at any pace inside the window: spread evenly, or all in one burst. So a script that fires 180 requests in the first ten seconds and then waits is fine on the lower allowance, as long as it doesn't start the next batch before the window rolls over.

Three limits, not one

Here's what trips up a lot of integrations. The Notion developer docs, on the Request limits page, describe a separate per-workspace limit shared across every connection in that workspace. That means a connection can be rate limited even when it's comfortably inside its own allowance, because another tool in the same workspace is busy. The docs don't publish a number for this limit, and its Retry-After can be longer than a minute.

Data source queries have their own cap too, about 3 requests per second per connection. So if your job mostly reads a database, you'll be throttled at that speed, well below the 10 per second you might expect on Business or Enterprise.

Reading the error responses

  • 429 with the rate_limited code: you've hit a limit. The Retry-After header gives a whole number of seconds to wait, and additional_data.rate_limit_reason tells you which limit it was.
  • 529 with service_overload: the service is temporarily overloaded. Retry it the same way as a 429.
  • 429 with public_api_request_blocked: don't retry. That connection's API access has been restricted.

The last one matters, because a blind retry loop will keep hammering a connection that's been blocked, and it won't recover on its own.

Building a sync that doesn't fall over

If you use the official JavaScript SDK, much of this is handled for you. It waits for Retry-After, capped at 60 seconds by default, and retries 429 and 529 responses automatically. If you write your own client, copy that behaviour: read Retry-After, wait at least that long, and add backoff on top.

A few habits keep you under the caps in the first place:

  • Batch writes so each request carries as much as it can, within the 1000 block and 500KB payload ceilings.
  • Split long text into chunks of 2000 characters or fewer, and arrays into groups of 100.
  • Pace database reads at around 3 per second, whatever your plan.
  • Log the rate_limit_reason on every 429, so you can tell a workspace-wide squeeze from your own connection running hot.

If you're shaping the databases that a sync writes into, this guide to setting up databases in your workspace helps you keep properties lean. And if you're deciding between polling and push, this explainer on APIs and webhooks covers the trade-off.

Work with me

Want AI doing the heavy lifting in your marketing?

I build the systems that handle the boring 80 percent, so you get your week back. Done properly, with the human kept in.

How two other work apps throttle

Asana's API limits its search API to 60 requests per minute and allows 5 concurrent jobs per user on its duplication, instantiation and export endpoints. Trello's API allows 300 requests per 10 seconds per API key and 100 per 10 seconds per token, plus 100 requests per 900 seconds on /1/members/. If throughput is a deciding factor for your stack, my list of other all-in-one workspace apps is a good place to compare.

My advice for anyone writing a sync

Design for 3 requests per second and treat anything faster as a bonus. Respect Retry-After every time, retry 529s like 429s, and stop dead on public_api_request_blocked. Log which limit fired. When a 429 turns up while your own count looks fine, it's almost always the shared workspace limit, and the fix is to slow down, not to add more connections.

Want your tool on this list? Featured spots and reviews here are paid partnerships. Here's how to partner with me.

Frequently asked questions

What is the Notion API rate limit?

600 requests per minute per connection on Business and Enterprise workspaces, and 180 per minute on all other plans.

What happens when I exceed it?

You get HTTP 429 with a rate_limited code and a Retry-After header telling you how many seconds to wait.

Is querying a database limited separately?

Yes. Data source queries are limited to about 3 requests per second per connection.

Should I retry a 529?

Yes. A 529 means the service is temporarily overloaded; retry it like a 429, using Retry-After and backoff.

Do these limits apply per workspace too?

Yes. A shared per-workspace limit applies across all connections, so a 429 can still happen within your own limit.

Published and maintained by the Lilach Bullock team, covering marketing, AI and business growth.
Your buyers are asking AI who to use. Does it say you?

See for free whether ChatGPT, Claude, Perplexity, Gemini and Google name you, and get the plan to become the answer.

Check my AI visibility →
Sundays only

Get the Sunday newsletter.

One email a week. AI experiments, marketing tactics, and the workflows Lilach is building right now in her own business.

Subscribe free

Let’s get your marketing running on AI.

Book a free 30-minute call

We figure out what you need, where AI fits in, and what working together would look like.

Book the call →

Or take the 30-second calculator

You’ll see the hours and the money quietly leaking out of your week, and the three workflows worth building first.

Take the calculator →

Or grab the free AI resource library

Prompt packs, templates, checklists, and swipe files. The exact tools I build for paying clients. Yours, free.

Get the library →
Keep reading

More from the blog.