Buying a list is fast. Building your own is cheaper at scale and gives you more control over data quality, segmentation, and freshness. If you need Shopify merchant contacts on an ongoing basis — whether for outreach, market research, or lead scoring — your own database is a long-term asset.
This guide covers the entire process: discovery, extraction, verification, storage, and maintenance. You can automate most of it with freely available tools and a small amount of technical setup.
Before you can extract contact information, you need to find Shopify stores. Here are the most reliable methods:
Shopify stores often reveal their platform through URL structures or page footers. Useful search queries:
site:myshopify.com — finds stores using Shopify's default domain"powered by shopify" "contact us" — stores with visible Shopify attribution"shopify" + "your niche" + "store" — niche-specific discoverysite:myshopify.com "@gmail.com" — stores with Gmail contact addressesUse Google's Custom Search JSON API to automate this at scale. Costs $5 per 1,000 queries after the free tier of 100 queries/day.
Many Shopify merchants advertise on Facebook and Instagram. Use Meta's Ad Library (adlibrary.meta.com) to search for e-commerce ads in your target region. Note the store URLs from ad landing pages.
Reddit and Facebook groups for dropshippers and e-commerce entrepreneurs are also rich sources. Store owners frequently share their URLs in these communities.
Shopify's app store reviews sometimes include store URLs or store names. Apps like Loox (photo reviews), Judge.me, and AliReviews have public review pages where merchants are visible.
Sites like MyStoreRepo, Storeleads, and Blazedirectories list Shopify stores with basic metadata. These are useful as starting points even if the data isn't always current.
The most reliable automated method. Apify's Shopify scrapers handle discovery and extraction in one step. Configure for language, currency, and email availability, then let it run.
Expected yield: For every 1,000 stores scraped, expect 300-500 with a published email address. Not all stores display their contact email publicly.
For more control, a Python script using requests, BeautifulSoup, and regex can extract emails from any webpage. The workflow:
Add random delays (3-8 seconds between requests) and rotating proxies for larger batches. Libraries like fake-useragent and requests-toolbelt help with this.
For small batches (under 200 stores), browser extensions are sufficient. Hunter.io's Chrome extension finds emails when you visit any store's website. Export results to CSV when done.
Raw extraction yields emails with 20-40% invalid rates. Verification is mandatory before any outreach.
For verification, use a bulk API like ZeroBounce or NeverBounce. Upload your CSV, get results in minutes. Typical costs: $3-8 per 1,000 emails.
After verification, you'll have three categories:
Beyond email addresses, additional data improves segmentation:
Enrichment isn't strictly necessary for cold email outreach, but it dramatically improves personalization quality and reply rates.
A simple spreadsheet works for lists under 10,000 contacts. For larger databases, use a proper database or CRM:
Key columns: email, first_name, store_name, store_url, niche, location, status (uncontacted/contacted/replied/closed), verification_date.
Databases decay. Plan for regular updates:
Build your own database if:
Buy a pre-built list if:
Many teams do both: buy a verified list to get started, then invest in building their own database once the outreach model is proven. The $29 entry point makes this low-risk to try.