Shopify Store Lead Extractor
Pricing
from $3.00 / 1,000 shopify store leads
Shopify Store Lead Extractor
Extract verified contact details, business intelligence, and tech stack data from Shopify stores for B2B lead generation and competitive analysis.
Pricing
from $3.00 / 1,000 shopify store leads
Rating
0.0
(0)
Developer
Virtual Footprint LLC
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Turn a list of Shopify store URLs into sales-ready merchant leads: MX/DNS-verified owner emails, phones, social profiles, the store's Shopify apps, payment methods, product categories, industry, tech stack, and an A–D lead score.
No third-party API keys and no residential proxy required — the Actor reads each store's own public storefront (home page + a few likely contact/about pages on the same host) directly, so it sidesteps the proxy limits and cost that constrain search/map scrapers.
Input
{"urls": ["allbirds.com", "gymshark.com", "mvmt.com"],"verifyEmails": true,"concurrency": 5}
| Field | Type | Default | Description |
|---|---|---|---|
urls | array (required) | — | Shopify store URLs or bare domains, 1–1000. One record returned per input. |
verifyEmails | boolean | true | Validate the best-matched email's domain against live MX/DNS records. |
concurrency | integer | 5 | Stores processed in parallel (1–10). |
proxyConfiguration | object | none | Optional — only needed if you hit rate limits; the Actor works without a proxy. |
Output
One record per input URL, pushed to the dataset:
{"inputUrl": "gymshark.com","resolvedUrl": "https://gymshark.com","domain": "gymshark.com","isShopify": true,"storeName": null,"storeDescription": null,"productCategories": [],"industry": null,"shopifyApps": ["Intercom", "Zendesk"],"paymentMethods": ["Apple Pay", "PayPal"],"techStack": ["Intercom", "Nginx", "React", "Shopify"],"emails": ["support@gymshark.com", "press@gymshark.com", "legal@intercom.io"],"emailVerified": true,"phones": [],"socials": {"instagram": "https://www.instagram.com/gymshark","twitter": "https://www.twitter.com/gymshark","tiktok": "https://www.tiktok.com/@gymshark","facebook": "https://www.facebook.com/gymshark","youtube": "https://www.youtube.com/gymshark"},"pagesScanned": 3,"leadScore": "A","hasContact": true}
storeName/storeDescription/productCategories/industrycome from the store's<title>, meta description, and/collections/links — some themes (like Gymshark's) don't expose these, so they'renull/empty rather than guessed.emailsare ranked with the store's own domain first, then filtered against a placeholder/asset/support-widget blocklist and deduplicated.phonesmust match a strict NANP pattern (rejects digit-soup like tracking IDs); dedup by digits.hasContactistruewhen at least one ofemails,phones, orsocialsis non-empty — this drives billing (see Pricing).
Real example (live run, 2026-07-10)
Input: ["gymshark.com", "allbirds.com", "mvmt.com"], verifyEmails: true, concurrency: 3
Result: 3/3 stores returned data in 9.8s. All 3 returned a verified email; Allbirds also returned a phone. Gymshark's title/meta/categories were empty (blocked by theme markup) — flagged transparently as null, not guessed.
| Store | isShopify | Emails | Phone | Tech stack | Lead score |
|---|---|---|---|---|---|
| gymshark.com | true | support@gymshark.com, press@gymshark.com, legal@intercom.io | — | Intercom, Nginx, React, Shopify | A |
| allbirds.com | true | help@allbirds.com, privacy@allbirds.com, bulkorders@allbirds.com, legal@allbirds.com | +1-888-963-8944 | Cloudflare, Google Tag Manager, Shopify | A |
| mvmt.com | false | support@mvmt.com | — | Cloudflare, Google Tag Manager | A |
Note: mvmt.com returned isShopify: false because its current storefront doesn't expose Shopify-specific HTML/CDN signatures at crawl time — the Actor still extracts contact and tech data for any storefront, Shopify or not, so no lead is lost.
Pricing (pay-per-event — you pay only for successful results)
| Event | Price | Charged when |
|---|---|---|
store_lead (primary) | $0.008 | Store returns at least one real contact signal (email, phone, or social) plus storefront intelligence |
email_found | $0.003 | Store yields at least one MX/DNS-validated business email |
tech_stack_found | $0.001 | Store's tech stack/apps are detected |
| Actor start | $0.0001 | One-time, per run |
No charge for stores with no contact signal at all. Zero upstream compose cost (the Actor fetches each target's own site directly) — margin-positive at these prices.
Troubleshooting
isShopify: falsefor a store you know runs Shopify: some themes hide the usualcdn.shopify.com/myshopify.commarkers from initial HTML. Contact/tech data is still extracted normally.- Missing
storeName/productCategories: the store's title tag, meta description, or/collections/links weren't present in the fetched pages — the Actor never fabricates these, it returnsnull/[]. - No emails or phones found: the store may not publish contact info on its home/about/contact pages, or blocks non-browser requests. Try
proxyConfigurationif you suspect rate limiting. - Slow runs on large lists: raise
concurrency(max 10); each store takes ~2–4s.
Use cases
B2B sales prospecting into e-commerce brands, competitor tech-stack research, partnership/vendor outreach, and building targeted Shopify-merchant lead lists for agencies.