Shopify Merchant Scraper
Pricing
from $3.99 / 1,000 results
Shopify Merchant Scraper
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
ScraperForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
๐๏ธ Shopify Merchant Scraper โ Emails, Phones, Socials & Product Counts
Turn any list of Shopify storefronts into a clean, ready-to-import B2B lead sheet. Drop in store URLs, hit Start, and get back one polished row per store containing contact email, phone, social profiles, product count and currency.
Built for agencies, dropshippers, SaaS sales teams and competitor researchers who need real merchant contact data without paying for an enrichment platform.
โจ Why this scraper?
| โญ Feature | What you get |
|---|---|
| ๐ง Real contact emails | Mined from mailto: links and the entire contact-page surface |
| ๐ Real phone numbers | Two-tier extraction โ tel: hrefs first, validated free-text fallback |
| ๐ Social profiles | Facebook, Instagram, Twitter/X auto-detected |
| ๐ฆ Product count | Sourced directly from each store's /products.json |
| ๐ฑ Currency | Sourced from /meta.json so you know which markets the store sells in |
| ๐ก๏ธ Smart proxy ladder | Direct โ Datacenter โ Residential, escalates only when blocked |
| โก Async concurrency | Configurable parallelism โ scale from 1 lead to thousands |
| ๐พ Live dataset writes | Each lead is saved the moment it's ready, so crashes never wipe your run |
๐งพ Input
| Field | Type | Required | Description |
|---|---|---|---|
startUrls | array | โ | One or more Shopify storefront URLs |
maxItems | integer | โ | Hard cap on stores to process (default 100) |
concurrency | integer | โ | Parallel store workers (default 10, max 50) |
requestDelay | number | โ | Polite delay in seconds between requests within one store |
proxyConfiguration | object | โ | Default: no proxy. Falls back to datacenter, then residential when needed |
๐ Example input
{"startUrls": [{ "url": "https://kyliecosmetics.com/" },{ "url": "https://www.allbirds.com/" }],"maxItems": 100,"concurrency": 10,"requestDelay": 0.5,"proxyConfiguration": { "useApifyProxy": false }}
๐ค Output
One row per storefront, ready to export to JSON / CSV / XLSX from the Output tab.
{"storeName": "Kylie Cosmetics by Kylie Jenner | Kylie Jenner Fragrances | Kylie Skin","domain": "kyliecosmetics.com","email": "customerservice@kyliecosmetics.com","phone": "1-877-916-6128","facebook": "https://www.facebook.com/KylieCosmetics/","instagram": "https://www.instagram.com/kyliecosmetics/","twitter": "https://twitter.com/kyliecosmetics","productCount": 250,"currency": "USD","url": "https://kyliecosmetics.com/","scrapedAt": "2026-05-19T10:03:57.462Z"}
| Field | Description |
|---|---|
storeName | Title of the storefront's homepage |
domain | Apex domain of the store |
email | First validated contact email |
phone | First validated contact phone |
facebook / instagram / twitter | Linked social profiles |
productCount | Number of public products in /products.json |
currency | Default selling currency from /meta.json |
url | Original input URL |
scrapedAt | UTC ISO-8601 timestamp of the scrape |
๐ How to Use (Apify Console)
- Log in at https://console.apify.com โ Actors.
- Open Shopify Merchant Scraper.
- Paste your Shopify URLs into ๐ Shopify Store URLs (one per line, or upload a list).
- (Optional) tweak ๐ฆ Max stores, โก Concurrent stores, โฑ๏ธ Polite delay.
- Leave ๐ก๏ธ Proxy configuration on default โ the actor will escalate automatically only if a store blocks the request.
- Click Start โถ and watch leads land in the Output tab in real time.
- Export to JSON, CSV, XLSX or pipe via the API into your CRM.
๐ค Use via API
curl -X POST "https://api.apify.com/v2/acts/<ACTOR_ID>/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"startUrls": [{ "url": "https://kyliecosmetics.com/" }],"maxItems": 50}'
The actor also runs from Make, n8n, Zapier and any MCP-aware client out of the box.
๐ก๏ธ Smart Proxy Ladder
The scraper is polite by default โ it goes direct first so you don't burn proxy units on stores that don't need them. If a store responds with a block (403, 406, 429, 503, etc.), the actor automatically:
- ๐ช Escalates to a datacenter proxy.
- ๐ช Escalates to a residential proxy if datacenter is still blocked.
- ๐ Retries the residential request up to 3 times with exponential backoff.
- ๐ Sticks with the residential proxy for the rest of the run so you never bounce between rungs.
Every escalation is logged with a clear emoji-tagged line so you can see exactly when and why a fallback occurred.
๐ฐ Pricing
This actor uses the Pay-Per-Event model:
| Event | What it bills for |
|---|---|
apify-actor-start | Run startup (synthetic, set in Console) |
row_result | One charge per merchant row written to the dataset |
You only pay for leads you actually receive. There are no monthly fees โ scale up or down at will. The actor exits cleanly when your spending cap is reached.
๐ง Best Use Cases
- ๐ฏ B2B prospecting โ feed merchant emails straight into outreach tools
- ๐ Dropshipping research โ find what brands sell and at what scale
- ๐ต๏ธ Competitor analysis โ sweep an entire niche in minutes
- ๐ Market sizing โ count active product catalogues per currency / market
- ๐ค Influencer outreach โ pair social profiles with contact emails
โ Frequently Asked Questions
Does it work on every Shopify store?
Any storefront that exposes the standard /products.json and a public contact page works out of the box. Headless / password-protected stores will return an empty row.
What if a store is behind Cloudflare or aggressive anti-bot?
The proxy ladder kicks in automatically. You'll see ๐ก๏ธ Proxy escalation in the logs the moment a block is detected.
Are emails / phones always present? Only if the merchant publishes them. The scraper never invents data โ empty fields mean the store didn't disclose it, not that we missed it.
Can I scrape thousands of stores? Yes. Raise concurrency and maxItems, and the actor's autoscaling + live dataset writes will keep up safely.
Is this legal? The scraper only collects publicly available data from store homepages and public JSON endpoints. You are responsible for compliance with GDPR/CCPA/anti-spam laws and each store's ToS when you use the output.
๐ Support & Feedback
Spot a bug, need a custom field, or want bulk pricing? Open an issue on the actor page or send a message via the Apify Console. We respond fast.
๐๏ธ Happy scraping โ turn the entire Shopify ecosystem into your next pipeline.