# Storeleads Scraper Ppe (`silentflow/storeleads-scraper-ppe`) Actor

Pay-per-result Store Leads scraper. Look up Shopify, WooCommerce, BigCommerce stores by domain or search with filters. Extract traffic, sales, employees, technologies, social profiles (Instagram, Facebook, TikTok), contact emails, and 80+ fields per store.

- **URL**: https://apify.com/silentflow/storeleads-scraper-ppe.md
- **Developed by:** [SilentFlow](https://apify.com/silentflow) (community)
- **Categories:** E-commerce, Lead generation
- **Stats:** 80 total users, 7 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.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.
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?

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

## Store Leads Scraper - Pay Per Event

by [SilentFlow](https://apify.com/silentflow)

**Pay only for the data you get!** Proxies included, no compute costs.

Extract ecommerce store intelligence from Store Leads. Look up any domain or search with advanced filters to get company info, traffic estimates, sales data, technologies, social profiles, and 80+ data fields per store.

### Why use this scraper?

- **Pay per result**: Only pay for stores you get - no compute costs
- **Proxies included**: No need to configure or pay for proxies separately
- **Two authentication modes**: Use your API key or session cookies
- **Bulk domain lookups**: Look up hundreds of domains in a single run
- **80+ data fields**: Traffic, sales, technologies, social profiles, employees, products, and more

### Use cases

| Industry | Application |
|----------|-------------|
| **Lead generation** | Build targeted lists of ecommerce stores by platform, country, or category |
| **Market research** | Analyze traffic, sales estimates, and technology adoption across segments |
| **Competitive intelligence** | Monitor competitors' tech stack, apps, social presence, and growth |
| **Investment research** | Screen ecommerce companies by revenue, traffic, and employee count |
| **Agency prospecting** | Find Shopify/WooCommerce stores that match your ideal client profile |
| **App developers** | Identify stores using specific apps or technologies for outreach |

### Input parameters

#### Search

| Parameter | Type | Description |
|-----------|------|-------------|
| `startUrls` | array | Dashboard search URL(s) from storeleads.app/dashboard with filters applied |
| `domains` | array | List of domain names for direct lookup (e.g., "allbirds.com") |

#### Authentication

| Parameter | Type | Description |
|-----------|------|-------------|
| `apiKey` | string | Your Store Leads API key. Find it in Settings > API |
| `cookies` | array | Session cookies exported from your browser after logging into storeleads.app |

#### Limits

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `maxItems` | integer | 100 | Maximum total stores to save |
| `maxPages` | integer | 10 | Maximum pages per dashboard search |

#### Advanced

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `requestTimeout` | integer | 30 | Request timeout in seconds |
| `debugMode` | boolean | false | Enable detailed logging |

> **Note**: Proxy is automatically configured in Pay Per Event mode. No proxy setup needed.

### Output data

#### Store example

```json
{
    "domain": "allbirds.com",
    "name": "Allbirds",
    "title": "Allbirds | Sustainable Shoes & Clothing",
    "description": "Allbirds makes the most comfortable shoes using sustainable materials.",
    "platform": "shopify",
    "platformDomain": "allbirds.myshopify.com",
    "platformRank": 42,
    "city": "San Francisco",
    "state": "California",
    "country": "United States",
    "countryCode": "US",
    "estimatedVisits": 3500000,
    "estimatedPageViews": 8750000,
    "estimatedSales": 1200000000,
    "estimatedSalesYearly": 14400000000,
    "productCount": 156,
    "avgPrice": 98.50,
    "avgPriceFormatted": "$98.50",
    "currencyCode": "USD",
    "employeeCount": 800,
    "rank": 156,
    "technologies": ["Shopify", "Google Analytics", "Klaviyo", "Yotpo"],
    "theme": {
        "name": "Custom",
        "vendor": "Allbirds",
        "version": "8.0.0"
    },
    "categories": ["Footwear", "Apparel"],
    "features": ["Free Shipping", "International Shipping", "Reviews"],
    "contactInfo": [
        {"type": "email", "value": "hello@allbirds.com", "source": "website"},
        {"type": "instagram", "value": "allbirds", "username": "allbirds", "url": "https://instagram.com/allbirds", "followers": 1200000, "postsCount": 2850, "description": "Better Things in a Better Way"},
        {"type": "twitter", "value": "allbirds", "username": "allbirds", "url": "https://twitter.com/allbirds", "followers": 85000},
        {"type": "facebook", "value": "weareallbirds", "username": "weareallbirds", "url": "https://facebook.com/weareallbirds", "followers": 450000}
    ],
    "contactPage": "https://allbirds.com/pages/contact",
    "returnsPage": "https://allbirds.com/pages/returns",
    "storeState": "Active",
    "createdAt": "2016-03-15",
    "lastUpdatedAt": "2026-02-20",
    "scrapedAt": "2026-02-24T10:30:00Z",
    "dataType": "domain"
}
```

### Data fields

| Category | Fields |
|----------|--------|
| **Identity** | domain, name, title, description, keywords, favicon, language, aliases |
| **Location** | city, state, country, countryCode, postalCode, streetAddress, latitude, longitude |
| **Platform** | platform, platformDomain, platformRank, plan |
| **Traffic** | estimatedVisits, estimatedPageViews |
| **Sales** | estimatedSales, estimatedSalesYearly |
| **Products** | productCount, variantCount, collectionCount, avgPrice, minPrice, maxPrice, currencyCode |
| **Rankings** | rank, rankPercentile, ccRank, ccCentrality |
| **Company** | merchantName, employeeCount, monthlyAppSpend |
| **Technology** | technologies, theme (name, style, vendor, version), apps |
| **Contact & Social** | contactInfo (email, phone, social profiles with url, username, followers, postsCount, description), contactPage |
| **Pages** | returnsPage, warrantyPage, trackingPage, faqPage, brandsPage, retailerPage, etc. |
| **Categories** | categories, tags, features |
| **Clustering** | clusterDomains, clusterBestRanked |
| **Shipping** | shippingCarriers, shipsToCountries |
| **Status** | storeState, createdAt, lastUpdatedAt, inactiveAt, redirectsTo |
| **Meta** | scrapedAt, dataType |

### Examples

#### Look up specific domains

```json
{
    "domains": ["allbirds.com", "gymshark.com", "fashionnova.com"],
    "apiKey": "your_api_key_here",
    "maxItems": 100
}
```

#### Search US Shopify stores

```json
{
    "startUrls": [{"url": "https://storeleads.app/dashboard/domains/f%3Acc=US&f%3Ap=1"}],
    "apiKey": "your_api_key_here",
    "maxItems": 500
}
```

### Integrations

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("silentflow/storeleads-scraper-ppe").call(run_input={
    "domains": ["allbirds.com", "gymshark.com"],
    "apiKey": "your_storeleads_api_key",
    "maxItems": 100,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['domain']} - {item['name']} - Visits: {item['estimatedVisits']}")
```

#### JavaScript

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('silentflow/storeleads-scraper-ppe').call({
    domains: ['allbirds.com', 'gymshark.com'],
    apiKey: 'your_storeleads_api_key',
    maxItems: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => {
    console.log(`${item.domain} - ${item.name} - Visits: ${item.estimatedVisits}`);
});
```

### FAQ

**Q: Do I need to configure proxies?**
A: No, proxies are included and automatically configured.

**Q: What's the difference with the standard version?**
A: The standard version charges compute time and you provide your own proxy. This version includes everything at a flat rate per result.

**Q: Do I need a Store Leads account?**
A: Yes, you need either a Store Leads API key or session cookies for authentication.

**Q: How do I get a Store Leads API key?**
A: Log into storeleads.app, go to account settings, find the API tab, and generate a key.

**Q: Can I look up any domain?**
A: Store Leads tracks 13M+ active ecommerce stores. If a domain is in their database, you'll get data for it.

### Support

Need help? We're here for you:

- **Feature requests**: Let us know what you need
- **Custom solutions**: Contact us for enterprise integrations or high-volume needs

Check out our other scrapers: [SilentFlow on Apify](https://apify.com/silentflow)

# Actor input Schema

## `startUrls` (type: `array`):

Store Leads dashboard URL(s) with filters applied. Go to storeleads.app/dashboard, apply your filters, and paste the URL here.

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

List of domain names to look up directly (e.g., 'allbirds.com', 'gymshark.com'). Works with API key or session cookies. Without authentication, returns 1 preview result with basic data.

## `apiKey` (type: `string`):

Your Store Leads API key (recommended). Find it in your Store Leads account under Settings > API. Enables direct domain lookups, bulk queries, and richer data.

## `cookies` (type: `array`):

Store Leads session cookies (alternative to API key). Export cookies from your browser after logging into storeleads.app. Each cookie should have 'name', 'value', 'domain' fields.

## `maxItems` (type: `integer`):

The maximum total number of store/domain results to save.

## `maxPages` (type: `integer`):

Maximum number of result pages to scrape per dashboard search URL.

## `requestTimeout` (type: `integer`):

HTTP request timeout in seconds.

## `debugMode` (type: `boolean`):

Activate to see detailed logs for troubleshooting.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://storeleads.app/dashboard/domains/f%3Acc=US&f%3Ap=1"
    }
  ],
  "maxItems": 100,
  "maxPages": 10,
  "requestTimeout": 30,
  "debugMode": false
}
```

# Actor output Schema

## `results` (type: `string`):

Complete store data including: domain, name, location, platform, traffic estimates, sales, products, technologies, social profiles, contact info, categories, and 80+ fields.

## `resultsCSV` (type: `string`):

CSV format export for spreadsheet analysis

## `resultsExcel` (type: `string`):

Excel format export

# 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 = {
    "startUrls": [
        {
            "url": "https://storeleads.app/dashboard/domains/f%3Acc=US&f%3Ap=1"
        }
    ],
    "maxItems": 100,
    "maxPages": 10,
    "requestTimeout": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("silentflow/storeleads-scraper-ppe").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 = {
    "startUrls": [{ "url": "https://storeleads.app/dashboard/domains/f%3Acc=US&f%3Ap=1" }],
    "maxItems": 100,
    "maxPages": 10,
    "requestTimeout": 30,
}

# Run the Actor and wait for it to finish
run = client.actor("silentflow/storeleads-scraper-ppe").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 '{
  "startUrls": [
    {
      "url": "https://storeleads.app/dashboard/domains/f%3Acc=US&f%3Ap=1"
    }
  ],
  "maxItems": 100,
  "maxPages": 10,
  "requestTimeout": 30
}' |
apify call silentflow/storeleads-scraper-ppe --silent --output-dataset

```

## MCP server setup

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

```

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/eOXjDH0bayKUrhdVh/builds/5sY4u5qQSPcQTNsmq/openapi.json
