{
  "openapi": "3.0.1",
  "info": {
    "title": "Flipkart Products Scraper — No Login Required",
    "description": "Extract product listings from Flipkart search, category, and product pages. No login or cookies needed. Supports search queries, category URLs, product URLs, filters, optional detail and review enrichment, image URL resolution, Smart Scrape, and diagnostics.",
    "version": "0.1",
    "x-build-id": "kcedBcy0u9iWwkYFV"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crowdpull~flipkart-products-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crowdpull-flipkart-products-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/crowdpull~flipkart-products-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crowdpull-flipkart-products-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/crowdpull~flipkart-products-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crowdpull-flipkart-products-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": {
          "searchQueries": {
            "title": "Search Queries",
            "type": "array",
            "description": "Plain-text Flipkart search terms. Each query is issued as https://www.flipkart.com/search?q=...",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Flipkart Search or Category URLs",
            "type": "array",
            "description": "Optional Flipkart search, category, browse, or product URLs. Existing URL filters are preserved where possible.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL",
                  "description": "Flipkart search, category, browse, or product detail URL."
                }
              }
            }
          },
          "productUrls": {
            "title": "Product URLs",
            "type": "array",
            "description": "Direct Flipkart product URLs in the /p/itm... form. These are fetched as detail targets.",
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort By",
            "enum": [
              "relevance",
              "popularity",
              "price_asc",
              "price_desc",
              "recency_desc"
            ],
            "type": "string",
            "description": "Flipkart search sort order. Relevance leaves the sort parameter unset.",
            "default": "relevance"
          },
          "minPrice": {
            "title": "Minimum Price INR",
            "minimum": 0,
            "type": "integer",
            "description": "Only emit products with selling price at or above this value."
          },
          "maxPrice": {
            "title": "Maximum Price INR",
            "minimum": 0,
            "type": "integer",
            "description": "Only emit products with selling price at or below this value."
          },
          "minRating": {
            "title": "Minimum Rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Only emit products with an average rating at or above this value."
          },
          "organicOnly": {
            "title": "Organic Results Only",
            "type": "boolean",
            "description": "Skip sponsored/ad placements when Flipkart marks ad metadata in the search payload.",
            "default": false
          },
          "maxItemsPerInput": {
            "title": "Max Items Per Input",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum product rows to emit per search query, search/category URL, or direct product URL group.",
            "default": 50
          },
          "maxPagesPerInput": {
            "title": "Max Pages Per Search",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum Flipkart result pages to fetch for each search or category target.",
            "default": 3
          },
          "includeDetails": {
            "title": "Include Product Details",
            "type": "boolean",
            "description": "Fetch product detail pages to add best-effort full specifications, description, seller, warranty, and offer fields. Search-card mode is faster and cheaper.",
            "default": false
          },
          "includeReviews": {
            "title": "Include Review Samples",
            "type": "boolean",
            "description": "Fetch Flipkart product-review pages and attach bounded review samples with reviewer, rating, title, text, certified-buyer flag, helpful count, media, and rating histogram where available.",
            "default": false
          },
          "maxReviewsPerProduct": {
            "title": "Max Reviews Per Product",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum review records to attach to each product when Include Review Samples is enabled.",
            "default": 5
          },
          "maxReviewPagesPerProduct": {
            "title": "Max Review Pages Per Product",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Maximum Flipkart review pages to fetch per product. Review pages usually contain about 10 reviews.",
            "default": 1
          },
          "reviewSortBy": {
            "title": "Review Sort By",
            "enum": [
              "MOST_HELPFUL",
              "MOST_RECENT",
              "POSITIVE_FIRST",
              "NEGATIVE_FIRST"
            ],
            "type": "string",
            "description": "Sort order for review page requests when Include Review Samples is enabled.",
            "default": "MOST_HELPFUL"
          },
          "includeSellers": {
            "title": "Include Seller Comparison",
            "type": "boolean",
            "description": "Fetch Flipkart's sellers comparison page for each product and attach seller offer records when Flipkart exposes them in server-rendered state. Rows report no_data when the sellers page has no SSR seller records.",
            "default": false
          },
          "maxSellersPerProduct": {
            "title": "Max Sellers Per Product",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "Maximum seller offer records to attach to each product when Include Seller Comparison is enabled.",
            "default": 5
          },
          "resolveImageUrls": {
            "title": "Resolve Image URLs",
            "type": "boolean",
            "description": "Replace Flipkart CDN placeholders such as {@width}, {@height}, and {@quality} with concrete image dimensions.",
            "default": true
          },
          "onlyNew": {
            "title": "Smart Scrape Only New or Changed",
            "type": "boolean",
            "description": "Emit only products that are new or materially changed since the last run with the same cacheName.",
            "default": false
          },
          "cacheName": {
            "title": "Smart Scrape Cache Name",
            "type": "string",
            "description": "Named key-value store used by onlyNew mode. Keep this stable for scheduled monitoring.",
            "default": "flipkart-products-scraper-cache"
          },
          "maxConcurrency": {
            "title": "Max Detail Concurrency",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Upper bound on concurrent product detail fetches when includeDetails is enabled.",
            "default": 4
          },
          "requestDelayMs": {
            "title": "Delay Between Pages",
            "minimum": 0,
            "maximum": 60000,
            "type": "integer",
            "description": "Base delay between search/category page requests in milliseconds.",
            "default": 750
          },
          "requestTimeoutMs": {
            "title": "Request Timeout Ms",
            "minimum": 5000,
            "maximum": 45000,
            "type": "integer",
            "description": "Maximum time to wait for each Flipkart HTML request before retrying or recording a failed optional enrichment.",
            "default": 20000
          },
          "maxRequestRetries": {
            "title": "Max Request Retries",
            "minimum": 1,
            "maximum": 8,
            "type": "integer",
            "description": "Retry blocked, empty, or malformed pages with a fresh proxy session.",
            "default": 3
          },
          "saveDebugHtml": {
            "title": "Save Debug HTML",
            "type": "boolean",
            "description": "Save failed or blocked HTML responses into the default key-value store.",
            "default": false
          },
          "proxyConfig": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Residential proxies are strongly recommended for Flipkart. Leave country unset first; add country IN only if your hosted smoke proves it improves availability.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}