Shopify Store Scraper โ€” Emails, Apps & Catalogue avatar

Shopify Store Scraper โ€” Emails, Apps & Catalogue

Pricing

from $3.50 / 1,000 store profiles

Go to Apify Store
Shopify Store Scraper โ€” Emails, Apps & Catalogue

Shopify Store Scraper โ€” Emails, Apps & Catalogue

Profile any Shopify store in one row: shop identity, email, phone and socials, theme and installed apps, catalogue size, price band, and how many products were created in the last 90 days. No login, no API key, no proxy.

Pricing

from $3.50 / 1,000 store profiles

Rating

0.0

(0)

Developer

Matvey

Matvey

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

13 hours ago

Last modified

Share

Shopify Store Scraper โ€” emails, apps and catalogue in one row

Give this Actor a list of shop addresses and it hands back one row per store: who the merchant is, how to reach them, what the storefront runs on, and what the catalogue actually looks like.

It reads the JSON that every Shopify storefront publishes for its own use, so there is no login, no API key, no browser and no proxy bill.

What you get for each store

GroupFields
IdentityshopName, shopId, myshopifyDomain, currency, city, province, country
Contactsemail, emails, phone, phones
Socialsinstagram, facebook, tiktok, youtube, x, linkedin, pinterest
Techtheme, apps โ€” Klaviyo, Judge.me, Yotpo, Loox, Gorgias, Recharge, Okendo, pixels
CatalogueproductCount, variantCount, inStockVariants, outOfStockVariants, priceMin, priceMedian, priceMax, vendorCount, productTypes
ActivitynewestProductAt, oldestProductAt, productsCreatedLast90Days

Turn on Add product rows and every product comes through as its own row too, with its price range, stock, tags and images.

Why the activity figures matter

A list of Shopify stores is easy to buy and mostly useless: half of it is abandoned shops. The three activity fields answer the only question that decides whether a store is worth contacting โ€” is anyone still working on it? productsCreatedLast90Days counts products by their creation date, not their publish date, because Shopify bumps the publish date on any re-publish and a dormant store would otherwise look brand new.

Three ways to run it

  • Store profile โ€” one row per shop. This is the mode for building or enriching a prospect list.
  • Products โ€” the store row plus the full catalogue.
  • Detect only โ€” just answers whether an address is a Shopify store, at the lowest price. Use it to sift a large domain list before paying for full profiles.

What it will not invent

Phone numbers come only from tel: links the merchant published. Scanning page text for digit runs returns map coordinates, order ids and timestamps, so an empty phone cell here means the merchant did not publish a number โ€” not that the Actor guessed badly.

A shop that rate-limits or blocks the request comes back as an error row saying so, never as "not a Shopify store", so real stores never quietly drop out of your list. Error and notice rows are never charged.

Pricing

Pay per event: $5 per 1,000 store profiles and $0.50 per 1,000 product rows, cheaper on higher Apify plans. Stores that refuse the request, and addresses that turn out not to be Shopify, cost nothing.

Use cases

  • Build an agency prospect list of live Shopify stores in a price band, filtered by the apps they already run.
  • Find stores that have no review app or no email tool installed โ€” the pitch writes itself.
  • Track a competitor's catalogue: price band, how fast they launch, what goes out of stock.
  • Enrich a domain list you already have: which ones are Shopify, and who to email.

Input example

{
"storeUrls": ["gymshark.com", "allbirds.com", "kith.com"],
"mode": "store",
"includeContacts": true,
"maxProductsPerStore": 250
}

For AI agents

The Actor is available over Apify's MCP server, so an agent can call it directly. One store address in, one flat row out โ€” no nested objects, so the result drops straight into a spreadsheet, a CRM import or an LLM context window.

Your feedback

Something missing or wrong? Open an issue on the Actor page and it gets fixed.