{
  "data": {
    "id": "XP3b8zL2i711xmbbR",
    "actId": "l0XeUyh2eHRNbU3M0",
    "userId": "IYgBDiXtHOijAaUel",
    "startedAt": "2026-11-03T08:04:52.444Z",
    "finishedAt": "2026-11-03T08:05:02.147Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 9595,
      "runTimeSecs": 9.595,
      "computeUnits": 0.01066111111111111,
      "imageSizeBytes": 359301120
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "QYo53EZkJk0prePWY",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"IndiaMART B2B Product & Supplier Scraper Input\",\n  \"description\": \"Search IndiaMART products, browse a category, or look up public product and supplier pages. Filter by Indian city or state.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Mode\",\n      \"type\": \"string\",\n      \"description\": \"Choose what to collect from IndiaMART.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"searchProducts\",\n        \"browseCategory\",\n        \"productDetails\",\n        \"supplierProfile\",\n        \"categoryBrowse\",\n        \"searchSuppliers\"\n      ],\n      \"enumTitles\": [\n        \"Search products by keyword\",\n        \"Browse a product category\",\n        \"Look up product URLs or IDs\",\n        \"Look up supplier profiles\",\n        \"Browse a category (legacy name)\",\n        \"Search products by keyword (legacy name)\"\n      ],\n      \"default\": \"searchProducts\",\n      \"prefill\": \"searchProducts\"\n    },\n    \"keyword\": {\n      \"title\": \"Search keyword\",\n      \"type\": \"string\",\n      \"description\": \"Product or material keyword, e.g. 'cotton fabric', 'industrial pump', 'basmati rice'. Required for mode=searchProducts.\",\n      \"editor\": \"textfield\",\n      \"default\": \"cotton fabric\",\n      \"prefill\": \"cotton fabric\"\n    },\n    \"category\": {\n      \"title\": \"Category slug or URL\",\n      \"type\": \"string\",\n      \"description\": \"IndiaMART category slug or category URL, e.g. 'cotton-fabric' or 'https://dir.indiamart.com/impcat/cotton-fabric.html'. Required for mode=browseCategory.\",\n      \"editor\": \"textfield\",\n      \"default\": \"\",\n      \"prefill\": \"\"\n    },\n    \"city\": {\n      \"title\": \"City\",\n      \"type\": \"string\",\n      \"description\": \"Keep only suppliers in this Indian city, e.g. 'Surat', 'Mumbai', 'Jaipur'. Works with searchProducts and browseCategory.\",\n      \"editor\": \"textfield\",\n      \"default\": \"\",\n      \"prefill\": \"\"\n    },\n    \"state\": {\n      \"title\": \"State or union territory\",\n      \"type\": \"string\",\n      \"description\": \"Keep only suppliers in this Indian state or union territory. Leave empty for all of India.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"Andhra Pradesh\",\n        \"Arunachal Pradesh\",\n        \"Assam\",\n        \"Bihar\",\n        \"Chhattisgarh\",\n        \"Goa\",\n        \"Gujarat\",\n        \"Haryana\",\n        \"Himachal Pradesh\",\n        \"Jharkhand\",\n        \"Karnataka\",\n        \"Kerala\",\n        \"Madhya Pradesh\",\n        \"Maharashtra\",\n        \"Manipur\",\n        \"Meghalaya\",\n        \"Mizoram\",\n        \"Nagaland\",\n        \"Odisha\",\n        \"Punjab\",\n        \"Rajasthan\",\n        \"Sikkim\",\n        \"Tamil Nadu\",\n        \"Telangana\",\n        \"Tripura\",\n        \"Uttar Pradesh\",\n        \"Uttarakhand\",\n        \"West Bengal\",\n        \"Andaman and Nicobar Islands\",\n        \"Chandigarh\",\n        \"Dadra and Nagar Haveli and Daman and Diu\",\n        \"Delhi\",\n        \"Jammu and Kashmir\",\n        \"Ladakh\",\n        \"Lakshadweep\",\n        \"Puducherry\"\n      ],\n      \"enumTitles\": [\n        \"All states and union territories\",\n        \"Andhra Pradesh\",\n        \"Arunachal Pradesh\",\n        \"Assam\",\n        \"Bihar\",\n        \"Chhattisgarh\",\n        \"Goa\",\n        \"Gujarat\",\n        \"Haryana\",\n        \"Himachal Pradesh\",\n        \"Jharkhand\",\n        \"Karnataka\",\n        \"Kerala\",\n        \"Madhya Pradesh\",\n        \"Maharashtra\",\n        \"Manipur\",\n        \"Meghalaya\",\n        \"Mizoram\",\n        \"Nagaland\",\n        \"Odisha\",\n        \"Punjab\",\n        \"Rajasthan\",\n        \"Sikkim\",\n        \"Tamil Nadu\",\n        \"Telangana\",\n        \"Tripura\",\n        \"Uttar Pradesh\",\n        \"Uttarakhand\",\n        \"West Bengal\",\n        \"Andaman and Nicobar Islands\",\n        \"Chandigarh\",\n        \"Dadra and Nagar Haveli and Daman and Diu\",\n        \"Delhi\",\n        \"Jammu and Kashmir\",\n        \"Ladakh\",\n        \"Lakshadweep\",\n        \"Puducherry\"\n      ],\n      \"default\": \"\",\n      \"prefill\": \"\"\n    },\n    \"productUrls\": {\n      \"title\": \"Product URLs or IDs\",\n      \"type\": \"array\",\n      \"description\": \"IndiaMART product URLs or numeric product IDs. Used only for mode=productDetails.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"supplierUrls\": {\n      \"title\": \"Supplier URLs or company IDs\",\n      \"type\": \"array\",\n      \"description\": \"IndiaMART supplier profile URLs, company IDs, or company aliases. Used only for mode=supplierProfile.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      },\n      \"default\": [],\n      \"prefill\": []\n    },\n    \"maxItems\": {\n      \"title\": \"Maximum records\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum number of records to return across all keywords and inputs.\",\n      \"minimum\": 1,\n      \"maximum\": 1000,\n      \"default\": 20,\n      \"prefill\": 3\n    },\n    \"expandRelatedCategories\": {\n      \"title\": \"Expand into related categories\",\n      \"type\": \"boolean\",\n      \"description\": \"When a keyword or category has too few listings, also collect IndiaMART's related product categories. Results are de-duplicated.\",\n      \"default\": true,\n      \"prefill\": false\n    },\n    \"enrichWithProductDetails\": {\n      \"title\": \"Enrich products with detail pages\",\n      \"type\": \"boolean\",\n      \"description\": \"Open each product page to add description, full specifications, MOQ, contact number, GST, IEC and company details. Adds one request per product.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"minPrice\": {\n      \"title\": \"Minimum price (INR)\",\n      \"type\": \"integer\",\n      \"description\": \"Drop listings priced below this amount. Use 0 for no minimum.\",\n      \"minimum\": 0,\n      \"maximum\": 100000000,\n      \"default\": 0,\n      \"prefill\": 0\n    },\n    \"maxPrice\": {\n      \"title\": \"Maximum price (INR)\",\n      \"type\": \"integer\",\n      \"description\": \"Drop listings priced above this amount. Use 0 for no maximum.\",\n      \"minimum\": 0,\n      \"maximum\": 100000000,\n      \"default\": 0,\n      \"prefill\": 0\n    },\n    \"minRating\": {\n      \"title\": \"Minimum supplier rating\",\n      \"type\": \"number\",\n      \"description\": \"Drop suppliers rated below this star rating (0 to 5). Use 0 for no minimum.\",\n      \"minimum\": 0,\n      \"maximum\": 5,\n      \"default\": 0,\n      \"prefill\": 0\n    },\n    \"verifiedSuppliersOnly\": {\n      \"title\": \"Verified suppliers only\",\n      \"type\": \"boolean\",\n      \"description\": \"Keep only suppliers with an IndiaMART verification signal such as TrustSEAL, verified exporter or verified GST.\",\n      \"default\": false,\n      \"prefill\": false\n    }\n  },\n  \"required\": [\n    \"mode\"\n  ]\n}",
    "readme": "# IndiaMART B2B Product Listings by City & State\r\n\r\nScrape **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.\r\n\r\n## What this actor does\r\n\r\n- **Four modes:** `searchProducts`, `browseCategory`, `productDetails`, `supplierProfile` (legacy `categoryBrowse` and `searchSuppliers` values are accepted)\r\n- **Location filters:** city and state/union-territory narrowing for keyword and category searches\r\n- **Commercial filters:** minimum/maximum price, minimum supplier rating, verified suppliers only\r\n- **Product enrichment:** optional detail-page pass for description, full specifications, MOQ, contact number, GST, IEC and company background\r\n- **Supplier records:** company name, profile URL, city/state, address, rating, response rate, GST, IEC, exports, employees, legal status, payment and shipment modes\r\n- **Deeper coverage:** category pages are paginated and expanded through related categories and city routes when a request needs more rows\r\n- **Empty fields are omitted** — no nulls, blanks or placeholder strings in the dataset\r\n\r\n## Output per product\r\n\r\n- `productId` — IndiaMART product identifier\r\n- `title` — product name\r\n- `price` — normalised price string, e.g. `INR 70/Meter`\r\n- `priceValue`, `priceCurrency`, `priceUnit`, `priceText` — numeric price, currency, unit and the original displayed text\r\n- `minOrder` — minimum order quantity with unit\r\n- `moqValue`, `moqUnit` — numeric MOQ and its unit\r\n- `supplier` — company name\r\n- `supplierId`, `supplierUrl` — IndiaMART company ID and profile URL\r\n- `supplierWebsite` — the supplier's own website when IndiaMART publishes a real external URL (IndiaMART-hosted alias URLs are omitted)\r\n- `supplierCity`, `supplierState` — supplier location\r\n- `supplierAddress`, `supplierPincode` — address details when published\r\n- `supplierRating`, `rating`, `reviewCount` — star rating and number of ratings\r\n- `responseRate` — supplier's call response rate\r\n- `phone` — IndiaMART's public call-routing number\r\n- `gstNumber`, `iecNumber` — GSTIN and Import-Export Code when published\r\n- `gstVerified`, `verifiedExporter`, `badge` — verification and trust signals\r\n- `memberSince`, `yearEstablished`, `employees`, `natureOfBusiness`, `legalStatus`, `ceo` — company background\r\n- `exportsTo`, `gstTurnover`, `gstRegistrationDate` — export and GST details\r\n- `category`, `categoryId` — IndiaMART category\r\n- `specifications` — product attributes as key/value pairs\r\n- `description` — product description when the detail-page enrichment is enabled\r\n- `imageUrl`, `images` — main image and additional product images\r\n- `catalogueUrl` — product brochure or catalogue PDF when published\r\n- `searchQuery` — keyword that produced the record\r\n- `deliveryAvailable`, `industryLeader`, `supplierAlias` — additional listing signals\r\n- `recordType: \"product\"`, `scrapedAt` — record type and UTC collection time\r\n\r\n## Output per supplier\r\n\r\n- `supplierId`, `supplier`, `supplierUrl` — company identity and profile\r\n- `supplierCity`, `supplierState`, `supplierAddress`, `supplierPincode` — location\r\n- `supplierWebsite` — the supplier's own website when IndiaMART publishes a real external URL (IndiaMART-hosted alias URLs are omitted)\r\n- `supplierRating`, `rating`, `reviewCount`, `responseRate` — reputation signals\r\n- `phone` — IndiaMART's public call-routing number when published\r\n- `gstNumber`, `gstRegistrationDate`, `iecNumber`, `gstVerified`, `verifiedExporter`, `badge` — statutory and verification details\r\n- `memberSince`, `yearEstablished`, `employees`, `natureOfBusiness`, `legalStatus`, `ceo` — company background\r\n- `additionalBusiness`, `exportsTo`, `exportPercentage` — trade profile\r\n- `banker`, `paymentModes`, `shipmentModes` — commercial terms when published\r\n- `products`, `productCount` — product range found on the profile\r\n- `searchQuery` — keyword that produced the record, when applicable\r\n- `recordType: \"supplier\"`, `scrapedAt` — record type and UTC collection time\r\n\r\n## Input\r\n\r\n| Field | Type | Default | Description |\r\n|---|---|---|---|\r\n| `mode` | string | `searchProducts` | `searchProducts` / `browseCategory` / `productDetails` / `supplierProfile` (legacy `categoryBrowse` and `searchSuppliers` values are mapped) |\r\n| `keyword` | string | `cotton fabric` | Product or material keyword (mode=searchProducts) |\r\n| `category` | string | – | Category slug or URL, e.g. `cotton-fabric` (mode=browseCategory) |\r\n| `city` | string | – | Indian city, e.g. `Surat`, `Mumbai`, `Jaipur` |\r\n| `state` | string | – | Indian state or union territory |\r\n| `productUrls` | array | – | Product URLs or numeric IDs (mode=productDetails) |\r\n| `supplierUrls` | array | – | Supplier URLs, company IDs or aliases (mode=supplierProfile) |\r\n| `maxItems` | integer | `20` | Maximum records across all inputs (1–1000) |\r\n| `expandRelatedCategories` | boolean | `true` | Collect related categories when a keyword or category has too few listings |\r\n| `enrichWithProductDetails` | boolean | `false` | Open each product page for description, full specs, MOQ, contact, GST and IEC |\r\n| `minPrice` | integer | `0` | Drop listings below this INR price; 0 means no minimum |\r\n| `maxPrice` | integer | `0` | Drop listings above this INR price; 0 means no maximum |\r\n| `minRating` | number | `0` | Drop suppliers below this star rating (0–5) |\r\n| `verifiedSuppliersOnly` | boolean | `false` | Keep only TrustSEAL, verified-exporter or GST-verified suppliers |\r\n\r\n### Example: keyword search in a manufacturing hub\r\n\r\n```json\r\n{\r\n    \"mode\": \"searchProducts\",\r\n    \"keyword\": \"cotton fabric\",\r\n    \"city\": \"Surat\",\r\n    \"state\": \"Gujarat\",\r\n    \"maxItems\": 50\r\n}\r\n```\r\n\r\n### Example: category browse with commercial filters\r\n\r\n```json\r\n{\r\n    \"mode\": \"browseCategory\",\r\n    \"category\": \"industrial-pumps\",\r\n    \"minPrice\": 5000,\r\n    \"maxPrice\": 200000,\r\n    \"minRating\": 3.5,\r\n    \"verifiedSuppliersOnly\": true,\r\n    \"maxItems\": 100\r\n}\r\n```\r\n\r\n### Example: look up product pages\r\n\r\n```json\r\n{\r\n    \"mode\": \"productDetails\",\r\n    \"productUrls\": [\r\n        \"https://www.indiamart.com/proddetail/cotton-fabric-27595399997.html\",\r\n        \"27595399997\"\r\n    ],\r\n    \"maxItems\": 10\r\n}\r\n```\r\n\r\n### Example: look up supplier profiles\r\n\r\n```json\r\n{\r\n    \"mode\": \"supplierProfile\",\r\n    \"supplierUrls\": [\r\n        \"https://www.indiamart.com/gautam-fabric/\",\r\n        \"https://www.indiamart.com/company/76488165/\"\r\n    ],\r\n    \"maxItems\": 10\r\n}\r\n```\r\n\r\n## Use cases\r\n\r\n- **India sourcing** — find manufacturers and wholesalers for textiles, engineering goods, chemicals, packaging or food products\r\n- **Supplier shortlisting** — compare prices, MOQs, ratings and response rates before contacting suppliers\r\n- **Regional sourcing** — target manufacturing hubs by city or state, such as Surat for textiles or Coimbatore for machinery\r\n- **B2B lead generation** — collect company names, profile URLs, locations, GSTINs and public call-routing numbers\r\n- **Export sourcing** — identify verified exporters and see which countries they already ship to\r\n- **Price benchmarking** — compare listed prices and minimum order quantities across suppliers for the same product\r\n\r\n## FAQ\r\n\r\n**Do I need an IndiaMART account, cookies or an API key?**\r\nNo. The actor reads publicly visible listing and company pages and does not ask for credentials.\r\n\r\n**Do I need to set up a proxy?**\r\nNo. The actor chooses a working connection to IndiaMART automatically. Fill in the input and run it.\r\n\r\n**Why do some products have a price and others do not?**\r\nIndiaMART 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.\r\n\r\n**Why is `minOrder` missing on some products?**\r\nMinimum order quantity is published for some listings and not others. The detail-page enrichment pass fills it when IndiaMART shows it.\r\n\r\n**Is the phone number a direct mobile number?**\r\nNo. 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.\r\n\r\n**Are GST and IEC numbers always available?**\r\nThey are returned when the supplier publishes them on a product or company page. Coverage is higher for exporters and verified suppliers.\r\n\r\n**Why do I get fewer records than the number of listings IndiaMART shows?**\r\nIndiaMART 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.\r\n\r\n**Why is `supplierWebsite` missing on some rows?**\r\nIndiaMART 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.\r\n\r\n**Can I get reviews, email addresses, mobile numbers or UDYAM numbers?**\r\nNo. 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.\r\n\r\n**Can I collect more than 1,000 records in one run?**\r\n`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.\r\n\r\n**How fresh is the data?**\r\nEvery record carries `scrapedAt` in UTC. Prices, ratings and stock signals are captured at run time and can change on IndiaMART afterwards.\r\n\r\n**My saved task uses an older mode name. Will it still run?**\r\nYes. The legacy `categoryBrowse` and `searchSuppliers` values are accepted and mapped to product search, so saved tasks keep working.\r\n\r\n**Is this affiliated with IndiaMART?**\r\nNo. This is an independent actor that reads publicly visible IndiaMART pages and is not operated or endorsed by IndiaMART.\r\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "indiamart-b2b-product-listings-by-city-and-state",
      "title": "IndiaMART B2B Product Listings by City & State",
      "description": "Search IndiaMART products and suppliers by keyword or category, filter by Indian city or state, and look up public product or supplier pages. Returns price, MOQ, specs, images, location, rating, response rate and verified company facts.",
      "version": "1.1",
      "buildTag": "latest",
      "dockerfile": "./Dockerfile",
      "readme": "# IndiaMART B2B Product Listings by City & State\r\n\r\nScrape **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.\r\n\r\n## What this actor does\r\n\r\n- **Four modes:** `searchProducts`, `browseCategory`, `productDetails`, `supplierProfile` (legacy `categoryBrowse` and `searchSuppliers` values are accepted)\r\n- **Location filters:** city and state/union-territory narrowing for keyword and category searches\r\n- **Commercial filters:** minimum/maximum price, minimum supplier rating, verified suppliers only\r\n- **Product enrichment:** optional detail-page pass for description, full specifications, MOQ, contact number, GST, IEC and company background\r\n- **Supplier records:** company name, profile URL, city/state, address, rating, response rate, GST, IEC, exports, employees, legal status, payment and shipment modes\r\n- **Deeper coverage:** category pages are paginated and expanded through related categories and city routes when a request needs more rows\r\n- **Empty fields are omitted** — no nulls, blanks or placeholder strings in the dataset\r\n\r\n## Output per product\r\n\r\n- `productId` — IndiaMART product identifier\r\n- `title` — product name\r\n- `price` — normalised price string, e.g. `INR 70/Meter`\r\n- `priceValue`, `priceCurrency`, `priceUnit`, `priceText` — numeric price, currency, unit and the original displayed text\r\n- `minOrder` — minimum order quantity with unit\r\n- `moqValue`, `moqUnit` — numeric MOQ and its unit\r\n- `supplier` — company name\r\n- `supplierId`, `supplierUrl` — IndiaMART company ID and profile URL\r\n- `supplierWebsite` — the supplier's own website when IndiaMART publishes a real external URL (IndiaMART-hosted alias URLs are omitted)\r\n- `supplierCity`, `supplierState` — supplier location\r\n- `supplierAddress`, `supplierPincode` — address details when published\r\n- `supplierRating`, `rating`, `reviewCount` — star rating and number of ratings\r\n- `responseRate` — supplier's call response rate\r\n- `phone` — IndiaMART's public call-routing number\r\n- `gstNumber`, `iecNumber` — GSTIN and Import-Export Code when published\r\n- `gstVerified`, `verifiedExporter`, `badge` — verification and trust signals\r\n- `memberSince`, `yearEstablished`, `employees`, `natureOfBusiness`, `legalStatus`, `ceo` — company background\r\n- `exportsTo`, `gstTurnover`, `gstRegistrationDate` — export and GST details\r\n- `category`, `categoryId` — IndiaMART category\r\n- `specifications` — product attributes as key/value pairs\r\n- `description` — product description when the detail-page enrichment is enabled\r\n- `imageUrl`, `images` — main image and additional product images\r\n- `catalogueUrl` — product brochure or catalogue PDF when published\r\n- `searchQuery` — keyword that produced the record\r\n- `deliveryAvailable`, `industryLeader`, `supplierAlias` — additional listing signals\r\n- `recordType: \"product\"`, `scrapedAt` — record type and UTC collection time\r\n\r\n## Output per supplier\r\n\r\n- `supplierId`, `supplier`, `supplierUrl` — company identity and profile\r\n- `supplierCity`, `supplierState`, `supplierAddress`, `supplierPincode` — location\r\n- `supplierWebsite` — the supplier's own website when IndiaMART publishes a real external URL (IndiaMART-hosted alias URLs are omitted)\r\n- `supplierRating`, `rating`, `reviewCount`, `responseRate` — reputation signals\r\n- `phone` — IndiaMART's public call-routing number when published\r\n- `gstNumber`, `gstRegistrationDate`, `iecNumber`, `gstVerified`, `verifiedExporter`, `badge` — statutory and verification details\r\n- `memberSince`, `yearEstablished`, `employees`, `natureOfBusiness`, `legalStatus`, `ceo` — company background\r\n- `additionalBusiness`, `exportsTo`, `exportPercentage` — trade profile\r\n- `banker`, `paymentModes`, `shipmentModes` — commercial terms when published\r\n- `products`, `productCount` — product range found on the profile\r\n- `searchQuery` — keyword that produced the record, when applicable\r\n- `recordType: \"supplier\"`, `scrapedAt` — record type and UTC collection time\r\n\r\n## Input\r\n\r\n| Field | Type | Default | Description |\r\n|---|---|---|---|\r\n| `mode` | string | `searchProducts` | `searchProducts` / `browseCategory` / `productDetails` / `supplierProfile` (legacy `categoryBrowse` and `searchSuppliers` values are mapped) |\r\n| `keyword` | string | `cotton fabric` | Product or material keyword (mode=searchProducts) |\r\n| `category` | string | – | Category slug or URL, e.g. `cotton-fabric` (mode=browseCategory) |\r\n| `city` | string | – | Indian city, e.g. `Surat`, `Mumbai`, `Jaipur` |\r\n| `state` | string | – | Indian state or union territory |\r\n| `productUrls` | array | – | Product URLs or numeric IDs (mode=productDetails) |\r\n| `supplierUrls` | array | – | Supplier URLs, company IDs or aliases (mode=supplierProfile) |\r\n| `maxItems` | integer | `20` | Maximum records across all inputs (1–1000) |\r\n| `expandRelatedCategories` | boolean | `true` | Collect related categories when a keyword or category has too few listings |\r\n| `enrichWithProductDetails` | boolean | `false` | Open each product page for description, full specs, MOQ, contact, GST and IEC |\r\n| `minPrice` | integer | `0` | Drop listings below this INR price; 0 means no minimum |\r\n| `maxPrice` | integer | `0` | Drop listings above this INR price; 0 means no maximum |\r\n| `minRating` | number | `0` | Drop suppliers below this star rating (0–5) |\r\n| `verifiedSuppliersOnly` | boolean | `false` | Keep only TrustSEAL, verified-exporter or GST-verified suppliers |\r\n\r\n### Example: keyword search in a manufacturing hub\r\n\r\n```json\r\n{\r\n    \"mode\": \"searchProducts\",\r\n    \"keyword\": \"cotton fabric\",\r\n    \"city\": \"Surat\",\r\n    \"state\": \"Gujarat\",\r\n    \"maxItems\": 50\r\n}\r\n```\r\n\r\n### Example: category browse with commercial filters\r\n\r\n```json\r\n{\r\n    \"mode\": \"browseCategory\",\r\n    \"category\": \"industrial-pumps\",\r\n    \"minPrice\": 5000,\r\n    \"maxPrice\": 200000,\r\n    \"minRating\": 3.5,\r\n    \"verifiedSuppliersOnly\": true,\r\n    \"maxItems\": 100\r\n}\r\n```\r\n\r\n### Example: look up product pages\r\n\r\n```json\r\n{\r\n    \"mode\": \"productDetails\",\r\n    \"productUrls\": [\r\n        \"https://www.indiamart.com/proddetail/cotton-fabric-27595399997.html\",\r\n        \"27595399997\"\r\n    ],\r\n    \"maxItems\": 10\r\n}\r\n```\r\n\r\n### Example: look up supplier profiles\r\n\r\n```json\r\n{\r\n    \"mode\": \"supplierProfile\",\r\n    \"supplierUrls\": [\r\n        \"https://www.indiamart.com/gautam-fabric/\",\r\n        \"https://www.indiamart.com/company/76488165/\"\r\n    ],\r\n    \"maxItems\": 10\r\n}\r\n```\r\n\r\n## Use cases\r\n\r\n- **India sourcing** — find manufacturers and wholesalers for textiles, engineering goods, chemicals, packaging or food products\r\n- **Supplier shortlisting** — compare prices, MOQs, ratings and response rates before contacting suppliers\r\n- **Regional sourcing** — target manufacturing hubs by city or state, such as Surat for textiles or Coimbatore for machinery\r\n- **B2B lead generation** — collect company names, profile URLs, locations, GSTINs and public call-routing numbers\r\n- **Export sourcing** — identify verified exporters and see which countries they already ship to\r\n- **Price benchmarking** — compare listed prices and minimum order quantities across suppliers for the same product\r\n\r\n## FAQ\r\n\r\n**Do I need an IndiaMART account, cookies or an API key?**\r\nNo. The actor reads publicly visible listing and company pages and does not ask for credentials.\r\n\r\n**Do I need to set up a proxy?**\r\nNo. The actor chooses a working connection to IndiaMART automatically. Fill in the input and run it.\r\n\r\n**Why do some products have a price and others do not?**\r\nIndiaMART 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.\r\n\r\n**Why is `minOrder` missing on some products?**\r\nMinimum order quantity is published for some listings and not others. The detail-page enrichment pass fills it when IndiaMART shows it.\r\n\r\n**Is the phone number a direct mobile number?**\r\nNo. 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.\r\n\r\n**Are GST and IEC numbers always available?**\r\nThey are returned when the supplier publishes them on a product or company page. Coverage is higher for exporters and verified suppliers.\r\n\r\n**Why do I get fewer records than the number of listings IndiaMART shows?**\r\nIndiaMART 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.\r\n\r\n**Why is `supplierWebsite` missing on some rows?**\r\nIndiaMART 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.\r\n\r\n**Can I get reviews, email addresses, mobile numbers or UDYAM numbers?**\r\nNo. 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.\r\n\r\n**Can I collect more than 1,000 records in one run?**\r\n`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.\r\n\r\n**How fresh is the data?**\r\nEvery record carries `scrapedAt` in UTC. Prices, ratings and stock signals are captured at run time and can change on IndiaMART afterwards.\r\n\r\n**My saved task uses an older mode name. Will it still run?**\r\nYes. The legacy `categoryBrowse` and `searchSuppliers` values are accepted and mapped to product search, so saved tasks keep working.\r\n\r\n**Is this affiliated with IndiaMART?**\r\nNo. This is an independent actor that reads publicly visible IndiaMART pages and is not operated or endorsed by IndiaMART.\r\n",
      "input": {
        "title": "IndiaMART B2B Product & Supplier Scraper Input",
        "description": "Search IndiaMART products, browse a category, or look up public product and supplier pages. Filter by Indian city or state.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Mode",
            "type": "string",
            "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)"
            ],
            "default": "searchProducts",
            "prefill": "searchProducts"
          },
          "keyword": {
            "title": "Search keyword",
            "type": "string",
            "description": "Product or material keyword, e.g. 'cotton fabric', 'industrial pump', 'basmati rice'. Required for mode=searchProducts.",
            "editor": "textfield",
            "default": "cotton fabric",
            "prefill": "cotton fabric"
          },
          "category": {
            "title": "Category slug or URL",
            "type": "string",
            "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",
            "default": "",
            "prefill": ""
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "Keep only suppliers in this Indian city, e.g. 'Surat', 'Mumbai', 'Jaipur'. Works with searchProducts and browseCategory.",
            "editor": "textfield",
            "default": "",
            "prefill": ""
          },
          "state": {
            "title": "State or union territory",
            "type": "string",
            "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"
            ],
            "default": "",
            "prefill": ""
          },
          "productUrls": {
            "title": "Product URLs or IDs",
            "type": "array",
            "description": "IndiaMART product URLs or numeric product IDs. Used only for mode=productDetails.",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "default": [],
            "prefill": []
          },
          "supplierUrls": {
            "title": "Supplier URLs or company IDs",
            "type": "array",
            "description": "IndiaMART supplier profile URLs, company IDs, or company aliases. Used only for mode=supplierProfile.",
            "editor": "stringList",
            "items": {
              "type": "string"
            },
            "default": [],
            "prefill": []
          },
          "maxItems": {
            "title": "Maximum records",
            "type": "integer",
            "description": "Maximum number of records to return across all keywords and inputs.",
            "minimum": 1,
            "maximum": 1000,
            "default": 20,
            "prefill": 3
          },
          "expandRelatedCategories": {
            "title": "Expand into related categories",
            "type": "boolean",
            "description": "When a keyword or category has too few listings, also collect IndiaMART's related product categories. Results are de-duplicated.",
            "default": true,
            "prefill": false
          },
          "enrichWithProductDetails": {
            "title": "Enrich products with detail pages",
            "type": "boolean",
            "description": "Open each product page to add description, full specifications, MOQ, contact number, GST, IEC and company details. Adds one request per product.",
            "default": false,
            "prefill": false
          },
          "minPrice": {
            "title": "Minimum price (INR)",
            "type": "integer",
            "description": "Drop listings priced below this amount. Use 0 for no minimum.",
            "minimum": 0,
            "maximum": 100000000,
            "default": 0,
            "prefill": 0
          },
          "maxPrice": {
            "title": "Maximum price (INR)",
            "type": "integer",
            "description": "Drop listings priced above this amount. Use 0 for no maximum.",
            "minimum": 0,
            "maximum": 100000000,
            "default": 0,
            "prefill": 0
          },
          "minRating": {
            "title": "Minimum supplier rating",
            "type": "number",
            "description": "Drop suppliers rated below this star rating (0 to 5). Use 0 for no minimum.",
            "minimum": 0,
            "maximum": 5,
            "default": 0,
            "prefill": 0
          },
          "verifiedSuppliersOnly": {
            "title": "Verified suppliers only",
            "type": "boolean",
            "description": "Keep only suppliers with an IndiaMART verification signal such as TrustSEAL, verified exporter or verified GST.",
            "default": false,
            "prefill": false
          }
        },
        "required": [
          "mode"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "IndiaMART B2B Product & Supplier Output",
        "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": {
            "type": "string",
            "title": "IndiaMART results",
            "description": "Dataset containing all scraped IndiaMART product and supplier records.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "IndiaMART Results",
              "transformation": {
                "fields": [
                  "title",
                  "price",
                  "minOrder",
                  "supplier",
                  "supplierCity",
                  "supplierState",
                  "rating",
                  "responseRate",
                  "productUrl",
                  "supplierUrl",
                  "gstNumber",
                  "verifiedExporter"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {}
    },
    "buildNumber": "1.1.1",
    "imageDigest": "dee710316a1679758446a211974d1470392870b83d879d1dd412e0abf244cf05",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.1"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.01066111111111111
    }
  }
}