Shopify Store B2B Leads Finder
Pricing
from $2.00 / 1,000 lead scrapeds
Shopify Store B2B Leads Finder
Find Shopify stores by niche keyword and extract B2B leads: emails, phones, addresses, owner names, social profiles, installed apps, product counts, and theme. Export as JSON, CSV, Excel.
Pricing
from $2.00 / 1,000 lead scrapeds
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Shopify Store B2B Leads Finder
Turn a list of Shopify store domains into qualified B2B leads — emails, phone numbers, addresses, owner names, social profiles, installed apps, product counts, and store metadata.
| Paste any list of store domains and get back verified Shopify stores enriched with contact details, 24 detectable apps, estimated catalogue size, wholesale and blog flags, and an auto-classified niche. |
| ParseBird Shopify Suite • Store discovery, lead enrichment, and product catalog tools | ||
|
Shopify Store Leads Scraper Discover stores by keyword |
Shopify Store B2B Leads Finder ➤ You are here |
Shopify Products Scraper Full product catalog |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Shopify Store B2B Leads Finder (parsebird/shopify-b2b-leads-finder) enriches Shopify store domains into B2B leads. Call via ApifyClient: client.actor("parsebird/shopify-b2b-leads-finder").call(run_input={"inputUrls": ["allbirds.com", "tentree.com"], "includeContactEnrichment": True}). Inputs: inputUrls (array of strings, REQUIRED — bare domains, full URLs, or .myshopify.com subdomains), includeContactEnrichment (bool, default true — visits contact/about pages for email/phone/address/owner), minProductCount (int, optional — drops stores with fewer products), maxStores (int 1-5000, default 100 — caps how many leads are returned), proxyConfiguration (object, default {"useApifyProxy": true}). Output fields per store: url, domain, storeName, contactEmail, phoneNumber, physicalAddress, ownerFounderName, socialLinks (instagram/facebook/twitter/tiktok/pinterest/linkedin/youtube), shopifyTheme, estimatedProductCount, reviewCount, storeNiche, metaDescription, hasBlog, hasWholesale, detectedApps, isShopify, scrapedAt. Every returned store is verified as Shopify; non-Shopify sites are dropped and never charged. Pricing is pay-per-event: $2.90/1,000 leads (Free), $2.70 (Bronze), $2.50 (Silver), $2.00 (Gold). Get API token: https://console.apify.com/account#/integrations
What does Shopify Store B2B Leads Finder do?
Shopify Store B2B Leads Finder turns a list of store domains into a qualified prospect list of Shopify merchants. Give it any set of domains and it confirms which ones actually run on Shopify, then visits each store to pull out the details a B2B seller needs. Every row is a verified Shopify store — non-Shopify sites are detected, reported in the log, and dropped before they reach your dataset.
- 📋 Bulk enrichment — Feed it a CSV export, a competitor list, or the output of a discovery tool. Up to 5,000 stores per run, deduplicated by domain.
- ✅ Shopify verification — Confirmed through storefront CDN paths, the
ShopifyJavaScript object, generator meta tags, and analytics signatures. Headless Shopify stores are detected too, not just standard themes. - 📧 Contact enrichment — Visits contact and about pages to find emails, phone numbers, postal addresses, and founder names, with placeholder and app-vendor addresses filtered out.
- 🧩 App detection — Identifies 24 common Shopify apps from page signatures, so you can target stores already paying for tooling.
- 📱 Social profiles — Instagram, Facebook, Twitter/X, TikTok, Pinterest, LinkedIn, and YouTube handles, with share-widget and Shopify-owned links excluded.
- 📦 Catalogue size — Estimated product count read from the store's sitemap, which works even on headless storefronts.
- 🏷️ Niche classification — Auto-sorts stores into 12 categories from the store name and description.
- 🤝 Wholesale and blog flags — Flags stores running a blog or publishing a wholesale, trade, or stockist page — a strong buying signal for B2B outreach.
- 🧹 Automatic deduplication —
store.com,www.store.com, and a full product URL all collapse to one lead.
What data can you extract from Shopify stores?
| Field | Type | Description |
|---|---|---|
| url | string | Store URL as reached |
| domain | string | Normalized domain, www removed |
| storeName | string | From og:site_name or the page title |
| contactEmail | string | Best merchant email found, role addresses preferred |
| phoneNumber | string | Phone from tel: links or contact page text |
| physicalAddress | string | Postal address from structured data or contact page |
| ownerFounderName | string | Founder or owner name when the about page states it |
| socialLinks | object | Instagram, Facebook, Twitter/X, TikTok, Pinterest, LinkedIn, YouTube |
| shopifyTheme | string | Theme name as the merchant named it |
| estimatedProductCount | number | Catalogue size estimated from the sitemap |
| reviewCount | number | Review count when the store publishes structured rating data |
| storeNiche | string | Auto-detected category from 12 niches |
| metaDescription | string | Store's SEO meta description |
| hasBlog | boolean | Store runs a Shopify blog |
| hasWholesale | boolean | Store has a wholesale, trade, or stockist page |
| detectedApps | array | Shopify apps identified in the page source |
| isShopify | boolean | Confirmed Shopify storefront — always true in results |
| scrapedAt | string | ISO 8601 timestamp |
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| inputUrls | array | Yes | — | Store domains or URLs to enrich |
| includeContactEnrichment | boolean | No | true | Visit contact and about pages for email, phone, address, owner |
| minProductCount | integer | No | — | Drop stores with fewer products than this |
| maxStores | integer | No | 100 | Cap on how many verified leads are returned (1–5,000) |
| proxyConfiguration | object | No | {"useApifyProxy": true} | Proxy used for store pages |
Input example:
{"inputUrls": ["https://allbirds.com", "https://tentree.com", "https://meundies.com"],"includeContactEnrichment": true,"minProductCount": 5}
How to find Shopify store leads
- Open the Actor — Go to Shopify Store B2B Leads Finder and click Try for free.
- Paste your store domains — One per row in Store URLs. Bare domains, full URLs, and
.myshopify.comsubdomains all work, and duplicates are merged automatically. - Keep contact enrichment on — Leave Visit contact and about pages enabled to collect emails, phones, addresses, and owner names. Turn it off for a faster homepage-only pass.
- Filter out hobby stores — Set Minimum product count to something like
20to skip abandoned and test stores. - Click Start — Each domain is verified as Shopify, then enriched. Leads stream into the dataset as they complete.
- Check the log for skips — Non-Shopify sites and stores below your product threshold are listed explicitly, so you know why a domain is missing.
- Export — Download as JSON, CSV, Excel, XML, or HTML, or pull results through the Apify API.
Need to find stores in the first place? Run Shopify Store Leads Scraper to discover them by keyword or category, then feed its domains into this actor.
Output example
{"url": "https://candlebliss.com","domain": "candlebliss.com","storeName": "Candle Bliss","contactEmail": "hello@candlebliss.com","phoneNumber": "+1 (512) 847-3920","physicalAddress": "4821 Burnet Rd, Austin, TX, 78756","ownerFounderName": "Jessica Hartwell","socialLinks": {"instagram": "candlebliss","facebook": "candleblissco","twitter": null,"tiktok": "candlebliss","pinterest": null,"linkedin": null,"youtube": null},"shopifyTheme": "Dawn","estimatedProductCount": 112,"reviewCount": null,"storeNiche": "Home & Garden","metaDescription": "Hand-poured soy candles. Free shipping on orders over $50.","hasBlog": true,"hasWholesale": true,"detectedApps": ["Klaviyo", "Judge.me", "Afterpay"],"isShopify": true,"scrapedAt": "2026-08-05T14:29:32.749580+00:00"}
Download results in JSON, CSV, Excel, XML, or HTML from the Apify dataset.
Detected apps
The actor identifies these Shopify apps from page-source signatures:
Klaviyo · ReCharge · Gorgias · Yotpo · Okendo · LoyaltyLion · Privy · SMSBump · Postscript · Attentive · Tidio · Intercom · Hotjar · Omnisend · Judge.me · Stamped.io · Loox · Afterpay · Klarna · ShipStation · Shogun · PageFly · GemPages · Bold Commerce
Apps only appear in detectedApps when the storefront actually loads their scripts, so an empty array means no signature was present — commonly the case on small stores and headless builds.
Use cases
Shopify agency prospecting — Qualify a list of stores before pitching design, CRO, or development work. Use detectedApps to spot stores already investing in tooling, and shopifyTheme to find those still on a default theme.
App and SaaS sales — Target merchants by the apps they run. Sell a reviews app to stores without Judge.me or Okendo, or a retention tool to stores already paying for Klaviyo.
Wholesale and supplier outreach — Filter on hasWholesale to find merchants who already sell B2B, then contact them through the address and phone number on file.
Competitive research — Profile a set of competitors: catalogue size, apps they pay for, theme, and whether they sell wholesale.
Influencer and partnership sourcing — Use socialLinks to find merchants with an existing audience for co-marketing.
CRM enrichment — Feed a list of known store domains through Store URLs to append emails, apps, catalogue size, and social profiles to records you already hold.
How it works
- Normalization and dedupe — Every entry is reduced to a bare domain: schemes, credentials, ports, paths, and query strings are stripped,
wwwis removed, and internationalized domains are converted to punycode. Duplicates collapse before any request is made. - Homepage fetch — Each store is fetched, falling back between the
wwwand non-wwwhost so a storefront that answers on only one still resolves. - Shopify verification — The page is checked for storefront CDN paths, the
ShopifyJavaScript object, generator meta tags, and analytics signatures. Anything unverified is dropped and never charged. - Sitemap analysis — The sitemap index yields catalogue size, blog presence, and wholesale or stockist pages. This beats scanning the homepage, because many stores run a blog or wholesale page without linking it from the front page.
- Contact enrichment — Contact and about pages are visited in turn until an email, phone, address, and owner name are found, stopping early once the record is complete.
- Delivery — Verified leads are pushed to the dataset as they complete, so partial results survive an aborted run. Stores are processed five at a time.
How much does it cost to find Shopify store leads?
Pay-per-event pricing — you pay only for verified Shopify leads delivered, never for candidates that fail verification or for compute time.
| Plan | Price per lead | Price per 1,000 leads |
|---|---|---|
| Free | $0.0029 | $2.90 |
| Bronze | $0.0027 | $2.70 |
| Silver | $0.0025 | $2.50 |
| Gold | $0.0020 | $2.00 |
Example: 500 verified store leads cost $1.45 on the Free plan and $1.00 on Gold.
New users get a free trial with platform credits, enough to pull your first few hundred leads before paying. See the Pricing tab for current rates.
Programmatic API usage
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run_input = {"inputUrls": ["allbirds.com", "tentree.com", "deathwishcoffee.com"],"includeContactEnrichment": True,"minProductCount": 20,}run = client.actor("parsebird/shopify-b2b-leads-finder").call(run_input=run_input)for item in client.dataset(run["defaultDatasetId"]).iterate_items():if item["contactEmail"]:print(f"{item['storeName']} <{item['contactEmail']}> "f"{item['storeNiche']} — {item['estimatedProductCount']} products "f"— apps: {', '.join(item['detectedApps']) or 'none'}")
JavaScript
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: "<YOUR_API_TOKEN>" });const run = await client.actor("parsebird/shopify-b2b-leads-finder").call({inputUrls: ["allbirds.com", "tentree.com", "deathwishcoffee.com"],includeContactEnrichment: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.filter((store) => store.hasWholesale && store.contactEmail).forEach((store) => {console.log(`${store.storeName} — ${store.contactEmail} — ${store.domain}`);});
Get your API token at Apify Console → Integrations, and see the Apify API reference for all endpoints.
Use Apify scheduling to refresh lead lists weekly, and connect integrations to push new leads into Google Sheets, Slack, HubSpot, Zapier, Make, or your CRM.
Is it legal to scrape Shopify store data?
Shopify Store B2B Leads Finder collects publicly available business information that merchants publish on their own storefronts — company names, business contact details, social profiles, and catalogue metadata. It does not log in, bypass authentication, or touch customer data or merchant admin systems.
Business contact data is treated differently from personal data in most jurisdictions, but the distinction is not absolute: a sole trader's email can still be personal data under the GDPR, and B2B outreach is separately governed by anti-spam rules such as CAN-SPAM, CASL, and the ePrivacy Directive. If you email the leads this actor returns, make sure you have a lawful basis, identify yourself, and honour opt-outs.
Review Shopify's terms of service and see Apify's guide on the legality of web scraping for more background.
Related Actors
More ParseBird tools on the Apify Store:
- Shopify Products Scraper — Pull the full product catalogue, prices, and stock of any store you find here
- Shopify Store Leads Scraper — Discover Shopify stores through the Shop marketplace, with ratings and review counts
- Website Contact Finder — Extract emails, phones, and socials from any website, Shopify or not
- Data Deduplicator — Merge and dedupe lead lists from multiple runs
- Data Cleaner — Normalize lead data before importing into a CRM
FAQ
Where do I get the store domains to feed in? Any list works — a CSV export, a competitor spreadsheet, a CRM dump, or the output of a discovery tool. Shopify Store Leads Scraper finds Shopify stores by keyword or category, and its domains drop straight into this actor.
Why do some stores return no email?
Small stores, especially those still on a default .myshopify.com domain, often publish no contact page at all. Set minProductCount to around 20 to bias toward established stores, which have far better contact coverage. Turning off contact enrichment also removes emails entirely, by design.
What happens to domains that are not Shopify? They are verified, skipped, logged with the reason, and never charged. The end-of-run summary counts how many were dropped as non-Shopify, how many fell below your product threshold, and how many were unreachable.
Are all returned stores really on Shopify?
Yes. isShopify is verified from the live page before a store is added, and unverified sites are dropped without being charged. Headless Shopify storefronts — custom frontends backed by Shopify — are detected as well.
Why is ownerFounderName usually empty?
It is only filled when an about page states the founder in a recognisable phrasing such as "founded by Jane Doe". Most stores never name a person, so the field stays null rather than guessing.
Why does shopifyTheme show something odd like "Copy of production"?
That is the theme name the merchant chose in their admin. Stores routinely duplicate and rename themes, so real values are often messier than catalogue names like "Dawn". The field reports what the store actually publishes.
Is estimatedProductCount exact?
It is an estimate. Counts come from the store's product sitemaps; when a store has more sitemap files than the actor samples, the total is extrapolated. For an exact catalogue, run Shopify Products Scraper against the domain.
Can I turn off contact enrichment? Yes. Switch off Visit contact and about pages for a faster run that uses homepage data only. You still get store name, apps, socials, theme, niche, product count, and the blog and wholesale flags.
Do I need a proxy? Apify Proxy is on by default because storefronts often block datacenter traffic. If a specific store still refuses to load, switch the proxy to the Residential group in the Advanced section.
Are duplicates removed?
Yes. Leads are deduplicated by normalized domain, so store.com, www.store.com, and a deep product URL all resolve to a single row.
Can I schedule recurring runs? Yes. Use Apify schedules to re-enrich your store list on a cadence and catch newly added apps, wholesale pages, or contact details.
Something looks wrong — where do I report it? Open a report on the actor's Issues tab in Apify Console with the domain you used and the log output. Feedback and feature requests are welcome.