# Shopify Store Leads & Finder — Store List by Apps & Country (`insanedev/shopify-store-list`) Actor

Find Shopify stores: a store finder and lead list of real stores filtered by country, niche, catalogue size, apps (Klaviyo, Recharge, Yotpo…), theme and brands sold, with socials, public e-mails, prices and popularity rank. Pay per lead — a Store Leads / BuiltWith alternative.

- **URL**: https://apify.com/insanedev/shopify-store-list.md
- **Developed by:** [Insane Developer](https://apify.com/insanedev) (community)
- **Categories:** Lead generation, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.00 / 1,000 leads

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

**Shopify Store Leads** gives you a **list of real Shopify stores** filtered the way sales and research teams need: by **country, currency, catalogue size, keywords, popularity** — and, checked live on each storefront, by **installed apps (Klaviyo, Recharge, Yotpo, Attentive…), theme and the brands they sell**. Every lead comes with the store's **social profiles, public contact e-mails, top brands, product types, price range and how recently it added products**.

It is a pay-per-lead **Shopify store finder** and **Store Leads / BuiltWith alternative for Shopify**: no subscription, no CSV exports to buy — run it, filter, and get a clean dataset via API, CSV, Excel or straight into Google Sheets, HubSpot, Clay, Make, n8n or Zapier.

### What does Shopify Store Leads do?

- **Shopify store list by country** — all indexed stores in the US, UK, Germany, Australia… with city, currency and shipping countries.
- **Find Shopify stores using an app** — e.g. every store with Klaviyo, Recharge, Okendo, Gorgias or Attentive (about 70 apps detected on the storefront).
- **Find stockists and resellers of a brand** — stores whose catalogue includes the brands you name.
- **Shopify store database with popularity** — each store has a popularity rank (its domain's position in a public top-1M websites list), so you can start with the biggest stores.
- **Lead details** — theme, apps, web pixels, Instagram / Facebook / TikTok / YouTube / Pinterest / X / LinkedIn, e-mails the store publishes on its homepage, top brands, product types, median price, share on sale, new products in the last 30 days.

### Who uses it

- **Shopify app and agency sales teams** — find stores that use a competitor's app, or a theme you support.
- **Brands and distributors** — find retailers that stock your brand or your competitors'.
- **Investors and analysts** — map a niche: how many stores, where, how big, what they charge.
- **Marketers** — build lists of stores by niche keyword and country for partnerships or outreach.

### How to use it

1. Click **Try for free**.
2. Set filters: **Store countries**, **Keywords** (e.g. `coffee`, `skincare`, `pet`), and optionally **Uses any of these apps**, **Sells any of these brands**, **Theme**, **Min/Max products**.
3. Set **Max leads** and click **Start**.
4. Download the leads (CSV, Excel, JSON) or connect Google Sheets, a CRM, Clay, Make, n8n or Zapier.

### Ready-made lead lists

Open one, click **Try**, and change the filters to your market:

- **By app**: [Shopify stores using Klaviyo](https://apify.com/insanedev/shopify-store-list/examples/shopify-stores-using-klaviyo) · [using Recharge](https://apify.com/insanedev/shopify-store-list/examples/shopify-stores-using-recharge) · [using Yotpo](https://apify.com/insanedev/shopify-store-list/examples/shopify-stores-using-yotpo) · [using Gorgias](https://apify.com/insanedev/shopify-store-list/examples/shopify-stores-using-gorgias) · [using Attentive](https://apify.com/insanedev/shopify-store-list/examples/shopify-stores-using-attentive)
- **By country**: [UK Shopify store list](https://apify.com/insanedev/shopify-store-list/examples/shopify-store-list-uk) · [Australia](https://apify.com/insanedev/shopify-store-list/examples/shopify-store-list-australia)
- **By niche or brand**: [find Shopify stores by niche](https://apify.com/insanedev/shopify-store-list/examples/find-shopify-stores-by-niche) · [stockists of a brand](https://apify.com/insanedev/shopify-store-list/examples/shopify-stockists-of-a-brand)
- **New stores**: [newest Shopify stores](https://apify.com/insanedev/shopify-store-list/examples/newest-shopify-stores)

### Input example

```json
{
    "countries": ["US", "CA"],
    "keywords": ["coffee", "espresso"],
    "apps": ["Klaviyo"],
    "minProducts": 20,
    "maxLeads": 200
}
```

### Output example

```json
{
    "name": "Seattle Coffee Gear",
    "url": "https://seattlecoffeegear.com",
    "country": "US",
    "city": "Lynnwood",
    "currency": "USD",
    "productsCount": 1410,
    "popularityRank": 188511,
    "theme": "Paper",
    "apps": ["Klaviyo", "Attentive", "Judge.me", "BOGOS", "Affirm", "Microsoft Clarity", "Elevar"],
    "emails": ["commercial.sales@seattlecoffeegear.com"],
    "phones": ["8663724734", "4252421697"],
    "instagram": "https://www.instagram.com/seattlecoffeegear",
    "facebook": "https://www.facebook.com/SeattleCoffeeGear",
    "topBrands": [
        {
            "name": "Rocket Espresso",
            "products": 31
        },
        {
            "name": "Fellow",
            "products": 17
        },
        {
            "name": "Eureka",
            "products": 14
        }
    ],
    "topProductTypes": [
        {
            "name": "Coffee",
            "products": 92
        },
        {
            "name": "Semi-Automatic",
            "products": 41
        },
        {
            "name": "Accessory",
            "products": 33
        }
    ],
    "priceMin": 6.97,
    "priceMedian": 111.99,
    "priceMax": 13000,
    "newProducts30d": 49,
    "lastProductPublishedAt": "2026-09-28T16:56:25.000Z"
}
```

You can download the dataset as JSON, CSV, Excel, XML or HTML. A `SUMMARY` record shows how many stores matched, were checked and returned.

### How much does it cost?

| Event                                                       | Free plan     | Gold plan     |
| ----------------------------------------------------------- | ------------- | ------------- |
| Lead (one store row)                                        | $8 / 1,000    | $6 / 1,000    |
| Store checked for app/theme/brand filters that didn't match | $0.40 / 1,000 | $0.20 / 1,000 |

Stores that can't be read are never charged. Example: the 96 US coffee stores in the index, all with details ≈ $0.77. No subscription — Store Leads-style tools cost $75–950 a month.

### Where the data comes from

- **Store discovery**: domains from the public **Tranco top-1M websites list** (built from Cisco Umbrella, Majestic, Farsight, Chrome UX Report and Cloudflare Radar), checked for Shopify by DNS, then each store's own public `meta.json` (name, description, address city/country, currency, product and collection counts, shipping countries). The index is refreshed monthly.
- **Details**: read live from each store's public homepage and product list when you run the Actor, with an honest user agent, respecting robots.txt; stores that block automated visits are skipped, never bypassed.
- **Coverage**: about **30,000 Shopify stores among the top-1M websites** (10,400 in the US, 3,100 in India, 2,300 in the UK, 1,100+ each in Germany, Australia and Canada) — the stores with real traffic, not millions of abandoned ones. Stores behind custom (headless) storefronts are not included.

### Tips

- Start broad (country + keyword), then add app or brand filters; app/brand filters check stores one by one in popularity order until **Max leads** match (capped by **Max stores checked**).
- Turn **Store details** off for a fast, cheap list from the index only.
- **Weekly or repeat lists**: paste the domains you already have (earlier runs, your CRM) into **Skip these domains** — they are skipped and never charged, so each run pays only for new stores.
- **Sort by** "Newest stores first" to find recently launched stores (Shopify store ids grow over time).
- Track prices, launches and stock of the stores you find with our [Shopify Price Tracker & Scraper](https://apify.com/insanedev/shopify-price-tracker).

### FAQ

**Are the e-mails personal data?** The Actor only returns addresses a store publishes on its own homepage (e.g. support@ or wholesale@ addresses) and never looks people up. You are responsible for using contacts in line with GDPR, CAN-SPAM and similar laws.

**Why isn't store X in the list?** It may be outside the top-1M websites, on a headless storefront, or newer than the last index refresh. Use **Look up these domains only** to check specific domains.

**Can AI agents use it?** Yes — through the Apify API and the Apify MCP server.

Questions or ideas? Open an issue in the **Issues** tab.

# Changelog

This Actor's version history is a separate document: https://apify.com/insanedev/shopify-store-list/changelog.md

# Actor input Schema

## `countries` (type: `array`):

Two-letter country codes of the store's business address (e.g. US, GB, DE, AU). Empty = all countries.

## `keywords` (type: `array`):

Stores whose name, description or domain contains any of these words, e.g. <code>coffee</code>, <code>skincare</code>, <code>pet</code>.

## `apps` (type: `array`):

Only stores that use at least one of these apps (checked on the storefront), e.g. <code>Klaviyo</code>, <code>Recharge</code>, <code>Okendo</code>, <code>Gorgias</code>, <code>Yotpo</code>, <code>Attentive</code>. Stores checked but not matching cost a small check fee.

## `brands` (type: `array`):

Only stores whose catalogue sample (first 250 products) includes these brands (vendor names). Finds stockists and resellers.

## `themes` (type: `array`):

Only stores on these themes, e.g. <code>Dawn</code>, <code>Impulse</code>, <code>Prestige</code>.

## `minProducts` (type: `integer`):

Minimum number of published products.

## `maxProducts` (type: `integer`):

Maximum number of published products.

## `currencies` (type: `array`):

Three-letter currency codes (e.g. USD, EUR, GBP).

## `shipsTo` (type: `array`):

Two-letter country codes the store ships to.

## `maxRank` (type: `integer`):

Keep stores whose domain is within this rank of the top-1M websites list (e.g. 100000 = top 100k sites).

## `excludeKeywords` (type: `array`):

Skip stores whose name, description or domain contains any of these words.

## `sortBy` (type: `string`):

Order of the leads: most visited stores first (popularity rank), largest catalogues first, or newest Shopify stores first.

## `maxLeads` (type: `integer`):

Stop after this many stores.

## `enrich` (type: `boolean`):

Visit each lead's storefront for its theme, apps, social profiles, public contact e-mails, top brands, product types and price range. Off = only the index fields (faster).

## `domains` (type: `array`):

Get the lead row for specific store domains (if they are in the index).

## `excludeDomains` (type: `array`):

Stores you already have — e.g. leads from earlier runs or your CRM. They are skipped: never read and never charged. Domains or URLs.

## `maxStoresChecked` (type: `integer`):

With app/theme/brand filters: stop after checking this many stores even if fewer leads matched.

## Actor input object example

```json
{
  "countries": [
    "US"
  ],
  "keywords": [
    "coffee"
  ],
  "sortBy": "popularity",
  "maxLeads": 20,
  "enrich": true,
  "maxStoresChecked": 2000
}
```

# Actor output Schema

## `leads` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "countries": [
        "US"
    ],
    "keywords": [
        "coffee"
    ],
    "maxLeads": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("insanedev/shopify-store-list").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "countries": ["US"],
    "keywords": ["coffee"],
    "maxLeads": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("insanedev/shopify-store-list").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "countries": [
    "US"
  ],
  "keywords": [
    "coffee"
  ],
  "maxLeads": 20
}' |
apify call insanedev/shopify-store-list --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,insanedev/shopify-store-list"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ZbIcKHr2aPryhfi4w/builds/dB5w7NReoUDW4qGXs/openapi.json
