# Jarir جرير Product Scraper - scrape product data from jarir.com (`boring_internet_explorer/jarir-scraper`) Actor

Scrape product data from jarir.com, the GCC's leading retailer for electronics, books and office supplies — pricing, stock, brand, images and categories across all 5 storefronts (KSA, UAE, Qatar, Bahrain, Kuwait).

- **URL**: https://apify.com/boring\_internet\_explorer/jarir-scraper.md
- **Developed by:** [Boring Internet Explorer](https://apify.com/boring_internet_explorer) (community)
- **Categories:** E-commerce
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.80 / 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.

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

## 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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

### Jarir جرير Product Scraper - scrape product data from jarir.com

Scrapes product data from **Jarir** (`jarir.com`), one of the largest retailers in the Gulf, selling electronics, mobile phones, computers, office and school supplies, arts and crafts, books, toys, musical instruments, and more. Given a category or product page, the scraper collects every product listed and returns structured data for each one — including pricing, stock, brand, images, and category, across all five GCC storefronts.

### Why use this scraper?

Jarir carries an unusually broad catalog for a single retailer — everything from smartphones and laptops to office supplies, Arabic books, musical instruments, and toys — with full pricing and stock detail exposed per product. That range, combined with coverage across Saudi Arabia, the UAE, Qatar, Bahrain, and Kuwait in both Arabic and English, makes it a useful source for:

- 💰 Price monitoring and competitor tracking across electronics, office supplies, books, and more.
- 🌍 Cross-country price comparison — the same SKU's price, currency, and stock across all five GCC storefronts.
- 📦 Catalog and inventory research — brand coverage, stock availability, and category structure for a category or an entire storefront.
- 🛍️ Feeding product data into comparison sites, sourcing tools, or market research pipelines.
- 🧠 Building datasets of real Arabic and English product listings — names, descriptions, and categories in both languages side by side.

### Input


| Field                | Type   | Description                                                              |
| -------------------- | ------ | -------------------------------------------------------------------------- |
| `startUrls`           | array  | Jarir category or product page URLs to scrape.                            |
| `maxItems`            | number | Maximum number of products to scrape per start URL.                       |
| `proxyConfiguration`  | object | Optional proxy settings.                                                  |


#### Example input

```json
{
  "maxItems": 5,
  "startUrls": [
    { 
      "url": "https://www.jarir.com/apple.html"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
````

### Output

```json
{
	"scrapedAt": "2026-07-24 03:31:10",
	"updatedAt": "2026-07-24 01:55:04",
	"url": "https://www.jarir.com/apple-iphone-17-pro-max-smartphones-666877.html",
	"store": "ae-ar",
	"sku": "666877",
	"id": 1560377,
	"itemNumber": "25-MFYK42BG",
	"mpn": "MFYK42BG",
	"name": "ابل آيفون 17 برو ماكس، 2 تيرابايت، برتقالي كوزمك الجيل الخامس، آبل آيه 19 برو",
	"nameEn": "Apple iPhone 17 Pro Max, 2 TB, Cosmic Orange, 5G, Apple A19 Pro",
	"description": "اشتر ابل  آيفون 17 برو ماكس 2 تيرابايت برتقالي كوزمك الجيل الخامس هاتف ذكي من مكتبة جرير لأفضل العروض و الأسعار في الإمارات.",
	"model": "آيفون 17 برو ماكس",
	"price": 8499,
	"finalPrice": 7499,
	"regularPrice": 8499,
	"specialPrice": 7499,
	"priceExTax": 8094.2857,
	"currency": "AED",
	"inStock": null,
	"stockQty": null,
	"minSaleQty": 1,
	"maxSaleQty": 10,
	"brand": "ابل",
	"brandEn": "Apple",
	"brandCode": "apple",
	"image": "https://ak-asset.jarir.com/akeneo-prod/asset/9/a/2/d/9a2d890716f365fa2c2cca732afcc3cd48bfe8d5_666877.jpg",
	"gallery": [
		"https://ak-asset.jarir.com/akeneo-prod/asset/9/a/2/d/9a2d890716f365fa2c2cca732afcc3cd48bfe8d5_666877.jpg",
		"https://ak-asset.jarir.com/akeneo-prod/asset/3/e/6/3/3e6399051c51b1b4c5a35bb0f41088c237b4b197_666877_1.jpg"
	],
	"categoryIds": [1008, 1010, 1029, 3394, 3395, 3421, 3396, 3397],
	"categories": [
		"الهواتف الذكية",
		"ابل",
		"الهواتف الذكية",
		"الجوالات و الالكترونيات",
		"الهواتف الذكية",
		"جميع الهواتف الذكية",
		"الماركات المختارة",
		"ابل"
	],
	"color": "برتقالي",
	"colorEn": "Orange",
	"productType": "الهواتف الذكية",
	"isReturnable": true
}
```

#### Field reference

| Field            | Type                 | Description                                                            |
| ------------------ | -------------------- | ------------------------------------------------------------------------ |
| `scrapedAt`       | string                | Timestamp the record was scraped, `YYYY-MM-DD HH:MM:SS`.               |
| `updatedAt`       | string | null        | Timestamp Jarir last updated the product.                              |
| `url`             | string                | Canonical product page URL.                                            |
| `store`           | string                | Storefront the product was scraped from, e.g. `sa-ar`, `ae-en`.        |
| `sku`             | string | null        | Jarir's SKU for this product.                                          |
| `id`              | number | null        | Jarir's internal product id.                                           |
| `itemNumber`      | string | null        | Item/model number as shown on the product page.                        |
| `mpn`             | string | null        | Manufacturer part number.                                              |
| `name`            | string | null        | Product name in Arabic.                                                |
| `nameEn`          | string | null        | Product name in English.                                               |
| `description`     | string | null        | Product meta description in Arabic.                                    |
| `model`           | string | null        | Model name/line.                                                       |
| `price`           | number | null        | Listed price, VAT included.                                            |
| `finalPrice`      | number | null        | Price after any active discount, VAT included.                         |
| `regularPrice`    | number | null        | Undiscounted price, VAT included.                                      |
| `specialPrice`    | number | null        | Discounted price, when a promotion is active; `null` otherwise.        |
| `priceExTax`      | number | null        | Price excluding VAT.                                                   |
| `currency`        | string                | Currency for this store — `SAR`, `AED`, `QAR`, `BHD`, or `KWD`.        |
| `inStock`         | boolean | null       | Whether the product is currently in stock.                             |
| `stockQty`        | number | null        | Quantity available.                                                    |
| `minSaleQty`      | number | null        | Minimum quantity purchasable per order.                                |
| `maxSaleQty`      | number | null        | Maximum quantity purchasable per order.                                |
| `brand`           | string | null        | Brand name in Arabic.                                                  |
| `brandEn`         | string | null        | Brand name in English.                                                 |
| `brandCode`       | string | null        | Brand's internal code.                                                 |
| `image`           | string | null        | Primary product image URL.                                             |
| `gallery`         | string\[]               | All product image URLs.                                                |
| `categoryIds`     | number\[]               | Jarir's internal category ids the product belongs to.                  |
| `categories`      | string\[]               | Category names in Arabic, matching `categoryIds` by position.          |
| `color`           | string | null        | Product color in Arabic.                                               |
| `colorEn`         | string | null        | Product color in English.                                              |
| `productType`     | string | null        | Product type/category description.                                     |
| `isReturnable`    | boolean | null       | Whether the product is eligible for return.                            |

### ❓ FAQ

**Which countries and languages does the scraper support?**
All five GCC storefronts Jarir operates — Saudi Arabia, the UAE, Qatar, Bahrain, and Kuwait — in both Arabic and English. The store is detected automatically from the URL (e.g. `/ae-en/` for UAE English), so no separate configuration is needed.

**Does the scraper work on any Jarir category?**
Yes — provide any category listing URL (electronics, office supplies, Arabic books, arts and crafts, toys, musical instruments, and more) and the scraper paginates through it automatically until `maxItems` is reached.

**Can I scrape a specific product directly?**
Yes — the scraper accepts product page URLs as well as category pages, and starts from either.

**Will filters I've already applied in the URL (price, brand, color) be respected?**
Yes — any on-page filters present in the start URL's query string are read and applied to the request, so a filtered category URL returns only the matching products rather than the full category.

**Can I track price and stock changes over time?**
Yes — by scheduling runs on Apify, you can monitor how a product's price, discount, and stock status change across any of the five storefronts.

**Is pricing shown in local currency?**
Yes — each record includes a `currency` field matching the store it was scraped from (SAR, AED, QAR, BHD, or KWD), and prices reflect that store's actual listed price rather than a converted value.

***

### 🔗 Want More Ecommerce Data in the Gulf Market?

#### If you found this scraper useful, check out our other Gulf ecommerce scrapers:

[🥷🏽 Ninja نينجا Product Scraper](https://apify.com/boring_internet_explorer/ninja-product-scraper) — Extract product data from ananinja.com — prices, stock availability, brands, images, product IDs, and category for groceries, pharmacy, beauty, and household products across Saudi Arabia, Bahrain, Qatar, and Kuwait. Ideal for price monitoring, catalog synchronization, and market research.

[eXtra - اكسترا Product Scraper - Extract extra.com Products](https://apify.com/boring_internet_explorer/extra-scraper) — Extract product data from extra.com — prices, discounts, stock availability, brands, images, model numbers, ratings, and category breadcrumbs — across Saudi Arabia, Oman, and Bahrain in both English and Arabic. Ideal for price monitoring, catalog sync, and market research.

***

### 🛠️ Need a custom extension?

Need this scraper adapted to your use case — extra fields, review/rating data, another Jarir section, or a different output format? Just reach out to us by email and we'll be happy to help.

# Actor input Schema

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

URLs to scrape

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

The maximum number of items to fetch

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

Your proxy configuration from Apify

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.jarir.com/apple.html"
    }
  ],
  "maxItems": 5,
  "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 = {
    "startUrls": [
        {
            "url": "https://www.jarir.com/apple.html"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("boring_internet_explorer/jarir-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 = { "startUrls": [{ "url": "https://www.jarir.com/apple.html" }] }

# Run the Actor and wait for it to finish
run = client.actor("boring_internet_explorer/jarir-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 '{
  "startUrls": [
    {
      "url": "https://www.jarir.com/apple.html"
    }
  ]
}' |
apify call boring_internet_explorer/jarir-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Jarir جرير Product Scraper - scrape product data from jarir.com",
        "description": "Scrape product data from jarir.com, the GCC's leading retailer for electronics, books and office supplies — pricing, stock, brand, images and categories across all 5 storefronts (KSA, UAE, Qatar, Bahrain, Kuwait).",
        "version": "0.0",
        "x-build-id": "M7FpqYCYKb1dXdi2R"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/boring_internet_explorer~jarir-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-boring_internet_explorer-jarir-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/boring_internet_explorer~jarir-scraper/runs": {
            "post": {
                "operationId": "runs-sync-boring_internet_explorer-jarir-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/boring_internet_explorer~jarir-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-boring_internet_explorer-jarir-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",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "URLs to scrape",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "maxItems": {
                        "title": "Max items",
                        "type": "integer",
                        "description": "The maximum number of items to fetch",
                        "default": 5
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Your proxy configuration from Apify",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
