# Jiomart Product Scraper (`shahidirfan/jiomart-product-scraper`) Actor

Extract product data, prices, ratings, and inventory status from Jiomart at scale. Perfect for price monitoring, competitive analysis, and market intelligence on India's leading e-commerce platform. Automate product research effortlessly.

- **URL**: https://apify.com/shahidirfan/jiomart-product-scraper.md
- **Developed by:** [Shahid Irfan](https://apify.com/shahidirfan) (community)
- **Categories:** E-commerce, Automation, Agents
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Jiomart Product Scraper

Extract comprehensive product search data from Jiomart at scale. Collect pricing, brand, seller, category, and product link data for thousands of items with configurable result limits. Ideal for market research, catalog monitoring, pricing intelligence, and product trend analysis.

---

### Features

- **Keyword-Based Product Search** — Collect product listings using any search keyword.
- **Search URL Support** — Start from a Jiomart search URL and capture matching product data.
- **Rich Product Fields** — Export pricing, discount, seller, category, and media fields.
- **Large-Scale Collection** — Paginate through large result sets with configurable limits.
- **Clean Dataset Output** — Saves structured records with non-empty fields for easier analysis.

---

### Use Cases

#### Pricing Intelligence
Track product prices and discounts for specific categories or brands. Monitor shifts in pricing strategy and identify competitive opportunities.

#### Assortment Monitoring
Analyze category and brand coverage across search results. Understand how product assortment evolves over time for targeted keywords.

#### Seller Analysis
Compare seller presence for the same keyword or product type. Discover top sellers and evaluate seller concentration in key categories.

#### Product Research
Build data-backed product research workflows for procurement, merchandising, and catalog planning.

---

### Input Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `keyword` | String | No | `"mobile"` | Search keyword to query products (optional when `startUrl` is provided) |
| `startUrl` | String | No | `"https://www.jiomart.com/search?q=mobile"` | Optional Jiomart search/category/tag URL |
| `results_wanted` | Integer | No | `20` | Maximum number of products to save |
| `max_pages` | Integer | No | `10` | Safety cap for pagination depth |
| `proxyConfiguration` | Object | No | Residential proxy preset | Proxy setup for reliable data collection |

---

### Output Data

Each item in the dataset can include:

| Field | Type | Description |
|-------|------|-------------|
| `keyword` | String | Input keyword used for the result |
| `result_id` | String | Result identifier |
| `product_id` | String | Product or variant ID |
| `product_title` | String | Product title |
| `brand` | String | Brand name |
| `product_url` | String | Product page URL |
| `image_url` | String | Primary image URL |
| `image_urls` | Array | All available image URLs |
| `category_path` | String | Product category hierarchy |
| `categories` | Array | Category list |
| `vertical_code` | String | Business vertical code |
| `seller_name` | String | First seller name |
| `seller_names` | Array | All seller names |
| `seller_ids` | Array | Seller IDs |
| `selling_price` | Number | Current selling price |
| `mrp` | Number | Maximum retail price |
| `discount_pct` | Number | Discount percentage |
| `payment_tag` | String | Payment-related promotional tag |
| `product_tag` | String | Product promotional tag |
| `popularity` | Number | Popularity score |
| `is_tradein` | String | Trade-in availability flag |
| `available_at_3p_seller` | String | Third-party availability flag |
| `alternate_product_code` | String | Alternate code if available |
| `matching_variant_count` | Number | Number of matching variants |

---

### Usage Examples

#### Basic Keyword Search

```json
{
	"keyword": "mobile",
	"results_wanted": 20
}
````

#### Start from Search URL

```json
{
	"startUrl": "https://www.jiomart.com/search?q=smartphone",
	"results_wanted": 40
}
```

#### Category or Tag URL Collection

```json
{
	"startUrl": "https://www.jiomart.com/c/electronics/mobiles-tablets/320",
	"results_wanted": 200,
	"max_pages": 20,
	"proxyConfiguration": {
		"useApifyProxy": true,
		"apifyProxyGroups": ["RESIDENTIAL"]
	}
}
```

***

### Sample Output

```json
{
	"keyword": "mobile",
	"result_id": "610891111_P",
	"product_id": "610891111",
	"product_title": "Redmi A4 5G 128 GB, 4 GB RAM, Purple, Mobile Phone",
	"brand": "Xiaomi",
	"product_url": "https://www.jiomart.com/p/electronics/redmi-a4-5g-128-gb-4-gb-ram-purple-mobile-phone/610891111",
	"image_url": "https://www.jiomart.com/images/product/original/494493447/redmi-a4-5g-128-gb-4-gb-ram-purple-mobile-phone-digital-o494493447-p610891111-0-202511121701.jpeg",
	"category_path": "Category > Electronics > Mobiles & Tablets > Mobiles > Smartphones",
	"vertical_code": "ELECTRONICS",
	"seller_name": "Reliance Retail",
	"selling_price": 11999,
	"discount_pct": 0,
	"payment_tag": "Rs.400 Additional Discount at Checkout",
	"product_tag": "Limited Time Deal",
	"matching_variant_count": 1
}
```

***

### Tips for Best Results

#### Start with Lower Limits

- Begin with `results_wanted: 20` for quick validation.
- Increase limits after confirming output quality.

#### Use Relevant Keywords

- Use focused keywords for cleaner datasets.
- Avoid overly broad terms when you need niche product groups.

#### Use Proxies for Stability

- Residential proxies provide the most consistent performance.
- Increase `max_pages` when collecting large result sets like 200 items.

***

### Integrations

Connect dataset output with:

- **Google Sheets** — Build pricing and category dashboards
- **Airtable** — Create searchable product intelligence bases
- **Looker Studio** — Visualize trends and seller distribution
- **Webhooks** — Send fresh data to internal systems
- **Make** — Automate multi-step workflows
- **Zapier** — Trigger downstream business actions

#### Export Formats

- **JSON** — API and engineering workflows
- **CSV** — Spreadsheet and BI workflows
- **Excel** — Stakeholder reporting
- **XML** — Legacy system integrations

***

### Frequently Asked Questions

#### How many products can I collect?

You can collect large result sets across multiple pages. The practical limit depends on keyword depth, chosen limits, and runtime settings.

#### Can I scrape by URL instead of keyword?

Yes. Provide a Jiomart search URL in `startUrl`. The actor can use the query from that URL.

#### Why are some fields missing in some records?

Some products simply do not publish every field. The output keeps only non-empty values for cleaner datasets.

#### Is this suitable for scheduled monitoring?

Yes. This actor is suitable for scheduled runs to track pricing and assortment changes over time.

***

### Support

For issues or feature requests, use the Apify Console issue flow for this actor.

#### Resources

- [Apify Documentation](https://docs.apify.com/)
- [Apify API Reference](https://docs.apify.com/api/v2)
- [Scheduling Runs](https://docs.apify.com/platform/schedules)

***

### Legal Notice

This actor is designed for legitimate data collection and analysis use cases. You are responsible for complying with applicable laws, platform terms, and internal data governance requirements when using collected data.

# Actor input Schema

## `startUrl` (type: `string`):

Optional Jiomart URL (search/category/tag). If provided, keyword can be derived from the URL.

## `keyword` (type: `string`):

Keyword to search on Jiomart. Optional when startUrl is provided.

## `results_wanted` (type: `integer`):

Maximum number of products to save.

## `max_pages` (type: `integer`):

Safety cap for pagination depth.

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

Use Apify Proxy for better reliability.

## Actor input object example

```json
{
  "startUrl": "https://www.jiomart.com/search?q=mobile",
  "keyword": "mobile",
  "results_wanted": 20,
  "max_pages": 10,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "startUrl": "https://www.jiomart.com/search?q=mobile",
    "keyword": "mobile",
    "results_wanted": 20,
    "max_pages": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("shahidirfan/jiomart-product-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 = {
    "startUrl": "https://www.jiomart.com/search?q=mobile",
    "keyword": "mobile",
    "results_wanted": 20,
    "max_pages": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("shahidirfan/jiomart-product-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 '{
  "startUrl": "https://www.jiomart.com/search?q=mobile",
  "keyword": "mobile",
  "results_wanted": 20,
  "max_pages": 10
}' |
apify call shahidirfan/jiomart-product-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Jiomart Product Scraper",
        "description": "Extract product data, prices, ratings, and inventory status from Jiomart at scale. Perfect for price monitoring, competitive analysis, and market intelligence on India's leading e-commerce platform. Automate product research effortlessly.",
        "version": "0.0",
        "x-build-id": "sepfhJviwZKGNYuVB"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/shahidirfan~jiomart-product-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-shahidirfan-jiomart-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/shahidirfan~jiomart-product-scraper/runs": {
            "post": {
                "operationId": "runs-sync-shahidirfan-jiomart-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/shahidirfan~jiomart-product-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-shahidirfan-jiomart-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": {
                    "startUrl": {
                        "title": "Search URL",
                        "type": "string",
                        "description": "Optional Jiomart URL (search/category/tag). If provided, keyword can be derived from the URL."
                    },
                    "keyword": {
                        "title": "Search keyword",
                        "type": "string",
                        "description": "Keyword to search on Jiomart. Optional when startUrl is provided."
                    },
                    "results_wanted": {
                        "title": "Maximum number of products",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of products to save.",
                        "default": 20
                    },
                    "max_pages": {
                        "title": "Maximum number of pages",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Safety cap for pagination depth.",
                        "default": 10
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Use Apify Proxy for better reliability.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
