# Flipkart Scraper - Products, Prices, Specs & Reviews (`scrapesage/flipkart-scraper`) Actor

Scrape Flipkart by keyword, category or URL: live selling price, MRP, discount %, rating + star histogram, full specifications, variants, all images, stock status, buyer reviews & seller leads. Filter, monitor price drops & restocks. India e-commerce data.

- **URL**: https://apify.com/scrapesage/flipkart-scraper.md
- **Developed by:** [Scrape Sage](https://apify.com/scrapesage) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 product scrapeds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Flipkart Scraper — Products, Prices, Specs, Reviews & Seller Leads

Extract **complete Flipkart product data** from India's largest online marketplace — including the fields thin scrapers miss: **live selling price, MRP, exact discount %, rating with the full 1–5★ histogram, key specifications & highlights, every variant, all hi-res images, stock status, buyer reviews, and the seller behind the Buy Box**. Search by keyword, browse a category, or paste any Flipkart URL.

No login, no cookies, no browser — fast JSON extraction straight from Flipkart's own page data.

### Why this Flipkart scraper?

Most Flipkart scrapers return a title, a price, and little else. This actor reads Flipkart's internal page state and ships the **richest dataset in the category** — every search card already carries price, MRP, discount, rating breakdown and images, and product pages add full specs, variants, seller and reviews.

| Data | Typical scrapers | This actor |
|---|---|---|
| Selling price + MRP + discount % | partial | ✅ all three |
| Rating + 1–5★ histogram + rating/review counts | ❌ | ✅ |
| Key specifications & highlights | ❌ | ✅ opt-in |
| Variants / options (colour, storage…) | ❌ | ✅ opt-in |
| All product images (hi-res) | 1 image | ✅ full gallery |
| Stock / availability status | ❌ | ✅ |
| Category, sub-category & vertical | ❌ | ✅ |
| Buyer reviews (rating, text, certified buyer, location, photos, variant) | ❌ | ✅ opt-in |
| Seller name, rating, years on Flipkart + lead score | ❌ | ✅ opt-in |
| Price-drop / restock **monitoring** | ❌ | ✅ |

### Use cases

- **Price & discount monitoring** — track selling price, MRP and discount across thousands of SKUs; get alerted on price drops and restocks with **monitor mode** + [Schedules](https://docs.apify.com/platform/schedules).
- **Competitor & catalog intelligence** — map an entire category (mobiles, fashion, electronics, appliances) with specs, ratings and stock to benchmark assortment and pricing.
- **Dropshipping & reselling** — source winning products with real ratings, review counts and seller data; compare against [AliExpress](https://apify.com/scrapesage/aliexpress-scraper), [Amazon](https://apify.com/scrapesage/amazon-scraper) and [Banggood](https://apify.com/scrapesage/banggood-scraper).
- **Review & sentiment analysis** — pull buyer reviews with certified-buyer flags, ratings, locations and the exact variant reviewed.
- **Seller lead generation** — turn the sellers behind listings into scored B2B leads (name, rating, years on Flipkart, fulfilment).

### How to use

1. [Sign up for Apify](https://console.apify.com/sign-up) — the free plan is enough to try this actor.
2. Open the **Flipkart Scraper**, enter search terms (or paste Flipkart URLs / product IDs), and click **Start**.
3. Watch results stream into the dataset table.
4. **Export** as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the [Apify API](https://docs.apify.com/api/v2).

### Input

```json
{
    "searchTerms": ["wireless earbuds", "running shoes"],
    "sort": "popularity",
    "maxProducts": 200,
    "includeProductDetails": true,
    "includeReviews": true,
    "maxReviewsPerProduct": 20,
    "outputSellerLeads": true,
    "minPrice": 500,
    "fourStarPlus": true
}
```

- **searchTerms** — keywords; each is scraped as its own Flipkart search.
- **startUrls** — direct Flipkart URLs: search pages (`/search?q=...`), category/listing pages (`/mobiles/pr?...`), product pages (`/.../p/itm...?pid=...`), or review pages (`/.../product-reviews/itm...?pid=...`).
- **productIds** — Flipkart product IDs (the `pid` from a URL, e.g. `MOBGTAGPK8EHGSXG`); each is fetched as a full detail record.
- **sort** — `relevance`, `popularity`, `price_asc`, `price_desc`, or `recency_desc`.
- **minPrice / maxPrice / fourStarPlus** — filters (₹, rating).
- **includeProductDetails** *(default true)* — open each product page for key specifications & highlights, all images, variants, seller and Q\&A count. Turn off for a faster, cheaper search-only run.
- **includeReviews** *(default false)* — scrape buyer reviews per product.
- **maxReviewsPerProduct** *(default 20)* — review cap per product.
- **outputSellerLeads** *(default false)* — also emit one deduplicated, scored lead record per seller.
- **monitorMode / monitorKey** — remember products across runs and emit only NEW or price/stock-changed items (see below).
- **proxyConfiguration** *(default Apify Residential, country IN)* — Flipkart blocks datacenter IPs; Indian residential proxies are required.

### Output

One record per product (`type: "product"`), plus optional review records (`type: "review"`) and seller leads (`type: "seller"`):

```json
{
    "type": "product",
    "productId": "ACCHG3VX9UFMSHX5",
    "itemId": "itm15c0f2a0f8fa5",
    "title": "SOBEYS M10 Bluetooth Headset",
    "brand": "SOBEYS",
    "subtitle": "Black, True Wireless",
    "url": "https://www.flipkart.com/sobeys-m10-bluetooth/p/itm15c0f2a0f8fa5?pid=ACCHG3VX9UFMSHX5",
    "price": 298,
    "mrp": 1999,
    "discountPercent": 85,
    "currency": "INR",
    "inStock": true,
    "rating": 3.5,
    "ratingCount": 1684,
    "reviewCount": 142,
    "ratingHistogram": { "1": 395, "2": 168, "3": 152, "4": 134, "5": 835 },
    "category": "PersonalAudio",
    "vertical": "TrueWireless",
    "image": "https://rukmini1.flixcart.com/image/832/832/.../...jpeg?q=70",
    "imagesCount": 5,
    "highlights": ["6 GB RAM | 128 GB ROM", "108MP Rear Camera", "6.67 inch", "5000 mAh Battery"],
    "variants": ["Arctic White", "Stealth Black", "128 GB + 6 GB", "256 GB + 8 GB"],
    "sellerName": "AllonsOrganic",
    "sellerRating": 4.2,
    "sellerYearsOnFlipkart": 3,
    "searchTerm": "wireless earbuds",
    "scrapedAt": "2026-06-17T12:00:00.000Z"
}
```

### Monitor mode — track price drops & restocks

Turn on **monitorMode** and the actor remembers every product it has seen (in a named key-value store, `flipkart-monitor-<key>`) and on later runs emits **only new products or ones whose price or stock changed**, each tagged with a `changeType`:

- `new` — first time seen
- `price_drop` / `price_rise` — selling price changed
- `restocked` / `out_of_stock` — availability changed

This works **alongside** the Apify scheduler, not instead of it: pick how often to run with [Schedules](https://docs.apify.com/platform/schedules), and monitor mode keeps each run's output to just the changes — ideal for price-tracking pipelines and restock alerts.

### Automate & schedule

Run this actor on autopilot and pull results into your own stack:

- **[Apify API](https://docs.apify.com/api/v2)** — start runs, fetch datasets, and manage schedules over REST.
- **[apify-client for JavaScript](https://docs.apify.com/api/client/js/)** and **[apify-client for Python](https://docs.apify.com/api/client/python/)** — official SDKs.
- **[Schedules](https://docs.apify.com/platform/schedules)** — run it hourly/daily to watch prices, new arrivals, or a category; perfect with monitor mode.
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)** — trigger downstream actions (CRM import, Slack alert, repricing job) the moment a run finishes.

```js
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });

const run = await client.actor('scrapesage/flipkart-scraper').call({
    searchTerms: ['wireless earbuds'],
    maxProducts: 200,
    includeProductDetails: true,
    monitorMode: true,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} products`);
```

### Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

- **[Make](https://docs.apify.com/platform/integrations/make)** — multi-step automation scenarios.
- **[Zapier](https://docs.apify.com/platform/integrations/zapier)** — push price changes straight into Sheets or Slack.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** — get notified when a monitored product drops in price.
- **[Google Drive / Sheets](https://docs.apify.com/platform/integrations/drive)** — auto-export every run to a spreadsheet.
- **[Airbyte](https://docs.apify.com/platform/integrations/airbyte)** — pipe results into your data warehouse.
- **[GitHub](https://docs.apify.com/platform/integrations/github)** — trigger runs from commits or releases.

### Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the **[Apify MCP server](https://docs.apify.com/platform/integrations/mcp)** — ask your assistant to "track the price of these Flipkart earbuds and alert me on a drop" and let it run this scraper.

### Agent-ready: autonomous payments (x402 & Skyfire)

This actor is **agent-ready** — AI agents can discover it, run it, and **pay for it autonomously**, with no Apify account and no human in the loop. It uses [pay-per-event](https://docs.apify.com/platform/actors/publishing/monetize/pay-per-event) pricing and [limited permissions](https://docs.apify.com/platform/actors/development/permissions), so it qualifies for Apify's agentic-payment standards:

- **[x402](https://docs.apify.com/platform/integrations/x402)** — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp) — no account, no API key.
- **[Skyfire](https://docs.apify.com/platform/integrations/skyfire)** — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

### More scrapers from scrapesage

Build a complete **e-commerce price & product intelligence stack**:

- **[Amazon Scraper](https://apify.com/scrapesage/amazon-scraper)** — products, prices, reviews & sellers across 20 marketplaces.
- **[AliExpress Scraper](https://apify.com/scrapesage/aliexpress-scraper)** — products, live prices, SKUs & supplier leads.
- **[eBay Scraper](https://apify.com/scrapesage/ebay-scraper)** — listings, sold comps & seller leads.
- **[Banggood Scraper](https://apify.com/scrapesage/banggood-scraper)** — cross-border dropshipping products, prices & reviews.
- **[Made-in-China Scraper](https://apify.com/scrapesage/made-in-china-scraper)** — B2B suppliers & product catalogs.
- **[TradeIndia Scraper](https://apify.com/scrapesage/tradeindia-scraper)** — Indian B2B suppliers & leads.
- **[Poshmark Scraper](https://apify.com/scrapesage/poshmark-scraper)** — fashion resale listings, sold comps & seller leads.
- **[Reverb Scraper](https://apify.com/scrapesage/reverb-scraper)** — musical-instrument marketplace & price guide.
- **[Shopify Store Scraper](https://apify.com/scrapesage/shopify-store-scraper)** — products & catalogs from any Shopify store.

### Tips

- **Big categories**: split by sub-category or add `minPrice`/`maxPrice` windows to exhaust large result sets — Flipkart paginates search results in pages of ~24.
- **Cheaper runs**: turn off `includeProductDetails` for a search-only pass — the search cards already carry price, MRP, discount, rating and images.
- **Proxies**: keep the default **Residential, country IN** group — Flipkart blocks datacenter IPs.
- **Recurring monitoring**: combine [Schedules](https://docs.apify.com/platform/schedules) with `monitorMode` to capture only price drops, restocks and new arrivals.

### FAQ

**How do I scrape Flipkart by category?** Paste the category/listing URL (e.g. `https://www.flipkart.com/mobiles/pr?sid=tyy,4io`) into `startUrls` — the actor paginates it automatically. Or use `searchTerms` for keyword searches.

**Does it need the Flipkart API?** No. Flipkart has no public product API — this actor extracts the same (and richer) data from public page data, no key or login needed.

**Why are Indian residential proxies required?** Flipkart blocks datacenter IPs at the connection level. The default Apify Residential proxy with country `IN` resolves this; the actor primes each session and retries on a fresh IP if one is rate-limited.

**Can I export to Google Sheets, CSV, or Excel?** Yes — one click in the dataset view, or automatically on every run via the [Google Drive integration](https://docs.apify.com/platform/integrations/drive).

**A field is null — why?** Some products genuinely don't publish an MRP, brand, or full specs. Fields are `null` only when the data doesn't exist, not because the scraper skipped them.

**Is scraping Flipkart legal?** This actor collects publicly available data only. You are responsible for using the data in compliance with applicable laws and Flipkart's terms.

### Need help?

Open an issue on the actor's **Issues** tab, or visit the [Apify help center](https://help.apify.com/). Feature requests are welcome — this actor is actively maintained.

# Actor input Schema

## `searchTerms` (type: `array`):

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.

## `startUrls` (type: `array`):

Direct Flipkart URLs: search pages (<code>/search?q=...</code>), category/listing pages (<code>/mobiles/pr?...</code>, <code>/clothing-and-accessories/.../pr?...</code>), product pages (<code>/.../p/itm...?pid=...</code>), or review pages (<code>/.../product-reviews/itm...?pid=...</code>). Used in addition to search terms.

## `productIds` (type: `array`):

Flipkart product IDs (the <code>pid</code> from a product URL, e.g. <code>MOBGTAGPK8EHGSXG</code> or <code>ACCHG3VX9UFMSHX5</code>). Each is fetched as a full product-detail record.

## `sort` (type: `string`):

Result ordering for keyword searches.

## `minPrice` (type: `integer`):

Only include products with a selling price at or above this value (Indian Rupees).

## `maxPrice` (type: `integer`):

Only include products with a selling price at or below this value (Indian Rupees).

## `fourStarPlus` (type: `boolean`):

Only include products rated 4.0 stars or higher.

## `maxProducts` (type: `integer`):

Maximum number of products to scrape across all searches & URLs.

## `maxPagesPerSearch` (type: `integer`):

How many result pages to paginate per keyword/listing (Flipkart shows ~24 products per page).

## `includeProductDetails` (type: `boolean`):

Open each product page to enrich the record with key specifications & highlights, all hi-res images, variants (colour/storage), seller, and Q\&A count. Turn off for a faster, cheaper search-only run (search cards already include price, MRP, discount, rating & star histogram).

## `includeReviews` (type: `boolean`):

Scrape buyer reviews for every product (author, rating, title, text, certified-buyer flag, location, helpful votes, photos & the variant reviewed).

## `maxReviewsPerProduct` (type: `integer`):

Cap on the number of reviews scraped per product when reviews are enabled.

## `outputSellerLeads` (type: `boolean`):

In addition to products, push one deduplicated lead record per seller (type = "seller") with seller name, rating, years on Flipkart, fulfilment, description and a 0–100 lead score. Requires product details.

## `deduplicateProducts` (type: `boolean`):

Skip a product if it was already emitted in this run (by product ID).

## `monitorMode` (type: `boolean`):

Remember products across runs in a named key-value store and only emit NEW products or ones whose price / stock changed (tagged with a changeType: new, price\_drop, price\_rise, restocked, out\_of\_stock). Ideal with Apify Schedules for price tracking. Works alongside — not instead of — the platform scheduler.

## `monitorKey` (type: `string`):

Name for this monitor's memory (use distinct keys for distinct watch lists). Stored as key-value store <code>flipkart-monitor-\<key></code>.

## `maxConcurrency` (type: `integer`):

Maximum parallel requests. Keep modest (3–5) for the best reliability on residential proxies.

## `proxyConfiguration` (type: `object`):

Proxies to use. Indian residential proxies are required — Flipkart blocks datacenter IPs.

## Actor input object example

```json
{
  "searchTerms": [
    "wireless earbuds"
  ],
  "sort": "relevance",
  "fourStarPlus": false,
  "maxProducts": 100,
  "maxPagesPerSearch": 10,
  "includeProductDetails": true,
  "includeReviews": false,
  "maxReviewsPerProduct": 20,
  "outputSellerLeads": false,
  "deduplicateProducts": true,
  "monitorMode": false,
  "monitorKey": "default",
  "maxConcurrency": 4,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `results` (type: `string`):

All scraped product, review and seller-lead records as JSON items in the default dataset.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchTerms": [
        "wireless earbuds"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/flipkart-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchTerms": ["wireless earbuds"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("scrapesage/flipkart-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchTerms": [
    "wireless earbuds"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call scrapesage/flipkart-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapesage/flipkart-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/BIk2toDcFm1UIHRDi/builds/I54qxuLwUWvUyHthS/openapi.json
