IndiaMART Supplier & Product Scraper avatar

IndiaMART Supplier & Product Scraper

Pricing

Pay per event

Go to Apify Store
IndiaMART Supplier & Product Scraper

IndiaMART Supplier & Product Scraper

Extract public IndiaMART products, suppliers, displayed prices, locations, ratings, verification signals, and specifications for sourcing research.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Share

IndiaMART Supplier and Product Scraper

Extract public IndiaMART product and supplier listings for repeatable sourcing, vendor comparison, category research, and data-pipeline workflows.

The Actor accepts category terms such as cotton fabric or real IndiaMART category URLs. It returns one typed row per product card with the supplier, displayed price, city, rating, verification signals, specifications, and source links.

It uses an India residential browser session because direct and datacenter access to IndiaMART category pages is blocked. Images, fonts, and media transfers are disabled to reduce runtime and proxy cost without removing fields from the rendered listings.

What can you extract from IndiaMART?

Each result can include:

FieldMeaning
productIdStable identifier parsed from the product URL
productNameDisplayed product title
productUrlPublic IndiaMART product detail URL
imageUrlProduct image URL shown in the card
displayedPricePrice text as IndiaMART displays it
priceParsed numeric price when available
currencyINR when the rupee symbol is displayed
unitPricing unit such as Meter or Watt
supplierNameDisplayed company or supplier name
supplierUrlPublic supplier catalog or company URL
locationDisplayed supplier city
yearsInBusinessDisplayed supplier tenure
ratingDisplayed rating from zero to five
ratingCountNumber of displayed ratings
responseRateDisplayed response percentage
badgesTrustSEAL, verification, or supplier badges
isVerifiedNormalized verification flag
specificationsProduct attributes as key/value pairs
categoryCategory heading on the source page
searchQueryOriginal category term, when supplied
sourceUrlCategory page used for extraction
scrapedAtUTC extraction timestamp

Fields can be null when IndiaMART does not display that fact on a listing.

Who is this IndiaMART scraper for?

  • Procurement teams building an initial supplier shortlist.
  • Importers comparing displayed prices and product specifications.
  • Manufacturers researching competing offers in a B2B category.
  • Sales operations teams segmenting public suppliers by location or trust signal.
  • Analysts collecting repeatable category snapshots for change comparison.
  • Data engineers loading public marketplace records into spreadsheets, warehouses, or BI tools.

The Actor does not require an IndiaMART login and does not expose private account data.

Why use this Actor?

  • Search by familiar product or category terms.
  • Target a real category or city/category URL precisely.
  • Apply rating, location, and verification filters before saving rows.
  • Receive consistent typed records instead of raw HTML.
  • Deduplicate products by their stable IndiaMART product ID.
  • Rotate bounded browser sessions on upstream blocks or timeouts.
  • Stop at the configured limit; only saved rows trigger the item event.
  • Export results in JSON, CSV, Excel, XML, RSS, or HTML through Apify.

Unlike a generic page extractor, this Actor understands IndiaMART product cards and supplier trust signals.

How to scrape IndiaMART suppliers and products

  1. Open the Actor in Apify Console.
  2. Add one or more values to Product or category searches.
  3. Optionally add exact IndiaMART category URLs.
  4. Set the maximum number of products.
  5. Optionally filter by supplier location, rating, or verification.
  6. Keep the default India residential proxy unless you have tested another compatible proxy.
  7. Click Start.
  8. Open the Products and suppliers dataset view.
  9. Export or integrate the resulting records.

A good first run is:

{
"searchQueries": ["cotton fabric"],
"maxItems": 10
}

Input parameters

searchQueries

An array of IndiaMART category terms.

The Actor converts each term to a public category slug. For example, cotton fabric becomes:

https://dir.indiamart.com/impcat/cotton-fabric.html

IndiaMART controls category names. If a phrase does not map to a real category, use an exact URL in startUrls instead.

startUrls

Optional public pages on dir.indiamart.com.

Supported paths are:

  • /impcat/<category>.html
  • /<city>/<category>.html

Search result pages, supplier private dashboards, and non-IndiaMART URLs are rejected.

maxItems

Maximum unique records saved across all sources.

Allowed range: 1–500.

location

Case-insensitive substring matched against the displayed supplier city.

Example: Ahmedabad.

