HTTP 429 Too Many Requests in Shopify
Shopify — hosted e-commerce platform.
What triggers it in Shopify
Shopify's leaky-bucket rate limiter (REST: 40 req burst / 2 rps refill on standard plans) has been exceeded, or a GraphQL query has consumed all cost points.
How to fix it on Shopify
Read `X-Shopify-Shop-Api-Call-Limit` (REST) or the `extensions.cost` object (GraphQL), throttle client-side, and prefer bulk operations for large exports.
Where you'll see it
Shopify admin, checkout, or the Storefront/Admin GraphQL APIs.
Monitor 429 responses continuously
Lemwatch checks your Shopify endpoints as often as every 5 minutes and alerts the moment a 429 pattern appears — with the full response headers and body captured, so you can debug without waiting for the next customer report.
Same error on other platforms
429 Too Many Requests in Shopify — FAQs
Shopify's leaky-bucket rate limiter (REST: 40 req burst / 2 rps refill on standard plans) has been exceeded, or a GraphQL query has consumed all cost points.
Read `X-Shopify-Shop-Api-Call-Limit` (REST) or the `extensions.cost` object (GraphQL), throttle client-side, and prefer bulk operations for large exports.
429 on Shopify is a client-side condition, so it will keep returning until the request or configuration is corrected. Retrying the same request without changes will produce the same 429 response.
If Googlebot receives 429, it interprets it as "back off and crawl less" — and it does, sometimes for weeks. A pattern of 429s in Search Console's crawl-stats report can reduce crawl rate sitewide, which slows indexing of new and updated pages. Use 503 with Retry-After for genuine overload (Google handles this gracefully); reserve 429 for actual abuse from specific clients. Whitelisting Googlebot, Bingbot, and other major crawlers in your rate-limit rules is best practice. On Shopify specifically, Googlebot sees the same 429 your users see, so unresolved errors get reflected in Search Console's Page indexing report within days.
Set up an HTTP monitor that pings your key Shopify endpoints from multiple regions every 1–5 minutes and alerts on any non-2xx response. Lemwatch does this out of the box — including capturing the full response headers and body when a 429 hits, so you can debug without waiting for the next user report.
Both are client error responses, but they mean different things: 429 Too Many Requests indicates the client has sent too many requests in a given time window — the canonical rate-limiting and abuse-protection status code., while 403 is a distinct condition with its own root cause. On Shopify, the fix path and the log signature are different — check the exact status code your Shopify logs return before applying a fix.