Nimbryxo Studio

IndiaMART B2B Product Listings by City & State

Search IndiaMART's product listings by keyword, optionally narrowed to an Indian state or city, with price, MOQ, supplier name/location, rating, and response rate per listing.

Input schema

Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.

FieldTypeRequiredDescription
modestringrequiredChoose what to collect from IndiaMART.
keywordstringoptionalProduct or material keyword, e.g. 'cotton fabric', 'industrial pump', 'basmati rice'. Required for mode=searchProducts.
categorystringoptionalIndiaMART category slug or category URL, e.g. 'cotton-fabric' or 'https://dir.indiamart.com/impcat/cotton-fabric.html'. Required for mode=browseCategory.
Show all input fields
FieldTypeRequiredDescription
modestringrequiredChoose what to collect from IndiaMART.
keywordstringoptionalProduct or material keyword, e.g. 'cotton fabric', 'industrial pump', 'basmati rice'. Required for mode=searchProducts.
categorystringoptionalIndiaMART category slug or category URL, e.g. 'cotton-fabric' or 'https://dir.indiamart.com/impcat/cotton-fabric.html'. Required for mode=browseCategory.
citystringoptionalKeep only suppliers in this Indian city, e.g. 'Surat', 'Mumbai', 'Jaipur'. Works with searchProducts and browseCategory.
statestringoptionalKeep only suppliers in this Indian state or union territory. Leave empty for all of India.
productUrlsarrayoptionalIndiaMART product URLs or numeric product IDs. Used only for mode=productDetails.
supplierUrlsarrayoptionalIndiaMART supplier profile URLs, company IDs, or company aliases. Used only for mode=supplierProfile.
maxItemsintegeroptionalMaximum number of records to return across all keywords and inputs.
expandRelatedCategoriesbooleanoptionalWhen a keyword or category has too few listings, also collect IndiaMART's related product categories. Results are de-duplicated.
enrichWithProductDetailsbooleanoptionalOpen each product page to add description, full specifications, MOQ, contact number, GST, IEC and company details. Adds one request per product.
minPriceintegeroptionalDrop listings priced below this amount. Use 0 for no minimum.
maxPriceintegeroptionalDrop listings priced above this amount. Use 0 for no maximum.
minRatingnumberoptionalDrop suppliers rated below this star rating (0 to 5). Use 0 for no minimum.
verifiedSuppliersOnlybooleanoptionalKeep only suppliers with an IndiaMART verification signal such as TrustSEAL, verified exporter or verified GST.

Download the published input schema

