# IndiaMART Email Scraper (`leads-scraper/indiamart-email-scraper`) Actor

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

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

### IndiaMART Email Scraper: supplier emails from India's largest B2B marketplace

The IndiaMART Email Scraper collects the contact emails that Indian manufacturers, exporters and traders publish on publicly indexed `indiamart.com` pages.

One thing to know before you run it. IndiaMART indexes product and category pages rather than company profiles, so rows carry a supplier email without a resolvable company handle.

In a measured run the IndiaMART Email Scraper read 9 result blocks, resolved company identity on 0 of them, produced 0 profile URLs and returned 4 unique emails. You get addresses, not company records.

That is a usable trade-off if what you need is a first-contact list. The IndiaMART Email Scraper is the wrong tool if you need a clean company directory with linked profiles.

For company identity as well as addresses, look at the [HKTDC Sourcing Email Scraper](https://apify.com/neuro-scraper/hktdc-sourcing-email-scraper) or the [Global Sources Email Scraper](https://apify.com/leads-scraper/global-sources-email-scraper).

### What the IndiaMART Email Scraper actually does

The IndiaMART Email Scraper builds Google queries with the `site:` operator scoped to `indiamart.com`, fetches result pages through the Apify GOOGLE_SERP proxy, and reads emails out of titles and snippets.

The IndiaMART Email Scraper does not log into IndiaMART, use its API, or open the website. No browser, no JavaScript rendering, no authentication, no cookies.

Everything it returns is already public in Google's index. Indian suppliers publish sales addresses on listing pages because inbound enquiries are how they win business.

IndiaMART is deepest in industrial machinery, chemicals, pharma inputs, packaging, textiles, electricals and agricultural commodities. Those verticals are where the IndiaMART Email Scraper is most productive.

### IndiaMART Email Scraper features at a glance

| Feature | What it means for indiamart supplier emails |
|---|---|
| Google `site:` search | Every query is scoped to `indiamart.com`, so results stay on-platform |
| Query expansion | Base, quoted and `intitle:` variants plus one per query modifier; base queries run first |
| Global deduplication | Each email is pushed once across every query and every page of the run |
| Email normalisation | Handles `name [at] domain [dot] com`, `name (at) domain`, `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` never matches inside `@gmail.company` or `@gmail.com.br` |
| Soft-wrap repair | Drops a hit that is only the tail of another email in the same result block |
| Structural block parsing | Locates the `<h3>` title then the smallest surrounding block, not Google CSS class names |
| Whole-page fallback parser | A Google markup change degrades to "emails without account details", not "no emails" |
| Block detection | CAPTCHA, "unusual traffic" and consent pages are detected and retried, not counted as empty |
| Retries and re-queue | Up to 3 attempts per page with exponential backoff and a fresh proxy session; failed queries re-queued once |
| Resumable state | Kept in the key-value store keyed by an input hash; saved on `PERSIST_STATE`, `MIGRATING` and `ABORTING` |
| Concurrency | An `asyncio` worker pool with a shared stop signal on `maxEmails` |
| Run summary | Logs pages fetched, blocked pages, retries and emails per page |

Those are shared engine capabilities. The IndiaMART Email Scraper specialises them with the `indiamart.com` domain scope, `manufacturer` and `exporter` defaults, and export-oriented query modifiers.

### How the IndiaMART Email Scraper works, step by step

1. The IndiaMART Email Scraper reads your keywords, location, email domains and limits.
2. It composes Google queries such as `site:indiamart.com exporter "@gmail.com" "Gujarat"`.
3. It fetches result pages asynchronously through the Apify GOOGLE_SERP proxy using `aiohttp`.
4. It parses each result block structurally to isolate title, snippet and site label.
5. It extracts emails with a domain-filtered regex, normalises them and drops junk.
6. It deduplicates globally and pushes each lead to the Apify dataset immediately.

Because the IndiaMART Email Scraper streams rows as it finds them, you can export supplier contacts to CSV, JSON or Excel while the run is still going.

The `profileUrl` template for this platform is `https://www.indiamart.com/{username}/`. It only fills in when Google actually prints a company handle, which on IndiaMART is rare.

### IndiaMART Email Scraper input fields

| Field | Type | Default | Meaning |
|---|---|---|---|
| `keywords` | array (required) | `["manufacturer", "exporter"]` | Search terms: niche, product vertical, 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 leading `@` is optional |
| `maxEmails` | integer 1-10000 | `20` | Stop once this many unique emails have been collected |
| `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` | How many queries run in parallel |

#### Example input for the IndiaMART Email Scraper

```json
{
  "keywords": [
    "pharmaceutical machinery manufacturer",
    "corrugated box exporter",
    "निर्माता पैकेजिंग मशीन",
    "आपूर्तिकर्ता रसायन"
  ],
  "location": "Gujarat",
  "customDomains": ["@gmail.com", "@yahoo.com", "@rediffmail.com", "@hotmail.com", "@outlook.com"],
  "maxEmails": 300,
  "countryCode": "IN",
  "expandQueries": true,
  "queryModifiers": ["email", "contact", "export", "wholesale", "sales enquiries"],
  "maxPagesPerQuery": 30,
  "maxConcurrency": 5
}
```

Mixing Hindi and English keywords is a genuine lever on the IndiaMART Email Scraper. Terms such as `निर्माता` (manufacturer), `आपूर्तिकर्ता` (supplier), `निर्यातक` (exporter) and `थोक` (wholesale) reach listings the English index misses.

`@rediffmail.com` deserves a place in the IndiaMART Email Scraper `customDomains` list. It remains common among established Indian trading houses alongside Gmail.

Set `countryCode` to `IN` for the densest coverage, then rerun with `US` or `GB` to catch pages ranked for overseas buyers.

### IndiaMART Email Scraper output fields

Every dataset item the IndiaMART Email Scraper pushes carries all fourteen fields below, so your CRM mapping never changes between runs.

| 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 listing captions |
| `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` | Listing snippet, 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 |
| `foundAt` | ISO 8601 UTC timestamp |

#### Example output from the IndiaMART Email Scraper

```json
{
  "network": "IndiaMART",
  "keyword": "pharmaceutical machinery manufacturer",
  "query": "site:indiamart.com pharmaceutical machinery manufacturer \"@gmail.com\" \"Gujarat\"",
  "title": "Automatic Blister Packing Machine at Best Price in Ahmedabad",
  "accountName": "Automatic Blister Packing Machine",
  "fullName": "",
  "username": null,
  "profileUrl": "",
  "url": "https://www.indiamart.com/proddetail/automatic-blister-packing-machine.html",
  "description": "Blister packing machines for pharma lines. Enquiries: sales.blisterpack@gmail.com",
  "email": "sales.blisterpack@gmail.com",
  "emailDomain": "@gmail.com",
  "possiblyTruncated": false,
  "foundAt": "2026-08-31T12:05:33Z"
}
```

That row is typical: a real, usable email attached to a product page, with `username: null` and an empty `profileUrl`. Expect most IndiaMART Email Scraper rows to look like this.

### Who uses the IndiaMART Email Scraper

The IndiaMART Email Scraper suits buyers who want Indian supply-side contacts fast and are happy to enrich company identity later.

| Buyer type | How the IndiaMART Email Scraper fits their workflow |
|---|---|
| Importers and wholesale buyers | Assemble a first-contact list of Indian manufacturers in one product vertical |
| Procurement and sourcing agents | Add India as an alternate sourcing region alongside China for price benchmarking |
| Private-label and dropship brands | Find low-MOQ Indian producers for textiles, housewares and packaged goods |
| Freight forwarders and customs brokers | Reach exporters on India-to-Europe or India-to-Gulf lanes you already service |
| Trade-show organisers | Recruit exhibitors for engineering, pharma or textile expos in India |
| Quality-inspection firms | Approach producers in a state where your inspectors already operate |
| Sales teams selling to manufacturers | Offer certification, ERP or logistics services to export-ready Indian SMEs |

### Tuning the IndiaMART Email Scraper for better yield

Because identity data is absent here, point your effort at keyword precision and domain breadth. Those two settings drive almost all of the IndiaMART Email Scraper's output.

Run the IndiaMART Email Scraper on three to eight exact product terms. `industrial RO plant manufacturer` outperforms the bare default `manufacturer` by a wide margin.

Use `location` at state or city level: `Gujarat`, `Maharashtra`, `Tamil Nadu`, `Ludhiana`, `Rajkot`, `Coimbatore`. Indian industry clusters by city more than by state.

Widen `customDomains` aggressively. Adding `@rediffmail.com`, `@hotmail.com`, `@outlook.com` and `@yahoo.in` typically lifts yield more than any keyword change.

Keep `expandQueries` on. Google caps a single query at roughly 300 results, and expansion is the designed workaround.

Raise `maxPagesPerQuery` before `maxConcurrency`. On a marketplace this large, depth is where the extra addresses hide.

### What results to expect from the IndiaMART Email Scraper

The measured baseline is 9 result blocks, 0 with company identity, 0 profile URLs and 4 unique emails.

Read that plainly: the IndiaMART Email Scraper is an email-discovery tool on this platform, not a company-profile builder. Roughly half the blocks it read carried a usable address.

Plan to enrich company names separately, from the `url` field or from your own supplier database, once the IndiaMART Email Scraper has given you the addresses.

Results vary with keywords, domains and location, and no volume is guaranteed. Run a small `maxEmails` first to calibrate.

### IndiaMART Email Scraper limitations

- **Yield and identity.** IndiaMART indexes product and category pages rather than company profiles, so rows carry a supplier email without a resolvable company handle.
- The IndiaMART Email Scraper only finds accounts whose email is **publicly visible in Google's index**.
- Google caps a single query at roughly 300 results, which is exactly why query expansion exists.
- `possiblyTruncated: true` means Google's snippet ellipsis touched the address; verify before sending.
- The Actor 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 populated only when Google exposes a handle. On IndiaMART that is rare, so most rows have an empty handle and URL. That is a Google limitation, not a bug.
- Results vary with keywords, domains and location; no volume is guaranteed.

### Responsible use, GDPR and trade compliance

Business contact data is still personal data in many jurisdictions. Under GDPR, India's DPDP framework and comparable regimes you need a lawful basis, a stated purpose and a working opt-out before using what the IndiaMART Email Scraper returns.

Keep outreach relevant to the supplier's own trade, identify your company clearly, and honour unsubscribe requests immediately.

Screen counterparties against your own sanctions and denied-party obligations before transacting. The IndiaMART Email Scraper performs no screening of its own.

None of this is legal advice. Take proper counsel if your programme touches restricted jurisdictions or controlled goods.

### Related Actors

| Actor | What it collects |
|---|---|
| [IndiaMART Email and Phone Number Scraper](https://apify.com/leads-scraper/indiamart-email-and-phone-number-scraper) | Emails and phone numbers from IndiaMART |
| [IndiaMART Phone Number Scraper](https://apify.com/leads-scraper/indiamart-phone-number-scraper) | Public phone numbers from IndiaMART |
| [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 |
| [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 |
| [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 |
| [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 |
| [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 |
| [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 |

### IndiaMART Email Scraper FAQ

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

No. It reads Google search results through the Apify GOOGLE_SERP proxy. No login, no API key, no browser, no cookies.

#### Does it access contact details IndiaMART keeps behind its messaging system?

No. The IndiaMART Email Scraper cannot see anything behind the platform's enquiry or contact-supplier flow. It only reads addresses already public in Google's index.

#### How many results should I expect?

The measured run gave 9 result blocks, 0 with identity, 0 profile URLs and 4 unique emails. Expect addresses without company handles.

#### Why is `username` always `null`?

IndiaMART indexes product and category pages rather than company profiles, so Google rarely prints a company handle for the IndiaMART Email Scraper to resolve.

#### Can I still identify the company?

Often yes, from the `url` and `description` fields, or by matching the email's local part and domain against your own records. It just is not automatic.

#### Do Hindi keywords help?

Yes. Adding `निर्माता`, `आपूर्तिकर्ता`, `निर्यातक` and `थोक` alongside English terms reaches listings the English index does not rank.

#### Which email domains should I add?

`@rediffmail.com` first, then `@hotmail.com`, `@outlook.com` and `@yahoo.in` alongside the defaults. Domain breadth is the strongest lever on this platform.

#### Does `countryCode` matter?

Yes. `IN` gives the densest coverage of the marketplace. Rerun with `US` or `GB` to catch pages ranked for overseas buyers.

#### What is `possiblyTruncated` for?

Google sometimes clips a snippet mid-address. When the ellipsis touches the email the flag is `true`, so you can verify those rows first.

#### Can I resume an interrupted run?

Yes. State lives in the key-value store keyed by a hash of your input and is saved on Apify's `PERSIST_STATE`, `MIGRATING` and `ABORTING` events.

#### Is this affiliated with IndiaMART?

No. The IndiaMART Email Scraper is an independent Actor, not supported, endorsed or affiliated with IndiaMART.

#### Which Actor should I use if I need company profiles too?

HKTDC Sourcing, DIYTrade and Global Sources all resolve company identity far more reliably than the IndiaMART Email Scraper.

### Leave a review

If the IndiaMART 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, or a custom build? Email **neurodata.apify@gmail.com**.

# Actor input Schema

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

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

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

```

## MCP server setup

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