Shopify Email Scraper (Cheap)
Pricing
from $0.99 / 1,000 results
Shopify Email Scraper (Cheap)
Shopify website scraper that searches two store databases and returns email and company contact data, filtered by country, ZIP code, employee count, and revenue for Shopify merchant prospecting.
Pricing
from $0.99 / 1,000 results
Rating
0.0
(0)
Developer
Data API
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Shopify Store Email Scraper

Building a sales list of Shopify stores by hand means opening hundreds of storefronts, hunting for a contact email, and copying revenue and headcount guesses into a spreadsheet. This scraper skips all of that. Tell it the kind of store you want by keyword, country, postal code, team size, or revenue band, and it returns clean rows with the store name, contact email, phone, website, location, and revenue. Pull a short test list or a few thousand records, then export the whole thing as JSON, CSV, or Excel.
What you get
Every store comes back as one tidy row, and the columns stay the same from the first record to the last, so a missing phone or city shows up as an empty value rather than shifting your data sideways. Each row carries:
- Contact details —
storeName,contactEmail,contactPhone,storeUrl - Location —
cityName,regionName,postalCode,countryCode - Company size —
staffCount,annualRevenue
Quick start
- Press Try for free to open the input form.
- Add a few words to Store name or keyword search (for example
coffeeorskincare), or leave it empty to match every store. - Optionally narrow things down with country, postal code, headcount, or revenue filters.
- Set How many records to return, press Start, and download the results as JSON, CSV, or Excel once the run finishes.

Use cases
- B2B outreach — pull a list of Shopify merchants that fit your ideal customer and email or call them straight away
- Agency lead generation — surface stores that could use design, SEO, fulfilment, or paid-ads help
- Market sizing — count and compare stores across countries, postal areas, and revenue bands
- Partner sourcing — track down wholesale, dropship, or affiliate prospects in a niche you choose
- Competitor mapping — see which stores sit near your own revenue and headcount range
- CRM enrichment — top up existing records with fresh emails, phones, and revenue figures
Input
Every field is optional. Leave them all blank to return stores in default order up to your resultsLimit.
| Field | Type | Required | Description |
|---|---|---|---|
storeKeywords | array of strings | No | Words to match inside store names. Case-insensitive partial match; a store is kept if it matches any term. |
countryNames | array of strings | No | Full country names to include (e.g. Germany, Australia). A store is kept if it sits in any listed country. |
postalCodes | array of strings | No | Postal or ZIP codes to include. A store is kept if it matches any code supplied. |
minStaffCount | integer | No | Lower bound on team size. Sizes round to bands: 1, 10, 100, 1000, 10000, 100000. |
maxStaffCount | integer | No | Upper bound on team size. |
minAnnualRevenue | number | No | Lowest yearly revenue in USD to include. |
maxAnnualRevenue | number | No | Highest yearly revenue in USD to include. |
resultsLimit | integer | No | How many rows to return across both databases. Default 50. |
sortField | string | No | Column to order by: Company, Country, Employees, Sales Revenue USD, or Zip. Default unsorted. |
sortDirection | string | No | Order direction, asc or desc. Applies only when sortField is set. Default asc. |
Example input
{"storeKeywords": ["skincare", "coffee"],"countryNames": ["Germany", "Australia"],"postalCodes": [],"minStaffCount": 5,"maxStaffCount": 250,"minAnnualRevenue": 250000,"maxAnnualRevenue": 10000000,"resultsLimit": 200,"sortField": "Sales Revenue USD","sortDirection": "desc"}
Output
Each row is one Shopify store with its contact details, location, and size. Results export as JSON, CSV, or Excel.
Example output
{"storeName": "Northwind Coffee Roasters","contactEmail": "hello@northwindroasters.com","storeUrl": "https://northwindroasters.com","countryCode": "DE","postalCode": "10115","staffCount": 10,"annualRevenue": 1850000,"contactPhone": "+49 30 5551234","cityName": "Berlin","regionName": "Berlin"}
Output fields
| Field | Type | Description |
|---|---|---|
storeName | string | Name of the store or company |
contactEmail | string | Email address listed for reaching the store |
storeUrl | string | Web address of the Shopify storefront |
countryCode | string | Two-letter ISO country code such as US, GB, CA |
postalCode | string | Postal or ZIP code on file |
staffCount | integer | Rough team size, rounded into bands: 1, 10, 100, 1000, 10000, 100000 |
annualRevenue | number | Yearly sales figure in US dollars |
contactPhone | string | Phone number on file, when published |
cityName | string | City the store operates from, when known |
regionName | string | State, province, or region, when known |
Tips for best results
- Start with a small
resultsLimit. Run 20 to 50 rows first to confirm the columns fit your pipeline, then raise the cap for the full pull. - Combine filters to sharpen the list. Pairing a keyword with a country or revenue band gives a tighter, more useful set than any single filter alone.
- Match country names to their full form. Use
United StatesorUnited Kingdomrather than abbreviations so the country lookup resolves cleanly. - Empty fields are normal. Not every store publishes a phone, city, or region, so those columns can be blank even on a good match.
- Got zero rows? The run log points to which filter is too tight. Loosen the headcount or revenue range, or check the spelling of your keywords and countries.
How can I use Shopify store data?
How can I use the Shopify Store Email Scraper to build a B2B prospect list?
Set a keyword that fits your niche, add the countries you sell into, and set a revenue band that matches your ideal customer. Each row comes back with storeName, contactEmail, contactPhone, and storeUrl, so you can drop the export straight into your outreach tool and start contacting merchants the same day.
How can I find Shopify store emails by country or postal code?
Fill in countryNames with the markets you want, or postalCodes to zoom into a city or region. The scraper keeps any store that matches and returns its contact email alongside its location, which is handy for local campaigns or territory planning for a sales team.
How can I enrich my CRM with Shopify store revenue and size data?
Search by keyword or location, then read the staffCount and annualRevenue columns on every row. Matching those figures back to your existing accounts tells you which stores fit your target profile, so you can prioritise the ones worth a real conversation.
How can I research a Shopify niche or compare competitors?
Run a keyword search with no revenue filter to capture the whole field, then sort by Sales Revenue USD or headcount to see how stores stack up. Counting rows by country or postal code gives you a quick read on where a niche is concentrated.
Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses or private contact information. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
Support
Questions, feature requests, or a field you'd like added? Reach out at data.apify@proton.me and we'll get back to you.