[Read Before Posting] Custom Storefront + Storefront API F.A.Q

Topic summary

Guidance for building custom storefronts (apps, custom front ends, game/offline commerce) using Shopify’s Storefront API; theme edits belong in the Shopify Design board.

Setup and tooling:

  • Use the Storefront API with SDKs: JS Buy, Android, iOS, Unity.
  • Report SDK-specific bugs in their GitHub repos; general bugs here prefixed with [bug]. Provide feedback via the Storefront API Feedback GitHub discussions.

Rate limiting and auth:

  • Rate limited by buyer IP; not intended for server-side/proxy use. Time-based “leaky bucket” throttling; each request costs ≥0.5s.
  • Storefront API is unauthenticated but scope-controlled. Use a Storefront access token (different from Admin API credentials); for custom/public apps, request via Admin API (REST or GraphQL).

Checkout and domains:

  • API returns a Web URL for checkout; Sales Channels can request payment processing permissions. Initialize checkouts only when needed.
  • If a .myshopify.com URL appears at checkout, initialize the client/API with the shop’s custom domain.

Flash sales:

  • Not supported (no bot protection; checkout creation throttles). Handle “200 Throttled” with queued requests and exponential backoff.

Latest posts:

  • One user’s custom link loads a blank page; another asks where to access storefronts. No resolution yet; discussion remains open.
Summarized with AI on February 1. AI used: gpt-5.

Welcome to the Custom Storefronts community board. Please read through this information prior to asking your question.

What is a custom storefront?

  • Think mobile apps for your business, a custom front end for your website, adding commerce into a video game, offline commerce such as a smart mirror - and more.
  • If you have questions about customizing your theme please post in the Shopify Design board.

Bug Reporting + Feedback:

  • If you are reporting a bug with a specific SDK please utilize the Github repos. Otherwise, please post it here with the title [bug] followed by a brief description.
  • For more discussion or to provide feedback, head to the Storefront API Feedback - Github Repo.

Setup Tips:

Rate Limiting:

  • The Storefront API is rated limited by the buyer IP and can not be utilized server-side or with a proxy for this reason.
  • The Storefront API utilizes a time-based leaky bucket algorithm and every request to the Storefront API costs at least 0.5 seconds to run.

Authentication:

  • The Storefront API is an unauthenticated API and access is managed by scopes
  • For a private app, you will utilize the storefront access token from the Admin. This is different from the API Key and Password used for the Admin API.
  • For a custom app or public Sales Channel, make sure the app is first installed, then request a Storefront API access token from the Admin API using either the *S*torefrontAccessToken REST resource or*s*torefrontAccessTokenCreate via GraphQL mutation**.

Checkout + Performance:

  • The Storefront API returns a Web URL field that your customer will complete the checkout process on.
  • Sales Channels can request payment processing permissions to complete checkouts with mutations.
  • It is best practice to only initialize a checkout when necessary.

Custom Domain:

Flash Sales:

  • The Storefront API is not designed to be used for flash sales for two main reasons:
  • Bot protection is unavailable.
  • The Storefront API has a limit on the amount of checkouts that can be created per minute. If an API client exceeds this throttle, then a 200 Throttled error response is returned. Shopify recommends designing your app to be resilient to this scenario. For example, you could implement a request queue with an exponential backoff algorithm.
8 Likes

Hi,

We are trying to setup a storefront, I guess the issue is with custom link. It always lands on a blank page. Can anyone help in this?

@vix @Victor_5

Where does one even access the storefronts?