# Shopify Store B2B Leads Finder (`parsebird/shopify-b2b-leads-finder`) Actor

Find Shopify stores by niche keyword and extract B2B leads: emails, phones, addresses, owner names, social profiles, installed apps, product counts, and theme. Export as JSON, CSV, Excel.

- **URL**: https://apify.com/parsebird/shopify-b2b-leads-finder.md
- **Developed by:** [ParseBird](https://apify.com/parsebird) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 lead scrapeds

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/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 B2B Leads Finder

Turn a list of Shopify store domains into qualified B2B leads — emails, phone numbers, addresses, owner names, social profiles, installed apps, product counts, and store metadata.

<table><tr>
<td style="border-left:4px solid #5E8E3E;padding:12px 16px;font-weight:600">
Paste any list of store domains and get back verified Shopify stores enriched with contact details, 24 detectable apps, estimated catalogue size, wholesale and blog flags, and an auto-classified niche.
</td>
</tr></table>

<br>

<table>
<tr>
<td colspan="3" style="padding:10px 14px;background:#5E8E3E;border:none;border-radius:4px 4px 0 0">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">ParseBird Shopify Suite</span>
<span style="color:#E3F0DB;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Store discovery, lead enrichment, and product catalog tools</span>
</td>
</tr>
<tr>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:33%;background:#FFFFFF">
&nbsp;<a href="https://apify.com/parsebird/shopify-store-leads-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Shopify Store Leads Scraper</a><br>
<span style="color:#78716C;font-size:11px">Discover stores by keyword</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:33%;background:#EDF6E7">
&nbsp;<a href="https://apify.com/parsebird/shopify-b2b-leads-finder" style="color:#5E8E3E;text-decoration:none;font-weight:700;font-size:13px">Shopify Store B2B Leads Finder</a><br>
<span style="color:#5E8E3E;font-size:11px;font-weight:600">&#10148; You are here</span>
</td>
<td style="padding:10px 14px;border:1px solid #E7E5E4;border-radius:0 0 4px 0;border-top:none;vertical-align:top;width:34%;background:#FFFFFF">
&nbsp;<a href="https://apify.com/parsebird/shopify-products-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Shopify Products Scraper</a><br>
<span style="color:#78716C;font-size:11px">Full product catalog</span>
</td>
</tr>
</table>

##### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
Shopify Store B2B Leads Finder (parsebird/shopify-b2b-leads-finder) enriches Shopify store domains into B2B leads. Call via ApifyClient: client.actor("parsebird/shopify-b2b-leads-finder").call(run_input={"inputUrls": ["allbirds.com", "tentree.com"], "includeContactEnrichment": True}). Inputs: inputUrls (array of strings, REQUIRED — bare domains, full URLs, or .myshopify.com subdomains), includeContactEnrichment (bool, default true — visits contact/about pages for email/phone/address/owner), minProductCount (int, optional — drops stores with fewer products), maxStores (int 1-5000, default 100 — caps how many leads are returned), proxyConfiguration (object, default {"useApifyProxy": true}). Output fields per store: url, domain, storeName, contactEmail, phoneNumber, physicalAddress, ownerFounderName, socialLinks (instagram/facebook/twitter/tiktok/pinterest/linkedin/youtube), shopifyTheme, estimatedProductCount, reviewCount, storeNiche, metaDescription, hasBlog, hasWholesale, detectedApps, isShopify, scrapedAt. Every returned store is verified as Shopify; non-Shopify sites are dropped and never charged. Pricing is pay-per-event: $2.90/1,000 leads (Free), $2.70 (Bronze), $2.50 (Silver), $2.00 (Gold). Get API token: https://console.apify.com/account#/integrations
```

### What does Shopify Store B2B Leads Finder do?

Shopify Store B2B Leads Finder turns a list of store domains into a qualified prospect list of [Shopify](https://www.shopify.com) merchants. Give it any set of domains and it confirms which ones actually run on Shopify, then visits each store to pull out the details a B2B seller needs. Every row is a verified Shopify store — non-Shopify sites are detected, reported in the log, and dropped before they reach your dataset.

- 📋 **Bulk enrichment** — Feed it a CSV export, a competitor list, or the output of a discovery tool. Up to 5,000 stores per run, deduplicated by domain.
- ✅ **Shopify verification** — Confirmed through storefront CDN paths, the `Shopify` JavaScript object, generator meta tags, and analytics signatures. Headless Shopify stores are detected too, not just standard themes.
- 📧 **Contact enrichment** — Visits contact and about pages to find emails, phone numbers, postal addresses, and founder names, with placeholder and app-vendor addresses filtered out.
- 🧩 **App detection** — Identifies 24 common Shopify apps from page signatures, so you can target stores already paying for tooling.
- 📱 **Social profiles** — Instagram, Facebook, Twitter/X, TikTok, Pinterest, LinkedIn, and YouTube handles, with share-widget and Shopify-owned links excluded.
- 📦 **Catalogue size** — Estimated product count read from the store's sitemap, which works even on headless storefronts.
- 🏷️ **Niche classification** — Auto-sorts stores into 12 categories from the store name and description.
- 🤝 **Wholesale and blog flags** — Flags stores running a blog or publishing a wholesale, trade, or stockist page — a strong buying signal for B2B outreach.
- 🧹 **Automatic deduplication** — `store.com`, `www.store.com`, and a full product URL all collapse to one lead.

### What data can you extract from Shopify stores?

| Field | Type | Description |
|-------|------|-------------|
| **url** | string | Store URL as reached |
| **domain** | string | Normalized domain, `www` removed |
| **storeName** | string | From `og:site_name` or the page title |
| **contactEmail** | string | Best merchant email found, role addresses preferred |
| **phoneNumber** | string | Phone from `tel:` links or contact page text |
| **physicalAddress** | string | Postal address from structured data or contact page |
| **ownerFounderName** | string | Founder or owner name when the about page states it |
| **socialLinks** | object | Instagram, Facebook, Twitter/X, TikTok, Pinterest, LinkedIn, YouTube |
| **shopifyTheme** | string | Theme name as the merchant named it |
| **estimatedProductCount** | number | Catalogue size estimated from the sitemap |
| **reviewCount** | number | Review count when the store publishes structured rating data |
| **storeNiche** | string | Auto-detected category from 12 niches |
| **metaDescription** | string | Store's SEO meta description |
| **hasBlog** | boolean | Store runs a Shopify blog |
| **hasWholesale** | boolean | Store has a wholesale, trade, or stockist page |
| **detectedApps** | array | Shopify apps identified in the page source |
| **isShopify** | boolean | Confirmed Shopify storefront — always `true` in results |
| **scrapedAt** | string | ISO 8601 timestamp |

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| inputUrls | array | **Yes** | — | Store domains or URLs to enrich |
| includeContactEnrichment | boolean | No | `true` | Visit contact and about pages for email, phone, address, owner |
| minProductCount | integer | No | — | Drop stores with fewer products than this |
| maxStores | integer | No | 100 | Cap on how many verified leads are returned (1–5,000) |
| proxyConfiguration | object | No | `{"useApifyProxy": true}` | Proxy used for store pages |

Input example:

```json
{
    "inputUrls": ["https://allbirds.com", "https://tentree.com", "https://meundies.com"],
    "includeContactEnrichment": true,
    "minProductCount": 5
}
```

### How to find Shopify store leads

1. **Open the Actor** — Go to [Shopify Store B2B Leads Finder](https://apify.com/parsebird/shopify-b2b-leads-finder) and click **Try for free**.
2. **Paste your store domains** — One per row in **Store URLs**. Bare domains, full URLs, and `.myshopify.com` subdomains all work, and duplicates are merged automatically.
3. **Keep contact enrichment on** — Leave **Visit contact and about pages** enabled to collect emails, phones, addresses, and owner names. Turn it off for a faster homepage-only pass.
4. **Filter out hobby stores** — Set **Minimum product count** to something like `20` to skip abandoned and test stores.
5. **Click Start** — Each domain is verified as Shopify, then enriched. Leads stream into the dataset as they complete.
6. **Check the log for skips** — Non-Shopify sites and stores below your product threshold are listed explicitly, so you know why a domain is missing.
7. **Export** — Download as **JSON, CSV, Excel, XML, or HTML**, or pull results through the [Apify API](https://docs.apify.com/api/v2).

Need to find stores in the first place? Run [Shopify Store Leads Scraper](https://apify.com/parsebird/shopify-store-leads-scraper) to discover them by keyword or category, then feed its domains into this actor.

### Output example

```json
{
    "url": "https://candlebliss.com",
    "domain": "candlebliss.com",
    "storeName": "Candle Bliss",
    "contactEmail": "hello@candlebliss.com",
    "phoneNumber": "+1 (512) 847-3920",
    "physicalAddress": "4821 Burnet Rd, Austin, TX, 78756",
    "ownerFounderName": "Jessica Hartwell",
    "socialLinks": {
        "instagram": "candlebliss",
        "facebook": "candleblissco",
        "twitter": null,
        "tiktok": "candlebliss",
        "pinterest": null,
        "linkedin": null,
        "youtube": null
    },
    "shopifyTheme": "Dawn",
    "estimatedProductCount": 112,
    "reviewCount": null,
    "storeNiche": "Home & Garden",
    "metaDescription": "Hand-poured soy candles. Free shipping on orders over $50.",
    "hasBlog": true,
    "hasWholesale": true,
    "detectedApps": ["Klaviyo", "Judge.me", "Afterpay"],
    "isShopify": true,
    "scrapedAt": "2026-08-05T14:29:32.749580+00:00"
}
```

Download results in **JSON, CSV, Excel, XML, or HTML** from the [Apify dataset](https://docs.apify.com/platform/storage/dataset).

### Detected apps

The actor identifies these Shopify apps from page-source signatures:

Klaviyo · ReCharge · Gorgias · Yotpo · Okendo · LoyaltyLion · Privy · SMSBump · Postscript · Attentive · Tidio · Intercom · Hotjar · Omnisend · Judge.me · Stamped.io · Loox · Afterpay · Klarna · ShipStation · Shogun · PageFly · GemPages · Bold Commerce

Apps only appear in `detectedApps` when the storefront actually loads their scripts, so an empty array means no signature was present — commonly the case on small stores and headless builds.

### Use cases

**Shopify agency prospecting** — Qualify a list of stores before pitching design, CRO, or development work. Use `detectedApps` to spot stores already investing in tooling, and `shopifyTheme` to find those still on a default theme.

**App and SaaS sales** — Target merchants by the apps they run. Sell a reviews app to stores without Judge.me or Okendo, or a retention tool to stores already paying for Klaviyo.

**Wholesale and supplier outreach** — Filter on `hasWholesale` to find merchants who already sell B2B, then contact them through the address and phone number on file.

**Competitive research** — Profile a set of competitors: catalogue size, apps they pay for, theme, and whether they sell wholesale.

**Influencer and partnership sourcing** — Use `socialLinks` to find merchants with an existing audience for co-marketing.

**CRM enrichment** — Feed a list of known store domains through **Store URLs** to append emails, apps, catalogue size, and social profiles to records you already hold.

### How it works

1. **Normalization and dedupe** — Every entry is reduced to a bare domain: schemes, credentials, ports, paths, and query strings are stripped, `www` is removed, and internationalized domains are converted to punycode. Duplicates collapse before any request is made.
2. **Homepage fetch** — Each store is fetched, falling back between the `www` and non-`www` host so a storefront that answers on only one still resolves.
3. **Shopify verification** — The page is checked for storefront CDN paths, the `Shopify` JavaScript object, generator meta tags, and analytics signatures. Anything unverified is dropped and never charged.
4. **Sitemap analysis** — The sitemap index yields catalogue size, blog presence, and wholesale or stockist pages. This beats scanning the homepage, because many stores run a blog or wholesale page without linking it from the front page.
5. **Contact enrichment** — Contact and about pages are visited in turn until an email, phone, address, and owner name are found, stopping early once the record is complete.
6. **Delivery** — Verified leads are pushed to the dataset as they complete, so partial results survive an aborted run. Stores are processed five at a time.

### How much does it cost to find Shopify store leads?

Pay-per-event pricing — you pay only for verified Shopify leads delivered, never for candidates that fail verification or for compute time.

| Plan | Price per lead | Price per 1,000 leads |
|------|---------------:|----------------------:|
| Free | $0.0029 | **$2.90** |
| Bronze | $0.0027 | **$2.70** |
| Silver | $0.0025 | **$2.50** |
| Gold | $0.0020 | **$2.00** |

**Example:** 500 verified store leads cost **$1.45** on the Free plan and **$1.00** on Gold.

New users get a [free trial](https://apify.com/pricing) with platform credits, enough to pull your first few hundred leads before paying. See the [Pricing tab](https://apify.com/parsebird/shopify-b2b-leads-finder) for current rates.

### Programmatic API usage

#### Python

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")

run_input = {
    "inputUrls": ["allbirds.com", "tentree.com", "deathwishcoffee.com"],
    "includeContactEnrichment": True,
    "minProductCount": 20,
}

run = client.actor("parsebird/shopify-b2b-leads-finder").call(run_input=run_input)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    if item["contactEmail"]:
        print(f"{item['storeName']} <{item['contactEmail']}> "
              f"{item['storeNiche']} — {item['estimatedProductCount']} products "
              f"— apps: {', '.join(item['detectedApps']) or 'none'}")
```

#### JavaScript

```javascript
import { ApifyClient } from "apify-client";

const client = new ApifyClient({ token: "<YOUR_API_TOKEN>" });

const run = await client.actor("parsebird/shopify-b2b-leads-finder").call({
    inputUrls: ["allbirds.com", "tentree.com", "deathwishcoffee.com"],
    includeContactEnrichment: true,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();

items
    .filter((store) => store.hasWholesale && store.contactEmail)
    .forEach((store) => {
        console.log(`${store.storeName} — ${store.contactEmail} — ${store.domain}`);
    });
```

Get your API token at [Apify Console → Integrations](https://console.apify.com/account#/integrations), and see the [Apify API reference](https://docs.apify.com/api/v2) for all endpoints.

Use [Apify scheduling](https://docs.apify.com/platform/schedules) to refresh lead lists weekly, and connect [integrations](https://apify.com/integrations) to push new leads into Google Sheets, Slack, HubSpot, Zapier, Make, or your CRM.

### Is it legal to scrape Shopify store data?

Shopify Store B2B Leads Finder collects **publicly available business information** that merchants publish on their own storefronts — company names, business contact details, social profiles, and catalogue metadata. It does not log in, bypass authentication, or touch customer data or merchant admin systems.

Business contact data is treated differently from personal data in most jurisdictions, but the distinction is not absolute: a sole trader's email can still be personal data under the [GDPR](https://gdpr.eu/), and B2B outreach is separately governed by anti-spam rules such as CAN-SPAM, CASL, and the ePrivacy Directive. If you email the leads this actor returns, make sure you have a lawful basis, identify yourself, and honour opt-outs.

Review [Shopify's terms of service](https://www.shopify.com/legal/terms) and see [Apify's guide on the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/) for more background.

### Related Actors

More ParseBird tools on the [Apify Store](https://apify.com/parsebird):

- [Shopify Products Scraper](https://apify.com/parsebird/shopify-products-scraper) — Pull the full product catalogue, prices, and stock of any store you find here
- [Shopify Store Leads Scraper](https://apify.com/parsebird/shopify-store-leads-scraper) — Discover Shopify stores through the Shop marketplace, with ratings and review counts
- [Website Contact Finder](https://apify.com/parsebird/website-contact-finder) — Extract emails, phones, and socials from any website, Shopify or not
- [Data Deduplicator](https://apify.com/parsebird/dataset-deduplicator) — Merge and dedupe lead lists from multiple runs
- [Data Cleaner](https://apify.com/parsebird/data-cleaner) — Normalize lead data before importing into a CRM

### FAQ

**Where do I get the store domains to feed in?**
Any list works — a CSV export, a competitor spreadsheet, a CRM dump, or the output of a discovery tool. [Shopify Store Leads Scraper](https://apify.com/parsebird/shopify-store-leads-scraper) finds Shopify stores by keyword or category, and its domains drop straight into this actor.

**Why do some stores return no email?**
Small stores, especially those still on a default `.myshopify.com` domain, often publish no contact page at all. Set `minProductCount` to around 20 to bias toward established stores, which have far better contact coverage. Turning off contact enrichment also removes emails entirely, by design.

**What happens to domains that are not Shopify?**
They are verified, skipped, logged with the reason, and never charged. The end-of-run summary counts how many were dropped as non-Shopify, how many fell below your product threshold, and how many were unreachable.

**Are all returned stores really on Shopify?**
Yes. `isShopify` is verified from the live page before a store is added, and unverified sites are dropped without being charged. Headless Shopify storefronts — custom frontends backed by Shopify — are detected as well.

**Why is `ownerFounderName` usually empty?**
It is only filled when an about page states the founder in a recognisable phrasing such as "founded by Jane Doe". Most stores never name a person, so the field stays `null` rather than guessing.

**Why does `shopifyTheme` show something odd like "Copy of production"?**
That is the theme name the merchant chose in their admin. Stores routinely duplicate and rename themes, so real values are often messier than catalogue names like "Dawn". The field reports what the store actually publishes.

**Is `estimatedProductCount` exact?**
It is an estimate. Counts come from the store's product sitemaps; when a store has more sitemap files than the actor samples, the total is extrapolated. For an exact catalogue, run [Shopify Products Scraper](https://apify.com/parsebird/shopify-products-scraper) against the domain.

**Can I turn off contact enrichment?**
Yes. Switch off **Visit contact and about pages** for a faster run that uses homepage data only. You still get store name, apps, socials, theme, niche, product count, and the blog and wholesale flags.

**Do I need a proxy?**
Apify Proxy is on by default because storefronts often block datacenter traffic. If a specific store still refuses to load, switch the proxy to the Residential group in the Advanced section.

**Are duplicates removed?**
Yes. Leads are deduplicated by normalized domain, so `store.com`, `www.store.com`, and a deep product URL all resolve to a single row.

**Can I schedule recurring runs?**
Yes. Use [Apify schedules](https://docs.apify.com/platform/schedules) to re-enrich your store list on a cadence and catch newly added apps, wholesale pages, or contact details.

**Something looks wrong — where do I report it?**
Open a report on the actor's **Issues** tab in Apify Console with the domain you used and the log output. Feedback and feature requests are welcome.

# Actor input Schema

## `inputUrls` (type: `array`):

One store per row. Bare domains (<code>allbirds.com</code>), full URLs (<code>https://tentree.com/collections/mens</code>), and <code>.myshopify.com</code> subdomains all work.<br><br>Sites that do not run on Shopify are detected, reported in the log, and left out of your results.

## `includeContactEnrichment` (type: `boolean`):

Fetch each store's contact and about pages to find emails, phone numbers, addresses, and owner names. Turn off for a faster run that uses homepage data only.

## `minProductCount` (type: `integer`):

Skip stores with fewer products than this. Useful for filtering out empty or abandoned stores. Leave empty to keep every verified Shopify store.

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

Stop after this many verified leads, even if more store URLs were supplied.

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

Apify Proxy is on by default because storefronts frequently block datacenter traffic. Switch to the Residential group if a store still refuses to load.

## Actor input object example

```json
{
  "inputUrls": [
    "allbirds.com",
    "tentree.com"
  ],
  "includeContactEnrichment": true,
  "maxStores": 100,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "inputUrls": [
        "allbirds.com",
        "tentree.com"
    ],
    "maxStores": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("parsebird/shopify-b2b-leads-finder").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 = {
    "inputUrls": [
        "allbirds.com",
        "tentree.com",
    ],
    "maxStores": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("parsebird/shopify-b2b-leads-finder").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 '{
  "inputUrls": [
    "allbirds.com",
    "tentree.com"
  ],
  "maxStores": 100
}' |
apify call parsebird/shopify-b2b-leads-finder --silent --output-dataset

```

## MCP server setup

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

```

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/QwByCviXosXfyrwTh/builds/CpohZ9dS3fXEmaDxf/openapi.json
