# Priceoye Product Search Scraper (`stealth_mode/priceoye-product-search-scraper`) Actor

Scrape product search results from Priceoye.pk instantly. Capture product titles, prices, ratings, brand info, stock status, and 40+ fields per item — perfect for price monitoring, market analysis, and competitive intelligence in Pakistan's e-commerce market.

- **URL**: https://apify.com/stealth\_mode/priceoye-product-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Priceoye Product Search Scraper: Extract Product Data & Pricing Intelligence

***

### What Is Priceoye.pk?

Priceoye.pk is Pakistan's leading price comparison platform, aggregating product listings across multiple categories — from electronics and gadgets to home appliances and accessories. With real-time pricing data from hundreds of online retailers, Priceoye helps consumers find the best deals. For businesses, however, manually collecting this product and pricing data is impractical. The **Priceoye Product Search Scraper** automates the extraction of search results, delivering structured product intelligence instantly.

***

### Overview

The **Priceoye Product Search Scraper** extracts product listing data from Priceoye search pages, capturing titles, prices, ratings, availability, and merchant information. It is ideal for:

- **Price monitoring teams** tracking competitor pricing and market trends
- **E-commerce aggregators** feeding product catalogs into comparison platforms
- **Market researchers** analyzing product availability and pricing strategies
- **Retailers** benchmarking their offerings against competitors
- **Procurement specialists** sourcing products and comparing costs at scale

Key features include flexible pagination support, configurable item limits, bulk URL handling, and graceful error management via `ignore_url_failures`.

***

### Input Format

The scraper accepts a JSON configuration object:

```json
{
  "urls": [
    "https://priceoye.pk/wireless-earbuds?page=4"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 200
}
```

| Parameter | Type | Description |
|---|---|---|
| `urls` | Array | Direct links to Priceoye product search pages. Include the category, filters, and page number (e.g., `?page=4`). You can add multiple URLs to scrape multiple searches or categories in one run. |
| `ignore_url_failures` | Boolean | If `true`, the scraper continues running even if some URLs fail. Set to `false` only for small, critical runs requiring error alerts. Default: `true` |
| `max_items_per_url` | Integer | Maximum number of products to extract per URL (e.g., `200`). Higher values capture more listings but increase runtime. Default: `20` |

**Example URLs:**

- `https://priceoye.pk/wireless-earbuds?page=1`
- `https://priceoye.pk/smartphones?page=2`
- `https://priceoye.pk/laptops`

> **Tip:** Adjust `max_items_per_url` based on your needs. Use `200` for comprehensive market snapshots or `50` for faster sampling runs.

***

### Output Format

**Sample output**

```json
{
  "product_id": 14933,
  "category": 6,
  "product_title": "U-51 TWS Wireless Earbuds",
  "product_title_match": "U-51 TWS Wireless Earbuds",
  "product_featured": 9999,
  "product_home_featured": 0,
  "product_title_secondary": [],
  "product_image": {
    "0": "u51-tws-wireless-bluetooth-earbuds-pakistan-priceoye-8py7q.jpg",
    "colors": {
      "white": {
        "0": "u-51-tws-wireless-bluetooth-earbuds-pakistan-priceoye-l5y2c.jpg",
        "1": "u-51-tws-wireless-earbuds-pakistan-priceoye-qt6bu.jpg",
        "2": "u-51-tws-wireless-bluetooth-earbuds-pakistan-priceoye-mkjgb.jpg",
        "3": "u-51-tws-wireless-bluetooth-earbuds-pakistan-priceoye-of3nb.jpg"
      },
      "black": {
        "0": "u-51-tws-wireless-bluetooth-earbuds-pakistan-priceoye-2oudp.jpg",
        "1": "u-51-tws-wireless-earbuds-pakistan-priceoye-gate0.jpg",
        "2": "u-51-tws-wireless-bluetooth-earbuds-pakistan-priceoye-j275v.jpg"
      }
    }
  },
  "product_slug": "u-51-tws-wireless-earbuds",
  "product_status": "launched",
  "expected_date": "2026-06-19",
  "expected_price": "1999",
  "product_status_order": 1,
  "rating_stars": 5,
  "average_rating": 0,
  "total_reviews": 0,
  "product_brand_id": 309,
  "product_brand_name": "assorted",
  "product_category_slug": "wireless-earbuds",
  "product_brand_slug": "assorted",
  "product_brand_name_match": "assorted",
  "product_category_id": 6,
  "product_category_name": "Wireless Earbuds",
  "product_filters": {
    "s_t_o_r_a_g_e": [],
    "r_a_m": [],
    "p_o_r_a_m": []
  },
  "lowest_price": 1549,
  "lowest_price_storelink_id": 28178,
  "lowest_price_store_id": 9999,
  "highest_price": 1549,
  "price_crawled_date": "2026-03-27 10:03:49",
  "color": [
    "white",
    "black"
  ],
  "size": [
    "u-51 tws wireless earbuds (white)",
    "u-51 tws wireless earbuds (black)"
  ],
  "badge": [
    "null"
  ],
  "accessories": [
    "{\"0\": \"charging-cable\"}"
  ],
  "product_clicks": 10,
  "retail_price": "1999",
  "saving_price": 450,
  "po_order_status": 1,
  "po_date_create": "2026-03-27",
  "stock_status": 1,
  "stock_qty": 1,
  "product_coupon": null,
  "sort_product_ordering": 1,
  "from_url": "https://priceoye.pk/wireless-earbuds?page=4"
}
```

