{
  "openapi": "3.0.1",
  "info": {
    "title": "IndiaMart Supplier Scraper: Products, Phones, GST & Reviews",
    "description": "Scrape IndiaMart suppliers, manufacturers and exporters: company name, phone, city, GST and CIN numbers, HSN codes, named contact person, MOQ, prices, ratings and reviews. India's largest B2B marketplace. For procurement, sourcing, supplier verification and B2B lead generation.",
    "version": "0.0",
    "x-build-id": "NS5loJBAqGeES2wJc"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/sourabhbgp~indiamart-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-sourabhbgp-indiamart-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/sourabhbgp~indiamart-scraper/runs": {
      "post": {
        "operationId": "runs-sync-sourabhbgp-indiamart-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/sourabhbgp~indiamart-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-sourabhbgp-indiamart-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "search",
              "supplierProfile",
              "reviews"
            ],
            "type": "string",
            "description": "What to scrape: keyword search results, full company profiles, or supplier reviews.",
            "default": "search"
          },
          "searchQueries": {
            "title": "Search Queries",
            "type": "array",
            "description": "Keywords to search on IndiaMart (e.g. \"led light\", \"industrial pump\"). One row per matching product. Used only when mode = search.",
            "items": {
              "type": "string"
            }
          },
          "cities": {
            "title": "Cities (optional)",
            "type": "array",
            "description": "Optional city names to filter search (for example mumbai, delhi). Leave empty for nationwide. A city IndiaMart does not list for that category returns no rows and is reported, never silently widened. Used only when mode = search.",
            "items": {
              "type": "string"
            }
          },
          "category": {
            "title": "Fallback Category (optional)",
            "enum": [
              "",
              "industrial-machinery",
              "building-construction",
              "electronics-electrical",
              "chemicals-dyes",
              "medical-pharma",
              "agriculture-food",
              "automotive-parts",
              "apparel-textiles",
              "metals-alloys",
              "packaging-supplies",
              "office-supplies",
              "safety-gear",
              "home-supplies",
              "gifts-crafts",
              "services-it"
            ],
            "type": "string",
            "description": "Optional fallback, used only if a search keyword matches no IndiaMart category. Most of these broad labels are not real IndiaMart categories: IndiaMart has no generic tiers, only narrow ones such as led-lights or cnc-machines. A value that is not a real category is reported and ignored, never swapped for a different one. Pass a real category slug here instead, or leave it empty. Used only when mode = search.",
            "default": ""
          },
          "minPrice": {
            "title": "Minimum Price (INR)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Filter out products below this price (in INR)."
          },
          "maxPrice": {
            "title": "Maximum Price (INR)",
            "minimum": 0,
            "type": "integer",
            "description": "Optional. Filter out products above this price (in INR)."
          },
          "verifiedExporterOnly": {
            "title": "Verified Exporters Only",
            "type": "boolean",
            "description": "Optional. Return only suppliers IndiaMart has marked as verified exporters.",
            "default": false
          },
          "minRating": {
            "title": "Minimum Rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Optional. Return only suppliers with a star rating at or above this value, from 0 to 5."
          },
          "supplierUrls": {
            "title": "Supplier Profile URLs",
            "type": "array",
            "description": "IndiaMart company URLs, for example https://www.indiamart.com/company-name/. One row per company. Used only when mode = supplierProfile.",
            "items": {
              "type": "string"
            }
          },
          "productUrls": {
            "title": "Company or Product URLs",
            "type": "array",
            "description": "IndiaMart company URLs (https://www.indiamart.com/company-name/) or product detail URLs. A product URL is resolved to its supplier automatically. Used only when mode = reviews.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Max Results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum total rows across all queries and inputs. Set 0 for unlimited. IndiaMart caps each category slice at about 56 products, so a single keyword returns a few hundred rows rather than thousands.",
            "default": 100
          },
          "maxConcurrency": {
            "title": "Max Concurrency",
            "minimum": 1,
            "maximum": 15,
            "type": "integer",
            "description": "How many parallel requests to run. Default 8 is balanced; higher = faster but more proxy cost; cap is 15.",
            "default": 8
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Proxy settings. By default the Actor uses Indian residential proxies, which IndiaMart requires to serve Indian results, and you do not need to change anything. If you set a specific proxy group, country or your own proxy URLs, those are used first, and the Actor default is kept as a fallback. A country other than IN returns poorer results because IndiaMart shows a different site outside India."
          },
          "businessTypes": {
            "title": "Business Types (optional)",
            "type": "array",
            "description": "Optional. Restrict search results to these supplier types. Leave empty for all. Used only when mode = search.",
            "items": {
              "type": "string",
              "enum": [
                "manufacturer",
                "exporter",
                "wholesaler",
                "retailer",
                "service-provider"
              ],
              "enumTitles": [
                "Manufacturer",
                "Exporter",
                "Wholesaler",
                "Retailer",
                "Service Provider"
              ]
            }
          },
          "includeMoreProducts": {
            "title": "Include More Products Per Supplier",
            "type": "boolean",
            "description": "Also return each supplier's other matching products, roughly 3x more rows. Each extra product is billed as a result. Used only when mode = search.",
            "default": false
          },
          "gstEnrichAll": {
            "title": "Look Up GST Number For Every Supplier",
            "type": "boolean",
            "description": "The full GST number is filled for the top suppliers of each keyword by default. Turn this on to look it up for every supplier returned. Slower, as it adds one request per supplier. Supplier profile mode always includes it.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}