Shopify & Ecommerce Store Leads
Pricing
from $0.50 / 1,000 stores
Shopify & Ecommerce Store Leads
Find Shopify, WooCommerce, Wix and other online stores by country, category, tools and apps, with emails, phones and social profiles. Export to a spreadsheet, or schedule it to get new stores every day.
Pricing
from $0.50 / 1,000 stores
Rating
0.0
(0)
Developer
PlatLeads
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
Find online stores on Shopify, WooCommerce, Wix and other platforms, and download them as a spreadsheet. Each store comes with its country, category, products and prices, the tools and apps it uses, its social profiles and, where the store publishes them, its emails, phone numbers and WhatsApp numbers. On Apify's free plan a run returns a sample of up to 50 stores with contact details hidden; see Pricing below.
Not affiliated with Shopify, WooCommerce or Wix.
What you can use it for
- Lead lists: stores in the countries and categories you sell to, with contact details, for an agency, an app or a service.
- Stores that use a tool: stores running Klaviyo, Judge.me, Gorgias or a competitor of yours, picked from the Technologies list.
- New stores every day: a store that opened this week is still choosing its apps, agencies and suppliers. Schedule a daily run with Only stores found since the last run and each run returns just the stores found since the one before.
How it works
New stores are found every day, and every store is checked again regularly. A run searches that list rather than visiting websites, so it finishes in minutes, not hours.
- Choose the filters. Every filter is optional, and filters combine: a store has to match all of them. A filter with several values matches any of them. Runs return stores that are open now; see
statusbelow for stores behind a password page. - Set Maximum stores: the run stops there, or earlier at the maximum cost per run you set on the run's options.
- Start the run. Download the results as CSV, Excel, JSON or HTML, or send them on with Apify integrations such as Google Sheets, Make, Zapier or n8n.
Input example
US beauty stores on Shopify that use Klaviyo, at most 500:
{"platform": ["shopify"],"country": ["US"],"category": ["beauty-cosmetics"],"technologies": ["klaviyo"],"maxRows": 500}
More lead lists
| Leads | Settings |
|---|---|
| Stores on a competitor's email tool | Technologies: Mailchimp, Omnisend |
| Shopify stores collecting reviews with Judge.me | Shopify apps: judgeme |
| Stores with live chat or a helpdesk | More filters: {"technology_category": ["customer_support"]} |
| Stores that started Facebook or Instagram ads in the last 30 days | More filters: {"meta_ads": "active"} |
| Stores running many Meta ads | More filters: {"fb_ad_count": {"min": 20}} |
| Stores with a wholesale page | More filters: {"pages": ["wholesale"]} |
| Established stores with a large catalog | Minimum products: 500, More filters: {"followers": {"min": 10000}} |
Output
One row per store, newest first unless you choose otherwise. The Output format option Nested JSON returns each store as the nested object behind these columns, with lists kept as lists and a few more details, such as followers per network and each app's icon and App Store page. Its keys differ from the column names: id for domain (there is no url), created_at for found_at, contact.email, contact.phone and contact.whatsapp for the contact columns, social.link and social.total_followers for the social columns, product for the product columns, fb_ads.count and fb_ads.last_start_date for the Meta ads columns, technologies.active and apps.active as lists of objects, and a shopify object for the shopify_ columns.
New stores are added every day, and every store is checked again regularly; updated_at says when it last was. The Source column says how each value is collected:
- Observed: read directly from the store's website or a public source such as the Meta Ad Library.
- Derived: calculated from observed values, such as an average price.
- Inferred: detected by rules or an AI model. Right for most stores, but it can be wrong.
- Estimated: an approximate number, such as a follower count shown as 1.2K on the profile.
apps and the shopify_ columns are only filled in for Shopify stores.
| Column | Source | Description |
|---|---|---|
domain, url | Observed | The store's domain and homepage. |
title | Observed | The store name shown in the browser tab. |
platform | Derived | The ecommerce platform, detected from the storefront code: shopify, woocommerce, wix, prestashop, bigcommerce, magento, a smaller platform under its own name, or custom for a storefront built in-house. |
status | Derived | active, or password_protected for a store behind a password page, whose other details may date from before it closed. Runs return only active stores unless you set status in More filters or tick Only stores found since the last run. |
country | Inferred | Where the store is based, not where it sells, as a code such as US. Shopify stores use the country registered with Shopify; on other platforms it is inferred from store settings, phone numbers, the domain and the currency. |
language | Inferred | The main language of the storefront, as a code such as en. |
categories | Inferred | Category and subcategory, e.g. Apparel & Accessories / Shoes & Footwear, assigned by an AI model from the store's name, description and products. Stores with no products and no description are not classified. |
description | Observed | The short description the store gives search engines. |
emails | Observed | Email addresses on the store's own domain, from the homepage and contact page. Free-mail and third-party addresses are left out. |
phones | Observed | Phone numbers from the homepage and contact page: in international format (+…) when the site gives the country code, otherwise as written locally, so one number can appear in both forms. |
whatsapp | Observed | WhatsApp numbers from chat links and buttons, as digits with the country code and no +. |
instagram, facebook, tiktok, youtube, twitter, pinterest, linkedin | Observed | The store's profile on each network, when the homepage links to one. |
total_followers | Estimated | Followers across the store's Facebook, Instagram, TikTok, YouTube and Pinterest profiles we could read, as precise as the profiles show them. |
product_count | Observed | Number of products in the catalog. Approximate on platforms that do not publish a count. |
avg_price, avg_price_usd | Derived | Average product price in the store's currency, from a sample of its products, and the same average in US dollars. |
currency | Observed | The currency the store sells in, e.g. USD. |
meta_ads_30d | Estimated | Facebook and Instagram ads the store started in the last 30 days, from the Meta Ad Library. |
meta_ads_last_started | Observed | Start date of the store's most recent Facebook or Instagram ad, at midnight UTC. |
technologies | Inferred | Third-party tools detected in the storefront code, on any platform: email, reviews, subscriptions, support, search, ads and more. |
apps | Inferred | Shopify apps detected in the storefront code. |
is_dropshipping | Inferred | true when the store's category links, Shopify apps or product vendors point to dropshipping. Empty otherwise, and not cleared once set. |
is_print_on_demand | Inferred | true when the store's Shopify apps or product vendors point to print on demand. Empty otherwise, and not cleared once set. |
is_cod | Inferred | Whether the storefront offers cash on delivery. |
has_ios_app, has_android_app | Inferred | Whether the homepage links to the store's own app on the App Store or Google Play. |
shopify_domain | Observed | The store's permanent *.myshopify.com address. |
shopify_theme | Observed | The Shopify theme, e.g. Dawn. |
shopify_registration_country, shopify_province, shopify_city | Observed | The country, state or province, and city registered with Shopify. |
shopify_ships_to | Observed | Countries the store ships to, from its shipping settings. * means the rest of the world. |
shopify_payment_methods | Observed | Wallets offered at checkout: SHOP_PAY, PAYPAL, APPLE_PAY, GOOGLE_PAY, AMAZON_PAY. |
shopify_offers_installments | Observed | Whether checkout offers Shop Pay Installments. |
found_at | Observed | When we first found the store. Runs sort by it. |
updated_at | Observed | When we last checked the store. |
A column is empty when the store does not have that detail. Not every store publishes an email or phone number, so keep the WhatsApp and social columns too: they reach stores that have no email.
Not in the data
- Revenue, traffic or visit estimates.
- Employee counts or named contacts.
- Private data or anything behind a login.
- Tracking pixels, the date of the newest product, the platform a store used before, pages linked from the homepage, the domain registration date and Shopify Plus. You can filter by these in More filters, but they are not in the results.
Get new stores every day
Tick Only stores found since the last run, then create a schedule for the Actor in Apify, for example every morning. Each run returns the stores found since the previous run with the same filters, oldest first, and remembers where it stopped in a key-value store in your account. A run stopped by Maximum stores or by its maximum cost leaves the rest for the next run.
- The first run starts from Found in the last N days, or one day back if that is empty.
- Changing any filter starts a new sequence from the first-run start.
- Stores still behind a password page are included, because many new stores are when we find them. The
statuscolumn tells them apart. - Each store is checked against the filters once, in the first run after it is found. Choose filters that are known from the start: platform, domain type and domain ending. Country is inferred when a store is found and, for Shopify stores, replaced soon after by the country registered with Shopify, so a sync by country can miss the few stores whose country changes. Categories, followers and ads are often filled in later, so a new store filtered on them is usually left out for good.
More filters
The More filters (JSON) field takes any of the filters below, and the form's own filters too, for example {"meta_ads": "active", "followers": {"min": 1000}} or {"platform": ["opencart"]} for a platform the form does not list. A filter set there replaces the same filter set in the form.
Filters combine with AND, except category and subcategory, whose values are pooled. A filter that takes several values matches any of them, except traits, where all must match. Values are not case-sensitive, except for theme and province. Where a description mentions unknown, send it to match stores without a value, e.g. "social_platforms": ["unknown"]. A filter shown with an example rather than its values, such as theme, province or tld, takes the value as it appears in the data; a value we do not have returns no stores rather than an error.
| Filter | Format | Description |
|---|---|---|
province | Array of values | The state, province or region the merchant registered with Shopify, such as California or Ontario. Shopify only asks for one in some countries. Write each value as country code and name, e.g. US:California. Shopify only. Example: ["GB:England"]. |
subcategory | Array of values | A subcategory. Assigned by an AI model; send unknown for stores it has not classified yet. Category and subcategory values combine: a store in any of them matches. Values: mens-clothing, womens-clothing, shoes-footwear, handbags-backpacks, hats-headwear, sunglasses-eyewear, lingerie-intimates, graphic-tees-merch, home-decor, kitchen-dining, bedding-bath, lighting, garden-outdoor, candles-fragrance, storage-organization, wall-art-prints, coffee-tea, snacks-confectionery, wine-spirits, specialty-foods, organic-special-diet, meal-kits, bakery-desserts, meat-seafood, sauces-spices, restaurant-takeaway, makeup, skincare, haircare, nail-care, fragrances, beauty-tools, bath-body, mens-grooming, marketing-seo, web-design-development, business-consulting, printing-services, real-estate-property, funeral-memorial, local-services, art-supplies, musical-instruments, craft-supplies, jewelry-making, stickers-decals, music-vinyl-records, vitamins-supplements, fitness-nutrition, medical-devices, wellness-relaxation, weight-management, pain-relief-mobility, mens-health, research-peptides, phones-tablets, computers-laptops, audio-headphones, cameras-drones, smart-home, accessories-cables, gaming-pc-components, power-solar-batteries, fine-jewelry, fashion-jewelry, watches, body-jewelry, commercial-equipment, safety-workwear, janitorial-supplies, packaging-shipping, lab-scientific, agriculture-farm, personalized-gifts, gift-baskets, novelty-gag-gifts, greeting-cards, party-supplies, holiday-decor, seasonal-costumes, online-courses, tutorials-workshops, coaching-mentoring, educational-materials, gym-fitness, outdoor-recreation, hunting-shooting, team-sports, water-sports, cycling, golf, hand-tools, power-tools, plumbing-electrical, fasteners-hardware, paint-supplies, parts-components, auto-parts, motorcycle-parts, car-accessories, tires-wheels, vehicle-electronics, physical-books, ebooks-digital, comics-manga, audiobooks, dog-supplies, cat-supplies, pet-food-treats, aquarium-reptile, pet-grooming, general-store, living-room, bedroom-furniture, office-furniture, outdoor-furniture, action-figures, board-games-puzzles, video-games, educational-toys, dolls-plush, baby-clothing, baby-gear-strollers, diapers-feeding, maternity, nursery-decor, kids-clothing, kids-school-supplies, game-credits-topup, digital-downloads, memberships-communities, vintage-antiques, trading-cards, coins-stamps, memorabilia, writing-instruments, paper-notebooks, desk-accessories, printers-ink, saas-subscriptions, mobile-apps, software-tools, themes-templates, vapes-e-cigarettes, cbd-products, cannabis-dispensary, smoking-accessories, tobacco-cigars, luggage-suitcases, travel-accessories, travel-organizers, adult-toys, sexual-wellness, erotic-lingerie, bridal-gowns, wedding-decor, wedding-favors, bridesmaids-groomsmen, wedding-invitations. |
status | Array of values | Whether visitors can open the store. Password-protected stores are usually not launched yet or temporarily closed. Only active stores are returned unless you set it. Values: active, password_protected. |
currency | Array of values | The currency the store sells in. Values: USD, EUR, GBP, INR, CAD, AUD, BRL, IRT, PLN, MXN, PKR, VND, ZAR, JPY, TRY, COP, CHF, CLP, SEK, AED, NZD, RON, DKK, ILS, ARS, BDT, SGD, EGP, MYR, HUF, IDR, HKD, PEN, CZK, NOK, MAD, TWD, UAH, THB, NGN, PHP, IRR, KRW, SAR, DZD, RUB, RSD, CNY, XOF, KES, LKR, KWD, UYU, GTQ, CRC, TND, GHS, QAR, ISK, DOP, BGN, BYN, BAM, JOD, PYG, GEL, XAF, OMR, KZT, NPR, MKD, HNL, BHD, MDL, ALL, TTD, BOB, IQD, UGX, MUR, JMD, AMD, AZN, XPF, TZS, UZS, GNF, AOA, KHR, BSD, VES, MNT, LYD, ZMW, LBP, NAD. |
ships_to | Array of values | Countries the store delivers to, from its Shopify shipping settings. * (Worldwide) matches stores that ship everywhere. Shopify only. Example: ["US"]. |
latest_product_at | {min, max} ISO 8601 | When the store last added a product. Shopify & WooCommerce only. |
social_platforms | Array of values | Stores that link to a profile on any of the chosen networks. Send unknown for stores with no social profile. Values: instagram, facebook, youtube, tiktok, twitter, linkedin, pinterest. |
followers | {min, max} | Followers across all of the store's social profiles. |
meta_ads | One value | Whether the store advertises on Facebook and Instagram: started an ad in the last 30 days, has run ads at some point, or never seen advertising. Values: active, ever, never. |
fb_ad_count | {min, max} | Number of Meta ads the store started in the last 30 days. |
tracker_platforms | Array of values | Stores with a tracking pixel from any of the chosen vendors. Send unknown for stores with no pixel at all. Values: google_analytics, google_tag_manager, google_ads, facebook, tiktok, pinterest. |
business_model | Array of values | How the store fulfils orders: dropshipping, print on demand or cash on delivery. Dropshipping is read from a store's category links, Shopify apps and product vendors, print on demand from its Shopify apps and product vendors, and cash on delivery from page content. Values: dropshipping, pod, cod. |
traits | Array of values | Stores that match every chosen trait. Shopify Plus and Offers Installments (Shop Pay Installments) apply to Shopify stores only. Values: shopify_plus, has_mobile_app, platform_changed, offers_installments. |
previous_platforms | Array of values | The platform a store ran on before its current one. Only switches seen since we started tracking the store are known. Values: woocommerce, shopify, wix, custom, magento, prestashop, bigcommerce, opencart, nuvemshop, shoplazza, youcan, shopline, fourthwall, sfcc, vtex, hostinger, jtl, magento1, zencart, cafe24, empretienda, godomall, kormozone, lightspeed, mixin, sazito, shoper, shopware, virtuemart, bigcartel, botble, epages, freewebstore, haravan, modified, nopcommerce, oxid, salla, shoptet, squarespace, volusion, webnode. |
pages | Array of values | Stores that link to the chosen page types, such as wholesale, affiliate or shipping. Values: contact, privacy, about, terms, returns, shipping, faq, tracking, wholesale, affiliate. |
technology_category | Array of values | Stores running any tool in the chosen categories. Combined with technologies, a store must match both. Values: page_builder, ads_analytics, email_sms_marketing, customer_support, reviews_ugc, accessibility_compliance, upsell_conversion, search_merchandising, subscriptions_loyalty, localization, affiliate_referral, payments_bnpl, shipping_returns. |
theme | Array of values | The theme the storefront is built on, such as Dawn, Prestige or the retired Debut. Custom themes keep whatever name their developer gave them. Shopify only. Example: ["Dawn"]. |
domain_type | Array of values | A custom domain, or a platform address such as myshopify.com. Values: custom, platform. |
tld | Array of values | The domain ending, such as .com or .co.uk. Example: ["com"]. |
domain_registered | {min, max} ISO 8601 | When the domain was registered. |
Formats:
- Array of values:
"currency": ["USD", "EUR"], up to 100 values - {min, max}:
"followers": {"min": 1000, "max": 50000}; either bound can be left out - {min, max} ISO 8601:
"domain_registered": {"min": "2026-01-01"}; a date without a time means midnight UTC, so amaxof2026-01-31stops at the start of that day - One value:
"meta_ads": "active"
Pricing
You pay for each store saved, whether or not it has contact details, at the price per 1,000 stores shown on the Pricing tab; higher Apify plans pay less. To cap what a run can cost, set Maximum stores, or the maximum cost per run in the run options.
On Apify's free plan a run returns up to 50 stores, at most 200 stores a day in all, and their contact details come back as Paid access only, so you can see which stores have them. The free credit Apify gives new accounts does not change this: full results need a paid Apify plan.
Support
Questions, problems and requests for new filters or fields go in the Issues tab. Include the run's input when something looks wrong.