minRating

Minimum displayed supplier rating from 0 to 5.

Listings without a rating are excluded when this filter is active.

verifiedOnly

When true, keeps listings with a displayed verification or TrustSEAL badge.

maxRequestRetries

Number of new browser/proxy sessions attempted after a block, timeout, or unrecognized page.

Allowed range: 0–3. Default: 2.

proxyConfiguration

Defaults to Apify residential proxies in India.

Disabling or replacing the proxy is supported for advanced users, but direct and datacenter routes were blocked during implementation testing.

Output example

{
"productId": "12345678901",
"productName": "Industrial Cotton Fabric",
"productUrl": "https://www.indiamart.com/proddetail/industrial-cotton-fabric-12345678901.html",
"imageUrl": "https://5.imimg.com/data5/EXAMPLE/product-500x500.jpg",
"displayedPrice": "₹ 130 / Meter",
"price": 130,
"currency": "INR",
"unit": "Meter",
"supplierName": "Example Textiles Private Limited",
"supplierUrl": null,
"location": "Ahmedabad",
"yearsInBusiness": 9,
"rating": 4.6,
"ratingCount": 125,
"responseRate": 88,
"badges": ["Verified Exporter"],
"isVerified": true,
"specifications": {
"Material": "Cotton",
"Color": "Blue"
},
"category": "Cotton Fabric",
"searchQuery": "cotton fabric",
"sourceUrl": "https://dir.indiamart.com/impcat/cotton-fabric.html",
"scrapedAt": "2026-08-10T12:00:00.000Z"
}

The example is anonymized. Actual records contain facts currently displayed on public IndiaMART cards.

Filtering and vendor comparison

Filters are applied consistently to category terms and explicit URLs.

For a trust-focused shortlist:

{
"searchQueries": ["cotton fabric", "solar panels"],
"verifiedOnly": true,
"minRating": 4,
"maxItems": 40
}

Save recurring runs to separate datasets, then join records by productId to compare price, rating, badge, supplier, or specification changes.

The Actor does not provide built-in alerts or historical storage. Apify schedules, webhooks, integrations, and your own destination provide those workflow layers.

How much does it cost to scrape IndiaMART supplier records?

The Actor uses pay-per-event pricing:

  • one start event per run;
  • one item event for each product-and-supplier row saved.

The start event costs $0.0025. Item prices use six decreasing volume tiers: FREE $0.0022716, BRONZE $0.0019753, SILVER $0.0015407, GOLD $0.0011852, PLATINUM $0.00079012, and DIAMOND $0.00055308 per saved row. Residential proxy and browser infrastructure are included rather than billed as a separate Actor event.

At BRONZE pricing, the total is approximately $0.0045 for 1 row, $0.0124 for 5, $0.0223 for 10, $0.0519 for 25, or $0.2000 for 100. A filter that saves no rows incurs the start event but no item events.

Tips for reliable sourcing runs

  • Prefer the category wording used on IndiaMART.
  • Use exact category URLs when a search term returns a 404.
  • Split unrelated categories into separate scheduled tasks when you want independent snapshots.
  • Keep India residential proxy geography for stable access.
  • Start with 10–25 records before increasing the limit.
  • Use verifiedOnly as a trust signal, not as a guarantee of supplier performance.
  • Verify critical commercial facts directly with the supplier before purchasing.
  • Treat displayed prices as marketplace observations, not binding quotations.

Limits and failure behavior

  • IndiaMART can change category routes, page markup, and visible fields.
  • A category page currently exposes a bounded set of product cards; the Actor does not claim exhaustive marketplace coverage.
  • Some products omit price, rating, tenure, response rate, or verification.
  • A category term that does not map to a real slug can return 404.
  • Challenge pages and unrelated static decoy listings are rejected.
  • The run fails after bounded retries if no recognizable cards can be extracted.
  • Valid filters can naturally produce a successful run with zero rows.
  • The Actor does not click contact buttons or reveal gated phone numbers or email addresses.

Export IndiaMART data

Every run writes primary results to the default Apify dataset.

You can export it as:

  • JSON for applications and AI workflows;
  • CSV or Excel for sourcing teams;
  • XML or RSS for compatible automation systems;
  • HTML for quick human review.

Use dataset field selection and unfolding options in Apify Console to customize exports.

