To ensure consistent performance and fair access to all users, Webflow enforces rate limits on its Data API. These limits vary based on your site subscription plan and are essential for maintaining the stability of our services.

Your Webflow site plan determines your rate limit:

PlanRequest Per Minute
Starter and Basic60
CMS, eCommerce, and Business120
EnterpriseCustom

If you exceed your rate limit, Webflow’s API will return an HTTP 429 Too Many Requests error. Along with this response, the Retry-After header will tell you how long to wait before attempting new requests—typically, this reset time is 60 seconds.

If your application requires a higher limit, consider exploring our enterprise options to request increased access.


Endpoint-specific limits

While the general rate limits apply to most API requests, some endpoints have additional constraints. For example, Site Publish operations are limited to one successful publish per minute. Any endpoint-specific rate limits will be identified within the endpoint’s documentation.


How rate limits apply to Webflow APIs

Rate limits are applied on a per API key basis. This means that each API key is subject to its own rate limit, independent of any other keys you may be using. Whether you’re running multiple applications or integrating various services, each API key’s usage is tracked separately.


Tracking your API usage

To help you monitor and manage your API usage, Webflow provides three key HTTP response headers with every API request:

HTTP Response HeaderDescription
X-RateLimit-RemainingContains the number of available requests remaining in the current minute
X-RateLimit-LimitContains your current overall rate limit per minute
Retry-AfterContains the time to wait before attempting new requests

Example Request

To illustrate how these headers work, here’s an example using cURL to make a request to the Webflow Data API:

cURL Request
1curl --request GET \
2 --url https://api.webflow.com/v2/token/authorized_by \
3 --header 'accept: application/json' \
4 --header 'authorization: Bearer YOUR_API_TOKEN'

Example response headers

HTTP/1.1 200 OK
Date: Sat, 14 May 2022 09:00:00 GMT
Status: 200 OK
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59
Retry-After: 60

Exceeding rate limits

If your application exceeds the rate limit and encounters a 429 Too Many Requests error, it’s important to handle retries effectively. The Webflow SDK includes built-in exponential backoff, automatically adjusting the wait time between retries to minimize further errors. If you’re not using the SDK, we recommend implementing your own retry logic that respects the Retry-After header to keep your application running smoothly.


Example error

1{
2 "message": "Too Many Requests",
3 "code": "too_many_requests",
4 "externalReference": null,
5 "details": []
6}

If you are seeing these errors, you should ensure your application is built to limit the rate of requests it is performing. It could, for example, be triggered by polling aggressively when waiting for resources to be created or making a large number of highly concurrent API calls.


Optimizing API usage with webhooks

Frequent polling of the API can quickly lead to rate limit issues, especially if your application is waiting for specific changes or updates. To mitigate this, Webflow offers Webhooks, which allow your application to receive real-time updates without the need for continuous API calls. Implementing webhooks is a highly effective way to stay within your rate limits while still maintaining responsive applications.