# Shopify Store Scraper \[$0.35💰] | Tech Stack & Apps (`ahmed_jasarevic/shopify-scraper`) Actor

Analyze any Shopify store — detect installed apps, theme, tech stack, social links and contact info. Extract product counts, collection structure and page speed metrics for ecommerce intelligence.

- **URL**: https://apify.com/ahmed\_jasarevic/shopify-scraper.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.50 / 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/actors/running/actors-in-store.md#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 Scraper FASTEST

This Shopify scraper extracts store profiles, detects the full tech stack, and maps Shopify apps in seconds — giving you competitor intelligence without the manual research.

### What You Can Do

- **Audit any Shopify store** — pull theme, apps, pricing, and tech details in one run
- **Detect Shopify tech stack** — identify CDN, analytics, payment gateways, and third-party integrations
- **Extract social profiles and contact info** — scrape Instagram, Facebook, email, phone, and address data
- **Run competitor intelligence** — analyze competitor stores at scale for product counts, categories, and pricing strategies
- **Bulk-analyze hundreds of stores** — feed a list of URLs and get structured output for all of them
- **Profile DTC brands** — research direct-to-consumer brands for partnerships, acquisitions, or market analysis

### How It Works

1. **Input**: Provide one or more Shopify store URLs
2. **Crawl**: The Actor visits each storefront, respecting `robots.txt` and rate limits
3. **Extract**: Pulls theme info, detected apps, meta tags, social links, contact details, product counts, and optional PageSpeed metrics
4. **Output**: Returns structured JSON — one item per store — ready for your pipeline

### Input

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `storeUrls` | `array` | *required* | List of Shopify store URLs to scrape |
| `maxStores` | `int` | `10` | Maximum number of stores to process |
| `includeSitemapData` | `bool` | `false` | Include sitemap URLs and page counts |
| `includeTechStack` | `bool` | `true` | Detect and return full tech stack details |
| `includeSocialContact` | `bool` | `true` | Extract social media profiles and contact info |
| `includePageSpeed` | `bool` | `false` | Run PageSpeed analysis on each store |
| `proxyConfiguration` | `object` | — | Apify proxy settings (residential recommended) |
| `maxRequestsPerCrawl` | `int` | `200` | Max HTTP requests per crawl session |

### Example Input

```json
{
  "storeUrls": [
    "https://www.allbirds.com",
    "https://www.gymshark.com",
    "https://www.chubbies.com"
  ],
  "maxStores": 3,
  "includeSitemapData": true,
  "includeTechStack": true,
  "includeSocialContact": true,
  "includePageSpeed": false,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "maxRequestsPerCrawl": 200
}
```

### Output

The output dataset contains one item per store with the following fields:

| Field | Description |
|-------|-------------|
| `url` | Original store URL |
| `storeName` | Detected store name |
| `theme` | Shopify theme name and version |
| `apps` | Array of detected Shopify apps |
| `techStack` | CDN, analytics, payment, and other tech detected |
| `socialLinks` | Instagram, Facebook, Twitter, TikTok, YouTube URLs |
| `contactInfo` | Email, phone, address if publicly listed |
| `productCount` | Number of products indexed |
| `priceRange` | Min/max product prices |
| `sitemapPages` | Sitemap page count (if enabled) |
| `pageSpeed` | PageSpeed score (if enabled) |
| `crawledAt` | Timestamp of the crawl |

### Example Output

```json
[
  {
    "url": "https://www.allbirds.com",
    "storeName": "Allbirds",
    "theme": "Turbo",
    "apps": [
      "Klaviyo",
      "Yotpo",
      "Nosto",
      "Gorgias",
      "Stamped.io"
    ],
    "techStack": {
      "cdn": "Cloudflare",
      "analytics": ["Google Analytics", "Segment"],
      "payments": ["Shopify Payments", "PayPal", "Apple Pay"],
      "platform": "Shopify Plus"
    },
    "socialLinks": {
      "instagram": "https://instagram.com/allbirds",
      "facebook": "https://facebook.com/allbirds",
      "tiktok": "https://tiktok.com/@allbirds"
    },
    "contactInfo": {
      "email": "support@allbirds.com",
      "phone": "+1-888-963-8944"
    },
    "productCount": 142,
    "priceRange": { "min": 98, "max": 160 },
    "sitemapPages": 387,
    "crawledAt": "2026-08-30T12:00:00Z"
  }
]
```

### Integrations

