# IQS Directory Email Scraper (`neuro-scraper/iqs-directory-email-scraper`) Actor

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

- **URL**: https://apify.com/neuro-scraper/iqs-directory-email-scraper.md
- **Developed by:** [Neuro Scraper](https://apify.com/neuro-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

### IQS Directory Email Scraper - public North American manufacturer emails from iqsdirectory.com

The IQS Directory Email Scraper collects publicly indexed contact emails that appear in Google search results for `iqsdirectory.com`. IQS Directory is a North American manufacturing supplier database that connects industrial buyers with OEM manufacturers, fabricators and job shops across the United States and Canada.

Know the shape of the index first. IQS Directory indexes category landing pages more than company profiles, so expect modest volume.

That framing matters. The IQS Directory Email Scraper is a precise, small-batch sourcing tool for North American manufacturing rather than a bulk list builder, and it performs well when used that way.

The IQS Directory Email Scraper builds Google `site:iqsdirectory.com` queries, reads the result pages through the Apify GOOGLE\_SERP proxy, and extracts every address matching your domain filter. MRO distributors, component buyers, automation integrators and industrial marketing agencies are the natural audience.

#### A measured live result, stated plainly

A live Google run of the IQS Directory Email Scraper returned **4 result blocks, 3 rows with account identity, 3 resolvable profile URLs and 3 unique emails**. Those are observed figures from a real run.

Four blocks is modest, exactly as the index shape predicts. Category landing pages dominate, and there are far fewer individually indexed company profiles than on a large marketplace.

The conversion is the good news. Three of four blocks produced a company name, a profile URL and a unique email, so the rows the IQS Directory Email Scraper does return tend to be complete and directly usable.

Think of it as high signal, low volume. Pair it with [DirectIndustry Email Scraper](https://apify.com/neuro-scraper/directindustry-email-scraper) for European equipment or [GlobalSpec Email Scraper](https://apify.com/leads-scraper/globalspec-email-scraper) for parametric component coverage.

### Features of the IQS Directory Email Scraper

Every feature listed below is genuinely implemented in the IQS Directory Email Scraper. Nothing here is aspirational.

| Feature | What it means in practice |
|---|---|
| Google SERP parsing | Reads Google result pages through the Apify GOOGLE\_SERP proxy. No browser, no JavaScript rendering |
| Structural block detection | Locates the `<h3>` title, then the smallest surrounding block. Does not depend on Google's CSS class names |
| Domain filter | Only emails ending in one of your `customDomains` values are kept |
| Query expansion | Base, quoted, `intitle:` and one variant per query modifier. Base queries run first |
| Global deduplication | An email seen once is never pushed twice, across every query and every page |
| Email normalisation | Understands `name [at] domain [dot] com`, `name (at) domain`, `name @ domain.com`, `domain .com`, zero-width characters and the full-width `＠` sign |
| Junk filter | Rejects placeholders such as `email@`, `yourname@`, `test@`, `xxx@` and single-character locals |
| Boundary-correct matching | `@gmail.com` does 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 |
| Concurrency | An `asyncio` worker pool with a shared stop signal on `maxEmails` |
| Retries | Up to 3 attempts per page, exponential backoff, a fresh proxy session per request |
| Block detection | CAPTCHA, "unusual traffic" and consent pages are detected and retried, not counted as empty |
| Re-queueing | Blocked or failed queries are retried once at the end of the run |
| Resumable run | State is stored in the key-value store, keyed by a hash of the input, and saved on `PERSIST_STATE`, `MIGRATING` and `ABORTING` |
| Fallback parser | If Google's markup changes, the run degrades to "emails without account details" rather than "no emails" |
| Run summary | Logs pages fetched, blocked pages, retries and emails per page |
| Dataset output | Rows push immediately and export to CSV, JSON, Excel or XML from the Apify dataset |

Query expansion is the feature that fights the index shape. IQS Directory organises itself into hundreds of process categories such as `metal stamping`, `wire forming` and `plastic injection molding`, and expansion is how the IQS Directory Email Scraper reaches beyond the first landing page of each.

Global deduplication matters because a category landing page can name the same fabricator repeatedly across several product sections. Deduplication keeps one row per address rather than several.

### How the IQS Directory Email Scraper works

The pipeline is six steps and nothing is hidden inside it.

1. It reads your input: keywords, location, email domains and limits.
2. It builds Google search queries with the `site:` operator against `iqsdirectory.com`, for example `site:iqsdirectory.com metal fabricator contact "@gmail.com" "Michigan"`.
3. It fetches Google result pages through the Apify GOOGLE\_SERP proxy using `aiohttp`, asynchronously.
4. It parses each result block structurally, finding the `<h3>` title and the smallest block around it.
5. It extracts emails from that block's text with a domain-filtered regex.
6. It deduplicates globally and pushes each lead straight into the Apify dataset.

The IQS Directory Email Scraper does **not** log into IQS Directory, does not use any IQS Directory API, and does not open the site in a browser. Every field comes from publicly indexed Google search results - titles, snippets and site labels, with no authentication and no cookies.

### Who the IQS Directory Email Scraper is built for

This is a North American manufacturing procurement and sales tool, aimed at people sourcing parts and processes rather than finished goods.

Component and machinery buyers use the IQS Directory Email Scraper to shortlist job shops and OEM fabricators before an RFQ round. Design engineers use it to find a contract manufacturer capable of a specific process.

MRO distributors use it to identify second-source suppliers for fabricated parts and consumables. Automation integrators use it to find machine builders and enclosure fabricators for a line project.

Reshoring and supplier-diversification teams use it to map US and Canadian alternatives to distant supply. Industrial marketing agencies use it to assemble manufacturer prospect lists for account-based campaigns.

### Input fields for the IQS Directory Email Scraper

| Field | Type | Default | Meaning |
|---|---|---|---|
| `keywords` | array (required) | `["manufacturer", "metal fabricator"]` | Search terms - niche, job title, industry |
| `location` | string | `""` | Optional location phrase added to every query |
| `customDomains` | array | `["@gmail.com", "@yahoo.com"]` | Only emails on these domains are kept; the `@` 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", "export", "wholesale", "sales enquiries"]` | 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 |

#### How the IQS Directory Email Scraper input fields actually behave

`keywords` should name manufacturing processes. The defaults `manufacturer` and `metal fabricator` work, and process nouns such as `metal stamping`, `wire forming`, `plastic injection molding`, `powder coating` and `CNC machining` map directly onto the directory's category structure.

`customDomains` sets your ceiling. Three emails came through on the two webmail defaults in the live run, and adding `@outlook.com`, `@hotmail.com` and `@aol.com` widens what the IQS Directory Email Scraper can keep.

`countryCode` should be `US` or `CA`. IQS Directory covers both markets, and running each separately reaches regional pages a single run will not.

`queryModifiers` only fire when `expandQueries` is `true`. On a North American job-shop directory the `contact`, `email` and `sales enquiries` modifiers do more work than `export`.

`maxEmails` is a hard stop shared across the worker pool, and given the modest index a moderate value is realistic. `maxConcurrency` and `maxPagesPerQuery` are fine at their defaults of 5 and 30.

### JSON input example for the IQS Directory Email Scraper

```json
{
  "keywords": ["metal stamping", "wire forming", "plastic injection molding"],
  "location": "Michigan",
  "customDomains": ["@gmail.com", "@yahoo.com", "@outlook.com", "@aol.com"],
  "maxEmails": 150,
  "countryCode": "US",
  "expandQueries": true,
  "queryModifiers": ["email", "contact", "export", "wholesale", "sales enquiries"],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

That is a realistic North American sourcing configuration for the IQS Directory Email Scraper: three manufacturing process terms, a state-level location, `US` as the country code and a widened domain filter.

IQS Directory publishes in English only, so there is no multilingual lever here. Run the same input again with `countryCode: "CA"` to reach the Canadian slice of the index.

### Output fields of the IQS Directory Email Scraper

Every dataset item carries all fourteen fields.

| 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 category results |
| `username` | URL-safe handle when the platform exposes one; otherwise `null` |
| `profileUrl` | Canonical account URL when a handle is known; otherwise empty |
| `url` | Direct platform link when exposed, else the profile URL |
| `description` | Bio or snippet text, cleaned of labels and counters |
| `email` | Lower-cased email address |
| `emailDomain` | The matched domain, for example `@gmail.com` |
| `possiblyTruncated` | `true` when Google's snippet ellipsis touched the email - verify before sending |
| `foundAt` | ISO 8601 UTC timestamp |

Company rows resolve cleanly because IQS Directory uses a root-level slug, and the IQS Directory Email Scraper builds the canonical link as `https://www.iqsdirectory.com/{username}/`. Category landing rows do not resolve, and arrive with `username: null` and an empty `profileUrl`.

Always check `possiblyTruncated` before you send. When it is `true`, Google's snippet ellipsis may have clipped the address and it should be confirmed on the source page.

### JSON output example from the IQS Directory Email Scraper

```json
[
  {
    "network": "IQS Directory",
    "keyword": "metal stamping",
    "query": "site:iqsdirectory.com metal stamping contact \"@gmail.com\" \"Michigan\"",
    "title": "Great Lakes Stamping Company - Metal Stamping - IQS Directory",
    "accountName": "Great Lakes Stamping Company",
    "fullName": "Great Lakes Stamping Company",
    "username": "great-lakes-stamping-company",
    "profileUrl": "https://www.iqsdirectory.com/great-lakes-stamping-company/",
    "url": "https://www.iqsdirectory.com/great-lakes-stamping-company/",
    "description": "Progressive die and deep draw metal stamping for automotive and appliance OEMs. Quoting and sales enquiries by email.",
    "email": "quotes.greatlakesstamping@gmail.com",
    "emailDomain": "@gmail.com",
    "possiblyTruncated": false,
    "foundAt": "2026-08-29T19:12:07Z"
  },
  {
    "network": "IQS Directory",
    "keyword": "plastic injection molding",
    "query": "site:iqsdirectory.com plastic injection molding \"sales enquiries\" \"@outlook.com\"",
    "title": "Plastic Injection Molding Companies and Suppliers - IQS Directory",
    "accountName": "IQS Directory",
    "fullName": "",
    "username": null,
    "profileUrl": "",
    "url": "https://www.iqsdirectory.com/plastic-injection-molding/",
    "description": "Category landing page listing North American injection moulders. Company sales address printed in a listing entry.",
    "email": "sales.midstateplastics@outlook.com",
    "emailDomain": "@outlook.com",
    "possiblyTruncated": true,
    "foundAt": "2026-08-29T19:15:41Z"
  }
]
```

The first row is a company profile and the second is a category landing page. Both shapes appear in normal IQS Directory Email Scraper output, so handle the `username: null` case in your import.

### Use cases for the IQS Directory Email Scraper

| Audience | What they do with the data |
|---|---|
| Component and machinery buyers | Shortlist job shops and OEM fabricators before an RFQ cycle |
| Design engineers | Find a contract manufacturer capable of a specific process |
| MRO distributors | Identify second-source suppliers for fabricated parts and consumables |
| Automation integrators | Find machine builders and enclosure fabricators for a line project |
| Reshoring and diversification teams | Map US and Canadian alternatives to distant supply |
| Industrial marketing agencies | Assemble a manufacturer prospect list for an ABM campaign |
| Trade-show and expo organisers | Recruit exhibitors from named manufacturing process categories |
| Supply-chain researchers | Map which North American processes publish contact routes |

Each of these is outbound work aimed at a company inbox that a manufacturer published in order to attract quote requests. That is the honest boundary of what the IQS Directory Email Scraper does.

### Targeting tips for the IQS Directory Email Scraper

With a category-weighted index, process vocabulary and geography are your two real levers.

Use process nouns in `keywords`. `metal stamping`, `wire forming`, `powder coating`, `EDM machining` and `rubber moulding` match IQS Directory's own category names, which is exactly what a `site:` query needs.

Set `location` to a manufacturing state or province. `"Michigan"`, `"Ohio"`, `"Illinois"`, `"Texas"` and `"Ontario"` narrow the IQS Directory Email Scraper to suppliers within realistic freight distance.

Run `US` and `CA` as separate `countryCode` values. The Canadian slice of the directory behaves differently from the American one.

Widen `customDomains` to lift the email ceiling, then merge the output with adjacent Actors. [DirectIndustry Email Scraper](https://apify.com/neuro-scraper/directindustry-email-scraper) adds European equipment vendors and [GlobalSpec Email Scraper](https://apify.com/leads-scraper/globalspec-email-scraper) adds parametric component suppliers.

### Limitations of the IQS Directory Email Scraper

Read all of these before your first run.

- IQS Directory indexes category landing pages more than company profiles, so expect modest volume. The live run returned 4 blocks, 3 profile URLs and 3 unique emails.
- The IQS Directory Email Scraper only finds addresses that are **publicly visible in Google's index**. Anything Google has not indexed is invisible to it.
- Google caps a single query at roughly 300 results, which is exactly why query expansion exists and defaults to on.
- `possiblyTruncated: true` means Google's snippet ellipsis may have cut the email short. Verify it before sending.
- It 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.
- `username` and `profileUrl` are only populated when Google exposes a handle. Company rows usually resolve, but category landing rows arrive with `username: null` and an empty `profileUrl`. That is a Google limitation, not a bug.
- Coverage is North American. For European or Asian supply, use a different Actor in this family.
- Results vary with keywords, domains and location. No volume is guaranteed by the IQS Directory Email Scraper or by any Actor in this family.

### Responsible use of IQS Directory Email Scraper output

The addresses the IQS Directory Email Scraper surfaces are business contacts that manufacturers published on a sourcing directory so that buyers could send them quote requests. Treat them accordingly.

Even in a B2B context, a named individual's work address is personal data under GDPR when that person is in scope, and US and Canadian rules such as CAN-SPAM and CASL apply to commercial mail. CASL is strict, so record your lawful basis and identify yourself clearly.

Honour opt-outs immediately and permanently, keep your list current, and follow the marketing rules of every market you contact. None of this is legal advice, and it does not replace your own compliance review.

### FAQ about the IQS Directory Email Scraper

#### How many results should I expect from the IQS Directory Email Scraper?

A live Google run returned 4 result blocks, 3 identified accounts, 3 profile URLs and 3 unique emails on default settings. That is modest, because IQS Directory indexes category landing pages more than company profiles. The rows it does return are usually complete, and volume scales with how many keyword and domain combinations you supply, but no specific number is guaranteed.

#### Why do category landing rows have no profile URL?

Because a category page is not a company page, so there is no company slug for the Actor to derive a handle from. Those rows still carry `description` and the email itself.

#### Does the IQS Directory Email Scraper log into IQS Directory or use its API?

No. It builds Google `site:iqsdirectory.com` queries, fetches result pages through the Apify GOOGLE\_SERP proxy and parses them. There is no browser, no login, no API and no cookies.

#### Is the IQS Directory Email Scraper a Thomasnet alternative?

For North American job shops and fabricators it covers similar ground. IQS Directory is smaller and more category-driven, so expect fewer but cleaner rows.

#### What is the fastest way to increase IQS Directory Email Scraper yield?

Use process nouns that match the directory's own category names, widen `customDomains` beyond the two webmail defaults, and run `US` and `CA` as separate country codes.

#### Can the IQS Directory Email Scraper find addresses on a manufacturer's own domain?

Only if the address appears in the Google result block and you list that domain in `customDomains`. The filter compares the end of each address, so every domain you want must be in the array.

#### Why does the IQS Directory Email Scraper turn `expandQueries` on by default?

Google caps one query at roughly 300 results. Expansion runs base, quoted and `intitle:` variants plus one per modifier, reaching beyond the first landing page of each category. Base queries always run first.

#### Can I run the IQS Directory Email Scraper on a free Apify plan?

Yes. Free plans are capped at 100 emails per run, and paid plans are uncapped.

#### What happens if a run is interrupted?

State is saved in the key-value store, keyed by a hash of your input, and written on Apify's `PERSIST_STATE`, `MIGRATING` and `ABORTING` events. Restarting with the same input resumes rather than starting over.

#### Which export formats are available?

Anything the Apify dataset supports - CSV, JSON, Excel and XML - plus the API for pushing rows straight into a CRM or sourcing system.

#### Which other Actor pairs best with the IQS Directory Email Scraper?

[GlobalSpec Email Scraper](https://apify.com/leads-scraper/globalspec-email-scraper) for parametric component suppliers, and **MacRAE'S Blue Book Email Scraper** only if you want a completeness check on legacy North American registers.

#### Is the IQS Directory Email Scraper affiliated with IQS Directory?

No. It is an independent Actor that reads publicly indexed Google results and has no relationship with, or endorsement from, the platform.

### Related Actors

More email scrapers from the same B2B, Suppliers & Manufacturers family, built on the same Google SERP pipeline.

| Actor | What it collects |
|---|---|
| [IQS Directory Email and Phone Number Scraper](https://apify.com/neuro-scraper/iqs-directory-email-and-phone-number-scraper) | Emails and phone numbers from IQS Directory |
| [IQS Directory Phone Number Scraper](https://apify.com/neuro-scraper/iqs-directory-phone-number-scraper) | Public phone numbers from IQS Directory |
| [Alibaba Email Scraper](https://apify.com/leads-scraper/alibaba-email-scraper) | Public contact emails from Alibaba |
| [DirectIndustry Email Scraper](https://apify.com/neuro-scraper/directindustry-email-scraper) | Public contact emails from DirectIndustry |
| [DIYTrade Email Scraper](https://apify.com/neuro-scraper/diytrade-email-scraper) | Public contact emails from DIYTrade |
| [ECPlaza Email Scraper](https://apify.com/neuro-scraper/ecplaza-email-scraper) | Public contact emails from ECPlaza |
| [Fibre2Fashion Email Scraper](https://apify.com/neuro-scraper/fibre2fashion-email-scraper) | Public contact emails from Fibre2Fashion |
| [Global Sources Email Scraper](https://apify.com/leads-scraper/global-sources-email-scraper) | Public contact emails from Global Sources |
| [GlobalSpec Email Scraper](https://apify.com/leads-scraper/globalspec-email-scraper) | Public contact emails from GlobalSpec |
| [HKTDC Sourcing Email Scraper](https://apify.com/neuro-scraper/hktdc-sourcing-email-scraper) | Public contact emails from HKTDC Sourcing |
| [IndiaMART Email Scraper](https://apify.com/leads-scraper/indiamart-email-scraper) | Public contact emails from IndiaMART |
| [IndustryStock Email Scraper](https://apify.com/neuro-scraper/industrystock-email-scraper) | Public contact emails from IndustryStock |
| [Made-in-China Email Scraper](https://apify.com/leads-scraper/made-in-china-email-scraper) | Public contact emails from Made-in-China |
| [Taiwantrade Email Scraper](https://apify.com/leads-scraper/taiwantrade-email-scraper) | Public contact emails from Taiwantrade |
| [Textile Infomedia Email Scraper](https://apify.com/leads-scraper/textile-infomedia-email-scraper) | Public contact emails from Textile Infomedia |
| [Textile World Email Scraper](https://apify.com/leads-scraper/textile-world-email-scraper) | Public contact emails from Textile World |
| [Thomas Scientific Email Scraper](https://apify.com/leads-scraper/thomas-scientific-email-scraper) | Public contact emails from Thomas Scientific |
| [TradeKey Email Scraper](https://apify.com/neuro-scraper/tradekey-email-scraper) | Public contact emails from TradeKey |
| [Tradewheel Email Scraper](https://apify.com/leads-scraper/tradewheel-email-scraper) | Public contact emails from Tradewheel |
| [Wer Liefert Was Email Scraper](https://apify.com/leads-scraper/wer-liefert-was-email-scraper) | Public contact emails from wlw |
| [DirectIndustry Email and Phone Number Scraper](https://apify.com/neuro-scraper/directindustry-email-and-phone-number-scraper) | Emails and phone numbers from DirectIndustry |
| [DIYTrade Email and Phone Number Scraper](https://apify.com/neuro-scraper/diytrade-email-and-phone-number-scraper) | Emails and phone numbers from DIYTrade |
| [ECPlaza Email and Phone Number Scraper](https://apify.com/neuro-scraper/ecplaza-email-and-phone-number-scraper) | Emails and phone numbers from ECPlaza |
| [Fibre2Fashion Email and Phone Number Scraper](https://apify.com/neuro-scraper/fibre2fashion-email-and-phone-number-scraper) | Emails and phone numbers from Fibre2Fashion |
| [Global Sources Email and Phone Number Scraper](https://apify.com/leads-scraper/global-sources-email-and-phone-number-scraper) | Emails and phone numbers from Global Sources |
| [GlobalSpec Email and Phone Number Scraper](https://apify.com/neuro-scraper/globalspec-email-and-phone-number-scraper) | Emails and phone numbers from GlobalSpec |
| [HKTDC Sourcing Email and Phone Number Scraper](https://apify.com/neuro-scraper/hktdc-sourcing-email-and-phone-number-scraper) | Emails and phone numbers from HKTDC Sourcing |
| [IndiaMART Email and Phone Number Scraper](https://apify.com/leads-scraper/indiamart-email-and-phone-number-scraper) | Emails and phone numbers from IndiaMART |
| [IndustryStock Email and Phone Number Scraper](https://apify.com/neuro-scraper/industrystock-email-and-phone-number-scraper) | Emails and phone numbers from IndustryStock |
| [Made-in-China Email and Phone Number Scraper](https://apify.com/leads-scraper/made-in-china-email-and-phone-number-scraper) | Emails and phone numbers from Made-in-China |
| [TradeKey Email and Phone Number Scraper](https://apify.com/neuro-scraper/tradekey-email-and-phone-number-scraper) | Emails and phone numbers from TradeKey |
| [wlw Email and Phone Number Scraper](https://apify.com/leads-scraper/wer-liefert-was-email-and-phone-number-scraper) | Emails and phone numbers from wlw |
| [DirectIndustry Phone Number Scraper](https://apify.com/neuro-scraper/directindustry-phone-number-scraper) | Public phone numbers from DirectIndustry |
| [DIYTrade Phone Number Scraper](https://apify.com/neuro-scraper/diytrade-phone-number-scraper) | Public phone numbers from DIYTrade |
| [ECPlaza Phone Number Scraper](https://apify.com/neuro-scraper/ecplaza-phone-number-scraper) | Public phone numbers from ECPlaza |
| [Fibre2Fashion Phone Number Scraper](https://apify.com/neuro-scraper/fibre2fashion-phone-number-scraper) | Public phone numbers from Fibre2Fashion |
| [Global Sources Phone Number Scraper](https://apify.com/leads-scraper/global-sources-phone-number-scraper) | Public phone numbers from Global Sources |
| [GlobalSpec Phone Number Scraper](https://apify.com/neuro-scraper/globalspec-phone-number-scraper) | Public phone numbers from GlobalSpec |
| [HKTDC Sourcing Phone Number Scraper](https://apify.com/neuro-scraper/hktdc-sourcing-phone-number-scraper) | Public phone numbers from HKTDC Sourcing |
| [IndiaMART Phone Number Scraper](https://apify.com/leads-scraper/indiamart-phone-number-scraper) | Public phone numbers from IndiaMART |
| [IndustryStock Phone Number Scraper](https://apify.com/neuro-scraper/industrystock-phone-number-scraper) | Public phone numbers from IndustryStock |
| [Made-in-China Phone Number Scraper](https://apify.com/leads-scraper/made-in-china-phone-number-scraper) | Public phone numbers from Made-in-China |

### Leave a review

If the IQS Directory 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.

# Actor input Schema

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

Search terms describing the IQS Directory 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 IQS Directory.

## `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": [
    "manufacturer",
    "metal fabricator"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "maxEmails": 20,
  "countryCode": "",
  "expandQueries": true,
  "queryModifiers": [
    "email",
    "contact",
    "export",
    "wholesale",
    "sales enquiries"
  ],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

# Actor output Schema

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

Records produced by IQS Directory 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": [
        "manufacturer",
        "metal fabricator"
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com"
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "contact",
        "export",
        "wholesale",
        "sales enquiries"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("neuro-scraper/iqs-directory-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": [
        "manufacturer",
        "metal fabricator",
    ],
    "location": "",
    "customDomains": [
        "@gmail.com",
        "@yahoo.com",
    ],
    "countryCode": "",
    "queryModifiers": [
        "email",
        "contact",
        "export",
        "wholesale",
        "sales enquiries",
    ],
}

# Run the Actor and wait for it to finish
run = client.actor("neuro-scraper/iqs-directory-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": [
    "manufacturer",
    "metal fabricator"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "countryCode": "",
  "queryModifiers": [
    "email",
    "contact",
    "export",
    "wholesale",
    "sales enquiries"
  ]
}' |
apify call neuro-scraper/iqs-directory-email-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,neuro-scraper/iqs-directory-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/Vg5bkh5pkRMagjn7U/builds/JEe2UahFn0M4WoKHL/openapi.json
