IndiaMART Supplier & Product Scraper
Pricing
Pay per event
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
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:
| Field | Meaning |
|---|---|
productId | Stable identifier parsed from the product URL |
productName | Displayed product title |
productUrl | Public IndiaMART product detail URL |
imageUrl | Product image URL shown in the card |
displayedPrice | Price text as IndiaMART displays it |
price | Parsed numeric price when available |
currency | INR when the rupee symbol is displayed |
unit | Pricing unit such as Meter or Watt |
supplierName | Displayed company or supplier name |
supplierUrl | Public supplier catalog or company URL |
location | Displayed supplier city |
yearsInBusiness | Displayed supplier tenure |
rating | Displayed rating from zero to five |
ratingCount | Number of displayed ratings |
responseRate | Displayed response percentage |
badges | TrustSEAL, verification, or supplier badges |
isVerified | Normalized verification flag |
specifications | Product attributes as key/value pairs |
category | Category heading on the source page |
searchQuery | Original category term, when supplied |
sourceUrl | Category page used for extraction |
scrapedAt | UTC 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
- Open the Actor in Apify Console.
- Add one or more values to Product or category searches.
- Optionally add exact IndiaMART category URLs.
- Set the maximum number of products.
- Optionally filter by supplier location, rating, or verification.
- Keep the default India residential proxy unless you have tested another compatible proxy.
- Click Start.
- Open the Products and suppliers dataset view.
- 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
startevent per run; - one
itemevent 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
verifiedOnlyas 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:
- Run every Monday.
- Export results to a dated destination table.
- Join on
productId. - Compare price, supplier, rating, and badge fields.
- 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 osfrom apify_client import ApifyClientclient = 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().itemsprint(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.
Related automation-lab Actors
- DHgate Product & Supplier Scraper for DHgate wholesale products and sellers.
- Made-in-China Scraper for another B2B supplier marketplace.
- AliExpress Products & Seller Catalog Scraper for AliExpress product and seller catalog research.
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.