{
  "openapi": "3.0.1",
  "info": {
    "title": "IndiaMART Scraper: B2B Products, Prices, Suppliers",
    "description": "Scrape IndiaMART, no login: keywords, search, category, product or supplier links, read city by city through IndiaMART's own filters. Price and unit, MOQ, specs, GSTIN, TrustSEAL, rating, response rate, call number, lead score; add company profiles, reviews. JSON, CSV, Excel, API; pay per product.",
    "version": "0.1",
    "x-build-id": "7lMoIrhxCdzcv9ZMt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automation_craft~indiamart-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automation_craft-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/automation_craft~indiamart-scraper/runs": {
      "post": {
        "operationId": "runs-sync-automation_craft-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/automation_craft~indiamart-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-automation_craft-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",
        "properties": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Words to search on IndiaMART, one search per entry (ms pipe, led bulb, cotton fabric, solar panel). Each search delivers up to Max products per keyword. When IndiaMART does not find the words as typed and shows results for a respelling, that search delivers nothing and is not charged; a free status row names the respelling.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "IndiaMART links",
            "type": "array",
            "description": "Links copied from IndiaMART: a search page (https://dir.indiamart.com/search.mp?ss=ms+pipe, with its city cq=, business type biz= and price range kept unless you set your own below), a category page (https://dir.indiamart.com/impcat/ms-pipe.html) or the same category in one city (https://dir.indiamart.com/mumbai/ms-pipe.html), a product page (https://www.indiamart.com/proddetail/...-12345678.html, delivered with its full page) or a supplier catalogue (https://www.indiamart.com/<supplier>/, delivered as one supplier row with its company profile). You can also link a .txt or .csv file or a Google Sheet that lists such links.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "categories": {
            "title": "IndiaMART categories",
            "type": "array",
            "description": "IndiaMART category names as its category links write them: the part before .html in https://dir.indiamart.com/impcat/ms-pipe.html, so ms-pipe, led-bulb, cotton-fabric. Each is read from IndiaMART's category page, all India, then city by city in deep mode. Category rows carry the GST registration as a yes or no, not the GST number (turn on Supplier profile for it).",
            "items": {
              "type": "string"
            }
          },
          "industry": {
            "title": "Industry group",
            "enum": [
              "all",
              "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: words of an industry group put in front of every keyword (Industrial machinery with the keyword textile searches \"industrial machinery textile\"); with no keyword, the words alone are searched. IndiaMART has no such top level groups of its own, so this narrows the search by words, not by an IndiaMART filter.",
            "default": "all"
          },
          "cities": {
            "title": "Cities",
            "type": "array",
            "description": "Only suppliers in these cities (Mumbai, Delhi, Ahmedabad, Surat). Each city is searched with IndiaMART's own exact city filter and checked on every row; IndiaMART's spellings are matched as the same city (Delhi and New Delhi, Gurgaon and Gurugram, Bombay and Mumbai). A city where IndiaMART lists no supplier of the keyword gets a free note in the coverage row.",
            "items": {
              "type": "string"
            }
          },
          "states": {
            "title": "States",
            "type": "array",
            "description": "Only suppliers in these Indian states or union territories, as IndiaMART writes them (Maharashtra, Gujarat, Tamil Nadu, Delhi). The search goes city by city through the cities of these states. Checked on every row.",
            "items": {
              "type": "string"
            }
          },
          "businessTypes": {
            "title": "Business types",
            "type": "array",
            "description": "Only suppliers of these business types. Manufacturer, exporter, wholesaler and retailer use IndiaMART's own business type filter; exporter means IndiaMART's verified exporters; service provider is checked on the row. Several values match any of them. Category page rows carry only the verified exporter mark, so a type other than exporter beside category pages or includeCategoryPages refuses the run, free.",
            "items": {
              "type": "string",
              "enum": [
                "manufacturer",
                "exporter",
                "wholesaler",
                "retailer",
                "service_provider"
              ],
              "enumTitles": [
                "Manufacturer",
                "Exporter (verified exporters)",
                "Wholesaler",
                "Retailer",
                "Service provider"
              ]
            }
          },
          "membershipNames": {
            "title": "IndiaMART customer types",
            "type": "array",
            "description": "Only suppliers whose IndiaMART customer type (its own package name, the membershipName column) is one of these: LEADER, STAR, TSCATALOG, CATALOG and the others the README lists. The same supplier can carry different types in different searches, since IndiaMART sets it per listing.",
            "items": {
              "type": "string"
            }
          },
          "exportCountries": {
            "title": "Export countries",
            "type": "array",
            "description": "Only suppliers whose IndiaMART company page or product page names one of these export countries (United States Of America, United Arab Emirates, United Kingdom), as IndiaMART writes them. Needs Supplier profile or Product details on (those add-ons read the pages that name them). Only suppliers IndiaMART marks as verified exporters or IEC holders are read for it; the pages read for suppliers that do not pass are free to you.",
            "items": {
              "type": "string"
            }
          },
          "minPrice": {
            "title": "Minimum price (rupees)",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "number",
            "description": "Only products at this price or above, in rupees, in the unit IndiaMART shows for the product (per piece, per kg, per meter). A product without a price does not pass."
          },
          "maxPrice": {
            "title": "Maximum price (rupees)",
            "minimum": 0,
            "maximum": 1000000000,
            "type": "number",
            "description": "Only products at this price or below, in rupees, in the unit IndiaMART shows for the product. A product without a price does not pass."
          },
          "onlyWithPrice": {
            "title": "Only products with a price",
            "type": "boolean",
            "description": "Leave out products that show no price (\"Ask for price\")."
          },
          "minRating": {
            "title": "Minimum supplier rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Only suppliers rated at least this many stars on IndiaMART (0 to 5, for example 4 or 4.3). A supplier without a rating does not pass."
          },
          "minResponseRate": {
            "title": "Minimum response rate (percent)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only suppliers whose response rate on IndiaMART is at least this percent (0 to 100)."
          },
          "minYearsOnIndiaMart": {
            "title": "Minimum years on IndiaMART",
            "minimum": 0,
            "maximum": 40,
            "type": "integer",
            "description": "Only suppliers who have been members of IndiaMART for at least this many years."
          },
          "gstVerifiedOnly": {
            "title": "GST verified suppliers only",
            "type": "boolean",
            "description": "Only suppliers whose GST registration IndiaMART marks as verified."
          },
          "verifiedExporterOnly": {
            "title": "Verified exporters only",
            "type": "boolean",
            "description": "Only suppliers IndiaMART marks as verified exporters."
          },
          "trustSealOnly": {
            "title": "TrustSEAL suppliers only",
            "type": "boolean",
            "description": "Only suppliers with IndiaMART's TrustSEAL (the trustSeal column)."
          },
          "withPhoneOnly": {
            "title": "Only rows with a call number",
            "type": "boolean",
            "description": "Only rows that carry IndiaMART's call number for the supplier."
          },
          "minLeadScore": {
            "title": "Minimum lead score",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only rows whose lead score is at least this (0 to 100). The lead score adds up what IndiaMART shows on the row: GST verified, years on IndiaMART, rating, response rate, verified exporter, price, specifications, minimum order and photo (the README lists the points)."
          },
          "requireKeywordInTitle": {
            "title": "Keyword in the product title",
            "type": "boolean",
            "description": "Only products whose title holds every word of the keyword (a plural s is ignored). Every row says whether it does (keywordInTitle), so you can also filter afterwards. Keywords and search links only: beside product links, supplier links or category pages the run is refused, free."
          },
          "requireAllWords": {
            "title": "Rows matching every word",
            "type": "boolean",
            "description": "Only search rows on which IndiaMART matched every word of the keyword (its own word match, the matchesAllWords column). Rows on which IndiaMART matched none of the words are never delivered. Keywords and search links only: beside product links, supplier links, category pages or includeCategoryPages the run is refused, free."
          },
          "searchMode": {
            "title": "Search depth",
            "enum": [
              "deep",
              "first_page"
            ],
            "type": "string",
            "description": "Deep reads IndiaMART's first answer and then one answer per business type, per price band, per city (IndiaMART's own city list for the keyword first) and per city and business type, until Max products per keyword or Max answers per keyword is reached. IndiaMART allows about one search answer every 6 seconds per address, so a deep keyword of 1,000 products takes about 5 to 8 minutes.",
            "default": "deep"
          },
          "includeCategoryPages": {
            "title": "Also read category pages",
            "type": "boolean",
            "description": "After the search, also read IndiaMART's category page of the keyword (its own category for the words), all India and then city by city. This adds suppliers the search does not show (up to about twice as many products per keyword in our tests). Category rows carry the GST registration as a yes or no, not the number."
          },
          "categoriesPerKeyword": {
            "title": "Categories per keyword",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "With Also read category pages on: how many of IndiaMART's categories for the keyword are read, its main category first, then the related categories IndiaMART lists for the words (1 to 20; 1 when left out). Rows from related categories say so (foundBy related_category_page) and often do not carry the keyword (see keywordInTitle)."
          },
          "maxItemsPerKeyword": {
            "title": "Max products per keyword",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "The most products one keyword, search link or category delivers (1 to 5,000; 100 when left out)."
          },
          "maxPagesPerKeyword": {
            "title": "Max answers per keyword",
            "minimum": 1,
            "maximum": 300,
            "type": "integer",
            "description": "The most IndiaMART answers (search answers and category pages) one keyword or category reads (1 to 300; 120 when left out)."
          },
          "maxItems": {
            "title": "Max products in all",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "The most products the whole run delivers (1 to 100,000). Left out, only the per keyword limit applies."
          },
          "includeMoreProducts": {
            "title": "Include more products of each supplier",
            "type": "boolean",
            "description": "IndiaMART shows up to three more products of each supplier under its first one; they are delivered as rows of their own (true when left out). Turn it off for one product per supplier per answer."
          },
          "oneRowPerSupplier": {
            "title": "One row per supplier",
            "type": "boolean",
            "description": "Deliver only the first product of each supplier in the run: a list of suppliers rather than products."
          },
          "includeSupplierProfile": {
            "title": "Supplier profile",
            "type": "boolean",
            "description": "Read each supplier's company page and its catalogue home page once and add its profile to the supplier's first row: HSN codes, nature of business, GST number and registration date, legal status, employees, annual turnover where shown, registered address, banker, IEC code, export countries and share where shown, payment and shipment modes, UDYAM and CIN where shown, and (with Personal data on) the CEO and contact person. Charged as one Supplier profile per supplier per run."
          },
          "includeProductDetails": {
            "title": "Product details",
            "type": "boolean",
            "description": "Read each delivered product's own page and add its full description, every image, every specification, the brand, video and brochure links, and the supplier block of that page (year of establishment, employees, turnover, legal status, export countries, delivery, quality and response scores). Charged as one Product detail per product."
          },
          "includeReviews": {
            "title": "Buyer reviews",
            "type": "boolean",
            "description": "Read each supplier's reviews page once: its star breakdown and response, quality and delivery scores go on the supplier's first row, and its first reviews (up to 20, IndiaMART's own first page) become review rows (rating, date, product, text, the buyer's name and city). A supplier IndiaMART shows no rating for has no reviews, and its page is not read. Charged per review row."
          },
          "maxReviewsPerSupplier": {
            "title": "Max reviews per supplier",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "The most reviews delivered per supplier (1 to 20; 20 when left out). IndiaMART shows the first 20 reviews of a supplier to a visitor."
          },
          "includePersonalData": {
            "title": "Personal data",
            "type": "boolean",
            "description": "Off by default. On, rows also carry the names of private persons that IndiaMART shows publicly on a supplier's pages: the CEO, the contact person, the promoter and the GST partner of a company page, and the contact's first name of a product page; off, those fields are empty. Texts (descriptions, review texts) are always delivered as IndiaMART serves them, and a review's author is always delivered. You are responsible for using personal data lawfully (GDPR and India's DPDP Act included).",
            "default": false
          },
          "monitorName": {
            "title": "Monitor name",
            "type": "string",
            "description": "Turns on a monitor that remembers between runs: products, supplier profiles and reviews delivered by an earlier run with this name are skipped and not charged again, so a scheduled run delivers only new ones. Use the same name in every scheduled run; the memory belongs to this Actor on your account."
          },
          "resetMonitor": {
            "title": "Reset the monitor",
            "type": "boolean",
            "description": "Forget everything the monitor remembers and start again (applied by a fresh run only)."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Leave it as it is: the Actor uses Apify datacenter proxy sessions for IndiaMART's search and category pages and Apify residential sessions in India for its www pages, and replaces a refused session by itself. Your own proxy links are used as given for every page.",
            "default": {
              "useApifyProxy": true
            }
          },
          "requestTimeoutSecs": {
            "title": "Request timeout (seconds)",
            "minimum": 5,
            "maximum": 60,
            "type": "integer",
            "description": "How long one request may take before it is asked again (5 to 60; 20 when left out)."
          },
          "maxRequestRetries": {
            "title": "Max retries",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "How many times one request is asked again after a failure (1 to 5; 3 when left out)."
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 3,
            "type": "integer",
            "description": "How many products have their add-on pages (supplier profile, product page, reviews) read at the same time (1 to 3; 3 when left out). IndiaMART's search answers are always read one at a time, at its own pace."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}