Check whether a domain is Shopify
Report whether a domain is a Shopify store, with the evidence behind the answer: which signals fired, how confident the verdict is, the store name and currency, the permanent myshopify domain behind a custom one, the theme in use, and which of products, collections and store metadata that store actually publishes. A domain that is not Shopify comes back as a normal 200 with isShopify false, so this is safe to run across a list of domains before spending requests on any of them. It works on stores that do not look like Shopify: every classic storefront answers the same endpoints regardless of theme, and a headless store is read at the myshopify domain its own markup reveals.
/detect-store Stores https://api.fetchlayer.dev/shopify-stores/detect-store Headers
Authorization string required Bearer token — your FetchLayer API key.
Parameters
store string required Store domain, or any URL on the store — for example example.com, https://example.com/products/foo, or a myshopify.com domain.
format string optional json or markdown. Markdown returns the same result rendered for a model to read. (default: json)
timeoutMs number optional Per-request time limit in milliseconds (max 120000).
Response Fields
detect-store
Check whether a domain is Shopify
requestedUrl string The store URL this result corresponds to.
scrapedAt string When the store was read, as an ISO timestamp.
transport string Always shopify-storefront — the upstream source this data came from.
notes string[] Caveats about this specific result: a truncated walk, an upstream limit, or a field this store does not publish. Read it before treating a result as complete.
resultType string Always store-detection.
domain string The domain that was checked.
storeUrl string The canonical store URL the other endpoints should be pointed at.
isShopify boolean Whether this domain is a Shopify store.
confidence string confirmed when a decisive signal matched, likely when only indirect evidence did, no when nothing did.
signals object[] Each check that ran and what it found: platform-header, storefront-cookie, cdn-assets, storefront-runtime, product-catalog, store-metadata.
endpoints object[] Whether the store publishes products, collections and store-metadata, with the status code each returned. A store can switch any of them off.
storeName string The store's name, when its storefront publishes one.
currency string The currency the storefront prices in.
permanentDomain string The store's myshopify.com address, when the storefront reveals it. This is how a headless store is read.
theme object The storefront theme: name, id, role, and the theme store id for an off-the-shelf theme (null for a custom one).
Request
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"}'Response
{
"resultType": "store-detection",
"domain": "allbirds.com",
"storeUrl": "https://allbirds.com",
"isShopify": true,
"confidence": "confirmed",
"storeName": "Allbirds",
"currency": "USD",
"permanentDomain": "allbirds.myshopify.com",
"signals": [
{
"name": "platform-header",
"detected": true,
"detail": "Storefront served the Shopify platform header."
}
],
"endpoints": [
{
"endpoint": "products",
"available": true,
"status": 200
}
],
"notes": []
}