View complete JSON
{
  "description": "Search IndiaMART products, browse a category, or look up public product and supplier pages. Filter by Indian city or state.",
  "properties": {
    "category": {
      "default": "",
      "description": "IndiaMART category slug or category URL, e.g. 'cotton-fabric' or 'https://dir.indiamart.com/impcat/cotton-fabric.html'. Required for mode=browseCategory.",
      "editor": "textfield",
      "prefill": "",
      "title": "Category slug or URL",
      "type": "string"
    },
    "city": {
      "default": "",
      "description": "Keep only suppliers in this Indian city, e.g. 'Surat', 'Mumbai', 'Jaipur'. Works with searchProducts and browseCategory.",
      "editor": "textfield",
      "prefill": "",
      "title": "City",
      "type": "string"
    },
    "enrichWithProductDetails": {
      "default": false,
      "description": "Open each product page to add description, full specifications, MOQ, contact number, GST, IEC and company details. Adds one request per product.",
      "prefill": false,
      "title": "Enrich products with detail pages",
      "type": "boolean"
    },
    "expandRelatedCategories": {
      "default": true,
      "description": "When a keyword or category has too few listings, also collect IndiaMART's related product categories. Results are de-duplicated.",
      "prefill": false,
      "title": "Expand into related categories",
      "type": "boolean"
    },
    "keyword": {
      "default": "cotton fabric",
      "description": "Product or material keyword, e.g. 'cotton fabric', 'industrial pump', 'basmati rice'. Required for mode=searchProducts.",
      "editor": "textfield",
      "prefill": "cotton fabric",
      "title": "Search keyword",
      "type": "string"
    },
    "maxItems": {
      "default": 20,
      "description": "Maximum number of records to return across all keywords and inputs.",
      "maximum": 1000,
      "minimum": 1,
      "prefill": 3,
      "title": "Maximum records",
      "type": "integer"
    },
    "maxPrice": {
      "default": 0,
      "description": "Drop listings priced above this amount. Use 0 for no maximum.",
      "maximum": 100000000,
      "minimum": 0,
      "prefill": 0,
      "title": "Maximum price (INR)",
      "type": "integer"
    },
    "minPrice": {
      "default": 0,
      "description": "Drop listings priced below this amount. Use 0 for no minimum.",
      "maximum": 100000000,
      "minimum": 0,
      "prefill": 0,
      "title": "Minimum price (INR)",
      "type": "integer"
    },
    "minRating": {
      "default": 0,
      "description": "Drop suppliers rated below this star rating (0 to 5). Use 0 for no minimum.",
      "maximum": 5,
      "minimum": 0,
      "prefill": 0,
      "title": "Minimum supplier rating",
      "type": "number"
    },
    "mode": {
      "default": "searchProducts",
      "description": "Choose what to collect from IndiaMART.",
      "editor": "select",
      "enum": [
        "searchProducts",
        "browseCategory",
        "productDetails",
        "supplierProfile",
        "categoryBrowse",
        "searchSuppliers"
      ],
      "enumTitles": [
        "Search products by keyword",
        "Browse a product category",
        "Look up product URLs or IDs",
        "Look up supplier profiles",
        "Browse a category (legacy name)",
        "Search products by keyword (legacy name)"
      ],
      "prefill": "searchProducts",
      "title": "Mode",
      "type": "string"
    },
    "productUrls": {
      "default": [],
      "description": "IndiaMART product URLs or numeric product IDs. Used only for mode=productDetails.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [],
      "title": "Product URLs or IDs",
      "type": "array"
    },
    "state": {
      "default": "",
      "description": "Keep only suppliers in this Indian state or union territory. Leave empty for all of India.",
      "editor": "select",
      "enum": [
        "",
        "Andhra Pradesh",
        "Arunachal Pradesh",
        "Assam",
        "Bihar",
        "Chhattisgarh",
        "Goa",
        "Gujarat",
        "Haryana",
        "Himachal Pradesh",
        "Jharkhand",
        "Karnataka",
        "Kerala",
        "Madhya Pradesh",
        "Maharashtra",
        "Manipur",
        "Meghalaya",
        "Mizoram",
        "Nagaland",
        "Odisha",
        "Punjab",
        "Rajasthan",
        "Sikkim",
        "Tamil Nadu",
        "Telangana",
        "Tripura",
        "Uttar Pradesh",
        "Uttarakhand",
        "West Bengal",
        "Andaman and Nicobar Islands",
        "Chandigarh",
        "Dadra and Nagar Haveli and Daman and Diu",
        "Delhi",
        "Jammu and Kashmir",
        "Ladakh",
        "Lakshadweep",
        "Puducherry"
      ],
      "enumTitles": [
        "All states and union territories",
        "Andhra Pradesh",
        "Arunachal Pradesh",
        "Assam",
        "Bihar",
        "Chhattisgarh",
        "Goa",
        "Gujarat",
        "Haryana",
        "Himachal Pradesh",
        "Jharkhand",
        "Karnataka",
        "Kerala",
        "Madhya Pradesh",
        "Maharashtra",
        "Manipur",
        "Meghalaya",
        "Mizoram",
        "Nagaland",
        "Odisha",
        "Punjab",
        "Rajasthan",
        "Sikkim",
        "Tamil Nadu",
        "Telangana",
        "Tripura",
        "Uttar Pradesh",
        "Uttarakhand",
        "West Bengal",
        "Andaman and Nicobar Islands",
        "Chandigarh",
        "Dadra and Nagar Haveli and Daman and Diu",
        "Delhi",
        "Jammu and Kashmir",
        "Ladakh",
        "Lakshadweep",
        "Puducherry"
      ],
      "prefill": "",
      "title": "State or union territory",
      "type": "string"
    },
    "supplierUrls": {
      "default": [],
      "description": "IndiaMART supplier profile URLs, company IDs, or company aliases. Used only for mode=supplierProfile.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "prefill": [],
      "title": "Supplier URLs or company IDs",
      "type": "array"
    },
    "verifiedSuppliersOnly": {
      "default": false,
      "description": "Keep only suppliers with an IndiaMART verification signal such as TrustSEAL, verified exporter or verified GST.",
      "prefill": false,
      "title": "Verified suppliers only",
      "type": "boolean"
    }
  },
  "required": [
    "mode"
  ],
  "schemaVersion": 1,
  "title": "IndiaMART B2B Product & Supplier Scraper Input",
  "type": "object"
}

