# Carrefour كارفور Scraper - 7 Markets - Prices & Stock (`boring_internet_explorer/carrefour-scraper`) Actor

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.

- **URL**: https://apify.com/boring\_internet\_explorer/carrefour-scraper.md
- **Developed by:** [Boring Internet Explorer](https://apify.com/boring_internet_explorer) (community)
- **Categories:** E-commerce, Developer tools, Automation
- **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/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

## 🛒 Carrefour كارفور Product Scraper

Scrapes structured product data from **Carrefour** across 7 markets in the Middle East, Africa, and South Asia. Carrefour is one of the world's largest retail chains, operating hundreds of hypermarkets and express stores across the region through its MAF Retail partnership.

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

### Why use this scraper?

Carrefour serves millions of customers across the MENA region, with tens of thousands of SKUs spanning food, electronics, fashion, and household goods. 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 7 regional markets simultaneously.
- 🏷️ Tracking promotions, deals, and sponsored products in real time.
- 📦 Building product catalogues across food, electronics, fashion, and household categories.
- 🔍 Comparing products, brands, and pricing across KSA, UAE, Egypt, Qatar, Pakistan, Lebanon, and Kenya.
- 📈 Powering price intelligence dashboards and market research tools.
- 🤖 Feeding AI and enrichment pipelines with structured retail data.
- 🛍️ Tracking stock availability and express delivery options across the region.

### Supported markets

| Country      | Domain                     |
| ------------ | -------------------------- |
| Saudi Arabia | `www.carrefourksa.com`     |
| UAE          | `www.carrefouruae.com`     |
| Egypt        | `www.carrefouregypt.com`   |
| Qatar        | `www.carrefourqatar.com`   |
| Pakistan     | `www.carrefour.pk`         |
| Lebanon      | `www.carrefourlebanon.com` |
| Kenya        | `www.carrefour.ke`         |

### Supported URL types

| Type                   | Example                                                                                        |
| ---------------------- | ---------------------------------------------------------------------------------------------- |
| Category               | `https://www.carrefourksa.com/mafsau/en/c/NFKSA1200000`                                        |
| Category + filter      | `https://www.carrefouruae.com/mafuae/en/c/F6060000?filter=brand_name%3A%27Samsung%27`          |
| Category + price range | `https://www.carrefouruae.com/mafuae/en/c/NF1200000?minPrice=430&maxPrice=1897`                |
| Category + size filter | `https://www.carrefourksa.com/mafsau/en/c/FKSA1620000?filter=size%3A%27200g%27`                |
| Search                 | `https://www.carrefouruae.com/mafuae/en/search?keyword=laptop`                                 |
| Search + filter        | `https://www.carrefouruae.com/mafuae/en/search?keyword=milk&filter=brand_name%3A%27Almarai%27` |
| Search + price range   | `https://www.carrefouruae.com/mafuae/en/search?keyword=phone&minPrice=500&maxPrice=2000`       |

### Input fields

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

### Example input

```json
{
  "startUrls": [{ "url": "https://www.carrefourksa.com/mafsau/en/c/NFKSA1200000" }],
  "maxItems": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

### Output

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

### Example output

```json
{
  "scrapedAt": "2026-08-23T16:26:14.603Z",
  "url": "https://www.carrefourksa.com/mafsau/en/smartphones/honor-mobile-x9d-256gb-12gb-5g-bwn/p/756284?offer=offer_carrefour_&sid=EXPRESS&sellerId=0000",
  "id": "756284",
  "name": "HONOR X9D Smartphone – 256GB Storage, 12GB RAM – 5G – AI Technology – Brown",
  "brand": null,
  "price": 1499,
  "originalPrice": "1599.00",
  "currency": "SAR",
  "inStock": false,
  "stockLevel": "lowStock",
  "stockQty": 1,
  "maxQty": 1,
  "image": "https://cdn.mafrservices.com/pim-content/SAU/media/product/756284/1761547204/756284_main.jpg?im=Resize=(300,300)",
  "sponsored": false,
  "promotion": null,
  "categoryId": "NFKSA1200000",
  "categories": ["nfksa1200000"],
  "type": "NONFOOD",
  "express": true,
  "fulfillment": "EXPRESS",
  "globalShipping": false,
  "soldByWeight": false,
  "country": "www.carrefourksa.com",
  "storeId": "mafsau",
  "lang": "en",
  "urlType": "CATEGORY",
  "keyword": null,
  "filter": null
}
```

### Field reference

| Field            | Description                                                                                       |
| ---------------- | ------------------------------------------------------------------------------------------------- |
| `scrapedAt`      | Timestamp of when the product was scraped (ISO 8601).                                             |
| `url`            | Full product page URL including offer, fulfillment, and seller query params.                      |
| `id`             | Unique Carrefour product identifier.                                                              |
| `name`           | Product name as shown on the listing page.                                                        |
| `brand`          | Brand name, extracted from analytics data. `null` if not available.                               |
| `price`          | Current selling price in local currency.                                                          |
| `originalPrice`  | Pre-discount price, when the product is on sale. `null` if no discount.                           |
| `currency`       | ISO currency code for the market, e.g. `"SAR"`, `"AED"`, `"EGP"`.                                 |
| `inStock`        | Whether the product is currently in stock.                                                        |
| `stockLevel`     | Stock status from the API: `"inStock"` or `"lowStock"`.                                           |
| `stockQty`       | Remaining stock quantity, populated when `stockLevel` is `"lowStock"`.                            |
| `maxQty`         | Maximum quantity a customer can order.                                                            |
| `image`          | Product thumbnail image URL.                                                                      |
| `sponsored`      | Whether the product is a sponsored listing.                                                       |
| `promotion`      | Promotion tag applied to the product, e.g. `"lowest_price"`, `"bundle_campaign"`. `null` if none. |
| `categoryId`     | Category ID from the start URL, e.g. `"NFKSA1200000"`. `null` for search results.                 |
| `categories`     | Category hierarchy IDs the product belongs to.                                                    |
| `type`           | Product type: `"FOOD"` or `"NONFOOD"`.                                                            |
| `express`        | Whether the product is available for express delivery.                                            |
| `fulfillment`    | Fulfillment method: `"EXPRESS"`, `"SLOTTED"`, `"DEFAULT"`, etc.                                   |
| `globalShipping` | Whether the product supports international shipping.                                              |
| `soldByWeight`   | Whether the product is sold by weight rather than unit.                                           |
| `country`        | Domain of the market the product was scraped from.                                                |
| `storeId`        | Store identifier for the market, e.g. `"mafsau"`, `"mafuae"`.                                     |
| `lang`           | Language of the start URL: `"en"` or `"ar"`.                                                      |
| `urlType`        | Source URL type: `"CATEGORY"` or `"SEARCH"`.                                                      |
| `keyword`        | Search keyword used, when `urlType` is `"SEARCH"`. `null` for category scrapes.                   |
| `filter`         | Filter string applied to the URL, e.g. `"brand_name:'Samsung'"`. `null` if none.                  |

### ❓ FAQ

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

The scraper supports category and search URLs across all 7 supported markets, with or without filters, price ranges, and size filters.

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

Yes. Add URLs from different market domains 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 filter by brand within a category?**

Yes. Append `filter=brand_name%3A%27Samsung%27` to any category URL to filter by brand. Multiple brands and filter types (size, country of origin, deals, etc.) can be combined using `%26` as a separator.

**Can I filter by price range?**

Yes. Append `minPrice=500&maxPrice=2000` to any category or search URL to filter 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.

[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://www.carrefourksa.com/mafsau/en/c/NFKSA1200000"
    }
  ],
  "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.carrefourksa.com/mafsau/en/c/NFKSA1200000"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("boring_internet_explorer/carrefour-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.carrefourksa.com/mafsau/en/c/NFKSA1200000" }] }

# Run the Actor and wait for it to finish
run = client.actor("boring_internet_explorer/carrefour-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://www.carrefourksa.com/mafsau/en/c/NFKSA1200000"
    }
  ]
}' |
apify call boring_internet_explorer/carrefour-scraper --silent --output-dataset

```

## MCP server setup

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