# IndiaMART Scraper - Suppliers, Exporters, Prices & GST (`haketa/indiamart-scraper`) Actor

IndiaMART scraper & API: find Indian B2B suppliers and products by keyword and export company, product, price, contact email and phone, city and profile URL. India sourcing, manufacturer and supplier discovery plus B2B lead generation — fast, no login.

- **URL**: https://apify.com/haketa/indiamart-scraper.md
- **Developed by:** [Haketa](https://apify.com/haketa) (community)
- **Categories:** E-commerce, Lead generation
- **Features:** Limited permissions
- **Stats:** 131 total users, 26 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.50 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/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 Scraper 🇮🇳 — Suppliers, Exporters, Prices, GST & B2B Leads

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-blue?logo=apify)](https://apify.com/haketa/indiamart-scraper)
[![Data Freshness](https://img.shields.io/badge/Data-Live%20B2B%20Extraction-success)]()
[![Scale](https://img.shields.io/badge/Scale-1%2C000%2B%20Suppliers-orange)]()
[![Export Intelligence](https://img.shields.io/badge/Export%20Intel-GST%20%2B%20IEC%20%2B%20Countries-purple)]()
[![No Login](https://img.shields.io/badge/Auth-No%20Login%20Required-brightgreen)]()

**Extract supplier and product data from [IndiaMART](https://www.indiamart.com/), India's largest B2B marketplace, in minutes.** This **IndiaMART scraper** and **IndiaMART data extractor** turns any search keyword into a clean, structured database of verified Indian manufacturers, exporters, and wholesalers — complete with **prices, minimum order quantities (MOQ), product specifications, GST numbers, Import-Export Codes (IEC), the countries each supplier exports to, ratings, call numbers, and company websites.**

Whether you are doing **B2B lead generation, export sourcing, price monitoring, market research, or CRM enrichment**, this Actor gives you ready-to-use data exported in bulk as **JSON, CSV, Excel, XML, or via the Apify API** — no coding required.

> 💡 **Built for:** B2B sales teams, international importers & sourcing agents, exporters, market researchers, dropshippers, procurement managers, and growth marketers who need reliable Indian supplier intelligence at scale.

***

### ⚡ At a glance

| Feature | Details |
|---|---|
| **Target marketplace** | [IndiaMART.com](https://www.indiamart.com) — 10M+ Indian manufacturers, exporters & wholesale suppliers |
| **Discovery & scaling** | Search by any keyword(s); `autoExpand` follows related product categories + industrial hubs to extract **1,000+ unique items** per keyword |
| **Product fields** | `productName`, `productUrl`, `displayId`, `price`, `priceText`, `currency`, `minOrderQuantity`, `minOrderUnit`, `specifications`, `description`, `categories`, `image`, `images`, `productDocument` |
| **Supplier & lead-gen fields** | `companyName`, `companyProfileUrl`, `supplierWebsite`, `supplierId`, `callNumber`, `address`, `city`, `district`, `state`, `pincode`, `country` |
| **Compliance & verification** | `gstNumber` (100% coverage), `iecNumber` (~96% coverage), `isGstVerified`, `isVerifiedExporter`, `isEmailVerified`, `isMobileVerified`, `supplierRating`, `ratingCount`, `dateOfIncorporation` |
| **Export intelligence** | `exportCountries`, `exportCountriesIso`, `exporterSince`, `exporterSinceDisplay` (requires non-India proxy IP, configured by default) |
| **Smart filters** | `onlyExporters`, `onlyGstVerified`, `exportCountry` (35+ destination countries), `minSupplierRating` |
| **Export & integrations** | JSON, CSV, Excel (XLSX), XML, RSS, Apify API, Google Sheets, Make, Zapier, n8n, Slack & webhooks |

***

### 🔎 Why scrape IndiaMART?

IndiaMART connects over **10 million suppliers** with millions of buyers across thousands of product categories — building materials, industrial machinery, textiles, chemicals, agriculture, electronics, packaging, pharmaceuticals and much more. It is the single richest public source of Indian manufacturer and wholesaler data on the internet.

But IndiaMART has no public bulk export, its search caps results, and copying listings by hand is slow and error-prone. This scraper automates the whole process: you give it keywords, it returns hundreds of clean supplier records you can sort, filter, and import anywhere.

**Common reasons people scrape IndiaMART:**

- Build **targeted B2B lead lists** of manufacturers and wholesalers
- Find **Indian exporters** that already ship to a specific country
- **Compare prices and MOQ** across suppliers for the same product
- **Enrich a CRM** with company websites, GST numbers and locations
- Track **competitors, market trends and product availability**
- Source products for **import, retail, dropshipping or private label**

***

### ✨ What this IndiaMART scraper does

- ✅ Searches IndiaMART by **any keyword** (e.g. `plywood`, `industrial valves`, `cotton fabric`, `basmati rice`)
- ✅ Returns **hundreds of unique suppliers per keyword** thanks to automatic category expansion (de-duplicated)
- ✅ Captures **full product details** — title, price, currency, MOQ, unit, specifications, images, description, product documents
- ✅ Captures **full supplier profiles** — company name, website, call number, GST number, IEC number, ratings, member-since, incorporation date
- ✅ Includes **export intelligence** — which countries each supplier exports to, verified-exporter status and IEC license
- ✅ Powerful **filters** — only verified exporters, only GST-verified suppliers, exports-to a target country, minimum supplier rating
- ✅ Exports to **JSON, CSV, Excel, XML** and integrates with Google Sheets, Make, Zapier, Slack and your own apps
- ✅ **No anti-bot headaches** — fast, reliable, and affordable to run at scale

***

### 🎯 Use cases

#### 1. B2B lead generation

Build laser-targeted lists of Indian manufacturers and wholesalers for outreach. Every record includes the **company name, website, call number, city, state and GST number** — everything your sales team needs to qualify and contact a supplier. Filter by rating to focus only on established, well-reviewed businesses.

#### 2. Export & import sourcing

Find Indian suppliers that **already export to your country**. Turn on `onlyExporters` and set `exportCountry` to (for example) `United Arab Emirates`, and the scraper returns only suppliers holding an **IEC license** that ship to the UAE — along with the full list of countries they export to. Ideal for importers, trading companies and sourcing agents.

#### 3. Price monitoring & benchmarking

Pull prices and MOQ for the same product across dozens of suppliers to understand market rates, spot the cheapest sources, and benchmark your own pricing. Re-run the Actor on a schedule to track how prices move over time.

#### 4. Market & competitor research

Map out who sells what, where, and at what price in any product category. See which cities dominate a category, which suppliers are verified exporters, and how products are specified — invaluable for market-entry, competitive analysis and category planning.

#### 5. CRM & database enrichment

Already have a list of products or categories? Feed them in and enrich your CRM or internal database with fresh **company websites, GST numbers, locations, ratings and export data**. The supplier website field is a perfect starting point for further email/contact enrichment.

#### 6. Procurement & supplier discovery

Procurement teams use the scraper to quickly discover and shortlist new suppliers for a part or material, compare their credentials (GST-verified, exporter, years in business), and reach out — cutting sourcing time from days to minutes.

#### 7. Dropshipping & private label sourcing

Find manufacturers for products you want to sell, complete with MOQ, specifications and images, so you can evaluate suppliers before requesting samples.

***

### 🏭 Popular categories & industries you can scrape

IndiaMART covers virtually every B2B category. This scraper handles all of them — just type any product into `queries`. Popular examples:

- **Building & construction** — plywood, TMT bars, cement, tiles, PVC pipes, paints, doors
- **Industrial machinery** — CNC machines, compressors, pumps, industrial valves, packaging machines
- **Textiles & apparel** — cotton fabric, garments, yarn, uniforms, safety wear, footwear
- **Agriculture & food** — basmati rice, spices, pulses, tea, grains, fertilizers, seeds
- **Chemicals** — dyes, resins, industrial chemicals, solvents, lab reagents
- **Electronics & electrical** — LED lights, sensors, cables, batteries, solar panels
- **Packaging** — corrugated boxes, plastic bottles, pouches, labels, caps
- **Pharma & medical** — nutraceuticals, medical equipment, surgical supplies, diagnostics
- **Leather & handicrafts** — leather gloves, bags, home décor, furniture, gifts
- **Automotive & engineering** — auto parts, bearings, fasteners, tools, castings

…and thousands more product categories across India's 10M+ supplier base.

### ⚙️ How it works

1. **Enter one or more search keywords** — exactly what you'd type into IndiaMART's search box.
2. **Set how many results you want** per keyword and (optionally) apply filters.
3. **Run the Actor** — it collects, de-duplicates and structures the data, then makes it available for download or via API.

That's it. No proxies to configure (a sensible default is built in), no login, no captcha solving.

***

### 📈 Get hundreds of results from a single keyword

A single exact IndiaMART search term only surfaces a small number of results. To solve this, the scraper has **automatic category expansion** (the `autoExpand` option, on by default).

When enabled, it follows the **related product categories that IndiaMART itself suggests** for your keyword and keeps collecting until it reaches your target. For example, `plywood` automatically fans out into *Marine Plywood, Shuttering Plywood, Waterproof Plywood, Greenply Plywood, Centuryply Plywood, Okoume Plywood* and more — all **de-duplicated by product ID**, so you never get the same supplier twice.

➡️ The result: one keyword like `plywood` can return **250+ unique, verified suppliers** in a single run.

If you prefer narrow, exact-match results, simply turn `autoExpand` off.

***

### 🔧 Input parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `queries` | array | ✅ Yes | One or more search terms, exactly as typed into IndiaMART (e.g. `plywood`, `industrial valves`). Add a city to bias results, e.g. `plywood mumbai`. |
| `maxItemsPerQuery` | integer | No | Target number of **unique** products to collect per keyword. Default `50`. |
| `autoExpand` | boolean | No | Follow related categories to reach high volume from one keyword (de-duplicated). Default `true`. |
| `onlyExporters` | boolean | No | Keep only suppliers with an IEC license / verified-exporter status. Default `false`. |
| `onlyGstVerified` | boolean | No | Keep only suppliers whose GST registration is verified. Default `false`. |
| `exportCountry` | string | No | Keep only suppliers that export to this country (e.g. `United States Of America`, `Nepal`). |
| `minSupplierRating` | integer | No | Keep only suppliers with a rating ≥ this value (0–5). Default `0`. |
| `proxyConfiguration` | object | No | Apify Proxy settings. Defaults to a US IP (see note). |

> ⚠️ **Export data needs a non-India IP.** IndiaMART only returns export-intelligence fields (`iecNumber`, `exportCountries`) to visitors outside India. The proxy country defaults to **US** for this reason — keep it outside India. The API has no anti-bot protection, so inexpensive datacenter proxies work perfectly.

#### Example input — simple lead list

```json
{
    "queries": ["plywood"],
    "maxItemsPerQuery": 250
}
```

#### Example input — export sourcing (suppliers shipping to UAE)

```json
{
    "queries": ["basmati rice"],
    "maxItemsPerQuery": 100,
    "onlyExporters": true,
    "exportCountry": "United Arab Emirates"
}
```

#### Example input — multiple categories, verified only

```json
{
    "queries": ["industrial valves", "cotton fabric", "leather gloves"],
    "maxItemsPerQuery": 200,
    "onlyGstVerified": true,
    "minSupplierRating": 3
}
```

***

### 📤 Output

The Actor stores one row per product, each with full supplier context. Data can be downloaded as **JSON, CSV, Excel, XML** or pulled via the Apify API.

#### Sample output record

Below is a **real record from a verification run** (search term `submersible pump`), lightly trimmed for readability:

```json
{
    "productName": "JB Pumps Dewatering Submersible Pump, 20 HP",
    "productUrl": "https://www.indiamart.com/proddetail/dewatering-submersible-pump-25769797030.html",
    "displayId": "25769797030",
    "price": 50000,
    "priceText": "₹ 50,000/Unit",
    "currency": "INR",
    "minOrderQuantity": 5,
    "minOrderUnit": "Unit",
    "specifications": {
        "Discharge Range": "60 LPM",
        "Motor Phase": "Three Phase",
        "Head": "65 m",
        "Model Name/Number": "JBDPT"
    },
    "description": "We are engaged in offering Dewatering Submersible Pump to our clients. Our range of all products is widely appreciated by our clients.",
    "categories": ["Submersible Dewatering Pump"],
    "image": "http://5.imimg.com/data5/ANDROID/Default/2022/5/FL/RV/MQ/9860906/product-jpeg-250x250.jpg",
    "companyName": "JB Pumps India Private Limited",
    "companyProfileUrl": "https://www.indiamart.com/jaybajarangengineering/",
    "supplierWebsite": "https://www.jbpumps.in/",
    "supplierId": "9860906",
    "callNumber": "8048262907",
    "gstNumber": "24AAFCJ3666B1ZU",
    "iecNumber": "0815007108",
    "isExporter": true,
    "isVerifiedExporter": true,
    "isGstVerified": true,
    "isEmailVerified": true,
    "isMobileVerified": true,
    "supplierRating": 4,
    "ratingCount": 127,
    "exportCountries": ["Nepal", "United States Of America", "Bangladesh", "Saudi Arabia", "Qatar"],
    "exportCountriesIso": ["NP", "US", "BD", "SA", "QA"],
    "exporterSince": "2015-07-06T00:00:00.000Z",
    "exporterSinceDisplay": "11+ yrs",
    "memberSinceDisplay": "12 yrs",
    "dateOfIncorporation": "2013-12-01T00:00:00.000Z",
    "lastActiveAt": "2026-08-25T07:38:41Z",
    "city": "Ahmedabad",
    "district": "Ahmedabad",
    "state": "Gujarat",
    "pincode": "382350",
    "country": "India",
    "searchQuery": "submersible pump",
    "scrapedAt": "2026-11-01T23:29:20.146Z"
}
```

#### Output fields reference

**Product fields**

| Field | Description |
| --- | --- |
| `productName` | Product title |
| `productUrl` | Link to the product page on IndiaMART |
| `displayId` | IndiaMART product ID (used for de-duplication) |
| `price` | Numeric price (when listed) |
| `priceText` | Human-readable price, e.g. `₹ 92/Kg` |
| `currency` | Price currency (e.g. INR) |
| `minOrderQuantity` | Minimum order quantity |
| `minOrderUnit` | Unit for the MOQ (Kg, Piece, Sq ft…) |
| `specifications` | Structured product attributes (Grade, Size, Brand…) |
| `description` | Product description text |
| `categories` | Product category names |
| `image` | Main product image URL |
| `images` | All product image URLs |
| `productDocument` | Product brochure/document URL (when available) |

**Supplier identity & contact**

| Field | Description |
| --- | --- |
| `companyName` | Supplier company name |
| `companyProfileUrl` | Supplier's IndiaMART profile page |
| `supplierWebsite` | Supplier's own website (great for enrichment) |
| `supplierId` | Unique supplier ID |
| `callNumber` | IndiaMART click-to-call number |
| `gstNumber` | GST registration number |
| `iecNumber` | Import-Export Code (IEC) |

**Trust & verification signals**

| Field | Description |
| --- | --- |
| `isExporter` | Holds an IEC license |
| `isVerifiedExporter` | Verified exporter on IndiaMART |
| `isGstVerified` | GST registration verified |
| `isEmailVerified` | Email verified |
| `isMobileVerified` | Mobile number verified |
| `supplierRating` | Average rating (0–5) |
| `ratingCount` | Number of ratings |

**Export intelligence**

| Field | Description |
| --- | --- |
| `exportCountries` | Countries the supplier exports to |
| `exportCountriesIso` | ISO codes for those countries |
| `exporterSince` | Date the supplier began exporting |
| `exporterSinceDisplay` | e.g. `10+ yrs` |

**Company background & location**

| Field | Description |
| --- | --- |
| `memberSince` / `memberSinceDisplay` | How long on IndiaMART |
| `dateOfIncorporation` | Company incorporation date |
| `lastActiveAt` | When the supplier was last active on IndiaMART (lead-freshness signal) |
| `companyVideo` | Company video URL (when available) |
| `address`, `city`, `district`, `state`, `pincode`, `country` | Full location |
| `searchQuery` | The keyword this record came from |
| `scrapedAt` | Timestamp of extraction |

***

### ✅ Proven results (fresh verification run)

Latest verification run — **6 keywords, 540 unique de-duplicated records in 94 seconds** (US datacenter proxy, `maxItemsPerQuery: 90` per keyword, `autoExpand` on). Per-keyword field coverage:

| Search term | Unique results | GST | IEC | Export countries | Website | Price | Rating |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `industrial valves` | 90 | 100% | 99% | 100% | 100% | 98% | 100% |
| `basmati rice` | 90 | 100% | 94% | 99% | 100% | 92% | 100% |
| `led lights` | 90 | 100% | 98% | 90% | 100% | 99% | 100% |
| `submersible pump` | 90 | 100% | 98% | 91% | 100% | 87% | 100% |
| `cotton fabric` | 90 | 100% | 91% | 86% | 100% | 97% | 100% |
| `plywood` | 90 | 100% | 94% | 31% | 100% | 83% | 100% |

**Across all 540 records:** `companyName` 100%, `gstNumber` 100%, `supplierWebsite` 100%, `callNumber` 100%, `supplierRating` 100%, `specifications` 98%, `iecNumber` 96%, `price` 93%, `exportCountries` 83% — with a **0% duplicate rate** on product ID.

Company name, GST, supplier website, call number and rating come back on **virtually every record**. Export-country and IEC coverage is highest for export-oriented sectors (valves, agriculture, electronics) and when `onlyExporters` is enabled; it is naturally lower in domestic-heavy categories like `plywood`, where many suppliers sell only within India.

***

### 🧰 Filters explained

- **Only verified exporters (`onlyExporters`)** — narrows results to suppliers with an IEC license. Use this for international sourcing and export lead lists.
- **Only GST-verified (`onlyGstVerified`)** — keeps only suppliers whose GST registration has been verified, raising overall data trustworthiness.
- **Exports to country (`exportCountry`)** — keeps only suppliers shipping to a specific market. Match is case-insensitive (e.g. `usa`, `United States Of America`).
- **Minimum rating (`minSupplierRating`)** — focus on established, well-reviewed suppliers only.

Combine filters freely — for example, *verified exporters, rating ≥ 4, exporting to Germany* — to produce a tightly qualified lead list.

***

### 🔌 Integrations

Send your IndiaMART data anywhere with Apify's built-in integrations and webhooks:

- **Google Sheets** — push leads straight into a spreadsheet
- **Make (Integromat) & Zapier** — trigger workflows on every run
- **Slack / email** — get notified when new data is ready
- **CRMs & databases** — via API, webhooks or no-code connectors
- **Your own app** — pull results through the Apify API in JSON

***

### ▶️ How to use this IndiaMART scraper (step by step)

1. Click **Try for free** at the top of this page.
2. In the **Input** tab, add your search keywords under `queries`.
3. Set `maxItemsPerQuery` (e.g. `250`) and apply any filters you need.
4. Click **Start** and wait for the run to finish (usually under a minute for a few hundred results).
5. Open the **Output / Dataset** tab and download your data as **JSON, CSV or Excel**, or copy the API endpoint to pull it programmatically.

You can also **schedule** the Actor to run daily/weekly to keep your supplier data fresh.

***

### ❓ Frequently asked questions

**Does it include supplier phone numbers and emails?**
IndiaMART hides personal phone numbers and email addresses behind a buyer login, so those are not available. You do get the **IndiaMART call number** (click-to-call line), verification flags, the supplier's own **website** and **IndiaMART profile URL** — the best starting points for contact enrichment.

**Can I get the GST number?**
Yes. The `gstNumber` field is returned on virtually every record, along with a `isGstVerified` flag.

**What is the IEC number?**
The Import-Export Code is a license required to export from / import into India. The `iecNumber` field tells you the supplier is set up for international trade — extremely useful for sourcing exporters.

**How many results can I get?**
With `autoExpand` on, a single keyword can return hundreds of unique suppliers. For even more, add multiple keywords or related terms. Exact counts depend on how many suppliers IndiaMART lists for your category.

**Why are export countries empty for some suppliers?**
Not every supplier is an exporter. Export fields are richest for export-oriented sectors and when `onlyExporters` is enabled. Also make sure your proxy country is **not India** (export data is only shown to non-India IPs).

**Can I filter by city or location?**
Yes — append a city to your keyword, e.g. `plywood mumbai`, to bias results toward that location.

**What export formats are supported?**
JSON, CSV, Excel (XLSX), XML, and RSS — plus direct API access.

**How much does it cost to run?**
You only pay for the results you collect (pay-per-result). The API has no anti-bot protection, so runs are fast and cheap even at scale.

**Can I run it on a schedule?**
Yes. Use Apify Schedules to run the scraper automatically (e.g. every morning or weekly) and keep your supplier database up to date.

***

### 💡 Tips & best practices

- **Use specific keywords.** `marine plywood` returns more relevant suppliers than just `plywood`. Combine several related keywords for maximum coverage.
- **Turn on `onlyExporters`** when building export/import lead lists — it dramatically increases the quality of export-country and IEC data.
- **Scale to 1,000+ suppliers effortlessly.** Set `maxItemsPerQuery: 1000` (with `autoExpand: true`) and the scraper automatically traverses related product categories and major Indian industrial hubs (`mumbai`, `ahmedabad`, `surat`, `delhi`, `chennai`, `pune`, etc.) with global `displayId` deduplication.
- **Keep the proxy outside India** to capture export intelligence fields (`iecNumber` and `exportCountries`).
- **Schedule regular runs** to monitor prices and discover newly listed suppliers over time.
- **De-duplication is automatic** — feel free to add overlapping keywords; you won't get duplicate products.

***

### ⚠️ Limitations

- Personal emails and direct mobile numbers are gated behind IndiaMART buyer login and are **not** included; use `supplierWebsite`, `callNumber`, and `gstNumber` for downstream contact enrichment.
- Export-country and IEC data is only available for suppliers that have declared export activity, and only when scraping from a **non-India IP** (configured to `US` by default).
- Result volume per keyword depends on how many suppliers IndiaMART lists across the matched categories and hubs.

***

### 🔗 Related scrapers

Building a multi-marketplace B2B sourcing or lead-generation pipeline? Pair this IndiaMART scraper with the other supplier and corporate intelligence scrapers in the collection:

- [India MCA Company Data Scraper](https://apify.com/haketa/india-mca-scraper) — enrich Indian companies by CIN with directors (DIN), authorized/paid-up capital, registered email, and secured charges.
- [TradeIndia Scraper](https://apify.com/haketa/tradeindia-scraper) — extract Indian suppliers, products, and export leads from TradeIndia.
- [Made-in-China Scraper](https://apify.com/haketa/made-in-china-scraper) — scrape Chinese manufacturers, products, MOQ, and prices from Made-in-China.com.
- [Europages Scraper](https://apify.com/haketa/europages-scraper) — collect European B2B suppliers and manufacturers from Europages.
- [Dun & Bradstreet Scraper](https://apify.com/haketa/dnb-scraper) — global company firmographics, DUNS numbers, revenue, and principals.

***

### 📋 Changelog

#### v1.2 (2026-11)

- **Unlocked 1,000+ deep category & industrial-hub expansion:** Removed the `maxTermsPerSeed` expansion bottleneck (`effectiveMaxPerQuery / 12`), added automatic Indian industrial-hub city expansion (`mumbai`, `delhi`, `ahmedabad`, `surat`, `chennai`, `pune`, `bengaluru`, etc.) for large quotas (`> 150`), and added `maxItems` support alongside `maxItemsPerQuery` so runs requesting 1,000+ items scale smoothly with `0%` duplicates.
- **Fast prefill tuning:** Set `maxItemsPerQuery` prefill to `80` for rapid `< 25s` verification runs.
- **Documentation upgrade:** Added `At a glance` summary table, visual status badges, and updated 1,000+ scaling documentation.

#### v1.1 (2026-11)

- Verified with a 540-record benchmark across 6 keywords (94s, 0% duplicates, 100% `companyName` / `gstNumber` / `supplierWebsite` / `callNumber` / `supplierRating` coverage) and enhanced HTML-entity decoding for product descriptions.

#### v1.0 (2026-05)

- Initial release with automatic category graph expansion (`autoExpand`), GST/IEC/export-country extraction, and exporter/rating filters.

# Changelog

This Actor's version history is a separate document: https://apify.com/haketa/indiamart-scraper/changelog.md

# Actor input Schema

## `queries` (type: `array`):

Type one or more products, materials or categories you want suppliers for, just like in the IndiaMART search box (e.g. "plywood", "industrial valves", "cotton t-shirts"). Tip: add a city to narrow results, e.g. "plywood mumbai". Leave empty to get a ready-made mixed sample of popular products across categories.

## `maxItemsPerQuery` (type: `integer`):

How many products to collect for each search term (0 = unlimited). Raise it to 1,000+ to build large supplier lists, or lower it for a quick sample. Results are paginated and de-duplicated automatically.

## `autoExpand` (type: `boolean`):

When on, the scraper automatically explores related product categories for each search term to collect far more unique suppliers from a single keyword. Keep this on to reach high result counts. Everything is de-duplicated.

## `onlyExporters` (type: `boolean`):

Keep only suppliers that hold an Import-Export Code (IEC) and are flagged as verified exporters. Ideal for international sourcing and export lead lists.

## `onlyGstVerified` (type: `boolean`):

Keep only suppliers whose GST registration has been verified on IndiaMART, for higher-trust B2B leads.

## `exportCountry` (type: `string`):

Keep only suppliers that export to a specific destination country. Choose a country to build a targeted export lead list, or leave as "Any country" to keep all suppliers.

## `minSupplierRating` (type: `string`):

Keep only suppliers rated at or above this star level. Choose a higher bar for better-reviewed suppliers, or "Any rating" to keep everyone.

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

Export intelligence fields (IEC number, export countries) are only returned to non-India IPs, so the proxy country defaults to the US. Keep it set to a non-India location for the richest data.

## Actor input object example

```json
{
  "queries": [
    "plywood",
    "industrial valves"
  ],
  "maxItemsPerQuery": 80,
  "autoExpand": true,
  "onlyExporters": false,
  "onlyGstVerified": false,
  "exportCountry": "",
  "minSupplierRating": "0",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyCountry": "US"
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

Open to view, filter and export all scraped results from this run (JSON, CSV, Excel).

# 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 = {
    "queries": [
        "plywood"
    ],
    "maxItemsPerQuery": 80,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyCountry": "US"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("haketa/indiamart-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 = {
    "queries": ["plywood"],
    "maxItemsPerQuery": 80,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyCountry": "US",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("haketa/indiamart-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 '{
  "queries": [
    "plywood"
  ],
  "maxItemsPerQuery": 80,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyCountry": "US"
  }
}' |
apify call haketa/indiamart-scraper --silent --output-dataset

```

## MCP server setup

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