Output schema

Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.

FieldTypeRequiredDescription
resultsstringoptionalDataset containing all scraped IndiaMART product and supplier records.

Download the published output schema

View complete JSON
{
  "actorOutputSchemaVersion": 1,
  "description": "Dataset of IndiaMART product listings and supplier profiles with price, MOQ, specifications, images, location, rating, response rate, and verified company details where IndiaMART publishes them.",
  "properties": {
    "results": {
      "description": "Dataset containing all scraped IndiaMART product and supplier records.",
      "template": "{{links.apiDefaultDatasetUrl}}/items",
      "title": "IndiaMART results",
      "type": "string"
    }
  },
  "title": "IndiaMART B2B Product & Supplier Output"
}

Dataset schema

Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.

Download the published dataset schema

View complete JSON
{
  "actorSpecification": 1,
  "views": {
    "overview": {
      "display": {
        "component": "table",
        "properties": {}
      },
      "title": "IndiaMART Results",
      "transformation": {
        "fields": [
          "title",
          "price",
          "minOrder",
          "supplier",
          "supplierCity",
          "supplierState",
          "rating",
          "responseRate",
          "productUrl",
          "supplierUrl",
          "gstNumber",
          "verifiedExporter"
        ]
      }
    }
  }
}

Key-value schema

Published key-value store definitions, when provided by this build.

This definition is not present in the default published build. See the published README for available documentation.

Published README

Read the full published documentation

IndiaMART B2B Product Listings by City & State

Scrape IndiaMART, India's largest B2B marketplace, for products and suppliers by keyword or category. Narrow results to an Indian city or state, or look up public product and supplier pages directly. Get prices, minimum order quantities, specifications, images, supplier location, ratings, response rates, and verified company details where IndiaMART publishes them.

What this actor does

  • Four modes: searchProducts, browseCategory, productDetails, supplierProfile (legacy categoryBrowse and searchSuppliers values are accepted)
  • Location filters: city and state/union-territory narrowing for keyword and category searches
  • Commercial filters: minimum/maximum price, minimum supplier rating, verified suppliers only
  • Product enrichment: optional detail-page pass for description, full specifications, MOQ, contact number, GST, IEC and company background
  • Supplier records: company name, profile URL, city/state, address, rating, response rate, GST, IEC, exports, employees, legal status, payment and shipment modes
  • Deeper coverage: category pages are paginated and expanded through related categories and city routes when a request needs more rows
  • Empty fields are omitted — no nulls, blanks or placeholder strings in the dataset

