Shopify Store Leads Scraper
Pricing
from $0.47 / 1,000 shopify lead saveds
Shopify Store Leads Scraper
Discover Shopify merchant domains and enrich public storefronts with emails, phones, social links, popularity signals, and metadata for ecommerce lead generation.
Pricing
from $0.47 / 1,000 shopify lead saveds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Find Shopify merchant leads from public MyIP.ms data and enrich each storefront with public contact signals.
What does Shopify Store Leads Scraper do?
Shopify Store Leads Scraper discovers websites hosted by Shopify and turns them into a clean lead dataset. It starts from public MyIP.ms Shopify owner pages and extracts merchant domains, hosting metadata, popularity signals, emails, phone numbers, social profiles, and storefront metadata.
Use it when you need a repeatable way to build ecommerce prospect lists without copying tables by hand.
Who is it for? Shopify lead generation teams
- 🧲 B2B sales teams looking for ecommerce merchants that may need apps, services, logistics, ads, or support.
- 🛠️ Shopify app founders searching for public storefronts to qualify for outbound campaigns.
- 📣 Marketing agencies building niche lists of direct-to-consumer brands.
- 📊 Market researchers studying Shopify adoption, merchant popularity, and store metadata.
- 🤝 Partnership teams finding stores with public social and contact information.
Why use this actor?
- ✅ Public data source: MyIP.ms Shopify owner pages are visible without an account.
- ✅ HTTP-first implementation: no heavyweight browser is needed for discovery.
- ✅ Lead enrichment: visits public storefront, contact, and about pages.
- ✅ Skips failures per domain: one blocked store does not stop the full run.
- ✅ Clear provenance: every row includes the MyIP.ms source URL and source rank.
What Shopify lead data can it extract?
| Field | Description |
|---|---|
domain | Merchant domain from MyIP.ms |
url | Normalized storefront URL |
emails | Public email addresses found in storefront HTML |
phones | Public phone-like contact numbers found in page text |
socialLinks | Facebook, Instagram, LinkedIn, Pinterest, TikTok, Twitter/X, and YouTube links |
title | Storefront page title |
description | Storefront meta description |
ipAddress | Website IP from MyIP.ms |
hostingOwner | Hosting company / IP owner |
hostingCountry | Hosting country |
hostingCity | Hosting city, when MyIP.ms provides it |
worldSiteRank | MyIP.ms world site popularity rank |
estimatedVisitorsPerDay | MyIP.ms visitors-per-day estimate |
recordUpdatedAt | MyIP.ms record update time |
shopifyDetected | Whether Shopify markers are found in public HTML |
enrichmentStatus | success, partial, failed, or skipped |
How much does it cost to scrape Shopify store leads?
This actor uses pay-per-event pricing. The initial lead event is designed around the ecommerce lead-generation baseline: about $0.50 per 1,000 saved Shopify leads before tier discounts. A tiny start event is charged once per run.
You control cost with:
maxItemsfor the number of leads saved.enrichStorefrontsto enable or skip storefront contact discovery.maxEnrichmentPagesPerStoreto limit contact/about page attempts.
How to scrape Shopify store leads
- Open the actor on Apify.
- Keep the default MyIP.ms source URL or choose a starting page.
- Set
maxItemsto a small number for your first run. - Leave
enrichStorefrontsenabled if you want emails, phones, and social links. - Run the actor.
- Export the dataset as JSON, CSV, Excel, XML, or HTML.
Input options
startPage
The first MyIP.ms Shopify owner page number to crawl when no custom start URLs are supplied. Page 1 contains the highest-ranked Shopify-hosted domains.
maxPages
How many consecutive source pages to try. Keep this low for quick tests.
maxItems
The maximum number of Shopify lead rows to save.
startUrls
Optional direct MyIP.ms URLs. Example:
[{ "url": "https://myip.ms/browse/sites/1/own/376714" }]
enrichStorefronts
When enabled, the actor visits public storefront pages to find emails, phones, social links, titles, descriptions, and Shopify markers.
maxEnrichmentPagesPerStore
Controls how many pages are tried per store. The actor checks common home, contact, and about URLs.
requestTimeoutSecs
Maximum request time for each page before the actor skips that page.
Example input
{"startUrls": [{ "url": "https://myip.ms/browse/sites/1/own/376714" }],"maxItems": 10,"enrichStorefronts": true,"maxEnrichmentPagesPerStore": 3,"requestTimeoutSecs": 20}
Example output
{"domain": "example-shop.com","url": "https://example-shop.com","emails": ["support@example-shop.com"],"phones": ["+1 555-123-4567"],"socialLinks": {"instagram": "https://www.instagram.com/example_shop"},"title": "Example Shop","description": "Premium ecommerce products from Example Shop.","hostingOwner": "Shopify, Inc","hostingCountry": "Canada","worldSiteRank": 12345,"estimatedVisitorsPerDay": 1200,"shopifyDetected": true,"enrichmentStatus": "success"}
Tips for better Shopify lead lists
- Start with 10-25 leads to inspect output quality.
- Increase
maxItemsafter you confirm the fields fit your workflow. - Disable enrichment when you only need domains and MyIP.ms popularity data.
- Increase enrichment pages when contact information is more important than speed.
- Filter exported CSV rows by non-empty
emailsor social links for outreach lists.
Integrations
Use this scraper in common sales and research workflows:
- Export CSV to a CRM such as HubSpot, Salesforce, or Pipedrive.
- Send email-rich rows to an enrichment or verification tool.
- Push social-profile rows into creator or partnership research workflows.
- Combine domains with Shopify app-install detection actors.
- Schedule recurring Apify runs and connect the dataset to Zapier or Make.
API usage
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/shopify-store-leads-scraper').call({startUrls: [{ url: 'https://myip.ms/browse/sites/1/own/376714' }],maxItems: 25,enrichStorefronts: true});console.log(run.defaultDatasetId);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/shopify-store-leads-scraper').call(run_input={'startUrls': [{'url': 'https://myip.ms/browse/sites/1/own/376714'}],'maxItems': 25,'enrichStorefronts': True,})print(run['defaultDatasetId'])
cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~shopify-store-leads-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"maxItems":25,"enrichStorefronts":true}'
MCP integration
You can use this actor from Apify MCP with Claude Code or Claude Desktop.
MCP URL:
https://mcp.apify.com/?tools=automation-lab/shopify-store-leads-scraper
Claude Code setup:
$claude mcp add apify https://mcp.apify.com/?tools=automation-lab/shopify-store-leads-scraper
Claude Desktop JSON config:
{"mcpServers": {"apify-shopify-leads": {"url": "https://mcp.apify.com/?tools=automation-lab/shopify-store-leads-scraper"}}}
Example prompts:
- "Find 25 Shopify merchant leads and summarize which have public emails."
- "Run Shopify Store Leads Scraper with enrichment disabled and export domains only."
- "Create a prospecting table from Shopify leads with Instagram profiles."
Data quality notes
The actor extracts only public web data.
Storefront contact information may be absent, hidden behind JavaScript, or intentionally obfuscated.
Rows with enrichmentStatus set to failed still include the MyIP.ms domain and hosting fields.
Limitations
- MyIP.ms pagination and availability can change.
- Some storefronts block automated HTTP requests.
- Phone extraction is conservative and may miss unusual formats.
- The actor does not access Shopify admin, customer accounts, private APIs, or paywalled data.
FAQ and troubleshooting
Why did a lead have no email?
Many stores do not publish an email address on the pages checked by the actor.
Try increasing maxEnrichmentPagesPerStore, or use social/profile fields for manual qualification.
Why did enrichment fail for a domain?
The store may be offline, redirecting, blocking automated requests, or using a non-standard contact page.
Check the error field for details.
Why are there fewer rows than requested?
The actor stops when it exhausts parsed source rows or reaches maxItems.
If you use a custom source URL, confirm that the page contains a MyIP.ms sites table.
Legality and ethical use
This actor collects public information from public websites. You are responsible for using the data lawfully, respecting privacy rules, following anti-spam regulations, and honoring website terms. Do not use scraped contact data for abusive, deceptive, or unlawful outreach.
Related scrapers by automation-lab
- https://apify.com/automation-lab/shopify-scraper
- https://apify.com/automation-lab/myip-ms-scraper
- https://apify.com/automation-lab/ecommerce-leads-scraper
- https://apify.com/automation-lab/domain-email-scraper
Changelog
0.1
- Initial actor for Shopify merchant discovery and public storefront contact enrichment.
Support
If you need a field that is visible on public storefront pages but not currently extracted, open an Apify issue with a sample domain and the expected field.