Understanding Shopify API Rate Limits is critical for developers and store owners who rely on Shopify’s APIs to build custom integrations, apps, or automated workflows. This ensures smooth app performance and prevents interruptions caused by sending too many requests in a short period.
This blog will provide you with a complete guide about Shopify API limits and how you can optimize them.
What Are Shopify API Rate Limits?
Shopify API rate limits are the limitations set by Shopify to restrict the number of API calls an app or user can make in a certain time frame. These limits protect the platform from overload and ensure that all users enjoy a stable and responsive experience.

Purpose of API rate limiting on Shopify
API rate limiting is designed to maintain service stability, prevent abuse, and ensure fair resource allocation across all Shopify users and apps. By controlling the rate of incoming requests, Shopify avoids system crashes and keeps the platform performant even during high traffic or heavy app activity.
What happens when you exceed the API limit?
When an app exceeds Shopify’s API rate limits, the API responds with a 429 Too Many Requests error. This signals the app to throttle its request rate and retry later. Continuing to exceed limits can lead to delayed data syncs, throttled app performance, and a poor user experience.
How Does Shopify API Limits Limiting Work
Shopify uses a mixture of algorithms and headers to enforce and help monitor API rate limits, balancing responsiveness with protection.
Leaky bucket throttling algorithm
All Shopify API’s throttling mechanism is the leaky bucket algorithm. It works like a bucket that can hold a fixed number of “marbles” or tokens representing API requests, with a hole at the bottom that leaks at a steady rate. Incoming requests fill the bucket, but they only leave at a fixed rate through the hole.
If the bucket gets full because too many requests are made too quickly, no more requests can be added, and further requests are temporarily blocked until the bucket has room again. This smooths out sudden bursts of traffic and keeps the overall rate steady.
For example, if the bucket can hold 10 requests and leaks 1 request per second, and 5 requests arrive at once, all 5 are accepted. After one second, one request leaks out, making room for more. If suddenly 12 more requests arrive, only 6 more can enter before the bucket is full, so 6 requests are rejected.

