# TradeIndia Scraper - B2B Suppliers, Prices, Email & Phone (`haketa/tradeindia-scraper`) Actor

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

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

## Pricing

from $2.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

## TradeIndia Scraper — Indian B2B Suppliers, Manufacturers, Product Prices, MOQ, Email & Phone Leads

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-0066CC?logo=apify\&logoColor=white)](https://apify.com/haketa/tradeindia-scraper)
[![Region](https://img.shields.io/badge/Market-India%20%F0%9F%87%AE%F0%9F%87%B3%20B2B%20Suppliers%20%26%20Exporters-FF9933)]()
[![Fields](https://img.shields.io/badge/Fields-34%20Supplier%20%26%20Product%20Attributes-2EA44F)]()
[![Contacts](https://img.shields.io/badge/Direct%20Contacts-Email%20%2B%20Mobile%20%2B%20Phone%20Included-success)]()
[![Scale](https://img.shields.io/badge/Scale-1%2C000%2B%20Supplier%20Leads%20Per%20Run-blueviolet)]()
[![Export](https://img.shields.io/badge/Export-JSON%20%7C%20CSV%20%7C%20Excel%20%7C%20API-0A66C2)]()

**Extract verified B2B supplier leads and product catalogs from [TradeIndia.com](https://www.tradeindia.com) — one of India's largest B2B wholesale and export marketplaces — complete with direct supplier email addresses, mobile numbers, phone numbers, company profiles, prices, MOQ, certifications, and trade terms.**

Unlike most B2B directories that hide contact details behind inquiry forms, **TradeIndia listings include the supplier's direct `email`, `mobile`, and `phone`**. This **TradeIndia scraper** turns any product or industry keyword into a CRM-ready database of Indian manufacturers, exporters, wholesalers, and distributors in minutes — with **no login, no coding, and 0 duplicate records**.

Export your B2B leads to **JSON, CSV, Excel (XLSX), XML, or the Apify API**.

> Built for global sourcing & procurement teams, B2B lead-generation agencies, import/export brokers, wholesale price analysts, and Indian B2B sales teams that need contact-ready supplier records at scale.

***

### ⚡ At a glance

| Feature | Details |
|---|---|
| **Target Platform** | [TradeIndia.com](https://www.tradeindia.com) — Indian B2B Manufacturers, Exporters, Traders & Wholesale Suppliers |
| **Direct Contact Fields** | `email` (~100% fill rate), `mobile` (~100% fill rate), `phone` (~99% fill rate), `companyName`, `companyProfileUrl`, `address`, `city`, `state`, `latitude`, `longitude` |
| **Product & Pricing Fields** | `productName`, `productId`, `productUrl`, `price`, `priceValue` (numeric), `currency`, `unit`, `minOrderQuantity` (MOQ), `brandName`, `category`, `productImage`, `description` |
| **Supplier Verification & Terms** | `businessTypes`, `isManufacturer`, `isExporter`, `isTrader`, `hasTrustStamp`, `isVerified`, `certifications`, `memberSinceYears`, `established`, `supplyAbility`, `deliveryTime`, `paymentTerms`, `inStock`, `madeInIndia` |
| **Supplier Type Filters** | Multi-select filter: `manufacturers` (Manufacturers only), `exporters` (Exporters only), `trustStamp` (TrustStamp-verified suppliers only) |
| **Pagination & 1K+ Scale** | Automatic multi-page pagination (~30 products/page) up to **1,000+ to 20,000+ supplier leads** per run, with automatic category expansion when a global `maxItems` target is set |
| **Empty-Input Behavior** | Running with `{}` automatically collects a balanced 100-item B2B sample across 10 major industrial categories |
| **Export Formats** | JSON, JSONL, CSV, Excel (XLSX), HTML, XML, RSS, and Apify REST API |

***

### 🔎 Why scrape TradeIndia for B2B lead generation & global sourcing?

**TradeIndia.com** connects over 10 million registered buyers and suppliers across thousands of Indian manufacturing hubs — including **Ahmedabad, Surat, Vadodara, Rajkot, Mumbai, Pune, Delhi NCR, Noida, Ludhiana, Tirupur, Coimbatore, Chennai, Hyderabad, Bengaluru, and Kolkata**.

For global importers and B2B sales teams, TradeIndia is a uniquely valuable data source because every product listing carries both **commercial product specs** and **direct supplier contact data**:

1. **100% contact-ready B2B leads (`email` + `mobile` + `phone`):** Skip manual LinkedIn lookups and contact-form gates. Every extracted record gives your SDRs or sourcing specialists a direct email address and Indian mobile/landline number (`+91...`).
2. **Verified manufacturer vs trader filtering:** Separate true factory owners (`isManufacturer: true`) and international exporters (`isExporter: true`) from pure middlemen, and prioritize `hasTrustStamp: true` suppliers with long platform tenure (`memberSinceYears`) and `established` year.
3. **Structured wholesale pricing & MOQ comparison:** Compare numeric `priceValue`, `currency` (`INR`, `USD`, `EUR`), `unit` (`Piece`, `Kg`, `Metric Ton`, `Set`), `minOrderQuantity`, `supplyAbility`, and `deliveryTime` across ratusan factories in seconds.
4. **Geospatial cluster mapping:** Every supplier includes `city`, `state`, full street `address`, and GPS coordinates (`latitude` / `longitude`) so you can cluster suppliers around major Indian ports and industrial corridors.

***

### ✨ Key features

- ✅ **Multi-keyword bulk search (`queries`):** Pass one or dozens of product/category keywords (`"led light"`, `"industrial valves"`, `"cotton yarn"`, `"stainless steel pipe"`, `"surgical instruments"`) and collect thousands of deduplicated listings in a single run.
- ✅ **Unlocked 1,000+ lead pagination & auto-expansion:** Automatically paginates through TradeIndia's search pages (~30 listings per page, up to 1,000 pages per query). Set `maxItemsPerQuery` to control per-keyword depth or `maxItems` to set a global target across all keywords — if your initial keywords exhaust before reaching `maxItems`, the scraper automatically expands across top B2B industrial categories so **1,000+ leads** are always delivered.
- ✅ **Precision supplier filtering (`supplierType`):** Filter at run time to keep only:
  - **`manufacturers`** (`ifmanu = true`) — direct factories and producers
  - **`exporters`** (`ifexporter = true`) — export-ready suppliers for international trade
  - **`trustStamp`** (`has_trust_stamp = true`) — TradeIndia TrustStamp-verified businesses
- ✅ **Numeric price & ISO currency parser:** Extracts both the raw price string (`"2,800 INR (Approx.)"`) and a clean numeric `priceValue` (`2800`) + normalized 3-letter `currency` (`"INR"`, `"USD"`, `"EUR"`).
- ✅ **Trade terms & production capacity extraction:** Parses `supplyAbility` (`"100 Per Week"`), `deliveryTime` (`"1 Week"`), `paymentTerms`, `inStock`, and `madeInIndia` flags directly from supplier trade disclosures.
- ✅ **Global deduplication (`productId`):** Cross-keyword deduplication ensures that a product ranking for multiple search terms is emitted only once.

***

### 🎯 Use cases

#### 1. B2B outbound sales & WhatsApp/email outreach in India

B2B SaaS companies, logistics providers, freight forwarders, trade-finance fintechs, ERP vendors, and packaging suppliers scrape TradeIndia by industry category and state (`Gujarat`, `Maharashtra`, `Tamil Nadu`, `Punjab`) to build targeted outreach lists with verified `email`, `mobile`, `companyName`, and `established` year.

#### 2. International sourcing & private-label manufacturing

Amazon FBA sellers, D2C brands, and wholesale importers filter `supplierType: ["manufacturers", "exporters", "trustStamp"]` for categories like leather goods, textiles, home decor, brass hardware, ayurvedic cosmetics, and industrial fasteners — comparing `priceValue`, `minOrderQuantity`, and `certifications` (`ISO 9001`, `CE`, `GMP`) side by side in Excel.

#### 3. Wholesale commodity & industrial price intelligence

Procurement teams track asking prices, MOQs, and `supplyAbility` across hundreds of Indian chemical, steel, polymer, solar, and electrical equipment suppliers to benchmark quotes before RFQs.

#### 4. B2B directory & CRM enrichment

Data vendors and trade directories enrich company profiles with TradeIndia's `businessTypes`, `keywords`, `memberSinceYears`, `established` year, and exact `latitude`/`longitude` coordinates.

***

### 🏭 Popular B2B categories to scrape on TradeIndia

| Sector | Example `queries` keywords |
|---|---|
| **Industrial & Mechanical** | `industrial valves`, `submersible pump`, `ball bearings`, `hydraulic cylinder`, `air compressor`, `cnc machine` |
| **Electrical & Solar** | `led light`, `solar panel`, `power transformer`, `copper wire`, `switchgear`, `lithium battery` |
| **Textiles, Apparel & Leather** | `cotton yarn`, `polyester fabric`, `leather gloves`, `safety shoes`, `denim fabric`, `bed sheets` |
| **Metals, Pipes & Hardware** | `stainless steel pipe`, `ms plate`, `brass fittings`, `hex bolts`, `scaffolding`, `aluminium extrusion` |
| **Packaging & Printing** | `packaging bags`, `corrugated box`, `bopp tape`, `hdpe bottles`, `stretch film`, `paper cups` |
| **Chemicals, Pharma & Ayurveda** | `ayurvedic products`, `essential oils`, `industrial solvents`, `caustic soda`, `surgical gloves` |
| **Agro & Food Processing** | `agriculture machinery`, `basmati rice`, `turmeric powder`, `dehydrated onion`, `cold press oil machine` |

***

### 📥 Input parameters

All input fields are optional. Running with `{}` collects a ready-made 100-product sample across 10 popular Indian B2B categories.

| Parameter | Type | Default | Description |
|---|---|---|---|
| `queries` | `array<string>` | `[]` (prefill `["led light"]`) | One or more product or category search terms (e.g. `["led light", "industrial valves", "cotton yarn"]`). Leave empty to run a mixed sample across 10 B2B categories. |
| `supplierType` | `array<string>` | `[]` (All suppliers) | Filter by supplier credentials: `"manufacturers"` (Manufacturers only), `"exporters"` (Exporters only), `"trustStamp"` (TrustStamp verified only). Combine multiple to require all selected flags. |
| `maxItemsPerQuery` | `integer` | `0` (prefill `100`) | Maximum products to collect **per keyword**. Set `0` for unlimited per keyword (or let `maxItems` govern the total run). |
| `maxItems` | `integer` | `0` | Optional overall cap across all keywords combined (e.g. `1000` or `5000`). If your keywords finish before `maxItems` is reached, the Actor automatically expands into additional B2B categories to reach your target. |
| `proxyConfiguration` | `object` | `{ "useApifyProxy": true }` | Apify Proxy configuration. Default datacenter proxy works reliably and keeps run costs low. |

#### Example input — 1,000+ Indian LED & solar supplier leads

```json
{
  "queries": [
    "led light",
    "solar panel",
    "solar street light"
  ],
  "supplierType": [],
  "maxItemsPerQuery": 500,
  "maxItems": 1200,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

#### Example input — TrustStamp-verified Indian manufacturers & exporters only

```json
{
  "queries": [
    "stainless steel pipe",
    "industrial valves",
    "brass fittings"
  ],
  "supplierType": [
    "manufacturers",
    "exporters",
    "trustStamp"
  ],
  "maxItemsPerQuery": 300,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

***

### 📤 Output schema & field reference

Each record represents one product listing enriched with full supplier contact and verification data (34 fields total).

#### 📞 Supplier Identity, Contacts & Verification

| Field | Type | Coverage | Description |
|---|---|---|---|
| `companyName` | `string` | 🟢 High (100%) | Registered supplier company name (e.g. `"ZARAL ELECTRICALS"`). |
| `companyProfileUrl` | `string` | 🟢 High (100%) | Absolute URL to the supplier's TradeIndia showroom/profile. |
| `email` | `string \| null` | 🟢 High (~100%) | Direct supplier email address (e.g. `"sales@zaralelectricals.com"`). |
| `mobile` | `string \| null` | 🟢 High (~100%) | Direct supplier mobile number (e.g. `"+918045475647"`). |
| `phone` | `string \| null` | 🟢 High (~99%) | Supplier telephone / landline number. |
| `businessTypes` | `array<string>` | 🟢 High (100%) | List of supplier roles: `"Manufacturer"`, `"Exporter"`, `"Trader"`, `"Distributor"`, `"Supplier"`, `"Service Provider"`. |
| `isManufacturer` | `boolean` | 🟢 High (100%) | `true` when the supplier is a manufacturer (`ifmanu`). |
| `isExporter` | `boolean` | 🟢 High (100%) | `true` when the supplier is an exporter (`ifexporter`). |
| `isTrader` | `boolean` | 🟢 High (100%) | `true` when the supplier operates as a trader. |
| `hasTrustStamp` | `boolean` | 🟢 High (100%) | `true` if the supplier holds TradeIndia's **TrustStamp** verification badge. |
| `isVerified` | `boolean` | 🟢 High (100%) | `true` if marked TradeIndia Verified (`has_ti_verified`). |
| `certifications` | `string \| null` | 🟡 Conditional (~10%) | Declared quality/standard certifications (e.g. `"ISO 9001:2015"`, `"CE"`). |
| `memberSinceYears` | `number \| null` | 🟢 High (100%) | Number of years the supplier has been a member on TradeIndia. |
| `established` | `number \| string \| null` | 🟢 High (~98%) | Year the company was founded (e.g. `1985`). |

#### 📦 Product, Pricing & Trade Terms

| Field | Type | Coverage | Description |
|---|---|---|---|
| `productId` | `string` | 🟢 High (100%) | Unique TradeIndia product ID (e.g. `"6823179"`). Primary deduplication key. |
| `productName` | `string` | 🟢 High (100%) | Product title. |
| `productUrl` | `string` | 🟢 High (100%) | Direct URL to the product page on TradeIndia.com. |
| `price` | `string \| null` | 🟢 High (~76%) | Raw price string (e.g. `"2,800 INR (Approx.)"`). |
| `priceValue` | `number \| null` | 🟢 High (~76%) | Parsed numeric price (`2800`) for sorting and spreadsheet math. |
| `currency` | `string \| null` | 🟢 High (~76%) | Normalized ISO currency code (`"INR"`, `"USD"`, `"EUR"`). |
| `unit` | `string \| null` | 🟢 High (~93%) | Pricing/order unit (e.g. `"Piece/Pieces"`, `"Kilogram"`, `"Set/Sets"`). |
| `minOrderQuantity` | `string \| null` | 🟢 High (~99%) | Minimum order quantity (MOQ), e.g. `"10"`, `"100"`. |
| `productImage` | `string \| null` | 🟢 High (100%) | Product image URL on TradeIndia's CDN. |
| `description` | `string \| null` | 🟢 High (100%) | Product description text. |
| `category` | `string \| null` | 🟢 High (100%) | TradeIndia product category name (e.g. `"Solar Products & Equipment"`). |
| `brandName` | `string \| null` | 🟡 Conditional (~68%) | Declared brand name. |
| `supplyAbility` | `string \| null` | 🟢 High (~86%) | Stated production/supply capacity (e.g. `"100 Per Week"`). |
| `deliveryTime` | `string \| null` | 🟢 High (~89%) | Typical lead/delivery time (e.g. `"1 Week"`, `"7 Days"`). |
| `paymentTerms` | `string \| null` | 🟡 Conditional (~55%) | Accepted payment methods (`"Cash in Advance (CID)"`, `"L/C"`, `"T/T"`). |
| `inStock` | `boolean` | 🟢 High (100%) | Whether the product is flagged as in stock. |
| `madeInIndia` | `boolean` | 🟢 High (100%) | Whether the listing carries the Made in India flag. |

#### 📍 Location & Search Metadata

| Field | Type | Coverage | Description |
|---|---|---|---|
| `city` | `string \| null` | 🟢 High (100%) | Supplier city (e.g. `"Vadodara"`, `"Ahmedabad"`, `"Mumbai"`). |
| `state` | `string \| null` | 🟢 High (100%) | Indian state (e.g. `"Gujarat"`, `"Maharashtra"`). |
| `address` | `string \| null` | 🟢 High (~99%) | Supplier street address. |
| `country` | `string \| null` | 🟢 High (100%) | Country name (`"India"`). |
| `latitude` / `longitude` | `number \| null` | 🟢 High (~99%) | Supplier GPS coordinates. |
| `keywords` | `array<string>` | 🟢 High (~93%) | Supplier business keywords array. |
| `searchKeyword` | `string` | 🟢 High (100%) | Input keyword that matched this listing. |
| `scrapedAt` | `string` | 🟢 High (100%) | ISO-8601 UTC extraction timestamp. |

#### Sample output record

```json
{
  "productName": "Solar LED Street Light",
  "productUrl": "https://www.tradeindia.com/products/solar-led-street-light-c6823179.html",
  "productId": "6823179",
  "price": "2,800 INR (Approx.)",
  "priceValue": 2800,
  "currency": "INR",
  "unit": "Piece/Pieces",
  "minOrderQuantity": "10",
  "productImage": "https://cpimg.tistatic.com/06823179/b/4/Solar-LED-Street-Light.jpg",
  "description": "Solar LED Street Light",
  "category": "Solar Products & Equipment",
  "brandName": "ZARAL ELECTRICALS",
  "companyName": "ZARAL ELECTRICALS",
  "companyProfileUrl": "https://www.tradeindia.com/zaral-electricals-6707422/",
  "email": "sales@zaralelectricals.com",
  "mobile": "+918045475647",
  "phone": "+918045475647",
  "businessTypes": ["Manufacturer", "Exporter", "Supplier"],
  "isManufacturer": true,
  "isExporter": true,
  "isTrader": false,
  "hasTrustStamp": true,
  "isVerified": false,
  "certifications": null,
  "memberSinceYears": 11,
  "established": 1985,
  "city": "Vadodara",
  "state": "Gujarat",
  "address": "Shiyapura Road, Near Geb Sub Station, Raopura,",
  "country": "India",
  "latitude": 22.307159,
  "longitude": 73.181219,
  "keywords": ["solar led street light"],
  "supplyAbility": "100 Per Week",
  "deliveryTime": "1 Week",
  "paymentTerms": null,
  "inStock": true,
  "madeInIndia": true,
  "searchKeyword": "led light",
  "scrapedAt": "2026-11-10T02:00:00.000Z"
}
```

***

### 🔁 Pagination & scaling to 1,000+ B2B leads

- **Deep multi-page traversal:** Each keyword query paginates automatically at 30 products per page across hundreds of pages (`MAX_PAGES_PER_QUERY = 1000`, up to **30,000 products per keyword**).
- **Flexible per-keyword (`maxItemsPerQuery`) and global (`maxItems`) caps:**
  - Set `maxItemsPerQuery: 1000` on a single broad keyword like `"led light"` or `"solar panel"` to collect 1,000 products from that keyword alone.
  - Or set `maxItems: 1000` (with one or more keywords) to collect 1,000 total leads — if your initial keyword(s) or strict `supplierType` filters finish early, the Actor automatically expands across additional B2B categories to hit your target.
- **0-duplicate guarantee:** Every item is deduplicated by `productId` across all pages and keywords.

***

### ⚙️ How to use & integrate

#### Python SDK example

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("haketa/tradeindia-scraper").call(run_input={
    "queries": ["industrial valves", "stainless steel pipe"],
    "supplierType": ["manufacturers", "exporters"],
    "maxItemsPerQuery": 500,
    "maxItems": 1000,
    "proxyConfiguration": {"useApifyProxy": True},
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['companyName']} ({item['city']}, {item['state']}) | {item['email']} | {item['mobile']} | {item['productName']}")
```

#### Node.js SDK example

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('haketa/tradeindia-scraper').call({
    queries: ['led light', 'solar panel'],
    supplierType: ['trustStamp'],
    maxItemsPerQuery: 500,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Collected ${items.length} verified TradeIndia supplier leads`);
```

***

### 💡 Pro tips for B2B lead generation on TradeIndia

- **Deduplicate by `email` or `companyProfileUrl` in your CRM:** Because one factory may list several products under a search term, grouping the exported CSV by `companyProfileUrl` or `email` gives you a unique company-level account list while preserving all products they manufacture.
- **Add city/state names to `queries` for hyper-local clusters:** Search `"cotton yarn tirupur"`, `"brass parts jamnagar"`, `"chemical manufacturer ankleshwar"`, or `"packaging machine ahmedabad"` to target specific Indian industrial estates.
- **Combine `isManufacturer: true` + `memberSinceYears >= 5`:** Filtering for long-tenured manufacturers with `hasTrustStamp: true` immediately surfaces the most established factories for high-value import contracts.

***

### ❓ Frequently Asked Questions

#### Does every listing include the supplier's email and phone number?

Yes — in our live verification runs across 500+ listings, **`email` and `mobile` populated on 100% of records**, and `phone` populated on ~99% of records.

#### How fast does the TradeIndia scraper run?

Because it uses high-speed parallel HTTP requests (`maxConcurrency: 5`, 30 listings per page) without a slow headless browser, it extracts **100 supplier leads in ~10–15 seconds** and **1,000 supplier leads in ~2–3 minutes**.

#### Do I need residential proxies or a TradeIndia login?

No login or account is needed, and the default Apify datacenter proxy (`useApifyProxy: true`) works reliably at scale.

#### Why are `priceValue` or `certifications` occasionally `null`?

Some B2B manufacturers sell custom-engineered machinery or bulk commodities where pricing is quote-based (`price: null`), and only a subset of suppliers explicitly fill in the `std_cert` certifications field. Core supplier identity and contact fields (`companyName`, `email`, `mobile`, `city`, `state`, `productName`, `productUrl`) are 100% populated.

#### How does the Actor handle `maxItems: 1000` when my keyword has fewer than 1,000 products?

When you set `maxItems` (for example, `maxItems: 1000` or `2000`), the Actor first paginates through all of your specified `queries`. If those queries finish before `maxItems` is reached, it automatically expands into additional B2B industrial categories until your requested total is satisfied.

#### Can I integrate TradeIndia supplier leads directly into HubSpot, Salesforce, Clay, or Make?

Yes. Use the official Apify integration for **Make, Zapier, n8n, Clay, Google Sheets, HubSpot, or Webhooks** to trigger downstream workflows automatically whenever a run finishes, mapping `companyName`, `email`, `mobile`, `city`, `state`, `businessTypes`, and `productUrl` straight into your CRM.

***

### 🗺️ Top Indian B2B manufacturing clusters covered

| State | Major Industrial Cities in Output (`city`) | Dominant B2B Export & Manufacturing Sectors |
|---|---|---|
| **Gujarat** | `Ahmedabad`, `Surat`, `Vadodara`, `Rajkot`, `Morbi`, `Vapi`, `Ankleshwar`, `Jamnagar` | Chemicals, pharmaceuticals, textiles, ceramic tiles, brass parts, industrial valves, solar & LED |
| **Maharashtra** | `Mumbai`, `Pune`, `Thane`, `Nashik`, `Nagpur`, `Aurangabad`, `Kolhapur` | Automotive components, heavy engineering, electrical switchgear, packaging, agro-commodities |
| **Tamil Nadu** | `Chennai`, `Coimbatore`, `Tirupur`, `Erode`, `Madurai`, `hosur` | Knitwear & cotton yarn, submersible pumps, wet grinders, auto ancillaries, leather goods |
| **Delhi NCR & UP** | `New Delhi`, `Noida`, `Ghaziabad`, `Faridabad`, `Gurugram`, `Kanpur`, `Moradabad` | Electronics, LED lighting, garments, leather saddlery & footwear, handicrafts, packaging |
| **Punjab & Haryana** | `Ludhiana`, `Jalandhar`, `Amritsar`, `Panipat`, `Ambala`, `Karnal` | Hand tools, fasteners, bicycles, hosiery, sports goods, laboratory equipment, home textiles |
| **Karnataka & Telangana** | `Bengaluru`, `Hyderabad`, `Mysuru`, `Hubballi` | Precision CNC machinery, aerospace parts, bulk drugs & APIs, industrial automation |
| **Rajasthan & MP** | `Jaipur`, `Jodhpur`, `Udaipur`, `Bhilwara`, `Indore` | Marble & granite, wooden furniture, suiting fabrics, agro-processing, solar equipment |

***

### 🛠️ Ready-to-run workflow recipes

#### Recipe 1: Verified Indian exporters for international sourcing (`TrustStamp` + `Exporters`)

```json
{
  "queries": [
    "cotton yarn",
    "leather gloves",
    "packaging bags",
    "ayurvedic products"
  ],
  "supplierType": [
    "exporters",
    "trustStamp"
  ],
  "maxItemsPerQuery": 300,
  "maxItems": 1000,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

#### Recipe 2: High-volume B2B cold outreach list (all manufacturers in industrial machinery)

```json
{
  "queries": [
    "submersible pump",
    "industrial valves",
    "air compressor",
    "hydraulic press"
  ],
  "supplierType": [
    "manufacturers"
  ],
  "maxItemsPerQuery": 500,
  "maxItems": 1500,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

***

### 🔗 Related B2B sourcing & Indian company scrapers

- [IndiaMART Scraper — Indian B2B Suppliers, Products & Contacts](https://apify.com/haketa/indiamart-scraper)
- [India MCA Company Data Scraper — CIN, Directors & Charges](https://apify.com/haketa/india-mca-scraper)
- [Made-in-China Scraper — Chinese Manufacturers, MOQ & Auditing](https://apify.com/haketa/made-in-china-scraper)
- [Europages Scraper — European B2B Suppliers & Exporters](https://apify.com/haketa/europages-scraper)
- [Global Sources Scraper — Verified Asian Exporters & Wholesale](https://apify.com/haketa/globalsources-scraper)
- [1688 Sourcing Profit Analyzer](https://apify.com/haketa/1688-sourcing-profit-analyzer)

***

### 📋 Changelog

- **v1.2 (2026-11)** — **Unlocked 1,000+ lead auto-expansion & global `maxItems` support:** Added `maxItems` total cap parameter alongside `maxItemsPerQuery`, removed artificial 100-item clamping when users request >100 items on default sample runs, added automatic fallback pagination via `listing_count`, and added auto-expansion across B2B categories when `maxItems >= 1000`.
- **v1.1 (2026-08)** — Added ISO currency recovery from price strings (`INR`, `USD`, `EUR`), extracted `supplyAbility`, `deliveryTime`, and `paymentTerms` from trade-info blocks, and added `supplierType` multi-select filter.
- **v1.0 (2026-05)** — Initial release extracting TradeIndia products, prices, MOQs, direct supplier emails, mobile/phone numbers, business types, TrustStamp flags, and GPS coordinates.

# Changelog

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

# Actor input Schema

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

Type one or more product or category terms to search for on TradeIndia (e.g. "led light", "industrial valves", "cotton yarn"). Leave empty to get a ready-made mixed sample of popular B2B products across categories.

## `supplierType` (type: `array`):

Pick which kinds of suppliers to keep. Leave empty to include every supplier type. Choosing "Exporters only" is ideal for international sourcing; "Manufacturers only" filters out pure traders/distributors.

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

How many products to collect for each keyword before moving on. Use a smaller number for a quick preview or 0 for no limit.

## `maxItems` (type: `integer`):

Optional overall cap across all keywords combined. Leave at 0 for no overall cap (governed by Max products per keyword).

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

Proxy settings for the run. The default works well; a proxy is recommended for large runs to keep results reliable.

## Actor input object example

```json
{
  "queries": [
    "led light",
    "industrial valves"
  ],
  "supplierType": [],
  "maxItemsPerQuery": 100,
  "maxItems": 0,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

Open to view, filter and export all scraped products & suppliers 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": [
        "led light"
    ],
    "maxItemsPerQuery": 100,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("haketa/tradeindia-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": ["led light"],
    "maxItemsPerQuery": 100,
    "proxyConfiguration": { "useApifyProxy": True },
}

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

```

## MCP server setup

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