# Faire Email Scraper (`leads-scraper/faire-email-scraper`) Actor

Faire Email Scraper SD - Faire Email Scraper is a lead generation tool that extracts leads with public contact emails, account names and profile URLs from Faire results by keyword, location and email domain - Faire email extractor.

- **URL**: https://apify.com/leads-scraper/faire-email-scraper.md
- **Developed by:** [Leads Scraper](https://apify.com/leads-scraper) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.49 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
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

### Faire Email Scraper — public wholesale brand contacts from Google's index

The **Faire Email Scraper** collects publicly indexed contact emails connected to `faire.com` pages and exports them as a clean, deduplicated dataset. It is built for independent-brand wholesale: boutique buyers, sales reps and B2B vendors who need a shortlist of real wholesale marketplace contacts.

One honest caveat up front, because it shapes everything else. **Faire gates most brand pages behind a login, so results skew to public product and brand-directory pages and volume is modest.** The Faire Email Scraper does not log in and cannot log in — it only reads what Google has already indexed.

That login gate is a boundary this Actor respects rather than an obstacle it defeats. There is no browser, no JavaScript rendering, no cookies and no authentication anywhere in the Faire Email Scraper. Everything it returns was already sitting in a public Google search result.

The payoff is quality, not bulk. In live testing this Faire email extractor resolved a Faire handle for roughly **2 in 10 rows**, so many rows carry `username: null` and an empty `profileUrl`. For B2B wholesale prospecting that trade is usually fine: one qualified Faire wholesale brand contact is worth more than a thousand scraped nobodies.

Actor page: <https://apify.com/leads-scraper/faire-email-scraper>

### What the Faire Email Scraper does

The Faire Email Scraper is a Google SERP scraping tool pointed at a single domain, `faire.com`. It builds `site:faire.com` queries from your keywords, email domains and optional location, then reads the result pages through the Apify GOOGLE\_SERP proxy.

Each result block is parsed structurally, emails are pulled out with a domain-filtered regex, and every unique address is pushed straight to the dataset. Nothing is fetched from Faire itself — the Faire Email Scraper never opens `faire.com` in a browser.

Because it works from snippet parsing rather than page rendering, this Faire email extractor is cheap to run, easy to resume and completely blind to anything Faire keeps private. That is by design.

Think of it as Faire lead generation by index, not by intrusion: a wholesale supplier email list assembled from public search results, aimed at independent brand leads you could have found by hand with far more effort.

### Features of the Faire Email Scraper

| Feature | What it means for you |
|---|---|
| `site:` operator targeting | Every query is scoped to `faire.com`, so the Faire Email Scraper stays on-platform. |
| Query expansion | Base, quoted and `intitle:` variants plus one per query modifier; base queries run first. |
| Domain-filtered regex | Only emails ending in your `customDomains` are kept — no generic sweep. |
| Global deduplication | One row per unique email across every query and every page. |
| Email normalisation | Understands `name [at] domain [dot] com`, `(at)`, `name @ domain.com`, `domain .com`, zero-width characters and the full-width `＠`. |
| Junk filter | Rejects placeholders such as `email@`, `yourname@`, `test@`, `xxx@` and single-character locals. |
| Boundary-correct matching | `@gmail.com` will not match inside `@gmail.company` or `@gmail.com.br`. |
| Soft-wrap repair | Drops a hit that is only the tail of another email in the same block. |
| Structural block parsing | Finds the `<h3>` title then the smallest surrounding block — no dependence on Google CSS class names. |
| Whole-page fallback parser | A Google layout change degrades to "emails without account details", not "no emails". |
| CAPTCHA detection | CAPTCHA, "unusual traffic" and consent pages are detected and retried, not counted as empty. |
| Exponential backoff | Up to 3 attempts per page, with a fresh proxy session per request. |
| Retry queue | Blocked or failed queries are re-queued once at the end of the run. |
| Resumable state | Progress is stored in the key-value store, keyed by an input hash, and saved on `PERSIST_STATE`, `MIGRATING` and `ABORTING`. |
| Async worker pool | `maxConcurrency` parallel queries with a shared stop signal on `maxEmails`. |
| Dataset export | CSV/JSON and every other Apify export format, straight into your CRM or sheet. |
| Run summary | Logs pages fetched, blocked pages, retries and emails per page. |

### How the Faire Email Scraper works

Step one, the Faire Email Scraper reads your input: keywords, location, email domains and limits. Step two, it composes Google queries with the `site:` operator, for example `site:faire.com wholesale brand "@gmail.com" "Portland"`.

Step three, it fetches Google result pages asynchronously through the Apify GOOGLE\_SERP proxy, rotating proxy sessions and backing off exponentially on failure. Step four, it locates each result block structurally and runs snippet parsing over the block text.

Step five, the domain-filtered regex extracts candidate addresses, normalisation and the junk filter clean them, and global deduplication removes repeats. Step six, each surviving lead is pushed to the dataset immediately, so you can start reading results while the run is still going.

### Faire Email Scraper input fields

| Field | Type | Default | Meaning |
|---|---|---|---|
| `keywords` | array (required) | `["wholesale brand","supplier"]` | Search terms describing the Faire accounts you want. |
| `location` | string | `""` | Optional location phrase added to every query. |
| `customDomains` | array | `["@gmail.com","@yahoo.com"]` | Only emails on these domains are kept; the leading `@` is optional. |
| `maxEmails` | integer 1-10000 | `20` | Stop after this many unique emails. |
| `countryCode` | string | `""` | Two-letter country for the search proxy (US, GB, DE...). |
| `expandQueries` | boolean | `true` | Search each keyword x domain pair in several phrasings. |
| `queryModifiers` | array | `["email","contact","wholesale","stockist","sales"]` | Extra words combined with each keyword when expansion is on. |
| `maxPagesPerQuery` | integer 1-50 | `30` | Page cap per query. |
| `maxConcurrency` | integer 1-20 | `5` | Parallel queries. |

#### Faire Email Scraper input example

A broad first pass with the defaults, useful for baseline supplier discovery.

```json
{
  "keywords": ["wholesale brand", "supplier"],
  "location": "",
  "customDomains": ["@gmail.com", "@yahoo.com"],
  "maxEmails": 20,
  "countryCode": "",
  "expandQueries": true,
  "queryModifiers": ["email", "contact", "wholesale", "stockist", "sales"],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

#### Second Faire Email Scraper input example — niche wholesale category

Narrow category, a location phrase and a raised `maxEmails`. This is how most buyers should actually run the Faire Email Scraper.

```json
{
  "keywords": ["ceramic homeware wholesale", "handmade candle brand", "artisan home decor supplier"],
  "location": "Portland",
  "customDomains": ["@gmail.com", "@yahoo.com", "@outlook.com", "@hotmail.com"],
  "maxEmails": 150,
  "countryCode": "US",
  "expandQueries": true,
  "queryModifiers": ["email", "contact", "wholesale", "stockist", "sales"],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

Widening `customDomains` matters more on Faire than on most platforms, because the pool of indexed public pages is smaller to begin with.

### Faire Email Scraper output fields

Every dataset item from the Faire Email Scraper has all fourteen fields, always in the same shape.

| Field | Meaning |
|---|---|
| `network` | Platform name. |
| `keyword` | The keyword that produced the lead. |
| `query` | The exact Google query used. |
| `title` | Raw result title. |
| `accountName` | Account label Google prints. |
| `fullName` | Display name parsed from a profile-style title; empty for product captions. |
| `username` | URL-safe handle when Faire exposes one in the result; otherwise `null`. |
| `profileUrl` | `https://www.faire.com/brand/{username}` when a handle is known; otherwise empty. |
| `url` | Direct Faire link when exposed, else the profile URL. |
| `description` | Bio or caption snippet, cleaned of labels and counters. |
| `email` | Lower-cased email address. |
| `emailDomain` | The matched domain, e.g. `@gmail.com`. |
| `possiblyTruncated` | `true` when Google's snippet ellipsis touched the email — verify before sending. |
| `foundAt` | ISO 8601 UTC timestamp. |

#### Faire Email Scraper output example

Three realistic rows. Note that two of them have no handle — that is the normal Faire shape, not an error.

```json
[
  {
    "network": "Faire",
    "keyword": "wholesale brand",
    "query": "site:faire.com wholesale brand \"@gmail.com\"",
    "title": "Meadowlark Ceramics - Wholesale on Faire",
    "accountName": "Meadowlark Ceramics",
    "fullName": "Meadowlark Ceramics",
    "username": "meadowlark-ceramics",
    "profileUrl": "https://www.faire.com/brand/meadowlark-ceramics",
    "url": "https://www.faire.com/brand/meadowlark-ceramics",
    "description": "Small-batch stoneware from Asheville. Wholesale enquiries: meadowlark.ceramics@gmail.com",
    "email": "meadowlark.ceramics@gmail.com",
    "emailDomain": "@gmail.com",
    "possiblyTruncated": false,
    "foundAt": "2026-08-31T09:14:22Z"
  },
  {
    "network": "Faire",
    "keyword": "supplier",
    "query": "site:faire.com supplier contact \"@gmail.com\"",
    "title": "Hand-Poured Soy Candle, Cedar & Sage - Wholesale",
    "accountName": "Northfield Candle Co.",
    "fullName": "",
    "username": null,
    "profileUrl": "",
    "url": "https://www.faire.com/product/p_8v2qk1nzrt",
    "description": "Case pack of 12. Stockist and sales questions to northfieldcandleco@gmail.com",
    "email": "northfieldcandleco@gmail.com",
    "emailDomain": "@gmail.com",
    "possiblyTruncated": false,
    "foundAt": "2026-08-31T09:16:05Z"
  },
  {
    "network": "Faire",
    "keyword": "wholesale brand",
    "query": "site:faire.com wholesale brand stockist \"@yahoo.com\"",
    "title": "Home Decor Brands - Wholesale Candles",
    "accountName": "Willow & Ash Studio",
    "fullName": "",
    "username": null,
    "profileUrl": "",
    "url": "https://www.faire.com/category/home-decor/candles",
    "description": "Independent home fragrance makers. Line sheet requests: willowashstudio@yahoo.com ...",
    "email": "willowashstudio@yahoo.com",
    "emailDomain": "@yahoo.com",
    "possiblyTruncated": true,
    "foundAt": "2026-08-31T09:18:47Z"
  }
]
```

### Use cases for the Faire Email Scraper

| Who | How they use the Faire Email Scraper |
|---|---|
| Independent retailers and boutique buyers | Build a supplier shortlist for assortment planning before market week. |
| Wholesale sales reps | Find independent brand leads in a category they already sell into. |
| Brand-side BD teams | Map neighbouring brands for co-marketing and stockist swaps. |
| Retail-tech and B2B-commerce SaaS vendors | ICP research and cold outreach to brands already selling wholesale. |
| Trade-show organisers | Recruit exhibitors from a live wholesale marketplace contacts list. |
| Buying groups | Source Faire wholesale brand contact details for collective negotiation. |
| Agencies serving independent retail | Deliver retail buyer leads and Faire lead generation to clients. |
| Sourcing and merchandising teams | Wholesale sourcing research across a specific product category. |

### Who the Faire Email Scraper is for

If you sell to, buy from, or build software for independent brands, the Faire Email Scraper fits your workflow. A single Faire brand email that turns into a stocked line or a signed contract pays for a lot of runs, which is what makes Faire lead generation worth doing at low volume.

Retail buyer leads and independent brand leads behave the same way in a pipeline: a handful of well-matched wholesale marketplace contacts converts better than a mass import nobody reads.

If you want a bulk list of a hundred thousand addresses, this is the wrong tool and the wrong platform. Faire's login gate makes that impossible, and the Faire Email Scraper will not pretend otherwise.

Small, high-intent lists beat big noisy ones for B2B wholesale prospecting. That is the honest value proposition of the Faire Email Scraper: a modest wholesale supplier email list you can actually work through by hand, one Faire wholesale brand contact at a time.

### Pairing the Faire Email Scraper with neighbouring platforms

Faire brands rarely live on Faire alone, so widen the net. Many of them also run a direct-to-consumer shop you can reach with the [Shopify Store Email Scraper](https://apify.com/leads-scraper/shopify-store-email-scraper) or the [WooCommerce Email Scraper](https://apify.com/neuro-scraper/woocommerce-email-scraper).

Makers who wholesale on Faire very often sell retail on Etsy, which makes the [Etsy Email Scraper](https://apify.com/leads-scraper/etsy-email-scraper) the closest sibling to the Faire Email Scraper. For upstream wholesale sourcing, try the [AliExpress Email Scraper](https://apify.com/neuro-scraper/aliexpress-email-scraper) or the [DHgate Email Scraper](https://apify.com/neuro-scraper/dhgate-email-scraper).

If your ICP is larger vendors rather than independent brands, the [Amazon Email Scraper](https://apify.com/leads-scraper/amazon-email-scraper) covers the mass-market end of the same funnel.

### Tips for getting more from the Faire Email Scraper

Use narrow category keywords, not generic ones. "handmade candle brand" out-performs "supplier" every time in the Faire Email Scraper, because indexed public pages tend to be product and category pages full of specific nouns.

Add `@outlook.com`, `@hotmail.com`, `@icloud.com` and your own guesses to `customDomains`. Small indie brands use consumer mailboxes far more than corporate ones, so a wider domain list directly raises how many wholesale marketplace contacts this Faire email extractor can return.

Keep `expandQueries: true`, raise `maxEmails`, set a `countryCode` that matches your market, and re-run with different keyword sets rather than one giant run.

### Limitations

**Faire gates most brand pages behind a login, so results skew to public product and brand-directory pages and volume is modest.** Because Faire requires a login for most brand pages, Google indexes comparatively little, so the Actor's reachable surface is public product pages and brand-directory pages. In live testing roughly 2 in 10 rows resolved a Faire identity.

The Faire Email Scraper only finds accounts whose email is publicly visible in Google's index. If nobody published it, it is not there.

Google caps a single query at roughly 300 results, which is exactly why query expansion exists in the Faire Email Scraper.

`possiblyTruncated: true` means Google's snippet ellipsis may have cut the address — verify those before sending anything.

The Faire Email Scraper requires the Apify GOOGLE\_SERP proxy and cannot run without Apify proxy credentials.

Free Apify plans are capped at 100 emails per run; paid plans are uncapped by the Actor.

`username` and `profileUrl` are populated only when Faire exposes a handle inside Google's result. Empty values are a Google indexing limitation, not a bug in the Faire Email Scraper.

Results vary with keywords, domains and location. No volume is guaranteed.

### Responsible use

You are the data controller for anything the Faire Email Scraper collects. Comply with GDPR, CCPA and any local rules that apply to you.

For B2B outreach, establish a lawful basis such as legitimate interest, keep records, identify yourself clearly and honour every opt-out and unsubscribe request immediately.

Respect Faire's marketplace terms, do not send bulk unsolicited mail, and keep messages relevant to the recipient's actual wholesale business. The Faire Email Scraper is a research tool, not a spam cannon.

### Faire Email Scraper FAQ

#### How many results should I expect?

Honestly: a modest number. Faire gates most brand pages behind a login, so results skew to public product and brand-directory pages and volume is modest. Results also vary with your keywords, domains and location, and no volume is guaranteed. Expect a small, high-value wholesale supplier email list rather than a bulk export — and to get more, widen `customDomains`, use more specific `keywords`, and raise `maxEmails`.

#### Does the Faire Email Scraper log into Faire?

No. It never logs in, never uses cookies, never opens a browser and never touches Faire's API. It reads publicly indexed Google search results only, and treats Faire's login gate as a hard boundary.

#### Why is `profileUrl` empty on so many rows?

Because Google often surfaces a public product page or a category listing rather than a brand page with an exposed handle. When no handle appears, `username` is `null` and `profileUrl` is empty. That is a Google limitation, and it is why identity resolution measured about 2/10 in testing.

#### Is the Faire Email Scraper affiliated with Faire?

No. It is an independent Apify Actor with no affiliation, endorsement or official relationship with Faire.

#### Do I need the Apify proxy?

Yes. The Faire Email Scraper runs entirely through the Apify GOOGLE\_SERP proxy and will not work without Apify proxy credentials.

#### Is scraping public search results legal?

The Faire Email Scraper only reads publicly indexed Google results. How you then use personal data is your responsibility under GDPR, CCPA and local marketing law, so get advice if you are unsure.

#### What does `possiblyTruncated` mean?

Google's snippet ellipsis may have clipped the address mid-string. Verify those rows before adding them to a cold outreach sequence.

#### Can I export to CSV?

Yes. Dataset export supports CSV/JSON and every other Apify format, so your wholesale supplier email list drops straight into a CRM, a sheet or a sequencing tool.

#### Can I resume an interrupted run?

Yes. Resumable state is stored in the key-value store keyed by an input hash, and saved on Apify's `PERSIST_STATE`, `MIGRATING` and `ABORTING` events.

#### What if Google blocks a page?

CAPTCHA detection catches CAPTCHA, "unusual traffic" and consent pages. The page is retried with exponential backoff on a fresh proxy session, and failed queries are re-queued once at the end of the run.

#### Which keywords work best?

Specific category and product nouns beat job titles. Think "artisan home decor supplier" or "wholesale ceramic mugs" rather than "brand", and run the Faire Email Scraper several times with different niches.

#### Can it find emails Faire hides behind login?

No, and it does not try. The Faire Email Scraper reads only what Google already indexed, which is the whole reason its volume on Faire is modest.

### Related Actors

| Actor | What it collects |
|---|---|
| [Faire Email and Phone Number Scraper](https://apify.com/leads-scraper/faire-email-and-phone-number-scraper) | Emails and phone numbers from Faire |
| [Faire Phone Number Scraper](https://apify.com/leads-scraper/faire-phone-number-scraper) | Public phone numbers from Faire |
| [AliExpress Email Scraper](https://apify.com/neuro-scraper/aliexpress-email-scraper) | Public contact emails from AliExpress |
| [Allegro Email Scraper](https://apify.com/neuro-scraper/allegro-email-scraper) | Public contact emails from Allegro |
| [Amazon Email Scraper](https://apify.com/leads-scraper/amazon-email-scraper) | Public contact emails from Amazon |
| [Best Buy Seller Email Scraper](https://apify.com/leads-scraper/best-buy-seller-email-scraper) | Public contact emails from Best Buy |
| [BigCommerce Store Email Scraper](https://apify.com/neuro-scraper/bigcommerce-store-email-scraper) | Public contact emails from BigCommerce Store |
| [Cdiscount Email Scraper](https://apify.com/neuro-scraper/cdiscount-email-scraper) | Public contact emails from Cdiscount |
| [Coupang Email Scraper](https://apify.com/neuro-scraper/coupang-email-scraper) | Public contact emails from Coupang |
| [Depop Email Scraper](https://apify.com/leads-scraper/depop-email-scraper) | Public contact emails from Depop |
| [DHgate Email Scraper](https://apify.com/neuro-scraper/dhgate-email-scraper) | Public contact emails from DHgate |
| [eBay Email Scraper](https://apify.com/leads-scraper/ebay-email-scraper) | Public contact emails from eBay |
| [Ecwid Store Email Scraper](https://apify.com/neuro-scraper/ecwid-store-email-scraper) | Public contact emails from Ecwid Store |
| [Etsy Email Scraper](https://apify.com/leads-scraper/etsy-email-scraper) | Public contact emails from Etsy |
| [Flipkart Email Scraper](https://apify.com/leads-scraper/flipkart-email-scraper) | Public contact emails from Flipkart |
| [Home Depot Seller Email Scraper](https://apify.com/leads-scraper/home-depot-seller-email-scraper) | Public contact emails from Home Depot |
| [JD.com Email Scraper](https://apify.com/leads-scraper/jd-com-email-scraper) | Public contact emails from JD.com |
| [Lazada Email Scraper](https://apify.com/neuro-scraper/lazada-email-scraper) | Public contact emails from Lazada |
| [Lowe's Seller Email Scraper](https://apify.com/leads-scraper/lowes-seller-email-scraper) | Public contact emails from Lowe's |
| [MercadoLibre Email Scraper](https://apify.com/neuro-scraper/mercadolibre-email-scraper) | Public contact emails from MercadoLibre |
| [Mercari Email Scraper](https://apify.com/neuro-scraper/mercari-email-scraper) | Public contact emails from Mercari |
| [Newegg Email Scraper](https://apify.com/leads-scraper/newegg-email-scraper) | Public contact emails from Newegg |
| [Otto Email Scraper](https://apify.com/leads-scraper/otto-email-scraper) | Public contact emails from Otto |
| [Overstock Email Scraper](https://apify.com/leads-scraper/overstock-email-scraper) | Public contact emails from Overstock |
| [Poshmark Email Scraper](https://apify.com/leads-scraper/poshmark-email-scraper) | Public contact emails from Poshmark |
| [Rakuten Email Scraper](https://apify.com/neuro-scraper/rakuten-email-scraper) | Public contact emails from Rakuten |
| [Shopee Email Scraper](https://apify.com/leads-scraper/shopee-email-scraper) | Public contact emails from Shopee |
| [Shopify Store Email Scraper](https://apify.com/leads-scraper/shopify-store-email-scraper) | Public contact emails from Shopify Store |
| [Taobao Email Scraper](https://apify.com/leads-scraper/taobao-email-scraper) | Public contact emails from Taobao |
| [Target Seller Email Scraper](https://apify.com/neuro-scraper/target-seller-email-scraper) | Public contact emails from Target |
| [Temu Email Scraper](https://apify.com/leads-scraper/temu-email-scraper) | Public contact emails from Temu |
| [Tmall Email Scraper](https://apify.com/leads-scraper/tmall-email-scraper) | Public contact emails from Tmall |
| [Vinted Email Scraper](https://apify.com/leads-scraper/vinted-email-scraper) | Public contact emails from Vinted |
| [Walmart Email Scraper](https://apify.com/leads-scraper/walmart-email-scraper) | Public contact emails from Walmart |
| [Wayfair Email Scraper](https://apify.com/neuro-scraper/wayfair-email-scraper) | Public contact emails from Wayfair |
| [Wish Email Scraper](https://apify.com/leads-scraper/wish-email-scraper) | Public contact emails from Wish |
| [Wix Stores Email Scraper](https://apify.com/leads-scraper/wix-stores-email-scraper) | Public contact emails from Wix Stores |
| [WooCommerce Email Scraper](https://apify.com/neuro-scraper/woocommerce-email-scraper) | Public contact emails from WooCommerce |
| [Zalando Email Scraper](https://apify.com/leads-scraper/zalando-email-scraper) | Public contact emails from Zalando |
| [AliExpress Email and Phone Number Scraper](https://apify.com/neuro-scraper/aliexpress-email-and-phone-number-scraper) | Emails and phone numbers from AliExpress |
| [Allegro Email and Phone Number Scraper](https://apify.com/neuro-scraper/allegro-email-and-phone-number-scraper) | Emails and phone numbers from Allegro |
| [Amazon Email and Phone Number Scraper](https://apify.com/leads-scraper/amazon-email-and-phone-number-scraper) | Emails and phone numbers from Amazon |

### Leave a review

If the Faire Email Scraper saved you time, please leave a star rating and a short review on the
Actor page.

Reviews are how other buyers judge whether a tool works, and they tell us which features to
build next.

If something did not work, email <neurodata.apify@gmail.com>
instead - bugs get fixed faster than they get complained about.

### Support

Questions, a bug report, or a custom build? Email **neurodata.apify@gmail.com** and we will help you get the Faire Email Scraper tuned for your category.

# Actor input Schema

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

Search terms describing the Faire accounts you want (niche, job title, industry).

## `location` (type: `string`):

Optional location phrase added to every query (e.g. "New York").

## `customDomains` (type: `array`):

Only emails ending with one of these domains are collected. With or without the leading @. Each domain is searched separately, so more domains means more results but a longer run - remove some for a faster, narrower search, or add your own (e.g. @company.com).

## `maxEmails` (type: `integer`):

Stop once this many unique emails have been collected.

## `countryCode` (type: `string`):

Two-letter country code for the search proxy (e.g. US, GB, DE). Empty for any.

## `expandQueries` (type: `boolean`):

Search each keyword x domain pair with several phrasings. Recommended - Google caps a single query at ~300 results.

## `queryModifiers` (type: `array`):

Extra words combined with each keyword when Expand queries is on. Tuned for Faire.

## `maxPagesPerQuery` (type: `integer`):

Google rarely returns more than ~30 pages for one query.

## `maxConcurrency` (type: `integer`):

How many queries run in parallel.

## Actor input object example

```json
{
  "keywords": [
    "wholesale brand",
    "supplier"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20,
  "countryCode": "",
  "expandQueries": true,
  "queryModifiers": [
    "email",
    "contact",
    "wholesale",
    "stockist",
    "sales"
  ],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

# Actor output Schema

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

Records produced by Faire Email Scraper, stored in the run's default dataset.

# 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 = {
    "keywords": [
        "wholesale brand",
        "supplier"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com"
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "contact",
        "wholesale",
        "stockist",
        "sales"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("leads-scraper/faire-email-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 = {
    "keywords": [
        "wholesale brand",
        "supplier",
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com",
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "contact",
        "wholesale",
        "stockist",
        "sales",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("leads-scraper/faire-email-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 '{
  "keywords": [
    "wholesale brand",
    "supplier"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "countryCode": "",
  "queryModifiers": [
    "email",
    "contact",
    "wholesale",
    "stockist",
    "sales"
  ]
}' |
apify call leads-scraper/faire-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,leads-scraper/faire-email-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/PF3W1JojvMM9DKwvV/builds/mIcL5kfjhPar5AEFi/openapi.json
