{
  "openapi": "3.0.1",
  "info": {
    "title": "IndiaMART Supplier Catalog Scraper — Products, Specs & Reviews",
    "description": "Scrape full IndiaMART supplier storefronts: every public product with price, MOQ, specs, images and brochures, full review history and the factsheet (turnover, employees, year founded, GST/IEC verification, TrustSEAL, export countries, rating). Find suppliers by keyword, category or city. No login.",
    "version": "0.1",
    "x-build-id": "Lk4c7YOlcVuCUv16h"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yugenox~indiamart-supplier-catalog-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yugenox-indiamart-supplier-catalog-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/yugenox~indiamart-supplier-catalog-scraper/runs": {
      "post": {
        "operationId": "runs-sync-yugenox-indiamart-supplier-catalog-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/yugenox~indiamart-supplier-catalog-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-yugenox-indiamart-supplier-catalog-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "suppliers": {
            "title": "Supplier links",
            "type": "array",
            "description": "IndiaMART suppliers to scrape in full. Paste storefront links (https://www.indiamart.com/westernmetal/), export.indiamart.com or m.indiamart.com links, product page links (the product's supplier is scraped), bare names (westernmetal) or numeric supplier IDs. Suppliers listed here are always scraped, whatever \"Max suppliers\" says.",
            "items": {
              "type": "string"
            }
          },
          "searchQueries": {
            "title": "Search keywords",
            "type": "array",
            "description": "Find suppliers by product keyword, e.g. \"turmeric powder\" or \"stainless steel bolts\". IndiaMART's keyword search returns at most 20 suppliers per keyword, so each keyword is also expanded into its matching product categories (see below) to find more.",
            "items": {
              "type": "string"
            }
          },
          "categoryUrls": {
            "title": "Category links",
            "type": "array",
            "description": "IndiaMART category pages to find suppliers from, e.g. https://dir.indiamart.com/impcat/turmeric-powder.html or a city page like https://dir.indiamart.com/mumbai/turmeric-powder.html. Each page lists up to 28 suppliers; use the city and business-type filters below to reach more.",
            "items": {
              "type": "string"
            }
          },
          "categoriesPerQuery": {
            "title": "Categories to explore per keyword",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "After a keyword's search results, also list suppliers from this many of its best-matching product categories. 0 = keyword search only (max 20 suppliers per keyword).",
            "default": 1
          },
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "Only find suppliers in these cities (for keywords' categories and category links without a city), e.g. mumbai, delhi, ahmedabad, new-delhi. Each city is a separate supplier listing. Enter \"all\" to go through India first and then the category's top cities (up to 50). Leave empty for all of India.",
            "items": {
              "type": "string"
            }
          },
          "businessTypes": {
            "title": "Business types",
            "type": "array",
            "description": "Only find suppliers of these types. Each type is a separate supplier listing, so this also finds more suppliers. Leave empty for all types.",
            "items": {
              "type": "string",
              "enum": [
                "manufacturer",
                "exporter",
                "wholesaler",
                "retailer",
                "service"
              ],
              "enumTitles": [
                "Manufacturer",
                "Exporter",
                "Wholesaler / Distributor",
                "Retailer",
                "Service provider"
              ]
            }
          },
          "maxSuppliers": {
            "title": "Max suppliers",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of suppliers to find from keywords and categories. 0 = no limit. Supplier links you paste above are always scraped on top of this.",
            "default": 20
          },
          "maxSearchPagesPerQuery": {
            "title": "Search pages per keyword",
            "minimum": 0,
            "maximum": 2,
            "type": "integer",
            "description": "Keyword search pages to read (10 suppliers each). IndiaMART shows at most 2 pages.",
            "default": 2
          },
          "includeProducts": {
            "title": "Scrape product catalogs",
            "type": "boolean",
            "description": "One row per product: price, currency, unit, minimum order, specifications, description, delivery time, production capacity, payment terms, packaging, images, brochure, video and category. Turn off for a quick supplier directory (one row per supplier).",
            "default": true
          },
          "maxProductsPerSupplier": {
            "title": "Max products per supplier",
            "minimum": 0,
            "type": "integer",
            "description": "0 = every product IndiaMART shows publicly. IndiaMART displays at most 40 products per category in a storefront, so very large catalogs are partly hidden - each supplier row reports this as catalogCoverage.",
            "default": 0
          },
          "includeProductDetails": {
            "title": "Add product details",
            "type": "boolean",
            "description": "Adds the long description, product category/group, all category names and last-updated date to each product. One extra request per product, so it is slower and billed as an add-on.",
            "default": false
          },
          "includeReviews": {
            "title": "Scrape reviews",
            "type": "boolean",
            "description": "One row per buyer review: stars, comment, date, reviewed product, what the buyer liked (quality / response / delivery), buyer country and the supplier's reply.",
            "default": true
          },
          "maxReviewsPerSupplier": {
            "title": "Max reviews per supplier",
            "minimum": 0,
            "type": "integer",
            "description": "Newest first. 0 = all reviews.",
            "default": 100
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 1,
            "type": "integer",
            "description": "Stop after this many dataset rows in total (suppliers + products + reviews). Leave empty for no limit."
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 30,
            "type": "integer",
            "description": "Parallel requests. The default is fast and reliable.",
            "default": 12
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Residential proxies in India are recommended - IndiaMART often blocks datacenter IPs. If you pick another pool, the scraper switches to residential automatically when it gets blocked. If your Apify plan has no residential proxies, the scraper uses datacenter IPs instead (slower).",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "IN"
            }
          },
          "_noResidential": {
            "title": "Run as an account without residential proxies",
            "type": "boolean",
            "description": "Internal (canaries): behave exactly like an account without the RESIDENTIAL proxy group.",
            "default": false
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}