# Flipkart Search Scraper (`apt_marble/flipkart-search-scraper`) Actor

Search Flipkart by keyword across categories with price, rating and sort filters, and collect matching products with titles, prices, discounts, ratings, brands and links.

- **URL**: https://apify.com/apt\_marble/flipkart-search-scraper.md
- **Developed by:** [Hamza](https://apify.com/apt_marble) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.20 / 1,000 search products

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/actors/running/actors-in-store.md#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 Search Scraper

Search all of Flipkart by keyword — across categories, price bands, ratings and sort orders — and get every matching product back as clean, structured data. Enter keywords like `wireless earbuds` or `iphone 14`, narrow by category (`mobiles`, `electronics`, `fashion`), set a price range in INR and a minimum star rating, and receive a row for each product with its title, price, MRP, discount, rating, review count, brand, category and a direct link. Collect anywhere from a handful of results to a 5,000-row multi-search export. Built for sellers, deal hunters, market researchers and sales teams who need Flipkart listings as data: track prices across categories, spot discounted products fast, watch brands daily, and build inventory lists without opening a single product page by hand.

### What you can do with it

- **Search everything at once** — run one keyword across several categories in a single run, with the keyword and category labeled on every row.
- **Stay inside a price band** — set a minimum and maximum price in INR to surface only products in your budget.
- **Filter by rating** — keep only products at or above your minimum star rating.
- **Catch new products first** — sort newest-first and re-run on a schedule to spot fresh listings before anyone else.
- **Find the cheapest deals** — sort by price to surface the lowest-priced products for any keyword.
- **Build inventory and lead lists** — export titles, prices, discounts, ratings, brands and links straight into a spreadsheet or pipeline.
- **Watch the market over time** — re-run daily or weekly and compare datasets to track prices, discounts and supply.

### What you get

One row per product. Abridged sample of a single result:

```json
{
  "productId": "MOBGHWFQZ7GCXGYY",
  "title": "boAt Airdopes 141 Bluetooth Headset",
  "url": "https://www.flipkart.com/boat-airdopes-141-bluetooth-headset/p/itm1234567890",
  "thumbnail": "https://rukminim2.flixcart.com/image/328/328/earbuds.jpg",
  "price": 1299,
  "currency": "INR",
  "mrp": 4490,
  "discountPercent": 71,
  "rating": 4.1,
  "ratingCount": 234567,
  "brand": "boAt",
  "category": "mobiles"
}
```

Each row keeps the product's thumbnail, its brand where shown, the MRP and discount next to the selling price, and the exact rating and review count. Where a product omits a field — no rating, no brand, no MRP — the actor leaves it empty rather than guessing.

### Input reference

| Setting | Type | Default | What it does |
| --- | --- | --- | --- |
| Search keywords | list of text | `wireless earbuds` | Keywords to search for, e.g. `["wireless earbuds", "iphone 14"]`. One search runs per keyword, in every category. |
| Categories | list of text | — | Category scopes to search within, e.g. `mobiles`, `electronics`, `fashion`. Leave empty to search all of Flipkart. |
| Min price | number | — | Minimum product price in INR. Leave empty for no lower bound. |
| Max price | number | — | Maximum product price in INR. Leave empty for no upper bound. |
| Min rating | number | — | Minimum product rating from 0 to 5, e.g. `4` for 4 stars and up. Leave empty for no rating filter. |
| Sort | choice | `relevance` | `relevance`, `price_asc` (cheapest first), `price_desc` (priciest first), `rating` (top rated first), or `newest` (newest first). |
| Max items | whole number | `200` | How many products to collect. The actor works through the result pages automatically until this number is reached or the results run out. Maximum 5,000. |

Provide at least a search keyword (it has a default, so a run works out of the box); add categories to narrow the results.

### Output fields

| Field | Type | Description |
| --- | --- | --- |
| `productId` | text | The product's Flipkart style number (FSN). |
| `title` | text | Product title as shown to readers. |
| `url` | text | Direct link to the product. |
| `thumbnail` | text | The product's main image, when it has one. |
| `price` | number | Selling price in INR, when listed. |
| `currency` | text | Currency code, always `INR`. |
| `mrp` | text | Maximum retail price in INR, when shown. |
| `discountPercent` | number | Discount percentage, when shown. |
| `rating` | number | Average customer rating from 0 to 5, when shown. |
| `ratingCount` | number | Number of ratings and reviews, when shown. |
| `brand` | text | Brand name, when shown. |
| `category` | text | Category scope that produced this row. |
| `query` | text | Keyword that produced this row. |
| `rank` | number | Position of the product in its search results. |

### Example use cases

- **Seller price watch** — search your top keywords across `mobiles` and `electronics`, cheapest-first, every morning; adjust your own prices against the standout rows.
- **Discount hunting** — pull 2,000 rows for `headphones` and sort by discount to find the deepest markdowns.
- **Brand watch** — search a brand keyword newest-first on a daily schedule and track what appears, at what price.
- **Rating filter sourcing** — keep only 4-star-and-up products in a price band and export fresh picks with links weekly.
- **Market sizing** — count products per category for a product niche to see where supply concentrates.

### Pricing

You pay per result, with no monthly minimum.

| What you are charged for | Price |
| --- | --- |
| Search product — one product added to your dataset | **$1.20 per 1,000** |

### Limits & what this actor cannot do

- Titles, prices, discounts, ratings and availability are a snapshot at the moment of collection; products are edited, repriced or sold constantly.
- The actor returns what Flipkart actually serves and reports distinct products only — the same product repeated across pages is returned once.
- Each row carries the search result's single main image, not the full gallery, and no description text; both live on the product page.
- Where a product omits a field the actor leaves it empty rather than guessing.
- Prices come back in INR; a figure is never re-labelled into a different currency.
- Speed depends on the size of the job and on Flipkart's own response times; no fixed throughput is promised.
- Flipkart's terms govern automated access. You are responsible for using the data lawfully and in line with the source site's terms, and for handling any personal data in line with applicable privacy law.

### FAQ

**Do I need a Flipkart account?**
No. The actor reads only what Flipkart shows openly in its search results.

**Does it need my login or password?**
No. There is nothing to connect and nothing to configure — enter keywords and press start.

**Which categories can I search?**
Any category label (`mobiles`, `electronics`, `fashion`, …). Mix as many as you like in one run.

**How many products can I get in one run?**
Up to 5,000 per run. If a search holds more than that, split it with narrower keywords or fewer categories per run.

**Why are some fields empty?**
Because the product did not show them. The actor reports exactly what the search carries — an empty field means "not shown", never a failed guess.

**Can I get full descriptions and all photos?**
Not from search results — they carry one image and no description. Feed the product links from any run into a product-details scraper for the complete record.

**Can I schedule it?**
Yes. Schedule it hourly, daily or weekly, and each run writes a fresh dataset you can compare against the last — ideal for tracking prices, discounts, new products and supply over time.

**Is the data complete?**
It is complete for everything Flipkart shows openly in its search results. The actor reports distinct products rather than the shifting estimate of the total, and leaves unshown fields empty instead of inventing them.

# Actor input Schema

## `queries` (type: `array`):

Keywords to search for, e.g. "wireless earbuds" or "iphone 14". One search is run per keyword, in every category.

## `categories` (type: `array`):

Category scopes to search within, e.g. mobiles, electronics, fashion. One search is run per category. Leave empty to search all of Flipkart.

## `minPrice` (type: `number`):

Minimum item price in INR. Leave empty for no lower bound.

## `maxPrice` (type: `number`):

Maximum item price in INR. Leave empty for no upper bound.

## `minRating` (type: `number`):

Minimum product rating from 0 to 5, e.g. 4 for 4 stars and up. Leave empty for no rating filter.

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

Order the results are returned in.

## `maxItems` (type: `integer`):

Maximum total items to collect across all searches. The actor pages through results automatically until this number is reached or the results run out.

## Actor input object example

```json
{
  "queries": [
    "wireless earbuds"
  ],
  "categories": [
    "mobiles"
  ],
  "sort": "relevance",
  "maxItems": 100
}
```

# Actor output Schema

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

Every row this run produced.

## `runSummary` (type: `string`):

What this run collected, and anything it could not read.

# 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 = {
    "queries": [
        "wireless earbuds"
    ],
    "categories": [
        "mobiles"
    ],
    "sort": "relevance",
    "maxItems": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("apt_marble/flipkart-search-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 = {
    "queries": ["wireless earbuds"],
    "categories": ["mobiles"],
    "sort": "relevance",
    "maxItems": 100,
}

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

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

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

```

## CLI example

```bash
echo '{
  "queries": [
    "wireless earbuds"
  ],
  "categories": [
    "mobiles"
  ],
  "sort": "relevance",
  "maxItems": 100
}' |
apify call apt_marble/flipkart-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,apt_marble/flipkart-search-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/pxioGPmiu8GPom8of/builds/5v5xkocn3zeKioWiD/openapi.json
