{
  "openapi": "3.0.1",
  "info": {
    "title": "Flipkart Scraper - Products, Prices, Specs & Reviews",
    "description": "Scrape Flipkart by keyword, category or URL: selling price, MRP, discount, best bank-offer price, rating histogram, full specifications, variants, images, stock, warranty, reviews and seller leads. Filter and monitor price drops and restocks. Independent tool, not affiliated with Flipkart.",
    "version": "1.0",
    "x-build-id": "ModEdx9pxj7wSAuO7"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapesage~flipkart-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapesage-flipkart-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/scrapesage~flipkart-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapesage-flipkart-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/scrapesage~flipkart-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapesage-flipkart-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": {
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Keywords to search on Flipkart, e.g. <code>wireless earbuds</code>, <code>iphone 15</code>, <code>running shoes</code>. Each term is scraped as its own search. A keyword Flipkart does not recognise returns nothing (Flipkart shows unrelated suggestions for those; they are not returned or billed).",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Flipkart URLs: search pages (<code>/search?q=...</code>), category/listing pages (<code>/mobiles/pr?sid=tyy,4io</code>), product pages (<code>/.../p/itm...?pid=...</code>) or review pages (<code>/.../product-reviews/itm...?pid=...</code> — these also return that product's reviews). Add them one by one, upload a text file, or link a remote file (one URL per line). Used in addition to search terms.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "urlsFromFile": {
            "title": "Import URLs from a file",
            "type": "string",
            "description": "Paste a list of Flipkart URLs (one per line), or a single link to a .txt / .csv file or a Google Sheet that contains them. Blank lines, # comments, extra CSV columns and duplicates are ignored. Added to Start URLs."
          },
          "productIds": {
            "title": "Product IDs (PID)",
            "type": "array",
            "description": "Flipkart product IDs (the <code>pid</code> from a product URL, e.g. <code>MOBGTAGPK8EHGSXG</code> or <code>ACCHG3VX9UFMSHX5</code>) or full product URLs. Each is fetched as a full product-detail record, before any keyword search.",
            "items": {
              "type": "string"
            }
          },
          "sort": {
            "title": "Sort order",
            "enum": [
              "relevance",
              "popularity",
              "price_asc",
              "price_desc",
              "recency_desc"
            ],
            "type": "string",
            "description": "Result ordering for keyword searches.",
            "default": "relevance"
          },
          "minPrice": {
            "title": "Min price (₹)",
            "minimum": 0,
            "type": "integer",
            "description": "Only products with a selling price at or above this value (Indian Rupees). Applied with Flipkart's own price filter and re-checked on every row: a product outside the range is never returned or billed."
          },
          "maxPrice": {
            "title": "Max price (₹)",
            "minimum": 0,
            "type": "integer",
            "description": "Only products with a selling price at or below this value (Indian Rupees). Applied with Flipkart's own price filter and re-checked on every row: a product outside the range is never returned or billed."
          },
          "fourStarPlus": {
            "title": "4★ & above only",
            "type": "boolean",
            "description": "Only products rated 4.0 stars or higher (Flipkart's own rating filter, re-checked on every row).",
            "default": false
          },
          "maxProducts": {
            "title": "Max products",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Maximum number of products to scrape across all searches, URLs and product IDs. Several searches share it evenly.",
            "default": 100
          },
          "maxPagesPerSearch": {
            "title": "Max pages per search",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many result pages to read per keyword or listing. A page usually holds 24 to 40 products, but at busy times Flipkart shows only 10, so raise this for very large runs. Reading stops as soon as maxProducts is reached.",
            "default": 25
          },
          "includeProductDetails": {
            "title": "Include full product details",
            "type": "boolean",
            "description": "Open each product page to add the full specification tables, description, best price with bank offers, the offer list, seller (rating, years on Flipkart, quality and speed scores), warranty, return policy, country of origin, manufacturer/importer, all variants (colour, size, storage) and the full image gallery. Turn off for a faster, cheaper search-only run (search results already include price, MRP, discount, rating with the 1–5★ histogram, stock and images).",
            "default": true
          },
          "includeReviews": {
            "title": "Include buyer reviews",
            "type": "boolean",
            "description": "Scrape buyer reviews for every product (rating, title, text, author, certified-buyer flag, location, date, helpful and unhelpful votes, photos, the variant reviewed and a link to the review).",
            "default": false
          },
          "maxReviewsPerProduct": {
            "title": "Max reviews per product",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Cap on the number of reviews scraped per product when reviews are enabled.",
            "default": 20
          },
          "reviewsSort": {
            "title": "Review order",
            "enum": [
              "MOST_HELPFUL",
              "MOST_RECENT",
              "POSITIVE_FIRST",
              "NEGATIVE_FIRST"
            ],
            "type": "string",
            "description": "Which reviews come first (and so which ones fill Max reviews per product).",
            "default": "MOST_HELPFUL"
          },
          "outputSellerLeads": {
            "title": "Emit seller lead records",
            "type": "boolean",
            "description": "In addition to products, push one deduplicated lead record per seller (type = \"seller\") with name, rating, years on Flipkart, products sold, quality and speed scores, the seller's own description (with address, PIN code, GSTIN or CIN when the seller publishes them), the brands and categories seen, and a 0–100 lead score. Opens product pages.",
            "default": false
          },
          "deduplicateProducts": {
            "title": "Deduplicate products",
            "type": "boolean",
            "description": "Skip a product (and its reviews) if it was already returned in this run.",
            "default": true
          },
          "monitorMode": {
            "title": "Monitor mode (only new & changed)",
            "type": "boolean",
            "description": "Remember products across runs in a named key-value store and only return NEW products or ones whose price / stock changed, tagged with a changeType (new, price_drop, price_rise, restocked, out_of_stock) and the previous price. Max products is the size of the watch list: the top results of your searches (or every URL / ID you give) are checked on every run. Unchanged products are not returned or billed. Ideal with Apify Schedules for price tracking.",
            "default": false
          },
          "monitorKey": {
            "title": "Monitor key",
            "type": "string",
            "description": "Name for this monitor's memory (use distinct keys for distinct watch lists). Stored as key-value store <code>flipkart-monitor-&lt;key&gt;</code>.",
            "default": "default"
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Maximum parallel product-page requests. 3–5 gives the best reliability.",
            "default": 4
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Leave on the default (Automatic): the actor starts on Apify datacenter proxies and switches by itself to Indian residential proxies whenever Flipkart refuses them. You pay only per result either way. Choose Residential to use it from the first request.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}