This method lets apps handle bursts of requests while still ensuring a consistent overall usage rate, preventing overload of Shopify’s systems while allowing flexibility for occasional spikes in API traffic.
Calculated query costs methods
Instead of simply counting requests, Shopify assigns a cost value to each GraphQL query based on its complexity and the amount of data requested, except for Storefront API. The rate limit is then managed by a points-per-second system, where each query deducts points from a bucket with a fixed restore rate.
Each field in the schema is assigned a specific integer cost value. The total cost of a query is determined by the maximum of possible fields selected. The most accurate way to determine the actual cost of a query is to execute it and observe the calculated cost.
Complex queries cost more points and hence limit how many queries can be run in a given timeframe. This system encourages efficient queries to maximize throughput.
Shopify API Rate Limits by Access Type
Shopify applies different rate limits depending on the API type and your plan to optimize for various use cases like admin management, storefront customization, or headless commerce.
API | Standard | Advanced Shopify | Shopify Plus | Shopify for Enterprise |
GraphQL Admin | 100 pts/sec | 200 pts/sec | 1000 pts/sec | 2000 pts/sec |
Storefront | None | None | None | None |
Payments Apps | 27300 pts/sec | 27300 pts/sec | 54600 pts/sec | 109200 pts/sec |
Customer Account | 100 pts/sec | 200 pts/sec | 200 pts/sec | 400 pts/sec |
GraphQL Admin API rate limits
The GraphQL admin API uses a cost-based rate-limiting system. This means that each API call is assigned a “cost” based on the complexity of the query you’re making, rather than just counting every request equally.
Users get an allocation of points per second (e.g., 100 points/second for standard plans), which refreshes as time passes. Every GraphQL query consumes some number of these points depending on how data-intensive it is. Simple queries might cost only a few points, while more complex queries that ask for lots of data or nested resources cost more.
The benefit of this system is flexibility: you can make many small, cheap queries or fewer complex, expensive queries. Shopify will reject queries if the cost exceeds your remaining points in the current window.
Higher plans like Shopify Plus increase this allocation significantly. Shopify Plus API limits are up to 1000 points per second, allowing for more complex or numerous requests. If a query’s cost pushes you over the limit, you’ll get throttled similarly with a 429 error.
Storefront API rate limits
The GraphQL Storefront API is designed differently since it’s intended for client-facing operations like rendering a webshop, where traffic can be highly variable. Unlike other APIs, it does not have rate limits on the points consumed. Instead, Shopify manages usage internally with time-interval-based limits and fair use policies to protect overall service quality.
This means Shopify allows a flexible amount of traffic but may enforce fair use policies to protect overall service quality. This approach supports high-volume user interactions during traffic spikes like sales events or holiday shopping without manual intervention.
For developers, this means your storefront can provide fast, responsive experiences even under load, while Shopify internally manages rate limits to avoid abuse.
Payments Apps API rate limits
The Payments Apps API is targeted at approved Payments Partners who build payment processing apps integrated with Shopify. This API allows handling payment sessions, refunds, voids, and captures via GraphQL operations. It requires special access permissions and is more niche in use compared to the broad Admin and Storefront APIs.
The standard rate limits are 27,300 points per second, increasing to 54,600 points per second for Shopify Plus, and up to 109,200 points per second for the enterprise tier. These limits ensure stable and fair usage while allowing high volumes of payment-related requests.
Customer Account API rate limits
The Customer Account API enables developers to create personalized, authenticated customer experiences by securely accessing customer-specific data like orders and profile details. It’s also GraphQL-based and designed for use cases requiring strong customer authentication and privacy controls.
The standard rate limit for this API is 100 points per second, with higher limits of 200 points per second for the advanced plan and plus plan, and up to 400 points per second for the enterprise tier. This design balances responsive access to customer data with privacy and security considerations.
Best Practices for Managing Shopify API Limits Effectively
Shopify API limits are in place to ensure the platform remains stable for everyone, but hitting these limits can slow down your app or integration. To avoid disruptions and use the API efficiently, here are some easy-to-follow best practices:
Optimize your data requests
You should only ask for the data you actually need. For example, when using Shopify’s GraphQL API, tailor your queries to fetch specific fields instead of entire objects to reduce the request cost and avoid unnecessary API calls. This makes your app faster and helps avoid hitting limits sooner.
Implement smart caching
Cache data from API responses that don’t change frequently, so your app doesn’t have to request the same information repeatedly. This reduces the number of calls made to Shopify and speeds up your app’s performance.
Regulate and queue API requests
You should distribute your API calls evenly over time instead of sending many requests all at once. Use queues to manage request timing and implement exponential backoff (meaning you pause and gradually retry after a limit error) to avoid overwhelming Shopify’s servers.
Use alternatives for large tasks
For big bulk operations like importing thousands of products, consider alternatives that reduce the load on Shopify’s core API. Tools like BulkFlow are designed specifically to handle large-scale data tasks efficiently without hitting rate limits, enabling smoother data syncs and updates at scale.
BulkFlow supports a wide range of Shopify data types for bulk import, export, and updates. This includes core entities like products, customers, orders, pages, blog posts, discounts, as well as advanced types such as metafields and metaobjects. It also works with multiple file formats, including CSV, Excel, File URL, Google Sheets, Google Drive, Dropbox, and FTP/SFTP.
Shopify API Rate Limits – FAQs
How many API requests can my app make on Shopify?
The number of API requests your app can make depends on the API type and your Shopify plan. For example, the REST Admin API allows about 2 requests per second on standard plans, while Shopify Plus offers much higher limits.
What does ‘X-Shopify-Shop-Api-Call-Limit’ mean?
This header shows the current usage of your API calls compared to the allowed limit. It helps you monitor your app’s request volume and avoid going over the limit, preventing interruptions.
How do GraphQL limits differ from REST?
REST API rate limits are based on the number of requests per second, while GraphQL API limits use a points system that measures the complexity of each query. This allows more flexible usage, but you still need to manage query costs carefully.
Do Shopify webhooks count against API limits?
No, webhooks operate via push notifications and do not count against your API rate limits, so they won’t affect your app’s API call budget.
What’s the best way to avoid rate limit errors?
Some possible ways to avoid rate limit errors are optimizing queries, implementing retry strategies with backoff, and using caching to reduce unnecessary API calls. For large-scale data operations, consider alternatives like BulkFlow that help process bulk data efficiently without hitting standard API limits.
Final Thoughts
Shopify API Rate Limits are foundational to keeping Shopify’s platform stable and performing well for millions of users worldwide. While these limits might seem restrictive at first, understanding how they work and following best practices prevents interruptions and keeps your apps running smoothly.
For those managing large data volumes or complex workflows, tools like BulkFlow provide a smart alternative, helping you handle bulk imports, exports, and updates efficiently. You can set BulkFlow to run these tasks automatically on a preset schedule, ensuring your Shopify store data is always current and reducing the risk of human error.
Another major benefit is its flexible field mapping functionality, which can help you match columns in your import to Shopify data fields automatically. This saves time, prevents mapping errors, and ensures that your data imports are consistent and accurate across various file formats and datasets.