# Sharaf DG شرف دي جي Scraper- Multi-Market Product Scraper (`boring_internet_explorer/sharafdg-scraper`) Actor

Scrape product data from Sharaf DG across Saudi Arabia, UAE, Egypt, Bahrain, and Oman. Extract prices, discounts, availability, ratings, brand, category, and offer details from any category, brand, or search URL.

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

## Pricing

from $0.50 / 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 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

## 🛒 Sharaf DG شرف دي جي Product Scraper

Scrapes structured product data from **Sharaf DG** (`sharafdg.com`), one of the leading electronics retailers in the Middle East. Founded in 2005, Sharaf DG operates 38+ stores across the UAE, Bahrain, Qatar, and Oman, offering over 25,000 electronic products and accessories from reputed international brands.

Given a Sharaf DG **category, brand, or search URL**, the scraper collects product information and returns structured data including identifiers, titles, pricing, availability, media, ratings, classification, and offer details.

### Why use this scraper?

Sharaf DG is one of the most trusted electronics destinations in the Gulf region, with over 1 million customers visiting its stores monthly. Collecting product data manually across thousands of listings and multiple markets is not feasible. This scraper provides structured product records that can be used for:

- 📊 Monitoring electronics prices and discounts across GCC markets.
- 🏷️ Tracking promotions, bundle offers, and instant rebates in real time.
- 📦 Building product catalogues across categories like mobiles, laptops, TVs, and appliances.
- 🔍 Comparing products, brands, and pricing across Saudi Arabia, UAE, Egypt, Bahrain, and Oman.
- 📈 Powering price intelligence dashboards and market research tools.
- 🤖 Feeding AI and enrichment pipelines with structured retail data.
- 🛍️ Tracking stock availability and delivery options across the region.

### Supported markets

| Country      | URL                            |
| ------------ | ------------------------------ |
| Saudi Arabia | `https://saudi.sharafdg.com`   |
| UAE          | `https://uae.sharafdg.com`     |
| Egypt        | `https://egypt.sharafdg.com`   |
| Bahrain      | `https://bahrain.sharafdg.com` |
| Oman         | `https://oman.sharafdg.com`    |

### Supported URL types

| Type                    | Example                                                                                        |
| ----------------------- | ---------------------------------------------------------------------------------------------- |
| Category                | `https://saudi.sharafdg.com/en/c/mobiles_tablets/`                                             |
| Category                | `https://saudi.sharafdg.com/en/c/mobiles_tablets/mobiles/`                                     |
| Category                | `https://saudi.sharafdg.com/en/c/computing/laptops/clamshell_laptops/`                         |
| Category + brand filter | `https://saudi.sharafdg.com/en/c/mobiles_tablets/mobiles/?dFR[taxonomies.attr.Brand][0]=Apple` |
| Brand                   | `https://saudi.sharafdg.com/en/brand/samsung/`                                                 |
| Search                  | `https://egypt.sharafdg.com/?q=lg&dFR[taxonomies.attr.Brand][0]=LG`                            |
| Search + price range    | `https://egypt.sharafdg.com/?q=lg&nR[price][%3C=][0]=59999&nR[price][%3E=][0]=53069`           |
| Arabic                  | `https://saudi.sharafdg.com/ar/c/mobiles_tablets/`                                             |

> **Note:** Campaign and vanity URLs like `/en/buy-iphone/` or `/en/macbooks/` are not supported. Use an equivalent category or search URL instead. For example, instead of `/en/buy-iphone/`, use `/en/c/mobiles_tablets/mobiles/?dFR[taxonomies.attr.Brand][0]=Apple`.

### Input fields

| Field                | Type   | Description                                                   |
| -------------------- | ------ | ------------------------------------------------------------- |
| `startUrls`          | array  | Sharaf DG category, brand, or search URLs to scrape.          |
| `maxItems`           | number | Maximum number of products to scrape per URL. Defaults to 50. |
| `proxyConfiguration` | object | Optional proxy settings.                                      |

### Example input