Output per product

  • productId — IndiaMART product identifier
  • title — product name
  • price — normalised price string, e.g. INR 70/Meter
  • priceValue, priceCurrency, priceUnit, priceText — numeric price, currency, unit and the original displayed text
  • minOrder — minimum order quantity with unit
  • moqValue, moqUnit — numeric MOQ and its unit
  • supplier — company name
  • supplierId, supplierUrl — IndiaMART company ID and profile URL
  • supplierWebsite — the supplier's own website when IndiaMART publishes a real external URL (IndiaMART-hosted alias URLs are omitted)
  • supplierCity, supplierState — supplier location
  • supplierAddress, supplierPincode — address details when published
  • supplierRating, rating, reviewCount — star rating and number of ratings
  • responseRate — supplier's call response rate
  • phone — IndiaMART's public call-routing number
  • gstNumber, iecNumber — GSTIN and Import-Export Code when published
  • gstVerified, verifiedExporter, badge — verification and trust signals
  • memberSince, yearEstablished, employees, natureOfBusiness, legalStatus, ceo — company background
  • exportsTo, gstTurnover, gstRegistrationDate — export and GST details
  • category, categoryId — IndiaMART category
  • specifications — product attributes as key/value pairs
  • description — product description when the detail-page enrichment is enabled
  • imageUrl, images — main image and additional product images
  • catalogueUrl — product brochure or catalogue PDF when published
  • searchQuery — keyword that produced the record
  • deliveryAvailable, industryLeader, supplierAlias — additional listing signals
  • recordType: "product", scrapedAt — record type and UTC collection time

Output per supplier

  • supplierId, supplier, supplierUrl — company identity and profile
  • supplierCity, supplierState, supplierAddress, supplierPincode — location
  • supplierWebsite — the supplier's own website when IndiaMART publishes a real external URL (IndiaMART-hosted alias URLs are omitted)
  • supplierRating, rating, reviewCount, responseRate — reputation signals
  • phone — IndiaMART's public call-routing number when published
  • gstNumber, gstRegistrationDate, iecNumber, gstVerified, verifiedExporter, badge — statutory and verification details
  • memberSince, yearEstablished, employees, natureOfBusiness, legalStatus, ceo — company background
  • additionalBusiness, exportsTo, exportPercentage — trade profile
  • banker, paymentModes, shipmentModes — commercial terms when published
  • products, productCount — product range found on the profile
  • searchQuery — keyword that produced the record, when applicable
  • recordType: "supplier", scrapedAt — record type and UTC collection time

Input

Field Type Default Description
mode string searchProducts searchProducts / browseCategory / productDetails / supplierProfile (legacy categoryBrowse and searchSuppliers values are mapped)
keyword string cotton fabric Product or material keyword (mode=searchProducts)
category string – Category slug or URL, e.g. cotton-fabric (mode=browseCategory)
city string – Indian city, e.g. Surat, Mumbai, Jaipur
state string – Indian state or union territory
productUrls array – Product URLs or numeric IDs (mode=productDetails)
supplierUrls array – Supplier URLs, company IDs or aliases (mode=supplierProfile)
maxItems integer 20 Maximum records across all inputs (1–1000)
expandRelatedCategories boolean true Collect related categories when a keyword or category has too few listings
enrichWithProductDetails boolean false Open each product page for description, full specs, MOQ, contact, GST and IEC
minPrice integer 0 Drop listings below this INR price; 0 means no minimum
maxPrice integer 0 Drop listings above this INR price; 0 means no maximum
minRating number 0 Drop suppliers below this star rating (0–5)
verifiedSuppliersOnly boolean false Keep only TrustSEAL, verified-exporter or GST-verified suppliers

Example: keyword search in a manufacturing hub

{
    "mode": "searchProducts",
    "keyword": "cotton fabric",
    "city": "Surat",
    "state": "Gujarat",
    "maxItems": 50
}

Example: category browse with commercial filters

{
    "mode": "browseCategory",
    "category": "industrial-pumps",
    "minPrice": 5000,
    "maxPrice": 200000,
    "minRating": 3.5,
    "verifiedSuppliersOnly": true,
    "maxItems": 100
}

