# Shopify Store Intelligence - Products, Leads, Tech & Revenue (`inexhaustible_glass/shopify-store-intelligence`) Actor

All-in-one Shopify scraper: full product catalog + prices, store leads (emails, phone, socials), tech stack & pixels, revenue & store-size estimate, brand signals, and new-product/restock/price monitoring. One tool for dropshippers, DTC brands, agencies & market research. No API key.

- **URL**: https://apify.com/inexhaustible\_glass/shopify-store-intelligence.md
- **Developed by:** [Hitman studio](https://apify.com/inexhaustible_glass) (community)
- **Categories:** E-commerce, Lead generation, AI
- **Stats:** 3 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🛍️ Shopify Store Intelligence — Products, Leads, Emails, Tech Stack & Revenue

#### The all-in-one Shopify scraper — products, leads, tech stack & revenue in **one run**.

`🔑 No API key`   `🔓 No login`   `⚡ 68+ columns/store`   `📤 JSON · CSV · Excel`   `🔔 Monitoring built-in`

Turn any Shopify store URL — or a whole niche — into clean, structured data: the **full product catalog with prices**, **store leads (emails, phone, social links)**, **tech stack & marketing pixels**, a **revenue / store-size estimate**, **brand signals**, and **new-product / restock / price-change monitoring**. One actor replaces three or four separate tools.

> 💡 Built for **dropshippers, DTC brands, e-commerce agencies, sales teams and market researchers** who need reliable Shopify data — without paying for a $29–$99/mo SaaS.

#### ⚡ Quick start

1. Paste one or more store URLs (or switch to **discover mode** and type a niche).
2. Click **Start**.
3. Download your data as **JSON, CSV or Excel** — or pull it via API.

***

### 🆚 Why this actor?

| | Single-purpose scrapers | **🛍️ Shopify Store Intelligence** |
|---|:---:|:---:|
| Full product catalog & prices | ✅ | ✅ |
| Store emails, phone & socials | ❌ (separate tool) | ✅ |
| Tech stack + tracking pixels | ❌ | ✅ |
| Revenue / store-size estimate | ❌ | ✅ |
| Dropshipper-risk & brand signals | ❌ | ✅ |
| New-product / restock / price monitoring | ❌ | ✅ |
| **Tools you need** | **3–4** | **Just 1** |

***

### ✨ What you get (68+ data columns per store)

| Category | Fields |
|---|---|
| 🛍️ **Products** | title, handle, URL, vendor, product type, tags, price, compare-at price, variants, SKU, stock/availability, images, created/updated dates |
| 📦 **Collections** | collection names, product counts, top collections |
| 📊 **Catalog analytics** | min/max/avg price, total catalog value, on-sale count & ratio, avg & max discount %, vendor list, product-type breakdown, top tags, total SKUs/variants/images |
| 📧 **Leads / contact** | best outreach email, all emails (by role: sales/support/press/info), phone, address, Instagram, Facebook, TikTok + every social link |
| 🔧 **Tech stack** | installed apps, review platform (Judge.me / Loox / Yotpo), payment providers (Shop Pay, PayPal, Klarna, Apple/Google Pay), tracking pixels + IDs (GA4, GTM, Meta Pixel, TikTok, Pinterest, Google Ads, Klaviyo, Hotjar) |
| 📈 **Brand signals** | brand age, oldest/newest product, new products in last 30 days, sold-out ratio, **dropshipper-risk score** |
| 💰 **Revenue estimate** | store-size tier (micro/small/mid/large) + heuristic monthly-revenue estimate *(clearly labelled — catalog-based, not real sales)* |
| 🔔 **Monitoring** | new products, restocks and price changes vs the previous run (schedule it to track competitors 24/7) |
| 🌍 **Store meta** | shop name, myshopify domain, currency, country, language, theme, blog, gift cards |

Every field comes from **Shopify's own public endpoints** (`/products.json`, `/collections.json`, storefront HTML, schema.org data) — so it's fast, stable and needs no keys.

***

### 🚀 Input example

Just paste store URLs and run:

```json
{
  "mode": "domains",
  "domains": ["gymshark.com", "allbirds.com", "deathwishcoffee.com"],
  "maxProductsPerStore": 1000,
  "outputMode": "store",
  "extractProducts": true,
  "extractCollections": true,
  "extractContact": true,
  "extractTechStack": true,
  "extractBrandSignals": true,
  "extractRevenueEstimate": true,
  "trackChanges": false
}
```

**Export a flat product catalog** (one row per product) — set `"outputMode": "product"`.

**Monitor a competitor 24/7** — set `"trackChanges": true` and schedule the run daily; each run reports new products, restocks and price changes.

***

### 📤 Output example (one row per store)

```json
{
  "shop_name": "Allbirds",
  "store_url": "https://www.allbirds.com",
  "myshopify_domain": "weareallbirds.myshopify.com",
  "currency": "USD",
  "product_count": 291,
  "collection_count": 118,
  "avg_price": 69.66,
  "on_sale_count": 42,
  "avg_discount_pct": 31.4,
  "email": "bulkorders@allbirds.com",
  "instagram": "https://www.instagram.com/allbirds",
  "tech_apps": ["Google Tag Manager", "Yotpo Reviews"],
  "review_platform": "Yotpo Reviews",
  "payment_providers": ["Amazon Pay", "Apple Pay", "Google Pay", "PayPal", "Shop Pay"],
  "brand_age_days": 2817,
  "dropshipper_risk": "low",
  "store_size_tier": "small",
  "monthly_revenue_estimate_usd": 13897,
  "products": [ ... ],
  "collections": [ ... ]
}
```

***

### 💡 Use cases

- **Dropshipping & product research** — find winning products, prices, variants and best-sellers across any store.
- **B2B lead generation** — build lists of Shopify store owners with verified emails, phones and socials for cold outreach.
- **Competitor & price monitoring** — track a rival's catalog, restocks and price changes automatically.
- **Agency prospecting** — spot stores by tech stack (e.g. "stores using Klaviyo but no reviews app") to pitch your services.
- **Market research & sourcing** — analyze a niche: average price, discount depth, brand age, revenue tiers.
- **Feed AI / RAG pipelines** — clean JSON of store + product data for LLM apps, CRMs and automations (Make, n8n, Zapier).

***

### ❓ FAQ

**Do I need a Shopify API key?** No. Everything uses public store endpoints.

**Does it work on any Shopify store?** Yes — any store on Shopify. Non-Shopify sites return `is_shopify: false`.

**Is the revenue number real sales data?** No. Shopify never exposes sales. It's a **transparent, catalog-based estimate** with the method shown, so you can treat it as directional.

**Is a proxy required?** No for most stores. Enable Apify Proxy for very large runs.

***

### 🔎 Keywords

Shopify scraper, Shopify product scraper, Shopify store scraper, Shopify products.json scraper, Shopify email scraper, Shopify leads scraper, Shopify store leads, Shopify email finder, Shopify contact scraper, Shopify store finder, find Shopify stores by niche, Shopify competitor analysis, Shopify price monitor, Shopify price tracker, Shopify restock monitor, Shopify new product monitor, Shopify catalog export, Shopify products to CSV, Shopify products to Excel, ecommerce scraper, ecommerce store scraper, dropshipping product research tool, dropshipping scraper, DTC brand data, DTC brand discovery, Shopify tech stack detector, Shopify app detector, Shopify theme detector, detect Shopify apps, Shopify Klaviyo stores, Shopify revenue estimator, Shopify sales estimator, store size estimator, StoreLeads alternative, Store Leads alternative, Shopify store intelligence, Shopify store analyzer, Shopify brand scraper, Shopify vendor scraper, Shopify SKU export, Shopify variant scraper, ecommerce lead generation, online store email scraper, Shopify B2B leads, Shopify market research, Shopify data extraction, scrape Shopify products, scrape Shopify emails, scrape Shopify store, Shopify monitor, Shopify crawler.

***

*One actor for the whole Shopify workflow: **find → analyze → enrich → monitor**. Products, leads, tech stack and revenue in a single run.*

# Actor input Schema

## `mode` (type: `string`):

‘domains’ (recommended) = scrape the store URLs you provide. ‘discover’ (beta) = attempt to find Shopify stores by keyword first — best-effort, use ‘domains’ for reliable results.

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

Shopify store URLs or domains (e.g. gymshark.com). Used in ‘domains’ mode.

## `query` (type: `string`):

Niche or keyword to discover Shopify stores (e.g. ‘organic skincare’). Used in ‘discover’ mode.

## `discoverCountry` (type: `string`):

Country hint for discovery (ISO code).

## `maxStores` (type: `integer`):

Maximum number of stores to process this run.

## `maxProductsPerStore` (type: `integer`):

Cap on products fetched per store (0 or high = all).

## `outputMode` (type: `string`):

‘store’ = one rich row per store (with nested products). ‘product’ = one row per product (flat catalog export).

## `extractProducts` (type: `boolean`):

Full catalog: title, vendor, price, compare-at, variants, SKU, stock, images, tags.

## `extractCollections` (type: `boolean`):

Store collections and their product counts.

## `extractContact` (type: `boolean`):

Emails, phone, address and social links (for B2B outreach).

## `extractTechStack` (type: `boolean`):

Installed apps, review platform, payment providers, tracking pixels (GA4, GTM, Meta, TikTok…).

## `extractBrandSignals` (type: `boolean`):

Brand age, catalog velocity, sold-out ratio, dropshipper-risk score.

## `extractRevenueEstimate` (type: `boolean`):

Heuristic monthly-revenue and store-size tier (clearly labelled — not real sales data).

## `trackChanges` (type: `boolean`):

Compare against the previous run to flag new products, restocks and price changes. Schedule the run to monitor stores over time.

## `conversionRate` (type: `number`):

Used only by the revenue estimate heuristic.

## `ordersPerProductMonth` (type: `number`):

Used only by the revenue estimate heuristic.

## `proxyConfiguration` (type: `object`):

Residential proxy is ON by default — Shopify blocks datacenter IPs, so this is required for reliable product data in the cloud. You can change the group or disable it here.

## Actor input object example

```json
{
  "mode": "domains",
  "domains": [
    "gymshark.com",
    "allbirds.com"
  ],
  "query": "organic skincare",
  "discoverCountry": "us",
  "maxStores": 20,
  "maxProductsPerStore": 1000,
  "outputMode": "store",
  "extractProducts": true,
  "extractCollections": true,
  "extractContact": true,
  "extractTechStack": true,
  "extractBrandSignals": true,
  "extractRevenueEstimate": true,
  "trackChanges": false,
  "conversionRate": 0.02,
  "ordersPerProductMonth": 1.5,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# 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 = {
    "domains": [
        "gymshark.com",
        "allbirds.com"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("inexhaustible_glass/shopify-store-intelligence").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 = { "domains": [
        "gymshark.com",
        "allbirds.com",
    ] }

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

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

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

```

## CLI example

```bash
echo '{
  "domains": [
    "gymshark.com",
    "allbirds.com"
  ]
}' |
apify call inexhaustible_glass/shopify-store-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=inexhaustible_glass/shopify-store-intelligence",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/xjrBxqD5Q2xUJNzTA/builds/48ImD71mDFOyejcCQ/openapi.json
