{
  "openapi": "3.0.1",
  "info": {
    "title": "IndiaMART Scraper — Supplier Leads, Prices, GST & Market Size",
    "description": "Scrape IndiaMART suppliers and products by keyword, category, city and business type — thousands per category, well past the usual top-results limit. Prices, MOQ, GST/TrustSEAL, ratings, seller contact number, plus market-size totals per city. No login.",
    "version": "0.1",
    "x-build-id": "O7goMLtyJXp0dxGYW"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/yugenox~indiamart-supplier-leads-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-yugenox-indiamart-supplier-leads-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-leads-scraper/runs": {
      "post": {
        "operationId": "runs-sync-yugenox-indiamart-supplier-leads-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-leads-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-yugenox-indiamart-supplier-leads-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": {
          "keywords": {
            "title": "🔎 Product keywords",
            "type": "array",
            "description": "What you are sourcing, e.g. \"cotton yarn\", \"stainless steel pipe\", \"n95 mask\". Each keyword is matched to its IndiaMART product categories, which are then scraped city by city and by business type.",
            "items": {
              "type": "string"
            }
          },
          "categoryUrls": {
            "title": "🔗 Category URLs",
            "type": "array",
            "description": "IndiaMART category pages to scrape directly, e.g. https://dir.indiamart.com/impcat/cotton-yarn.html, a city page like https://dir.indiamart.com/tiruppur/cotton-yarn.html, or just the slug cotton-yarn. A ?biz=10 filter in the URL is respected.",
            "items": {
              "type": "string"
            }
          },
          "cities": {
            "title": "🏙️ Cities",
            "type": "array",
            "description": "Only these cities (e.g. Mumbai, Ahmedabad, Tiruppur). Leave empty to cover the busiest supplier cities of each category automatically (see the next setting).",
            "items": {
              "type": "string"
            }
          },
          "maxCitiesPerCategory": {
            "title": "Cities per category (automatic)",
            "minimum": 0,
            "maximum": 50,
            "type": "integer",
            "description": "When no cities are given: how many of each category's top supplier cities to cover, ranked by number of suppliers (max 50). Each city adds up to 28 products, more with the business-type split. 0 = nationwide listings only.",
            "default": 20
          },
          "businessTypes": {
            "title": "🏭 Business types",
            "type": "array",
            "description": "Only suppliers of these types. Leave empty for all types — the scraper then also uses the type split to reach deeper into large categories.",
            "items": {
              "type": "string",
              "enum": [
                "manufacturer",
                "exporter",
                "wholesaler",
                "retailer",
                "serviceProvider"
              ],
              "enumTitles": [
                "Manufacturer",
                "Exporter",
                "Wholesaler / Distributor",
                "Retailer",
                "Service Provider & Others"
              ]
            }
          },
          "maxCategoriesPerKeyword": {
            "title": "Categories per keyword",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "A keyword usually matches several IndiaMART categories (\"stainless steel pipe\" → Stainless Steel Pipes, 347 Stainless Steel Pipe, SS Round Pipe…). How many of the best matches to scrape.",
            "default": 3
          },
          "maxItems": {
            "title": "🔢 Max products",
            "minimum": 0,
            "type": "integer",
            "description": "Stop after this many unique products (all keywords together). 0 = no limit. Market-summary rows are extra.",
            "default": 1000
          },
          "includeMarketSummary": {
            "title": "📊 Market summary row per keyword",
            "type": "boolean",
            "description": "Adds one row per keyword/URL with market size: total products listed nationwide and per city, supplier counts in the top 50 cities, counts by business type, search demand for the keyword and its variants, price ranges and statistics.",
            "default": true
          },
          "includeKeywordResults": {
            "title": "Include IndiaMART's own top search results",
            "type": "boolean",
            "description": "Also save the top 10 products IndiaMART shows for the keyword itself (these can come from several categories).",
            "default": true
          },
          "includeExportSearch": {
            "title": "Include export-oriented suppliers",
            "type": "boolean",
            "description": "Also scan IndiaMART's export marketplace for the keyword (about 60–70 extra products per keyword, sellers with an import-export code flagged).",
            "default": false
          },
          "includeCompanyProfile": {
            "title": "🏢 Company profile (extra cost)",
            "type": "boolean",
            "description": "Adds each seller's fact sheet: legal status, GST turnover band, GST registration year, nature of business, employee count, annual turnover, CIN. One extra page per unique seller, billed as a separate event.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 12,
            "type": "integer",
            "description": "Parallel requests. The default is fast and gentle.",
            "default": 6
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Apify Proxy is required. The automatic (datacenter) pool works; if too many of its IPs are refused, the scraper switches to residential India IPs by itself.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}