Example: look up product pages

{
    "mode": "productDetails",
    "productUrls": [
        "https://www.indiamart.com/proddetail/cotton-fabric-27595399997.html",
        "27595399997"
    ],
    "maxItems": 10
}

Example: look up supplier profiles

{
    "mode": "supplierProfile",
    "supplierUrls": [
        "https://www.indiamart.com/gautam-fabric/",
        "https://www.indiamart.com/company/76488165/"
    ],
    "maxItems": 10
}

Use cases

  • India sourcing — find manufacturers and wholesalers for textiles, engineering goods, chemicals, packaging or food products
  • Supplier shortlisting — compare prices, MOQs, ratings and response rates before contacting suppliers
  • Regional sourcing — target manufacturing hubs by city or state, such as Surat for textiles or Coimbatore for machinery
  • B2B lead generation — collect company names, profile URLs, locations, GSTINs and public call-routing numbers
  • Export sourcing — identify verified exporters and see which countries they already ship to
  • Price benchmarking — compare listed prices and minimum order quantities across suppliers for the same product

FAQ

Do I need an IndiaMART account, cookies or an API key? No. The actor reads publicly visible listing and company pages and does not ask for credentials.

Do I need to set up a proxy? No. The actor chooses a working connection to IndiaMART automatically. Fill in the input and run it.

Why do some products have a price and others do not? IndiaMART suppliers choose whether to publish a price. When a listing has no public price, the price fields are omitted rather than filled with a placeholder.

Why is minOrder missing on some products? Minimum order quantity is published for some listings and not others. The detail-page enrichment pass fills it when IndiaMART shows it.

Is the phone number a direct mobile number? No. IndiaMART publishes a call-routing number that connects to the supplier. Personal mobile numbers and email addresses are not published on the site, so this actor does not return them.

Are GST and IEC numbers always available? They are returned when the supplier publishes them on a product or company page. Coverage is higher for exporters and verified suppliers.

Why do I get fewer records than the number of listings IndiaMART shows? IndiaMART limits how deep anonymous search and category pages go, and “Show More Results” requires a login. The actor paginates up to four category pages, expands related categories and city routes, and uses the public search API to get as close to maxItems as the source allows. Deeper category pages repeat heavily and add new IDs unpredictably, so the actor widens the search instead of assuming a fixed page pool. A single broad query may still stop short of 1,000 rows; split it by city, state or narrower category to collect more. The actor reports the shortfall in the terminal run status message and the run log instead of padding the dataset.

Why is supplierWebsite missing on some rows? IndiaMART sometimes publishes its own indiamart.com/<alias>/ profile URL in the website slot instead of the supplier's real site. Those IndiaMART-hosted URLs are not returned as supplierWebsite; the field contains only an external supplier website when one is published.

Can I get reviews, email addresses, mobile numbers or UDYAM numbers? No. Review pages redirect to the company profile or a login wall, and IndiaMART does not publish emails, personal mobiles or UDYAM numbers to anonymous visitors. The phone field is the public call-routing number. These are hard limits of the public site, not missing parser fields.

Can I collect more than 1,000 records in one run? maxItems is capped at 1,000. The anonymous IndiaMART pool can also be smaller than that for one broad query. Run several city, state or category slices and combine the datasets if you need more coverage.

How fresh is the data? Every record carries scrapedAt in UTC. Prices, ratings and stock signals are captured at run time and can change on IndiaMART afterwards.

My saved task uses an older mode name. Will it still run? Yes. The legacy categoryBrowse and searchSuppliers values are accepted and mapped to product search, so saved tasks keep working.

Is this affiliated with IndiaMART? No. This is an independent actor that reads publicly visible IndiaMART pages and is not operated or endorsed by IndiaMART.

Python quickstart

Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.

Open the step-by-step Python guide →

Source build XP3b8zL2i711xmbbR. Documentation is regenerated from the default published build; private drafts are not included.