```json
{
  "startUrls": [{ "url": "https://saudi.sharafdg.com/en/c/mobiles_tablets/mobiles/" }],
  "maxItems": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

### Output

Each scraped product is stored as one record in the dataset.

### Example output

```json
{
  "scraped_at": "2026-08-17T20:05:27.029Z",
  "url": "https://saudi.sharafdg.com/en/product/honor-magic-v6-5g-512gb-16gb-ram-black-dual-sim-smartphone/",
  "id": 41715,
  "title": "Honor Magic V6 5G 512GB 16GB RAM Black Dual Sim Smartphone",
  "title_ar": "هونر ماجيك V6 (512 جيجابايت، 16 جيجابايت) ثنائي الشريحة يدعم 5G لون أسود",
  "sku": "1398625",
  "country": "SA",
  "pricing": {
    "current_price": 6899,
    "checkout_price": 6899,
    "original_price": 7839.86,
    "discounted_price": 6899,
    "discount_percent": 12,
    "discount_amount": 941
  },
  "availability": {
    "in_stock": true,
    "delivery_options": ["BULLET", "NEXTDAY", "SAMEDAY"]
  },
  "media": {
    "image": "https://pimcdn.sharafdg.com/cdn-cgi/image/width=300,height=300,fit=pad/images/S600972715_1?1785929230"
  },
  "ratings": {
    "score": null,
    "review_count": null
  },
  "classification": {
    "brand": "Honor",
    "categories": ["Mobiles & Tablets", "Mobiles & Tablets > Mobiles"],
    "tags": []
  },
  "offer": {
    "sold_by": "sdg",
    "deal_type": "foc",
    "bundle_items": ["PanzerGlass Screen Protector for Phone (rTPU)"]
  }
}
```

### Field reference

| Field                           | Description                                                                                   |
| ------------------------------- | --------------------------------------------------------------------------------------------- |
| `scraped_at`                    | Timestamp of when the product was scraped.                                                    |
| `url`                           | English product page URL.                                                                     |
| `id`                            | Unique Sharaf DG product identifier.                                                          |
| `title`                         | Product title in English.                                                                     |
| `title_ar`                      | Product title in Arabic.                                                                      |
| `sku`                           | Product SKU identifier.                                                                       |
| `country`                       | ISO country code of the market, e.g. `"SA"`, `"AE"`, `"EG"`.                                  |
| `pricing.current_price`         | Current listed price.                                                                         |
| `pricing.checkout_price`        | Actual price at checkout, which may differ from the listed price for instant rebates.         |
| `pricing.original_price`        | Original pre-discount price.                                                                  |
| `pricing.discounted_price`      | Discounted sale price, when applicable.                                                       |
| `pricing.discount_percent`      | Discount percentage, when applicable.                                                         |
| `pricing.discount_amount`       | Discount amount in local currency, when applicable.                                           |
| `availability.in_stock`         | Whether the product is currently in stock.                                                    |
| `availability.delivery_options` | Available delivery methods, e.g. `"NEXTDAY"`, `"SAMEDAY"`, `"CLICK_AND_COLLECT"`.             |
| `media.image`                   | Product image URL.                                                                            |
| `ratings.score`                 | Average customer rating, when available.                                                      |
| `ratings.review_count`          | Number of customer reviews, when available.                                                   |
| `classification.brand`          | Product brand name.                                                                           |
| `classification.categories`     | Category hierarchy the product belongs to.                                                    |
| `classification.tags`           | Promotional tags applied to the product, e.g. `"NEW LAUNCH"`, `"Online Exclusive"`.           |
| `offer.sold_by`                 | Seller code, e.g. `"sdg"` for Sharaf DG directly.                                             |
| `offer.deal_type`               | Offer type: `"base"` (regular price), `"ir"` (instant rebate), or `"foc"` (free gift bundle). |
| `offer.bundle_items`            | Names of free items bundled with the product, when `deal_type` is `"foc"`.                    |

### ❓ FAQ

**What types of URLs can I provide?**

The scraper supports category, brand, and search URLs across all 5 supported markets, with or without the `/en/` or `/ar/` language prefix. Brand, category, and price filter parameters are all supported.

**Can I scrape multiple markets at once?**

Yes. Add URLs from different market subdomains to `startUrls` and the scraper will process each independently.

**Can I filter by brand within a category?**

Yes. Append `dFR[taxonomies.attr.Brand][0]=Samsung` to any category URL to filter by brand. Multiple brands can be specified with `[0]`, `[1]`, etc.

**Can I filter by price range?**

Yes. Use `nR[price][%3C=][0]=5000&nR[price][%3E=][0]=1000` to filter products within a price range.

***

### 🔗 Want More Data in the MENA Market?

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

[OpenSooq السوق المفتوح Scraper](https://apify.com/boring_internet_explorer/opensooq-scraper) — Scrape structured listing data from OpenSooq, the largest classifieds marketplace in MENA. Extract titles, prices, locations, seller info, media, and category details across 20 markets and 17 categories.

[Haraj حراج Scraper](https://apify.com/boring_internet_explorer/haraj-scraper) — Scrape structured listing data from haraj.com.sa, Saudi Arabia's most popular classifieds platform.

[Soum سوم Product Scraper](https://apify.com/boring_internet_explorer/soum-scraper) — Scrape detailed product data from soum.sa, Saudi Arabia's marketplace for new and used products.

[eXtra - اكسترا Product Scraper](https://apify.com/boring_internet_explorer/extra-scraper) — Extract product data from extra.com across Saudi Arabia, Oman, and Bahrain.

[🥷🏽 Ninja نينجا Product Scraper](https://apify.com/boring_internet_explorer/ninja-product-scraper) — Extract product data from ananinja.com across groceries, pharmacy, beauty, and household products.

[Jarir جرير Product Scraper](https://apify.com/boring_internet_explorer/jarir-scraper) — Scrape product data from jarir.com across all 5 GCC storefronts.

***

### 🛠️ Need a custom extension?

Need this scraper adapted to your use case — extra fields, additional filters, a different output format, or a new market? Just reach out 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://saudi.sharafdg.com/en/c/mobiles_tablets/mobiles/"
    }
  ],
  "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://saudi.sharafdg.com/en/c/mobiles_tablets/mobiles/"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("boring_internet_explorer/sharafdg-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://saudi.sharafdg.com/en/c/mobiles_tablets/mobiles/" }] }

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

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,boring_internet_explorer/sharafdg-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/zScr3EPs1BWqjo32e/builds/Rg7KWSKkIlFTph5BJ/openapi.json
