Every Notion API limit, in one table
Last verified
The Notion API now enforces two rate limits plus per-endpoint limits. The per-connection limit is a fixed budget per 60-second window that depends on the workspace's plan: 600 requests per minute (an average of 10 per second) on Business and Enterprise, and 180 requests per minute (an average of 3 per second) on all other plans. The budget can be spent evenly or in a single burst. A separate per-workspace limit is shared across all of a workspace's connections, so a request can be rate-limited even when its own connection is under budget. Querying a data source has its own limit of about 3 requests per second per connection.
Size limits are separate from rate limits. A request payload can hold at most 1,000 block elements and 500 KB. Rich text is capped at 2,000 characters per text object, arrays at 100 elements, and one append call at 100 block children with two levels of nesting. File uploads are capped at 5 MiB on Free workspaces and 5 GiB on paid ones.
There is also a new plan limit: from September 8, 2026, the REST API enforces the Free workspace block limit for multi-member Free workspaces. Values below come from Notion's developer reference, verified November 12, 2026.
Official reference: Notion API reference - Request limits
Jump to: Rate limits · Request size limits · Blocks, pagination and files · When you hit a limit · Staying under it
Rate limits
Each connection (integration) has a budget per 60-second window. When it runs out, the Retry-After value is the time until the window resets, so it is at most 60 seconds. The per-workspace limit is shared and scaled to the plan, and its Retry-After can be longer than a minute. The 429 body includes additional_data.rate_limit_reason, which tells you which limit you hit. A connection's Health tab lists the limits it reached in the last 24 hours.
| What | Limit | Source |
|---|---|---|
| Per-connection limit (Business and Enterprise) | 600 requests per minute (average 10 per second) | docs ↗ |
| Per-connection limit (all other plans) | 180 requests per minute (average 3 per second) | docs ↗ |
| Per-workspace limit | Shared across all connections; scaled to plan (no number published) | docs ↗ |
| Data source queries | About 3 requests per second per connection | docs ↗ |
| Endpoint-specific limits | Varies | docs ↗ |
| Blocked connection | Not a rate limit | docs ↗ |
Request size limits
Size limits cap a single request, not how much a property can hold overall. A relation can contain far more than 100 pages, but you can set at most 100 in one request. Exceeding a size limit returns HTTP 400 validation_error with details in the message property. Notion recommends handling over-length values before sending, for example by checking URLs against the 2,000-character cap.
| What | Limit | Source |
|---|---|---|
| Payload size | 1,000 block elements and 500 KB overall | docs ↗ |
| Rich text content (text.content) | 2,000 characters | docs ↗ |
| Rich text link URL (text.link.url) | 2,000 characters | docs ↗ |
| Equation expression | 1,000 characters | docs ↗ |
| Any array of blocks or rich text objects | 100 elements | docs ↗ |
| URL property | 2,000 characters | docs ↗ |
| Email / phone number property | 200 characters each | docs ↗ |
| Multi-select / relation / people values per request | 100 options / 100 related pages / 100 users | docs ↗ |
Blocks, pagination and files
Writing page content goes through Append block children. One call accepts up to 100 children with up to two levels of nesting, so long documents need several calls. Reads are paginated: most list endpoints return 100 items per page at most. File uploads follow the same size limits as the Notion app, and files larger than 20 MiB must use multi-part upload. Free workspaces with more than one member also have a lifetime block cap that the API now enforces.
| What | Limit | Source |
|---|---|---|
| Block children per append request | 100 | docs ↗ |
| Nesting depth per append request | 2 levels | docs ↗ |
| page_size on list endpoints | 1 to 100 (default 100 on most) | docs ↗ |
| File upload size (Free workspace) | 5 MiB per file | docs ↗ |
| File upload size (paid workspace) | 5 GiB per file | docs ↗ |
| Free workspace block limit (more than one member) | 1,000 lifetime blocks | docs ↗ |
| Grace period after reaching the block limit | 3 days | docs ↗ |
What happens when you hit a limit
Rate limits: HTTP 429 with code rate_limited and message You have been rate limited. Please try again later. The response carries a Retry-After header (whole seconds), repeated in additional_data.retry_after, and additional_data.rate_limit_reason names the limit. A 529 service_overload means Notion is temporarily overloaded and should be retried the same way.
Size limits: HTTP 400 validation_error. The message property explains which field exceeded its limit, for example body failed validation: ....
Free workspace block limit: after the grace period, block-creating writes return HTTP 403 restricted_resource with This workspace has used all of its free blocks. Upgrade its plan in Notion to create more content. This is a plan limit, and retrying won't resolve it. Reads, deletes and edits that don't create blocks keep working.
Staying under the limits
Queue requests and honor Retry-After. Notion recommends routing calls through a queue so one burst doesn't consume the whole budget. Pause for at least the Retry-After value, then back off exponentially with jitter, and set a retry cap. The official JavaScript SDK does this automatically.
Write in bigger chunks. Append up to 100 blocks per call instead of one call per paragraph, and create a page with its initial children in one request.
Don't blindly retry writes that return 503. Check additional_data.retry_guidance, because the change may already have been saved.
Upgrade when the plan is the limit. Business and Enterprise raise the per-connection budget from 180 to 600 requests per minute. A paid plan removes the Free block cap and raises file uploads to 5 GiB.
Definitions
- Rate LimitingRate limiting is a technique that controls the number of requests a client can make to a server within a given
- ThroughputThroughput is the amount of work or data processed by a system within a given time period. In automation, it m
- API IntegrationAPI integration is the process of connecting two or more applications through their APIs so they can exchange
Other platforms
Frequently asked questions
What is the Notion API rate limit?
Each connection gets a fixed budget per 60-second window based on the workspace plan: 600 requests per minute (about 10 per second) on Business and Enterprise, and 180 requests per minute (about 3 per second) on all other plans. A separate per-workspace limit is shared across all connections, and data source queries are limited to about 3 per second.
Is the Notion API limit still 3 requests per second?
For most plans, effectively yes: 180 requests per minute averages to 3 per second. The budget is now a per-minute window that can be spent in a burst, Business and Enterprise workspaces get 600 per minute, and a shared per-workspace limit can throttle you even when your own connection is under budget.
How long should I wait after a Notion 429?
Use the Retry-After header, an integer number of seconds, rather than a fixed wait. For the per-connection limit it is at most 60 seconds because it is the time until the window resets. For the per-workspace limit it can be longer than a minute. The body repeats the value in additional_data.retry_after.
How many blocks can I append in one Notion API request?
Up to 100 block children per Append block children request, with up to two levels of nesting. Arrays longer than 100 return an error. The whole payload is also capped at 1,000 block elements and 500 KB, so very large nested structures may need to be split across requests.
What is the Notion rich text character limit?
2,000 characters per rich text object's text.content, and 2,000 characters for a link URL. To write longer text, split it into several rich text objects inside the same block, or into several blocks. Arrays of rich text objects are capped at 100 elements per request.
What is the Notion Free workspace block limit for the API?
Free workspaces with more than one member have 1,000 lifetime blocks, and from September 8, 2026 the REST API enforces it for internal connections and OAuth connections restricted to selected workspaces. After a three-day grace period, writes that create blocks fail with HTTP 403 restricted_resource. Paid and single-member Free workspaces are unlimited.
How large a file can I upload with the Notion API?
5 MiB per file on Free workspaces and 5 GiB per file on paid workspaces, the same as the Notion app. Files larger than 20 MiB must be split into parts and uploaded in multi-part mode. A file over the workspace's limit is rejected, so check the plan before sending large media.
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.