Shopify Store Leads - Emails, Socials & Tech Stack avatar

Shopify Store Leads - Emails, Socials & Tech Stack

Pricing

$4.50 / 1,000 shopify store leads

Go to Apify Store
Shopify Store Leads - Emails, Socials & Tech Stack

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

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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"
, and no charge. The signals it found are on the row in 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
}
FieldDefaultWhat it does
storesDomains or full URLs, one per line. Missing scheme becomes HTTPS.
startUrlsThe Apify request-list form of the same thing. Can be combined with stores.
maxPagesPerStore4HTML pages fetched per store. Contact and about pages go first. Ceiling 10.
maxProducts20Products kept from the public catalogue endpoint. 0 skips it. Ceiling 250.
maxConcurrency5Stores in flight at once. Ceiling 20.
requestTimeoutSecs12Per-request timeout.
maxResponseSizeKb2048Body size cap per request.
defaultCountryISO country code, used only to normalise local-format phone numbers into E.164.
proxyConfigurationoffDirect 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.