Shopify Store Leads - Emails, Socials & Tech Stack
Pricing
$4.50 / 1,000 shopify store leads
Shopify Store Leads - Emails, Socials & Tech Stack
Before anything else a domain here gets checked for whether it really runs Shopify. Confirmed stores return public emails, phones, social profiles, currency, country, theme and technologies. Misses cost nothing. $4.50 per 1,000 confirmed stores, no run-start fee.
Pricing
$4.50 / 1,000 shopify store leads
Rating
0.0
(0)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Shopify Store Leads
Feed it a list of domains. For each one it works out whether the site actually runs Shopify, and if it does, reads the public lead data off it. That's emails, phone numbers and social profiles on the contact side, plus the store's currency and country, the theme it's running, the third-party scripts it loads, a sample of the catalogue, and the contact and about page URLs it found.
Domains that turn out not to be Shopify come back as an uncharged diagnostic row. You can throw a messy list at it and only pay for the hits.
$4.50 per 1,000 confirmed stores ($0.0045 each), with no run-start fee.
How it decides a site is Shopify
Two independent public signals, or both of /products.json and /shop.json answering. One weak
hint isn't enough. Sites that don't clear that bar get isShopify: false,
errorCode: "NOT_SHOPIFY"shopifySignals, with a
shopifyConfidence score, so you can audit the call rather than take its word for it.
Input
{"stores": ["allbirds.com", "https://www.gymshark.com"],"maxPagesPerStore": 4,"maxProducts": 20,"maxConcurrency": 5}
| Field | Default | What it does |
|---|---|---|
stores | — | Domains or full URLs, one per line. Missing scheme becomes HTTPS. |
startUrls | — | The Apify request-list form of the same thing. Can be combined with stores. |
maxPagesPerStore | 4 | HTML pages fetched per store. Contact and about pages go first. Ceiling 10. |
maxProducts | 20 | Products kept from the public catalogue endpoint. 0 skips it. Ceiling 250. |
maxConcurrency | 5 | Stores in flight at once. Ceiling 20. |
requestTimeoutSecs | 12 | Per-request timeout. |
maxResponseSizeKb | 2048 | Body size cap per request. |
defaultCountry | — | ISO country code, used only to normalise local-format phone numbers into E.164. |
proxyConfiguration | off | Direct HTTP by default. Turn a proxy on only for stores that block Apify's cloud addresses. |
Empty input returns one labelled _sample: true row and charges nothing.
What a confirmed row carries
ok, requestedUrl, storeUrl, domain, title, description, isShopify,
shopifyConfidence, shopifySignals, emails, phones, socials, currency, country,
productCount, productCountType, products, theme, technologies, contactUrls, aboutUrls,
sourcePages, pagesCrawled, crawledAt.
phones are objects with the raw string and an e164 field where it could be normalised. socials
are { platform, url } pairs. emails caps at 50 per store, phones at 30, socials and
contactUrls at 50, aboutUrls at 30.
productCountType tells you what productCount means: products_endpoint_sample when the public
catalogue endpoint answered, not_available when it didn't. It is a sample, not a guaranteed
complete inventory. A store can hide that endpoint.
Limits
Some stores won't answer. Bot protection, geoblocking, consent interstitials and fully
client-rendered themes all happen. Those become diagnostic rows with an errorCode, uncharged. A
proxy helps with plain IP blocking and does nothing for the rest.
It reads pages, it doesn't log in. No authentication, no CAPTCHA solving, no paywalls, no checkout flows, no private APIs. It doesn't submit forms or contact the store.
Contact data is whatever the store published. If a merchant only has a contact form, there is no email on the row. That's the store's choice, not a gap in the scraper.
It won't follow a domain onto a private network. Every URL and every redirect hop is resolved first and refused if it lands on a private or reserved address range. So a domain in your list can't be used to point the Actor at something internal.
Billing
$0.0045 per confirmed Shopify store, charged only after the row is written to the dataset. There is no run-start fee.
Not charged: non-Shopify sites, unreachable sites, invalid input, every diagnostic row, and the empty-input sample. Direct HTTP is the default transport, so there's no proxy line either unless you opt in.
The rate is flat. Same $4.50 per 1,000 on the free plan as on any paid one, no volume tiers, no minimum spend.