# IndiaMart Scraper - B2B Suppliers, Products & Prices (`thirdwatch/indiamart-supplier-scraper`) Actor

Scrape IndiaMart.com B2B supplier listings: company name, contact, products, prices, GST number, turnover, employee count. India's largest B2B marketplace with 10M+ suppliers. Detail pages for verified data. ~$0.002/supplier. No login needed.

- **URL**: https://apify.com/thirdwatch/indiamart-supplier-scraper.md
- **Developed by:** [Thirdwatch](https://apify.com/thirdwatch) (community)
- **Categories:** Other
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## IndiaMart Scraper - B2B Suppliers, Products & Prices

> Scrape B2B supplier listings from IndiaMart.com -- India's largest B2B marketplace with 10M+ suppliers.

### What you get

Extract company names, contact persons, locations, product catalogs, price ranges, GST numbers, annual turnover, and employee counts from IndiaMart. Perfect for supplier discovery, pricing analysis, and B2B lead generation.

No IndiaMart account needed. No API key required.

Try it free -- click **Start** in the Input tab.

### Why scrape IndiaMart?

IndiaMart dominates Indian B2B commerce with 70%+ market share. Whether you're sourcing suppliers, analyzing pricing, building a procurement tool, or researching Indian manufacturing -- IndiaMart is the definitive source for B2B data.

**Use cases:**
- Supplier discovery and verification
- Competitive pricing analysis
- Procurement automation
- Market research on Indian manufacturing
- B2B lead generation
- Supply chain intelligence

### Output fields

| Field | Description |
|-------|-------------|
| `company_name` | Supplier company name |
| `contact_person` | Contact person name |
| `location` | Company location |
| `products` | Product names |
| `description` | Company/product description |
| `price_range` | Product price range |
| `gst_number` | GST tax identifier (from detail pages) |
| `year_established` | Year founded |
| `employee_count` | Company size |
| `annual_turnover` | Annual revenue range |
| `website` | Company website |
| `listing_url` | IndiaMart listing URL |

### Example output

```json
{
    "company_name": "Tata Steel Ltd.",
    "contact_person": "Rajesh Kumar",
    "location": "Mumbai, Maharashtra",
    "products": ["Steel Pipes", "Steel Tubes", "Steel Rods"],
    "description": "Leading manufacturer of steel products...",
    "price_range": "Rs 50 - Rs 200 / Kg",
    "gst_number": "27AAACT2727Q1ZV",
    "year_established": "1998",
    "employee_count": "500-1000",
    "annual_turnover": "Rs 100 Crore+",
    "website": "https://www.tatasteel.com",
    "listing_url": "https://www.indiamart.com/tata-steel/"
}
````

### Input parameters

| Parameter | Required | Description |
|-----------|----------|-------------|
| `queries` | Yes | Product or supplier search terms (e.g., "steel pipes", "packaging machines") |
| `location` | No | City/state filter (e.g., "Mumbai"). Empty = all India |
| `maxResultsPerQuery` | No | Max suppliers per query (default: 25) |
| `scrapeDetailPages` | No | Visit detail pages for GST, turnover, employee count (default: true) |

### Pricing

Pay-per-result pricing at $0.003 per supplier listing.

| Suppliers | Cost |
|-----------|------|
| 25 | ~$0.08 |
| 100 | ~$0.30 |
| 500 | ~$1.50 |

### Tips

- **Be specific** -- "stainless steel pipes 304" gets better results than "pipes"
- **Location filter** -- narrow to a city for local suppliers
- **Skip detail pages** -- disable `scrapeDetailPages` for faster runs when you only need basic listings

### FAQ

**Do I need an IndiaMart account?**
No. The scraper accesses only publicly visible supplier listings.

**What is GST number?**
GST (Goods and Services Tax) number is India's business tax identifier. It verifies a supplier is a registered business.

**Can I get supplier contact emails?**
IndiaMart typically shows contact person names but hides email/phone behind login walls. The scraper extracts all publicly visible data.

### Related Actors

- [JustDial Business Scraper](https://apify.com/thirdwatch/justdial-business-scraper) -- India business listings, phone, rating, reviews
- [LinkedIn Jobs Scraper](https://apify.com/thirdwatch/linkedin-jobs-scraper) -- Global job listings, salary, skills

### Changelog

- **v1.0** -- Initial release with search, detail page scraping, GST extraction, and location filtering

# Actor input Schema

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

Product/supplier search terms (e.g., 'steel pipes', 'organic chemicals', 'packaging machines'). Each query scrapes one search results page.

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

Optional city/state filter (e.g., 'Mumbai', 'Maharashtra'). Leave empty for all-India results.

## `maxResultsPerQuery` (type: `integer`):

Maximum supplier/product records to extract per search query.

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

Proxy settings. Usually not needed. Only enable if direct connection fails.

## Actor input object example

```json
{
  "queries": [
    "steel pipes"
  ],
  "location": "",
  "maxResultsPerQuery": 25
}
```

# 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": [
        "steel pipes"
    ],
    "maxResultsPerQuery": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("thirdwatch/indiamart-supplier-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": ["steel pipes"],
    "maxResultsPerQuery": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("thirdwatch/indiamart-supplier-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).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": [
    "steel pipes"
  ],
  "maxResultsPerQuery": 25
}' |
apify call thirdwatch/indiamart-supplier-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=thirdwatch/indiamart-supplier-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "IndiaMart Scraper - B2B Suppliers, Products & Prices",
        "description": "Scrape IndiaMart.com B2B supplier listings: company name, contact, products, prices, GST number, turnover, employee count. India's largest B2B marketplace with 10M+ suppliers. Detail pages for verified data. ~$0.002/supplier. No login needed.",
        "version": "1.0",
        "x-build-id": "nQMbfGQ6gMfqV2Wjk"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/thirdwatch~indiamart-supplier-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-thirdwatch-indiamart-supplier-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/thirdwatch~indiamart-supplier-scraper/runs": {
            "post": {
                "operationId": "runs-sync-thirdwatch-indiamart-supplier-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/thirdwatch~indiamart-supplier-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-thirdwatch-indiamart-supplier-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "queries"
                ],
                "properties": {
                    "queries": {
                        "title": "Search Queries",
                        "type": "array",
                        "description": "Product/supplier search terms (e.g., 'steel pipes', 'organic chemicals', 'packaging machines'). Each query scrapes one search results page.",
                        "default": [
                            "steel pipes"
                        ],
                        "items": {
                            "type": "string"
                        }
                    },
                    "location": {
                        "title": "Location Filter",
                        "type": "string",
                        "description": "Optional city/state filter (e.g., 'Mumbai', 'Maharashtra'). Leave empty for all-India results.",
                        "default": ""
                    },
                    "maxResultsPerQuery": {
                        "title": "Max Results Per Query",
                        "minimum": 1,
                        "maximum": 200,
                        "type": "integer",
                        "description": "Maximum supplier/product records to extract per search query.",
                        "default": 25
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings. Usually not needed. Only enable if direct connection fails."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
