# GlobalSpec Email Scraper (`leads-scraper/globalspec-email-scraper`) Actor

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

- **URL**: https://apify.com/leads-scraper/globalspec-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

### GlobalSpec Email Scraper - public engineering supplier emails from globalspec.com

The GlobalSpec Email Scraper collects publicly indexed contact emails that appear in Google search results for `globalspec.com`. GlobalSpec, also published under the Engineering360 brand, is a technical sourcing and specification platform where design engineers search components by parameter rather than by company name.

Understand the index before you run it. GlobalSpec indexes product and category pages more than supplier profiles, so most rows carry a supplier email without a resolvable handle.

That makes the GlobalSpec Email Scraper an email-first tool for engineering procurement rather than a directory-shaped one. It is very good at that job and should be chosen for it.

The GlobalSpec Email Scraper builds Google `site:globalspec.com` queries, reads the result pages through the Apify GOOGLE_SERP proxy, and extracts every address matching your domain filter. Component buyers, design engineers, automation integrators and MRO distributors are the natural audience.

#### A measured live result, stated plainly

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

Eight unique emails from nine blocks is a strong ratio, and it puts the GlobalSpec Email Scraper among the highest email-yield Actors in this family alongside [Fibre2Fashion Email Scraper](https://apify.com/neuro-scraper/fibre2fashion-email-scraper).

Three handles from nine blocks is the trade-off. Because GlobalSpec indexes product and category pages more than supplier profiles, Google usually prints a part or specification title, so `username` arrives as `null` and `profileUrl` arrives empty.

If your workflow needs a clickable supplier page on every row, pair this Actor with [DirectIndustry Email Scraper](https://apify.com/neuro-scraper/directindustry-email-scraper), which resolved a handle on all ten blocks in the same test.

### Features of the GlobalSpec Email Scraper

Every feature listed below is genuinely implemented in the GlobalSpec 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 |

The fallback parser is unusually load-bearing here. When a result is a specification page rather than a supplier profile, "emails without account details" is exactly the useful degradation, and the GlobalSpec Email Scraper keeps the address rather than discarding the block.

Query expansion matters just as much. GlobalSpec splits its index into thousands of parametric categories, from `linear actuator` to `thermal imaging camera`, and one broad query can only reach a sliver of it.

### How the GlobalSpec 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 `globalspec.com`, for example `site:globalspec.com component manufacturer "@gmail.com" "Massachusetts"`.
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 GlobalSpec Email Scraper does **not** log into GlobalSpec or Engineering360, does not use any GlobalSpec 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 GlobalSpec Email Scraper is built for

This is a technical procurement and engineering sales tool, and its users think in specifications rather than in company categories.

Design engineers and component buyers use the GlobalSpec Email Scraper to reach the manufacturer behind a part that meets a parametric requirement. Electronics and instrumentation buyers use it the same way for sensors, transducers and test equipment.

Automation integrators use it to find drive, controller and vision vendors for a machine build. MRO distributors use it to identify second-source suppliers for consumable industrial hardware.

Industrial marketing agencies use it to build engineering account lists, and technical trade-show organisers use it to recruit exhibitors. For a supplier-profile-shaped index instead, [IQS Directory Email Scraper](https://apify.com/neuro-scraper/iqs-directory-email-scraper) covers North American fabricators.

### Input fields for the GlobalSpec Email Scraper

| Field | Type | Default | Meaning |
|---|---|---|---|
| `keywords` | array (required) | `["industrial supplier", "component manufacturer"]` | 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 GlobalSpec Email Scraper input fields actually behave

`keywords` should be parametric, not commercial. The defaults `industrial supplier` and `component manufacturer` work, but terms such as `linear actuator`, `pressure transducer`, `thermal imaging camera` and `stepper motor driver` match how the index is actually organised.

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

`countryCode` is worth setting to `US`. GlobalSpec and Engineering360 are North American properties, and running the search proxy from the US changes which pages Google prefers.

`queryModifiers` only fire when `expandQueries` is `true`. On a specification site the `contact` and `email` modifiers earn their keep more reliably than `wholesale`.

`maxEmails` is a hard stop shared across the worker pool, while `maxConcurrency` and `maxPagesPerQuery` trade throughput against politeness at defaults of 5 and 30.

### JSON input example for the GlobalSpec Email Scraper

```json
{
  "keywords": ["linear actuator", "pressure transducer", "stepper motor driver"],
  "location": "Massachusetts",
  "customDomains": ["@gmail.com", "@yahoo.com", "@outlook.com", "@aol.com"],
  "maxEmails": 300,
  "countryCode": "US",
  "expandQueries": true,
  "queryModifiers": ["email", "contact", "export", "wholesale", "sales enquiries"],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

That is a realistic engineering procurement configuration for the GlobalSpec Email Scraper: three parametric component terms, a US state location, `US` as the country code and a widened domain filter.

GlobalSpec publishes in English only, so there is no multilingual lever here. Precision of engineering vocabulary is what replaces it.

### Output fields of the GlobalSpec 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 product and 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 |

Most rows arrive with `username: null` and an empty `profileUrl`, exactly as the live run showed. When a handle is exposed the GlobalSpec Email Scraper builds the canonical link as `https://www.globalspec.com/supplier/profile/{username}`.

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 GlobalSpec Email Scraper

```json
[
  {
    "network": "GlobalSpec",
    "keyword": "pressure transducer",
    "query": "site:globalspec.com pressure transducer contact \"@gmail.com\" \"Massachusetts\"",
    "title": "Pressure Transducers - Specifications and Suppliers - GlobalSpec",
    "accountName": "GlobalSpec",
    "fullName": "",
    "username": null,
    "profileUrl": "",
    "url": "https://www.globalspec.com/learnmore/sensors_transducers_detectors/pressure_transducers",
    "description": "Parametric category page listing pressure transducer ranges and suppliers. Sales contact printed in a supplier entry.",
    "email": "sales.baystatesensors@gmail.com",
    "emailDomain": "@gmail.com",
    "possiblyTruncated": false,
    "foundAt": "2026-08-29T16:02:44Z"
  },
  {
    "network": "GlobalSpec",
    "keyword": "linear actuator",
    "query": "site:globalspec.com linear actuator \"sales enquiries\" \"@outlook.com\"",
    "title": "Northbridge Motion Systems - supplier profile - GlobalSpec",
    "accountName": "Northbridge Motion Systems",
    "fullName": "Northbridge Motion Systems",
    "username": "northbridge-motion-systems",
    "profileUrl": "https://www.globalspec.com/supplier/profile/northbridge-motion-systems",
    "url": "https://www.globalspec.com/supplier/profile/northbridge-motion-systems",
    "description": "Electric linear actuators and motion subassemblies for OEM machine builders. Sales enquiries by email.",
    "email": "sales.northbridgemotion@outlook.com",
    "emailDomain": "@outlook.com",
    "possiblyTruncated": true,
    "foundAt": "2026-08-29T16:05:31Z"
  }
]
```

The first row is the common GlobalSpec Email Scraper case and the second is the exception. Plan your CRM import around rows that carry an email and a snippet but no supplier profile link.

### Use cases for the GlobalSpec Email Scraper

| Audience | What they do with the data |
|---|---|
| Design engineers | Reach the manufacturer behind a part that meets a parametric requirement |
| Component and electronics buyers | Build a second-source list for sensors, drives and passives |
| Instrumentation and test buyers | Find vendors of measurement and calibration equipment |
| Automation integrators | Identify controller, vision and motion vendors for a machine build |
| MRO distributors | Spot alternate suppliers for consumable industrial hardware |
| Industrial marketing agencies | Assemble an engineering account list for an ABM campaign |
| Technical trade-show organisers | Recruit exhibitors from named component categories |
| Supply-chain researchers | Map which component categories publish contact routes |

Each of these is outbound work aimed at a company inbox that a supplier published in order to attract technical enquiries. That is the honest boundary of what the GlobalSpec Email Scraper does.

### Targeting tips for the GlobalSpec Email Scraper

Because handles are scarce and emails are plentiful, tune for coverage of the parametric index.

Write `keywords` the way an engineer specifies a part. `linear actuator`, `RTD temperature sensor`, `EMI shielding gasket` and `precision ball screw` reach specification pages that generic supplier words never touch.

Set `countryCode` to `US`. GlobalSpec is published in North America under both the GlobalSpec and Engineering360 brands, and the US proxy surfaces the deepest slice of it.

Use `location` for US engineering clusters. `"Massachusetts"`, `"Michigan"`, `"California"` and `"Ontario"` narrow the GlobalSpec Email Scraper towards regional suppliers.

Keep `expandQueries` on so modifiers reach the contact lines. For supplier-profile coverage of the same industrial market, run [DirectIndustry Email Scraper](https://apify.com/neuro-scraper/directindustry-email-scraper) or [IQS Directory Email Scraper](https://apify.com/neuro-scraper/iqs-directory-email-scraper) alongside it.

### Limitations of the GlobalSpec Email Scraper

Read all of these before your first run.

- GlobalSpec indexes product and category pages more than supplier profiles, so most rows carry a supplier email without a resolvable handle. The live run returned 3 profile URLs from 9 blocks.
- The GlobalSpec 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. On this platform it usually does not, so expect `username: null` and an empty `profileUrl` on most rows. That is a Google limitation, not a bug.
- Results vary with keywords, domains and location. No volume is guaranteed by the GlobalSpec Email Scraper or by any Actor in this family.

### Responsible use of GlobalSpec Email Scraper output

The addresses the GlobalSpec Email Scraper surfaces are business contacts that suppliers published on an engineering sourcing platform so that buyers could send them technical enquiries. 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 rules such as CAN-SPAM apply to commercial mail regardless. Record your lawful basis, identify yourself in the first line, and make the relevance obvious.

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 GlobalSpec Email Scraper

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

A live Google run returned 9 result blocks, 3 identified accounts, 3 profile URLs and 8 unique emails on default settings. Email volume is strong and handle resolution is weak, because GlobalSpec indexes product and category pages more than supplier profiles. Volume scales with how many keyword and domain combinations you supply, and no specific number is guaranteed.

#### Is GlobalSpec the same thing as Engineering360?

They are the same publisher's properties and share an index. The GlobalSpec Email Scraper searches `globalspec.com`, which is where the parametric supplier and product content lives.

#### Why do so few rows have a profile URL?

Because most Google results are specification or category pages rather than supplier profiles, so there is no `/supplier/profile/` slug for the Actor to derive a handle from. Rows still carry `description` and the email itself.

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

No. It builds Google `site:globalspec.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.

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

Use precise parametric component terms in `keywords` and widen `customDomains` beyond the two webmail defaults. Engineering suppliers publish on corporate and secondary domains as well as webmail.

#### Should I use non-English keywords?

No. GlobalSpec publishes in English, so translated terms return little. Use `countryCode: "US"` and precise engineering vocabulary instead.

#### Can the GlobalSpec Email Scraper find addresses on a supplier'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 GlobalSpec 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 category pages a single query cannot. Base queries always run first.

#### Can I run the GlobalSpec 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.

#### Is the GlobalSpec Email Scraper affiliated with GlobalSpec or Engineering360?

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 |
|---|---|
| [GlobalSpec Email and Phone Number Scraper](https://apify.com/neuro-scraper/globalspec-email-and-phone-number-scraper) | Emails and phone numbers from GlobalSpec |
| [GlobalSpec Phone Number Scraper](https://apify.com/neuro-scraper/globalspec-phone-number-scraper) | Public phone numbers from GlobalSpec |
| [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 |
| [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 |
| [IQS Directory Email Scraper](https://apify.com/neuro-scraper/iqs-directory-email-scraper) | Public contact emails from IQS Directory |
| [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 |
| [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 |
| [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 |
| [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 |
| [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 |
| [IQS Directory Phone Number Scraper](https://apify.com/neuro-scraper/iqs-directory-phone-number-scraper) | Public phone numbers from IQS Directory |
| [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 GlobalSpec 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 GlobalSpec 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 GlobalSpec.

## `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": [
    "industrial supplier",
    "component manufacturer"
  ],
  "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 GlobalSpec 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": [
        "industrial supplier",
        "component manufacturer"
    ],
    "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("leads-scraper/globalspec-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": [
        "industrial supplier",
        "component manufacturer",
    ],
    "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("leads-scraper/globalspec-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": [
    "industrial supplier",
    "component manufacturer"
  ],
  "location": "",
  "customDomains": [
    "@gmail.com",
    "@yahoo.com"
  ],
  "countryCode": "",
  "queryModifiers": [
    "email",
    "contact",
    "export",
    "wholesale",
    "sales enquiries"
  ]
}' |
apify call leads-scraper/globalspec-email-scraper --silent --output-dataset

```

## MCP server setup

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