# Lulu Hypermarket لولو هايبرماركت Scraper – Scrape 6 GCC Markets (`boring_internet_explorer/lulu-scraper`) Actor

Extract rich product data from Lulu Hypermarket لولو هايبرماركت across KSA, UAE, Qatar, Oman, Kuwait & Bahrain. Collect prices, availability, images, EAN, brand, categories & dietary attributes from grocery, electronics & fresh food — structured, clean, and ready for analysis.

- **URL**: https://apify.com/boring\_internet\_explorer/lulu-scraper.md
- **Developed by:** [Boring Internet Explorer](https://apify.com/boring_internet_explorer) (community)
- **Categories:** E-commerce, Developer tools, Automation
- **Stats:** 3 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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🛒 Lulu Hypermarket لولو هايبرماركت Product Scraper

Scrapes structured product data from **Lulu Hypermarket** across 6 markets in the GCC region. Lulu Hypermarket is one of the largest retail chains in the Middle East, operating hundreds of hypermarkets across the Gulf with a wide range of grocery, fresh food, electronics, and home living products.

Given a Lulu Hypermarket **category or search URL**, the scraper collects product information and returns structured data including identifiers, names, pricing, availability, images, and delivery details.

### Why use this scraper?

Lulu Hypermarket serves millions of customers across the GCC region, with tens of thousands of SKUs spanning grocery, fresh food, electronics, and home living. Collecting product data manually across this many listings and markets is not feasible. This scraper provides structured product records that can be used for:

- 📊 Monitoring prices and discounts across 6 regional markets simultaneously.
- 🛒 Tracking product availability and stock levels in real time.
- 📦 Building product catalogues across grocery, fresh food, electronics, and home living categories.
- 🔍 Comparing products, brands, and pricing across KSA, UAE, Qatar, Oman, Kuwait, and Bahrain.
- 📝 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      | Locale                          |
| ------------ | ------------------------------- |
| Saudi Arabia | `gcc.luluhypermarket.com/en-sa` |
| UAE          | `gcc.luluhypermarket.com/en-ae` |
| Qatar        | `gcc.luluhypermarket.com/en-qa` |
| Oman         | `gcc.luluhypermarket.com/en-om` |
| Kuwait       | `gcc.luluhypermarket.com/en-kw` |
| Bahrain      | `gcc.luluhypermarket.com/en-bh` |

### Supported URL types

| Type        | Example                                                                          |
| ----------- | -------------------------------------------------------------------------------- |
| Category    | `https://gcc.luluhypermarket.com/en-sa/grocery-food-cupboard/`                   |
| Subcategory | `https://gcc.luluhypermarket.com/en-sa/grocery-food-cupboard-breakfast-spreads/` |
| Search      | `https://gcc.luluhypermarket.com/en-sa/list/?search_text=milk`                   |

### Proxy requirements

A proxy is required to run this scraper on Apify or any cloud environment. Datacenter proxies are sufficient — residential proxies are not required.

Without a proxy, the scraper will log 🚫 Blocked by Cloudflare and return no data.

### Input fields

| Field                | Type   | Description                                                                                  |
| -------------------- | ------ | -------------------------------------------------------------------------------------------- |
| `startUrls`          | array  | Lulu Hypermarket category or search URLs to scrape.                                          |
| `maxItems`           | number | Maximum number of products to scrape per URL. Defaults to 5.                                 |
| `proxyConfiguration` | object | Optional proxy settings. Datacenter proxies are strongly recommended for multi-market runs. |

### Example input

```json
{
  "startUrls": [
    {
      "url": "https://gcc.luluhypermarket.com/en-sa/grocery-food-cupboard/"
    }
  ],
  "maxItems": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

### Output

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

### Example output

```json
{
  "scrapedAt": "2026-08-24T22:35:24.434Z",
  "url": "https://gcc.luluhypermarket.com/en-sa/almarai-full-fat-long-life-milk-4-x-1-litre/p/943568-ch1/",
  "id": 55033,
  "title": "Almarai Full Fat Long Life Milk 4 x 1 Litre",
  "sku": "943568_CH1",
  "baseCode": "943568",
  "brand": "Almarai",
  "price": 23.95,
  "retailPrice": 23.95,
  "currency": "sar",
  "discountAmount": 0,
  "discountRatio": 0,
  "inStock": true,
  "stockCount": 132,
  "images": [
    "https://bf1af2.akinoncloudcdn.com/products/2026/06/04/70544/801af59b-3eb0-4543-a428-921baacf71fb.jpg"
  ],
  "description": null,
  "shortDescription": "Al Marai UHT Milk F/Fat 1Ltr",
  "bulletPoints": [
    "Enjoy the rich and creamy taste of Almarai Full Fat Long Life Milk",
    "Made from 100% fresh cow's milk",
    "Delivers a smooth texture and full-bodied flavor",
    "Contains essential vitamins, minerals & source of protein"
  ],
  "ean": "6281007032391,6281007054652",
  "mainEan": "6281007032391",
  "content": "4 x 1 Litre",
  "category1": "Grocery",
  "category2": "Food Cupboard",
  "category3": "Beverages",
  "productType": "UHT Milk",
  "isOrganic": false,
  "isGlutenFree": false,
  "isLactoseFree": false,
  "isSugarFree": false,
  "isVegan": false,
  "packVariantType": "Single Material",
  "unitType": "qty",
  "taxRate": 5,
  "grossWeight": null,
  "dimensions": {
    "length": "0",
    "width": "0",
    "volume": "0"
  },
  "keywords": ["uht milk", "long life milk", "full cream milk", "almarai", "milk"],
  "shippingType": "Quick"
}
```

### Field reference

| Field              | Description                                             |
| ------------------ | ------------------------------------------------------- |
| `scrapedAt`        | ISO timestamp of when the product was scraped.          |
| `url`              | Full product page URL.                                  |
| `id`               | Internal product ID.                                    |
| `title`            | Full product name.                                      |
| `sku`              | Stock keeping unit identifier.                          |
| `baseCode`         | Base product code.                                      |
| `brand`            | Brand name.                                             |
| `price`            | Current selling price.                                  |
| `retailPrice`      | Original retail price before any discount.              |
| `currency`         | Currency code for the market, e.g. `sar`, `aed`, `qar`. |
| `discountAmount`   | Absolute discount value.                                |
| `discountRatio`    | Discount as a ratio (0–1).                              |
| `inStock`          | Whether the product is currently available.             |
| `stockCount`       | Number of units available.                              |
| `images`           | List of product image URLs, sorted by display order.    |
| `description`      | Full product description.                               |
| `shortDescription` | Short internal product description.                     |
| `bulletPoints`     | Marketing bullet points for the product.                |
| `ean`              | EAN barcodes, comma-separated.                          |
| `mainEan`          | Primary EAN barcode.                                    |
| `content`          | Pack size or content description, e.g. `4 x 1 Litre`.   |
| `category1`        | Top-level category.                                     |
| `category2`        | Second-level category.                                  |
| `category3`        | Third-level category.                                   |
| `productType`      | Lulu internal product type classification.              |
| `isOrganic`        | Whether the product is organic.                         |
| `isGlutenFree`     | Whether the product is gluten-free.                     |
| `isLactoseFree`    | Whether the product is lactose-free.                    |
| `isSugarFree`      | Whether the product is sugar-free.                      |
| `isVegan`          | Whether the product is vegan.                           |
| `packVariantType`  | Pack variant type, e.g. `Single Material`.              |
| `unitType`         | Unit of sale, e.g. `qty`.                               |
| `taxRate`          | VAT rate applied to the product.                        |
| `grossWeight`      | Gross weight of the product.                            |
| `dimensions`       | Product dimensions including length, width, and volume. |
| `keywords`         | Search keywords associated with the product.            |
| `shippingType`     | Delivery type, e.g. `Quick` or `Scheduled delivery`.    |

### ❓ FAQ

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

The scraper supports category and search URLs across all 6 supported GCC markets.

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

Yes. Add URLs from different market locales to `startUrls` and the scraper will process each independently. Residential proxies are strongly recommended when scraping multiple markets in the same run to avoid IP-level rate limiting.

**Can I scrape subcategories?**

Yes. Any subcategory URL that extends beyond the top-level categories is supported, e.g. `grocery-food-cupboard-breakfast-spreads`.

***

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

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

[Carrefour كارفور Scraper - 7 Markets - Prices & Stock](https://apify.com/boring_internet_explorer/carrefour-scraper) - Scrape product data from Carrefour كارفور across 7 markets — KSA, UAE, Egypt, Qatar, Pakistan, Lebanon, and Kenya. Extracts names, prices, discounts, stock levels, images, promotions, brands, and delivery details. Supports category and search URLs with brand, size, and price filters.

[OpenSooq السوق المفتوح Scraper](https://apify.com/boring_internet_explorer/opensooq-scraper) — Scrape structured listing data from OpenSooq, the largest classifieds marketplace in MENA.

[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.

[Sharaf DG شرف دي جي Product Scraper](https://apify.com/boring_internet_explorer/sharaf-dg-scraper) — Scrape product data from sharafdg.com across UAE, Saudi Arabia, Egypt, Bahrain, and Oman.

[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://gcc.luluhypermarket.com/en-sa/grocery-food-cupboard/"
    }
  ],
  "maxItems": 5,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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://gcc.luluhypermarket.com/en-sa/grocery-food-cupboard/"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("boring_internet_explorer/lulu-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://gcc.luluhypermarket.com/en-sa/grocery-food-cupboard/" }] }

# Run the Actor and wait for it to finish
run = client.actor("boring_internet_explorer/lulu-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://gcc.luluhypermarket.com/en-sa/grocery-food-cupboard/"
    }
  ]
}' |
apify call boring_internet_explorer/lulu-scraper --silent --output-dataset

```

## MCP server setup

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