Shopify Store Leads Finder (Emails, Phones, Socials)
Pricing
$3.00 / 1,000 store leads
Shopify Store Leads Finder (Emails, Phones, Socials)
Finds Shopify stores by what they sell (or enriches your list of store domains): emails, phones, address, VAT number, social profiles, location, catalog size, newest product, price range, theme and installed apps. Pay per store lead; not-Shopify, closed and password-protected domains are free.
Pricing
$3.00 / 1,000 store leads
Rating
0.0
(0)
Developer
Steady Scrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Shopify Store Leads Finder — emails, phones and socials of Shopify stores
Find Shopify stores by what they sell — organic coffee, yoga mat, dog collar — or enrich a list of store
domains you already have. Every store comes with its public emails, phone numbers, contact page, legal name, business
address, VAT and company numbers, Instagram / Facebook / TikTok / YouTube / Pinterest / X / LinkedIn profiles, city and
country, currency, catalog size, newest product date, price range, product types, Shopify theme and installed apps
(Klaviyo, Judge.me, Recharge, Gorgias, Okendo, Yotpo…).
You only pay for store leads. Domains that are not Shopify, closed or password-protected are free rows.
Who it is for
- Agencies selling to e-commerce brands (email marketing, ads, CRO, SEO, design): prospect lists by niche and country, with the email and the apps each store already uses.
- Shopify app and theme developers: find stores running a competitor app or an old theme version.
- Wholesalers, suppliers and marketplaces: find retailers of a product category, with their price range.
- Market researchers: how many stores sell a product, where they are based, how big their catalogs are.
How it works
- You give search terms (what the stores sell) and/or a list of store domains.
- Each search term is looked up in Shop, Shopify's own product catalog, through its public agent endpoint (the
search_catalogtool — nothing else is ever called: no cart, no checkout). Every product found names the store that sells it, so a page of 50 products gives about 15–25 different stores. - Each store is then read from its own storefront, the pages Shopify serves to any visitor:
/meta.json(name, location, currency, catalog size, countries it ships to), its contact-information policy (legal name, address, phone, email, VAT number), its newest products, its homepage (emails, phones, social profiles, theme, apps) and its contact page (more emails). - A store found by two search terms (or also in your domain list) is delivered and charged once.
- One free summary row per search term says how many products and stores Shop returned and where each store went.
Measured on 2026-10-20: "organic coffee" — 443 products from 148 stores; 25 of the first 30 stores published an email (17 on the homepage or policy, 8 more only on the contact page).
Input example
{"searchTerms": ["organic coffee", "specialty coffee beans"],"storeCountry": "US","maxStores": 200,"requireEmail": true,"onlyNewStores": true}
Enrich your own list:
{"domains": ["puritycoffee.com", "https://www.cafebritt.com", "nzxx1a-ye.myshopify.com"]}
| Field | What it does |
|---|---|
searchTerms | Product keywords. Each reaches up to ~500 products (Shop's limit per search), usually 100–150 stores. |
domains | Shopify stores you already have, as domains, links or .myshopify.com addresses. |
storeCountry | Only stores based in this country (Shop filters products shipping from it; each store's registered country is checked). |
shipsTo | Only products that ship to this country, wherever the store is based. |
maxStores | Most store leads delivered (and charged) in the run. Default 50. |
requireEmail | Only stores with at least one public email; the others are skipped for free. |
onlyNewStores | Skip stores delivered to you in earlier runs with this option on: schedule it and get only new leads. |
Output example
A real row (Purity Coffee, found by "organic coffee"):
{"rowType": "store","name": "Purity Coffee","storeUrl": "https://puritycoffee.com","domain": "puritycoffee.com","myshopifyDomain": "purity-coffee.myshopify.com","shopId": "40613871783","description": "Shop Purity Coffee online today. Explore organic, specialty grade coffee that is purity tested, antioxidant rich and crafted for a cleaner cup at Purity Coffee.","emails": ["support@puritycoffee.com"],"phones": ["844-787-4892"],"contactPageUrl": "https://puritycoffee.com/pages/help-center","legalName": "Purity Coffee","address": "Purity Coffee Inc., 1010 East North Street, Suite B3, Greenville SC 29601, United States","vatNumber": null,"registrationNumber": null,"city": "Greenville","province": "South Carolina","country": "US","currency": "USD","socials": {"instagram": "https://www.instagram.com/purity_coffee","facebook": "https://www.facebook.com/mypuritycoffee","tiktok": "https://www.tiktok.com/@puritycoffee","youtube": "https://www.youtube.com/@puritycoffee5260","pinterest": null,"x": null,"linkedin": null},"productCount": 103,"collectionCount": 40,"productsSampled": 103,"newestProductAt": "2026-10-09T19:22:22.000Z","priceMin": 11,"priceMax": 192,"topProductTypes": ["Whole Bean Coffee","Single-Serve Coffee","Ground Coffee","Hidden","Coffee"],"theme": "Impulse","themeVersion": "7.4.0","apps": ["Consentmo","EcoCart","Google Tag Manager","Gorgias","Klaviyo","Okendo","Skio","Superfiliate"],"shopPayInstallments": true,"shipsToCountries": ["CA","US"],"websiteRead": true,"matchedProducts": [{"title": "FLOW: Original Medium Roast Whole Bean Coffee","url": "https://puritycoffee.com/products/original-roast-whole-bean-coffee","price": 29,"currency": "USD"},{"title": "PROTECT: Light-Medium Roast Whole Bean Coffee","url": "https://puritycoffee.com/products/purity-protect","price": 29,"currency": "USD"}],"foundBy": "organic coffee","scrapedAt": "2026-10-20T06:00:00.000Z"}
Store fields
| Field | Meaning |
|---|---|
rowType | store for a store lead (the free rows are described below). |
name, storeUrl, domain | The store and its primary address. |
myshopifyDomain, shopId | Its permanent .myshopify.com address and Shopify shop id. |
description | The store's own description as set in Shopify (null when it has none). |
emails | Public emails from its contact policy, homepage and contact page; the store's own domain first. Apps' and placeholder addresses are removed. |
phones | Phone numbers from its contact policy and tel: links. |
contactPageUrl | Its contact page, when it has one. |
legalName, address, vatNumber, registrationNumber | From Shopify's contact-information policy (required for stores selling into the EU), when the store filled it in. |
city, province, country, currency | The business location and currency set in Shopify. |
socials | Instagram, Facebook, TikTok, YouTube, Pinterest, X and LinkedIn profile links (null when not linked). |
productCount, collectionCount | Published products and collections. |
productsSampled, newestProductAt, priceMin, priceMax, topProductTypes | Stats of its newest products (up to 250): is it active, how pricey, what it sells. |
theme, themeVersion | Its Shopify theme (Dawn, Impulse, Prestige…). |
apps | Apps and pixels its homepage loads (Klaviyo, Judge.me, Recharge, Gorgias, Meta Pixel, Google Tag Manager…). |
shopPayInstallments, shipsToCountries | Whether it offers Shop Pay Installments, and the countries it ships to. |
websiteRead | false when the store's domain refused our visit (bot protection): contacts then come from its policy only. |
matchedProducts | Up to 3 of its products that matched your search, with price. |
foundBy | The search term that found it, or domain list. |
scrapedAt | When the run read it (UTC, ISO 8601). |
Free rows
rowType: "skipped"— a domain (or found store) not delivered, withreason:notShopify,closed,passwordProtectedorblocked(the site refused us; its.myshopify.comaddress often works) and a message.rowType: "search"— per search term: products scanned and available on Shop, stores found, how many were delivered, found by an earlier term, delivered in earlier runs, based in another country, or without an email.
Use the dataset views Store leads, Contacts and company, Skipped domains and Searches to see each kind.
Pricing
US$0.003 per store lead (US$3 per 1,000 stores), nothing else: no start fee. Skipped domains, stores without an email (with "Only stores with an email" on), stores based elsewhere and search summaries are free. Set a maximum cost per run and the Actor stops before reading a store it could not charge for.
Limits
- Shop returns at most ~500 products per search term, so one term gives roughly 100–150 stores; use several terms
(
coffee beans,espresso,cold brew…) for more. - Contacts are what stores publish: about 8 in 10 publish an email somewhere; phone numbers and addresses are rarer. Emails are not verified for delivery.
- A store behind bot protection on its own domain is still delivered from Shopify's side (location, policy contacts,
catalog), with
websiteRead: falseand no socials, theme or apps. - Stores are found through products listed on Shop; a store that does not list its products there is not found by search (give its domain instead).
Is it legal?
This Actor reads only public pages: Shop's catalog through the anonymous agent endpoint Shopify documents, and the pages every Shopify storefront serves to any visitor, at a gentle pace (one request at a time per site). It never signs in, never touches carts or checkout, and never bypasses any protection. Emails and phones are the business contacts stores publish. You are responsible for how you use them: follow the anti-spam and privacy rules that apply to you (CAN-SPAM, GDPR, CASL). This Actor is not affiliated with, endorsed or sponsored by Shopify. Read more in Apify's blog post on the legality of web scraping.
Feedback
Need a field or a filter that isn't here? Open an issue in the Issues tab — they are answered quickly.