# ExportersIndia Scraper & API - Indian Suppliers, Prices, GSTIN (`rel8ble/exportersindia-scraper`) Actor

ExportersIndia scraper and API: Indian B2B supplier leads by product keyword. One result = one product + supplier: company, address, PIN, GSTIN, business type, year established, employees, badges, rating, price, MOQ, specs. No login, no start fee. $1.50 per 1,000, details included.

- **URL**: https://apify.com/rel8ble/exportersindia-scraper.md
- **Developed by:** [Giovanni Rich](https://apify.com/rel8ble) (community)
- **Categories:** Lead generation, E-commerce, Business
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.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.

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

## ExportersIndia Scraper & API - Indian Suppliers, Prices, GSTIN

**ExportersIndia scraper** for sourcing teams and B2B lead generation: enter a product keyword such as `led lights` and get ExportersIndia's suppliers as clean JSON, CSV or Excel. Each row is one product listing with the **supplier name, company URL, full address with PIN code, city and state, GSTIN, business type (manufacturer / exporter / trader), year established, employees, Verified / Trusted badge and rating**, plus the product, **price range, MOQ** and every specification. Use it as an **ExportersIndia supplier scraper**, an **Indian manufacturer directory export**, or an unofficial **ExportersIndia API** from your own code, Make, Zapier or n8n.

It reads the pages every visitor sees, over plain HTTP, with **no browser and no login**. A 50-row cloud run with product-page details took about a minute and costs $0.075: **$1.50 per 1,000 results, details included, the cheapest ExportersIndia scraper on 6 Nov 2026**.

### What you get

- **Supplier**: company name, ExportersIndia company URL, member ID, business type (Manufacturer, Exporter, Supplier, Distributor, Trader, ...), full address, locality, city, state, **PIN code**.
- **Company facts** (product page): **GSTIN**, year of establishment and years in business, number of employees, company overview, preferred buyer locations.
- **Trust signals**: GST registration flag, **Verified / Trusted (V-Trust)** badge, Platinum / Platinum Plus membership, years on ExportersIndia, rating out of 5 and number of ratings.
- **Product**: name and full title, product URL, product ID, thumbnail plus 500 px images, description.
- **Price and MOQ**: price as shown, `priceMin` / `priceMax` as numbers, currency (INR), price unit, **minimum order quantity** as a number with its unit.
- **Specifications**: every attribute the supplier filled in, as `{ label: value }` (material, wattage, brand, size, ...).
- **Deep lists**: ExportersIndia shows about 50 listings per page. The actor follows the site's own "View More Results" pages to the end of the category, so one keyword can give many pages of rows. Add **Only these cities** to read the city lists instead (Mumbai, Delhi, Ahmedabad, ...).

### Sample output

Real rows from a run for "led lights" with default settings:

| productName | priceText | moqText | supplierName | city, state | businessType | yearEstablished | gstNumber |
|---|---|---|---|---|---|---|---|
| 18 W Surface Cylinder LED Light | Rs 200 - Rs 1,115 Per Piece | 100 Piece | Omkaram Enterprises | Lucknow, Uttar Pradesh | Exporter / Supplier / Trader | 2025 | 09AAJFO8317P1ZG |
| 6W Ledure Novo Round LED Light For Indoor Lighting | Rs 280 Per piece | 100 Piece | A.H Enterprise | Ahmedabad, Gujarat | Supplier / Distributor / Trader | 2018 | 24BFFPP6315C1ZS |
| Surya Aluminum IP66 Round LED Lights Warm White | Rs 500 - Rs 2,000 Per pieces | - | Yash Industries | Beed, Maharashtra | Manufacturer / Exporter / Service Provider / Supplier / Retailer / Trader | 2015 | 27BBCPT6658M2ZT |

In that 50-row run (`sample-output.json`): address, city, state and business type 100%, PIN code 98%, Verified / Trusted 98%, GSTIN 88%, employees 84%, year established 82%, price 66%, MOQ 62%.

### Why this one

- **$1.50 per 1,000 results, no start fee, product-page details included**: the cheapest ExportersIndia scraper on the Store on 6 Nov 2026; the others charge $1.99 to $20.00 per 1,000, and crawloop and yugenox charge more for product and company pages.
- **GSTIN, full address with PIN code, year established and employees** for Indian supplier vetting and CRM matching.
- **Every page of a category**: it follows ExportersIndia's own "View More Results" pages (about 50 listings each) until the list ends or your limit is reached.
- **Lead-list filters** before you pay: GST, Verified / Trusted, manufacturers only, years in business, rating, MOQ.

### Use cases

- **Sourcing from India**: shortlist manufacturers for a product with price, MOQ, location and years in business side by side.
- **B2B lead generation**: turn on **One row per supplier** for a clean list of Indian manufacturers, exporters and traders per product and city, with address, PIN code and GSTIN.
- **Supplier vetting**: GST-registered, Verified, manufacturers with 10+ years in business, in one input.
- **Price research**: compare unit prices and MOQs across hundreds of Indian suppliers.
- **Market maps**: count suppliers per state and city for a category.
- **Compare marketplaces**: run the same keyword on our IndiaMART, TradeIndia, Alibaba and go4WorldBusiness scrapers (same account) and compare prices and suppliers.
- **AI sourcing agents**: let an agent pull a supplier shortlist through the Apify MCP server.

### Pricing

**$1.50 per 1,000 results** (pay per result), with the product-page details (GSTIN, MOQ, year established, employees) included in the same price. Filtered rows, duplicates and failed requests are never charged, there is no start fee, and Apify platform usage and proxies are included.

| Run | Results | Cost |
|---|---|---|
| Store prefill (`led lights`, 20 rows) | 20 | $0.03 |
| One keyword, default 50 rows | 50 | $0.075 |
| One keyword, 1,000 suppliers | 1,000 | $1.50 |
| 10 keywords x 500 rows, listing only | 5,000 | $7.50 |

Apify's free plan ($5 of monthly credit) covers about 3,300 results. It is the cheapest ExportersIndia scraper on the Store (checked 6 Nov 2026). The others, per 1,000: crawloop $1.99 per listing row, $3.49 per product and $2.79 per company, plus a start fee; scrapeai $2.49 plus a start fee; yugenox $3.00 plus $2.00 product details, $2.00 company profile and a $0.003 start fee; codingfrontend $3.99 plus a $0.001 start fee; scrapers_lat $20.00. No free ExportersIndia actor turned up.

### FAQ

**Does it give phone numbers or e-mails?**
No. ExportersIndia reveals a supplier's mobile number only after a "View Mobile" click that its robots.txt excludes, and this actor never logs in. You get the full business address, PIN code, GSTIN and company URL; for direct contacts, run our IndiaMART scraper (public business phone numbers) on the same keyword or feed company websites into the Website Contact Extractor.

**How many results can I get per keyword?**
About 50 listings per page and as many pages as ExportersIndia has for the category. Set **Max results per search** to 0 for everything.

**Why do some rows have no GSTIN, year or MOQ?**
They are filled from the product page only when the supplier published them. Turn off **Read each product page** for a faster, listing-only export.

**Is it legal to scrape ExportersIndia?**
It collects only public business and product data shown to every visitor, from pages ExportersIndia's robots.txt allows (it never requests the search, enquiry or mobile-number URLs that robots.txt excludes), with no login. Owner and contact-person names are not collected. You are responsible for using the data in line with ExportersIndia's terms and laws such as India's DPDP Act and GDPR. This is not legal advice.

**Which proxy should I use?**
The default Apify Proxy (datacenter) works for ExportersIndia. Blocked requests are retried on a new IP (6 retries by default).

**Is there an official ExportersIndia API?**
Not for searching. ExportersIndia gives its paying members a lead-management panel for their own buyer enquiries, but there is no public API for supplier or product search. This actor is that API: call it over REST or from Make, Zapier, n8n or an AI agent and get JSON back.

**What does a typical run cost?**
A 300-supplier shortlist for one product costs $0.45. A weekly price check on 10 keywords x 100 rows (about 1,000 rows) is $1.50 a week, about $6.50 a month. Listing-only exports cost the same per row and run faster.

### Example inputs for common jobs

Copy one into the JSON tab of the input form.

**Supplier lead list: verified, GST-registered manufacturers, one row each**

```json
{
    "searchTerms": ["led lights", "ceiling fans"],
    "maxResultsPerSearch": 300,
    "uniqueSuppliers": true,
    "verifiedOnly": true,
    "gstOnly": true,
    "manufacturersOnly": true
}
```

**Suppliers in specific cities**

```json
{
    "searchTerms": ["ceiling fans"],
    "cities": ["Mumbai", "Delhi", "Ahmedabad"],
    "maxResultsPerSearch": 200
}
```

**Fast listing-only export (no product pages)**

```json
{
    "searchTerms": ["basmati rice", "cotton yarn"],
    "maxResultsPerSearch": 1000,
    "scrapeDetails": false,
    "onlyWithPrice": true
}
```

**Established companies with a low MOQ**

```json
{
    "searchTerms": ["yoga mat"],
    "maxResultsPerSearch": 100,
    "minYearsInBusiness": 10,
    "maxMoq": 100
}
```

### How to use

1. Enter one or more product keywords in **Products / categories**, worded like ExportersIndia's categories (`led lights`, `ceiling fans`, `basmati rice`). Plural and singular are tried automatically. You can also paste a category URL (`https://www.exportersindia.com/indian-suppliers/led-lights.htm`) or a city URL (`https://www.exportersindia.com/mumbai/ceiling-fans.htm`).
2. Set **Max results per search** (start with 20) and any filters.
3. Click **Start**, then download the results as JSON, CSV or Excel from the **Output** tab, or fetch them through the Apify API.

If a keyword has no ExportersIndia category, the run status message and the log say so and nothing is charged; the run still ends as succeeded. Short run timeouts are fine too: the actor stops before the limit and keeps every row saved so far. Open exportersindia.com, find the category you want and paste its URL.

### Input

| Field | Default | Description |
|---|---|---|
| `searchTerms` | `led lights` | Keywords or ExportersIndia category / city URLs, one per line |
| `maxResultsPerSearch` | 50 | Rows per keyword. 0 = every page ExportersIndia lists |
| `cities` | - | Read only these city lists, e.g. `["Mumbai", "Pune"]` |
| `scrapeDetails` | true | Read each product page: MOQ, GSTIN, year established, employees, full address, overview, images |
| `uniqueSuppliers` | false | One row per supplier instead of one per listing |
| `verifiedOnly` | false | Only Verified / Trusted suppliers |
| `gstOnly` | false | Only GST-registered suppliers |
| `paidMembersOnly` | false | Only Platinum / Platinum Plus members |
| `manufacturersOnly` | false | Only suppliers whose business type includes Manufacturer |
| `minYearsInBusiness` | 0 | Only companies established at least this many years ago |
| `minYearsOnExportersIndia` | 0 | Only suppliers that have been members this long |
| `minRating` | 0 | Only suppliers rated at least this (0-5) |
| `maxMoq` | - | Skip listings with an MOQ above this number |
| `onlyWithPrice` | false | Skip listings without a price |
| `proxyConfiguration` | Apify Proxy | Datacenter proxy works; switch to RESIDENTIAL only if the log shows blocks |

### Output example

One dataset item per product listing. This one is from a real run for "led lights" (specifications and description shortened):

```json
{
    "searchTerm": "led lights",
    "position": 2,
    "productId": "9384711117",
    "listingId": "10626182",
    "productName": "18 W Surface Cylinder LED Light - Surface-mounted Ceiling Cylindrical Downlight",
    "productUrl": "https://www.exportersindia.com/product-detail/18-w-surface-cylinder-led-light-9384711117.htm",
    "image": "https://img1.exportersindia.com/product_images/bc-small/200x200/2026/10/13842741/18-w-surface-cylinder-led-light-10626182-pv1.jpg",
    "priceText": "Rs 200 - Rs 1,115 Per Piece",
    "priceMin": 200,
    "priceMax": 1115,
    "currency": "INR",
    "priceUnit": "Piece",
    "moq": 100,
    "moqText": "100 Piece",
    "specifications": { "Material": "Extruded Aluminum Housing With Powder-coated Finish", "Wattage Options": "18 Watts", "Beam Angle Options": "24°,36°,60°" },
    "description": "We are a leading Exporter and Supplier offering the 18 W Surface Cylinder LED Light ...",
    "supplierName": "Omkaram Enterprises",
    "supplierId": "13842741",
    "supplierUrl": "https://www.exportersindia.com/omkaramenterprises/",
    "businessType": "Exporter / Supplier / Trader",
    "city": "Lucknow",
    "state": "Uttar Pradesh",
    "pincode": "226017",
    "country": "India",
    "address": "C-4523, Rajajipuram, Sector-13, Lucknow, Uttar Pradesh, 226017, IN",
    "gstRegistered": true,
    "gstNumber": "09AAJFO8317P1ZG",
    "verified": true,
    "trustBadge": "Trusted",
    "membership": null,
    "yearsOnExportersIndia": 1,
    "yearEstablished": 2025,
    "yearsInBusiness": 1,
    "employees": "0 - 5",
    "rating": 4.1,
    "ratingCount": 9,
    "images": ["https://img1.exportersindia.com/product_images/bc-500/2026/10/13842741/18-w-surface-cylinder-led-light-10626182-pv1.jpg"],
    "detailScraped": true,
    "sourcePage": "category",
    "sourceUrl": "https://www.exportersindia.com/indian-suppliers/led-lights.htm",
    "scrapedAt": "2026-10-28T05:38:28.850Z"
}
```

A per-search summary (category found, pages read, rows filtered out, stop reason) is saved as `RUN_SUMMARY` in the key-value store.

### Integrations

Run it on an Apify schedule, through the Apify REST API, the JavaScript / Python clients, Make, Zapier, n8n, Google Sheets, or from AI agents via the Apify MCP server. Send new suppliers straight to a CRM, or join runs on `productId` / `supplierId` to track price changes.

Need a custom scraper or a ready dataset? Hire me on Fiverr: https://www.fiverr.com/rel8ble

# Actor input Schema

## `searchTerms` (type: `array`):

Provide at least one. Product keywords as ExportersIndia names its categories, e.g. "led lights", "ceiling fans", "basmati rice" (plural / singular is tried automatically), or ExportersIndia URLs: a category page (https://www.exportersindia.com/indian-suppliers/led-lights.htm) or a city page (https://www.exportersindia.com/mumbai/ceiling-fans.htm). Default \["led lights"] (demo).

## `maxResultsPerSearch` (type: `integer`):

Optional. Rows saved per keyword / URL, integer >= 0. Default 50; 0 = everything ExportersIndia lists (often thousands: about 50 listings per page). You pay per row, so start with 20.

## `cities` (type: `array`):

Optional. City names, e.g. \["Mumbai", "Ahmedabad"]. When set, the actor reads ExportersIndia's list for each city instead of the all-India list. Omit for all of India.

## `scrapeDetails` (type: `boolean`):

Default true. Adds MOQ, the full specification list, GSTIN, full address with PIN, business type, year of establishment, employees, company overview, preferred buyers and 500 px images. One extra request per row; turn off for the fastest listing-only export.

## `uniqueSuppliers` (type: `boolean`):

Optional. true = keep only the first listing of each supplier (a lead list). Default false = one row per product listing.

## `verifiedOnly` (type: `boolean`):

Optional. Keep only suppliers with an ExportersIndia "Verified" or "Trusted" badge. Default false.

## `gstOnly` (type: `boolean`):

Optional. Keep only suppliers that show a GST registration. Default false.

## `paidMembersOnly` (type: `boolean`):

Optional. Keep only Platinum / Platinum Plus members. Default false.

## `manufacturersOnly` (type: `boolean`):

Optional. Keep only suppliers whose business type includes "Manufacturer". Default false.

## `minYearsInBusiness` (type: `integer`):

Optional. Keep only companies established at least this many years ago (needs product pages; companies without a year are skipped when set). Default 0.

## `minYearsOnExportersIndia` (type: `integer`):

Optional. Keep only suppliers that have been members at least this many years. Default 0.

## `minRating` (type: `number`):

Optional. Keep only suppliers rated at least this (0-5; unrated suppliers are skipped when set). Default 0.

## `maxMoq` (type: `integer`):

Optional. Skip listings whose minimum order quantity is above this number (listings without an MOQ are kept). Omit for no limit.

## `onlyWithPrice` (type: `boolean`):

Optional. Skip listings without a price. Default false.

## `maxConcurrency` (type: `integer`):

Optional, advanced. Parallel requests, 1-20. Default 6.

## `maxRequestRetries` (type: `integer`):

Optional, advanced. Retries per failed or blocked request (each on a new proxy session), 0-20. Default 6.

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

Optional, advanced. Default Apify Proxy (datacenter), which works for ExportersIndia. Switch to {"useApifyProxy": true, "apifyProxyGroups": \["RESIDENTIAL"]} only if the log shows repeated blocks.

## Actor input object example

```json
{
  "searchTerms": [
    "led lights"
  ],
  "maxResultsPerSearch": 20,
  "scrapeDetails": true,
  "uniqueSuppliers": false,
  "verifiedOnly": false,
  "gstOnly": false,
  "paidMembersOnly": false,
  "manufacturersOnly": false,
  "minYearsInBusiness": 0,
  "minYearsOnExportersIndia": 0,
  "minRating": 0,
  "onlyWithPrice": false,
  "maxConcurrency": 6,
  "maxRequestRetries": 6,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

One row per product listing: product, price, MOQ, specs and the supplier with address, GSTIN, business type, badges and years in business.

## `summary` (type: `string`):

Per-search counts, category found, pages read and stop reasons.

# 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 = {
    "searchTerms": [
        "led lights"
    ],
    "maxResultsPerSearch": 20,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("rel8ble/exportersindia-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 = {
    "searchTerms": ["led lights"],
    "maxResultsPerSearch": 20,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("rel8ble/exportersindia-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 '{
  "searchTerms": [
    "led lights"
  ],
  "maxResultsPerSearch": 20,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call rel8ble/exportersindia-scraper --silent --output-dataset

```

## MCP server setup

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