Shopify Product Pickup Availability API
Which variants can be picked up, and at which locations.
GET /v1/shopify/products/{handle}/availability1 credit Failed requests are free
About this endpoint
GET /v1/shopify/products/{handle}/availability?store=… returns data.variants, each with variantId, variantTitle and locations. Each location has name, available and pickUpTime.
Use limit and cursor to page through variants. A missing product handle returns not_found with an empty variant list. The route does not need a store login.
Shopify Product Pickup Availability API FAQ
What does available mean?
available is the store's pickup answer for that variant at that location. pickUpTime is the time text the store publishes.
Does every variant have locations?
No. A variant with no pickup option has an empty locations list.
What if the product is missing?
The answer is not_found with an empty variants list. HTTP 200 only means the request finished.
How do I name the store?
The store is the domain, for example allbirds.com, www.allbirds.com or weareallbirds.myshopify.com. A full URL is reduced to its host.
How is it billed?
Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth. Each paginated page is a separate billed request.
What does lookupStatus mean?
found means the lookup succeeded. not_found means the store or entity does not exist or is not a Shopify store. private means the storefront is password-protected. restricted means it is paused or frozen. HTTP 200 only means the request finished, so branch on lookupStatus.