Each product record contains 40+ fields spanning identity, pricing, ratings, stock, and brand information:

#### Product Identity & Metadata

| Field | Meaning |
|---|---|
| `Product ID` | Unique Priceoye identifier for the product |
| `Product Title` | Official product name as listed |
| `Product Title Match` | Relevance score indicating title match accuracy |
| `Product Title Secondary` | Alternative or secondary product name |
| `Product Slug` | URL-friendly product identifier |
| `Product Status` | Current listing status (e.g., active, discontinued) |
| `Product Status Order` | Sort order priority for the listing |

#### Category & Brand Information

| Field | Meaning |
|---|---|
| `Category` | Product category classification |
| `Product Category ID` | Internal category identifier |
| `Product Category Name` | Full category name |
| `Product Category Slug` | URL-friendly category identifier |
| `Product Brand ID` | Internal identifier for the manufacturer |
| `Product Brand Name` | Brand/manufacturer name |
| `Product Brand Slug` | URL-friendly brand identifier |
| `Product Brand Name Match` | Brand name relevance score |

#### Pricing Intelligence

| Field | Meaning |
|---|---|
| `Lowest Price` | Minimum price across all merchant listings |
| `Lowest Price Storelink ID` | Reference to the store offering the lowest price |
| `Lowest Price Store ID` | ID of the retailer with the lowest price |
| `Highest Price` | Maximum price from any merchant |
| `Retail Price` | Manufacturer's suggested retail price (MSRP) |
| `Saving Price` | Discount amount (Retail Price - Lowest Price) |
| `Price Crawled Date` | Timestamp of the last price update |
| `Product Coupon` | Available discount codes or promotional offers |

#### Ratings & Reviews

| Field | Meaning |
|---|---|
| `Rating Stars` | Star rating out of 5 |
| `Average Rating` | Aggregate user rating score |
| `Total Reviews` | Number of customer reviews |

#### Availability & Stock

| Field | Meaning |
|---|---|
| `Stock Status` | Availability (in stock, pre-order, out of stock) |
| `Stock Qty` | Quantity available at the lowest-price merchant |
| `Expected Date` | Expected delivery or availability date |

#### Product Features & Variants

| Field | Meaning |
|---|---|
| `Product Filters` | Applied search filters (brand, price range, etc.) |
| `Color` | Available color variants |
| `Size` | Available size options |
| `Accessories` | Related or included accessories |
| `Badge` | Special badges (bestseller, new, sale) |

#### Engagement & Ordering

| Field | Meaning |
|---|---|
| `Product Clicks` | User click count on the listing |
| `PO Order Status` | Pre-order status if applicable |
| `PO Date Create` | Pre-order creation date |
| `Sort Product Ordering` | Internal sort/ranking within results |

#### Display & Branding

| Field | Meaning |
|---|---|
| `Product Image` | Product image URL (primary display photo) |
| `Product Featured` | Whether the product is featured in search results |
| `Product Home Featured` | Whether it's featured on Priceoye's homepage |

***

### How to Use

1. **Identify search criteria** — Go to Priceoye.pk and search for products by category or filters. Copy the search URL including page numbers.

2. **Prepare URLs** — List all URLs you want to scrape. You can include multiple pages or categories:
   ```
   https://priceoye.pk/wireless-earbuds?page=1
   https://priceoye.pk/wireless-earbuds?page=2
   https://priceoye.pk/headphones?page=1
   ```

3. **Configure limits** — Set `max_items_per_url` based on your needs:
   - `200` for comprehensive price monitoring
   - `50–100` for faster data collection
   - `20` for sampling only

4. **Enable error handling** — Keep `ignore_url_failures: true` for bulk runs to prevent interruptions.

5. **Run and export** — Start the scraper and download results as JSON, CSV, or Excel.

**Troubleshooting:**

- If no products are returned, verify the URL is a valid Priceoye search page (not a product detail page).
- Increase `max_items_per_url` if you expect more products to be available.
- Monitor the run log for failed URLs; retry them separately if needed.

***

### Use Cases & Business Value

- **Price intelligence:** Monitor competitor pricing strategies and identify arbitrage opportunities
- **Market analysis:** Track product availability, ratings, and market positioning across categories
- **Inventory optimization:** Compare your pricing against competitors and adjust margins
- **Promotional planning:** Identify bestsellers and products with high demand signals
- **Merchant analytics:** Understand which retailers dominate different product categories
- **Trend monitoring:** Detect new products, emerging brands, and seasonal shifts

By automating data collection, the Priceoye scraper reduces hours of manual work and enables data-driven decision-making in Pakistan's competitive e-commerce landscape.

***

### Conclusion

The **Priceoye Product Search Scraper** delivers structured, actionable product and pricing data from one of Pakistan's most comprehensive marketplaces. With 40+ fields per product and flexible configuration, it empowers businesses to monitor markets, optimize pricing, and stay competitive. Start scraping today and unlock pricing intelligence.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the product search list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://priceoye.pk/wireless-earbuds?page=4"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# 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 = {
    "urls": [
        "https://priceoye.pk/wireless-earbuds?page=4"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/priceoye-product-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 = {
    "urls": ["https://priceoye.pk/wireless-earbuds?page=4"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/priceoye-product-search-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 '{
  "urls": [
    "https://priceoye.pk/wireless-earbuds?page=4"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/priceoye-product-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ib1LpVvTMAkMR2naj/builds/J3gzYkE2Jyw4xzhlW/openapi.json
