Getting Started
You supply the domain. Confirm it is a Shopify store, then read its catalog — the same two steps for every storefront on the web.
1. Get your API key
Create an account and generate a FetchLayer API key from your dashboard. There is no Shopify Partner account to register, no app to install on the store, and no per-store access token.
Create free account →2. Confirm the domain is a Shopify store
curl -X POST https://api.fetchlayer.dev/shopify-stores/detect-store \
-H "Authorization: Bearer ss-your-key" \
-H "Content-Type: application/json" \
-d '{"store":"allbirds.com"}'A domain that is not a Shopify store is a normal 200 with isShopify: false, not an error — so this is safe to run down a list of a thousand domains. Read the endpoints array on the response before going further: it says whether this particular store publishes its products, its collections and its metadata, and a store can switch any of them off.
Tip
permanentDomain its own markup reveals — pass that back as store. 3. Pull the catalog
curl -X POST https://api.fetchlayer.dev/shopify-stores/products \
-H "Authorization: Bearer ss-your-key" \
-H "Content-Type: application/json" \
-d '{"store":"allbirds.com","limit":250,"pages":5}'Each page walked counts as one request, so pages: 5 bills as five. When hasNextPage is true, pass the response's nextCursor back as cursor to continue where you stopped.
Read the notes array
notes array, and it is the only place a partial answer announces itself — a walk that stopped early, an upstream limit, a field this store does not publish. An empty notes means the result is as complete as the store publishes. 4. Go deeper on one product
A catalog walk returns every variant's price, sale price, SKU and availability, but not units on hand. /product-detail is the only endpoint that returns inventoryQuantity, and only for stores that track inventory — which is what makes per-product stock tracking over time possible.
curl -X POST https://api.fetchlayer.dev/shopify-stores/product-detail \
-H "Authorization: Bearer ss-your-key" \
-H "Content-Type: application/json" \
-d '{"product":"https://allbirds.com/products/mens-tree-runners"}'Tip
/resolve-url first — it tells you whether it is a product, a collection or the store, and hands back the domain, handle and variant id the other endpoints take. It touches no store and does not consume a credit.