Schedule supplier research

Create an Apify Task with stable input, then set a schedule.

Example workflow:

  1. Run every Monday.
  2. Export results to a dated destination table.
  3. Join on productId.
  4. Compare price, supplier, rating, and badge fields.
  5. Route material changes to a reviewer.

This supports recurring comparison without claiming that the Actor itself stores history or sends alerts.

Use webhooks and integrations

After a successful run, an Apify webhook can:

  • start another Actor;
  • call an HTTPS endpoint;
  • notify Slack or email through an integration;
  • send the dataset to Make, Zapier, Google Sheets, or a database;
  • trigger enrichment or internal supplier-review logic.

Use the run's default dataset ID to retrieve exactly that run's rows.

Run with the Apify API using cURL

curl -X POST \
"https://api.apify.com/v2/acts/automation-lab~indiamart-supplier-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"searchQueries": ["cotton fabric"],
"maxItems": 10
}'

For synchronous use, call run-sync-get-dataset-items when your client can wait for completion.

Never commit your Apify token to source control.

Run with JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/indiamart-supplier-scraper').call({
searchQueries: ['solar panels'],
verifiedOnly: true,
maxItems: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Run with Python

import os
from apify_client import ApifyClient
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/indiamart-supplier-scraper').call(run_input={
'searchQueries': ['cotton fabric'],
'minRating': 4,
'maxItems': 20,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

Use IndiaMART data with MCP and AI agents

Add the Actor to Claude Code through Apify MCP:

claude mcp add --transport http apify \
"https://mcp.apify.com?tools=automation-lab/indiamart-supplier-scraper"

Claude Desktop, Cursor, and VS Code can use the same MCP server JSON configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=automation-lab/indiamart-supplier-scraper"
}
}
}

Example prompts:

  • “Find 20 verified solar panel supplier listings on IndiaMART and summarize price units by city.”
  • “Extract cotton fabric products rated at least 4 and create a vendor comparison table.”
  • “Run my saved IndiaMART sourcing task and flag product IDs whose displayed prices changed.”

An AI-generated shortlist still requires human commercial verification.

Responsible use and legality

This Actor extracts facts displayed on public IndiaMART category pages.

You are responsible for:

  • complying with applicable laws, contracts, and platform terms;
  • using personal and business data for a lawful purpose;
  • respecting intellectual property and database rights;
  • limiting collection to what your workflow needs;
  • securing exports and controlling retention;
  • avoiding spam, harassment, discrimination, or deceptive outreach;
  • verifying suppliers and commercial claims independently.

Do not use the Actor to bypass authentication, access private accounts, or automate contact actions.

Troubleshooting

Why did my category return 404?

IndiaMART category slugs do not always match a general phrase. Open the public category page in a browser and provide its exact dir.indiamart.com/...html URL through startUrls.

Why are there zero records?

The page may be valid while your location, rating, or verification filters exclude every card. Remove filters and run a small test. If the run reports a block or unrecognized shape instead, keep the default India residential proxy and retry later.

Why is a displayed price null?

Some suppliers ask buyers to request a quote. The Actor keeps the useful product and supplier row while leaving price fields null.

Can this Actor reveal phone numbers or emails?

No. It does not click gated contact controls or claim access to private contact data.

Does it support IndiaMART login?

No login is required or accepted. The Actor uses public category pages only.

FAQ

Can I scrape one exact category?

Yes. Add its public category URL to startUrls and set searchQueries to an empty array.

Can I filter by city?

Yes. Use location, or supply a real city/category URL when available.

Can I compare multiple categories?

Yes. Add multiple category terms or URLs. maxItems applies across the full run.

Are verification badges guarantees?

No. They are public marketplace signals. Perform your own supplier due diligence.

Is the data real time?

Rows reflect what the category page displayed during the run. The Actor does not guarantee when IndiaMART last updated each fact.

Can I run it on a schedule?

Yes. Save the input as an Apify Task and attach a schedule.

Use separate Actors for separate sources, then normalize records downstream for cross-market comparison.

Support

If a current public category repeatedly fails with the default proxy, include:

  • the exact Actor run URL;
  • the input with secrets removed;
  • the affected category URL;
  • the expected and observed behavior.

That evidence helps distinguish a category mapping issue from an upstream page change.