- **Google Sheets** — export results directly for team review
- **HubSpot / Salesforce** — push store profiles as lead records
- **Zapier / Make** — trigger automations on new crawl results
- **Custom pipelines** — use the JSON output in any data workflow via API or dataset download

### FAQ

**Does this work with Shopify Plus stores?**
Yes. It detects Shopify Plus alongside standard Shopify plans.

**Can I scrape password-protected stores?**
No. Only publicly accessible storefronts can be crawled.

**How fast is it?**
Each store takes 10–30 seconds depending on page count and proxy configuration. A batch of 50 stores completes in under 20 minutes.

**Is this compliant with Shopify's terms?**
This Actor only reads publicly available storefront data. No authentication or private customer data is accessed.

**Can I run this on a schedule?**
Yes. Create a Task and use Apify's scheduler or a cron job to monitor competitor stores weekly.

**What if a URL isn't a Shopify store?**
The Actor detects non-Shopify URLs and skips them gracefully.

### SEO Keywords

Shopify scraper, Shopify store analyzer, Shopify tech stack detection, Shopify apps detector, Shopify store intelligence, Shopify competitor analysis, DTC brand research, Shopify store data extraction, Shopify app detection, ecommerce tech stack, Shopify store audit, Shopify lead generation, Shopify store profile, ecommerce competitor intelligence, Shopify store profiler, Shopify Plus detection, Shopify theme detector, Shopify CDN detection, ecommerce lead generation, Shopify competitor research

### For AI Agents

This Actor returns structured JSON. Use it in multi-step research workflows:

1. **Discovery** — run `shopify-store-detector` to find stores in a niche
2. **Enrichment** — feed discovered URLs into this Actor for full profiles
3. **Analysis** — process the output to rank competitors by tech sophistication, product count, or pricing

The `storeUrls` input accepts an array, so you can pass results from prior Actors directly. The `maxRequestsPerCrawl` parameter controls depth — increase it for stores with large catalogs.

### Related Actors

Verified related actors on Apify that pair well with this one. All links point to real, publicly available actors.

- [Amazon Product Scraper](https://apify.com/junglee/Amazon-crawler)
- [eBay Scraper](https://apify.com/automation-lab/ebay-scraper)
- [Amazon Reviews Scraper](https://apify.com/junglee/amazon-reviews-scraper)

# Actor input Schema

## `storeUrls` (type: `array`):

List of Shopify store URLs to analyze (e.g., https://www.allbirds.com, https://kith.com). The actor will extract store-level intelligence from each.

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

Maximum number of stores to process (0 = unlimited). Useful for testing.

## `includeSitemapData` (type: `boolean`):

Fetch and parse sitemaps to get product count, collections structure, and page inventory.

## `includeTechStack` (type: `boolean`):

Detect installed apps, analytics, chat widgets, review platforms, and upsell apps from script tags and meta.

## `includeSocialContact` (type: `boolean`):

Extract social media links (Instagram, Facebook, Twitter, TikTok, YouTube, Pinterest, LinkedIn) and contact email/phone from footer and contact pages.

## `includePageSpeed` (type: `boolean`):

Extract server-timing headers, Shopify complexity scores, and other performance indicators.

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

Proxy settings for anti-bot protection. Apify Proxy (residential recommended) is used by default.

## `maxRequestsPerCrawl` (type: `integer`):

Maximum number of requests per store (sitemap URLs + main page). Set to 0 for unlimited.

## Actor input object example

```json
{
  "storeUrls": [
    {
      "url": "https://www.allbirds.com"
    }
  ],
  "maxStores": 10,
  "includeSitemapData": true,
  "includeTechStack": true,
  "includeSocialContact": true,
  "includePageSpeed": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "BUYPROXIES94952"
    ]
  },
  "maxRequestsPerCrawl": 200
}
```

# Actor output Schema

## `dataset` (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 = {
    "storeUrls": [
        {
            "url": "https://www.allbirds.com"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/shopify-scraper").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 = { "storeUrls": [{ "url": "https://www.allbirds.com" }] }

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/shopify-scraper").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 '{
  "storeUrls": [
    {
      "url": "https://www.allbirds.com"
    }
  ]
}' |
apify call ahmed_jasarevic/shopify-scraper --silent --output-dataset

```

## MCP server setup

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

```

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/W5gAB3ZbLAzdsGcJE/builds/TaYJ16mplo3Kh2reM/openapi.json
