{
  "openapi": "3.0.1",
  "info": {
    "title": "Flipkart Product Scraper",
    "description": "Scrape Flipkart product details and search results — price, MRP, discount, rating, specs, seller, offers, stock. URL or keyword in, structured JSON out. MCP-ready.",
    "version": "0.1",
    "x-build-id": "kUWXPybMf1510A8uS"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~flipkart-product-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-flipkart-product-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/khadinakbar~flipkart-product-scraper/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-flipkart-product-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/khadinakbar~flipkart-product-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-flipkart-product-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": {
          "search": {
            "title": "Search keyword",
            "type": "string",
            "description": "Free-text keyword searched on Flipkart, exactly as you would type it in the Flipkart search bar (e.g. 'iphone 15' or 'running shoes men'). Returns matching products from the search results, auto-paginating until 'Max products' is reached. Leave empty if you only want to scrape specific product URLs. NOT a product URL — put links in 'Product URLs' instead."
          },
          "productUrls": {
            "title": "Product URLs",
            "type": "array",
            "description": "Direct Flipkart product page links to scrape in full detail (each must contain '/p/' — e.g. 'https://www.flipkart.com/apple-iphone-15/p/itm6ac6485515ae4'). Use this for exact products you already know. Can be combined with 'Search'. NOT search/category/listing URLs — those are ignored; use the 'Search' field for keyword discovery.",
            "items": {
              "type": "string"
            }
          },
          "maxProducts": {
            "title": "Max products",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Maximum number of products to scrape and bill in this run, across search results and/or product URLs (e.g. 20). Caps cost: each product is charged once. Defaults to 20. When you pass more 'Product URLs' than this, the cap is automatically raised so all your URLs are scraped.",
            "default": 20
          },
          "enrichProductDetails": {
            "title": "Scrape full product details (search mode)",
            "type": "boolean",
            "description": "When ON (default), each product found via 'Search' is opened and scraped in full (specs, offers, seller, highlights, stock, rating). When OFF, search returns only the lightweight listing card (title, price, MRP, thumbnail, URL) — faster and cheaper but fewer fields. Has no effect on 'Product URLs', which are always scraped in full. Turn OFF for quick price-list scans.",
            "default": true
          },
          "sortBy": {
            "title": "Sort search results by",
            "enum": [
              "relevance",
              "price_asc",
              "price_desc",
              "newest",
              "popularity"
            ],
            "type": "string",
            "description": "Sort order applied to 'Search' results before scraping (e.g. 'price_asc' for cheapest first). One of: relevance, price_asc, price_desc, newest, popularity. Defaults to 'relevance' (Flipkart's default ranking). Ignored for 'Product URLs'.",
            "default": "relevance"
          },
          "minPrice": {
            "title": "Minimum price (₹)",
            "minimum": 0,
            "type": "integer",
            "description": "Lower bound of the Flipkart price-range filter for 'Search', in Indian Rupees (e.g. 10000). Flipkart may round the range to its own buckets. Leave empty for no lower bound. Ignored for 'Product URLs'."
          },
          "maxPrice": {
            "title": "Maximum price (₹)",
            "minimum": 0,
            "type": "integer",
            "description": "Upper bound of the Flipkart price-range filter for 'Search', in Indian Rupees (e.g. 50000). Flipkart may round the range to its own buckets. Leave empty for no upper bound. Ignored for 'Product URLs'."
          },
          "maxSearchPages": {
            "title": "Max search pages",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Safety cap on how many Flipkart search result pages to paginate through (~24 products per page). Defaults to 10. Lower it to bound runtime on very broad queries; the 'Max products' cap usually stops the run first.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy used for requests. Flipkart blocks datacenter IPs with reCAPTCHA, so a RESIDENTIAL proxy with country 'IN' (India) is strongly recommended and is the default. Override only if you know your proxy clears Flipkart. Apify Proxy residential is required for reliable results.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "IN"
            }
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}