We are currently standardizing shop data across many Shopify stores. In normal cases, we rely on the Shopify plan name to classify shops.
However, in several edge cases (cancelled, frozen, fraudulent, etc.), we are unable to retrieve the plan name, as the Admin API returns 4xx errors instead.
Examples of errors we observe:
-
401 Unauthorized – Invalid API key or access token
-
402 Payment Required – Unavailable Shop
-
403 Forbidden – Unavailable Shop
-
404 Not Found – Not Found
-
423 Locked / unknown – This store is unavailable
Because of this, we cannot directly determine whether a shop is:
-
cancelled / closed
-
frozen / locked
-
flagged as fraudulent
-
uninstalled the app
-
blocked due to billing issues
-
…
Questions:
-
When the Shopify plan name cannot be retrieved, is it acceptable to infer shop state based on HTTP status codes (4xx)?
-
Is there an official or recommended mapping between these status codes and shop states such as:
-
cancelled
-
frozen
-
fraudulent
-
paused
-
…
-
-
Is there a documented list of shopify plan name corresponding to these API error responses?
Our goal is to normalize data consistently while handling these exceptional states correctly.
Any guidance or official references would be very helpful.
Thank you.