Carrefour MAF Scraper
Pricing
from $1.59 / 1,000 products
Carrefour MAF Scraper
Scrape Carrefour UAE, KSA, Egypt, Qatar and 6 more MAF stores: prices, discounts, stock, brand, seller, ratings and categories. Search, category, product ID or URL, with change tracking.
Pricing
from $1.59 / 1,000 products
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
1
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Share
Carrefour MAF Scraper
Carrefour MAF Scraper extracts product data from the Majid Al Futtaim Carrefour online stores in the UAE, Saudi Arabia, Egypt, Qatar, Lebanon, Pakistan and Kenya, plus HyperMax in Bahrain, Jordan and Oman, by keyword, category, product ID or URL.
| Search 10 Carrefour and HyperMax stores in English or Arabic, scrape whole categories past the store's 1,260-product listing limit, track a basket of product IDs with quantities, and output only the prices and stock levels that changed since your last run. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Carrefour MAF Scraper (Apify actor parsebird/carrefour-maf-scraper) scrapes products from Majid Al Futtaim Carrefour stores: carrefouruae.com (mafuae, AED), carrefourksa.com (mafsau, SAR), carrefouregypt.com (mafegy, EGP), carrefourqatar.com (mafqat, QAR), carrefourlebanon.com (maflbn, LBP), carrefour.pk (mafpak, PKR), carrefour.ke (mafken, KES) and HyperMax hypermax.com.bh (mafbhr, BHD), hypermax.com.jo (mafjor, JOD), hypermax.com.om (mafomn, OMR). Call it with the Apify API client: client.actor("parsebird/carrefour-maf-scraper").call(run_input={"queries": ["milk"], "market": "mafuae", "maxResults": 100}). Inputs: queries (array of keywords); startUrls (array of {url}: search URLs /<market>/<lang>/search?keyword=..., category URLs /<market>/<lang>/c/<categoryId>, product URLs .../p/<productId>; market and language come from the URL, search URLs keep sortBy, filter, minPrice, maxPrice); productIds (array of product IDs or product URLs; IDs are per market and are looked up in the selected markets, URLs carry their market); categoryIds (array of category IDs like F21600000 or category names like "Dairy & Eggs"; IDs differ per market, names work in all); market (string, default "mafuae"); markets (array, overrides market); language ("en" or "ar", default "en"); sortBy ("relevance", "price_asc", "price_desc"); brands (array of brand names); minPrice, maxPrice (integers, market currency); dealsOnly, fulfilledByCarrefour, inStockOnly (booleans); categories (array of words matched against the category path after the search); maxResults (integer, default 100, 0 = all); compact (boolean); quantities (object {productId: quantity}); incrementalMode (boolean), stateKey (string), emitUnchanged (boolean), emitExpired (boolean); proxyConfiguration. Output: one row per product with productId, title, brand, url, imageUrl, images, price, regularPrice, displayPrice, currency, onSale, discountPercent, unitPrice, packSize, inStock, stockStatus, stockQuantity, stockNote, minOrderQuantity, maxOrderQuantity, soldByWeight, rating, reviewCount, sellerName, sellerId, offerId, isMarketplaceOffer, serviceType, productType, isExpress, isSponsored, isGlobalStore, hasWarranty, countryOfOrigin, badges, coupons, promotionTags, deliveryEstimate, categoryIds, categoryNames, category, market, storeName, country, countryCode, language, searchQuery, quantity, linePrice, scrapedAt, contentHash, and in incremental mode changeType (NEW, UPDATED, UNCHANGED, REAPPEARED, EXPIRED) and previousPrice. API docs: https://apify.com/parsebird/carrefour-maf-scraper/api. Get a token: https://console.apify.com/settings/integrations
What is Carrefour MAF Scraper?
Carrefour MAF Scraper turns the online stores of Majid Al Futtaim (MAF), the Carrefour franchise holder in the Middle East, Africa and Asia, into structured data. It covers Carrefour UAE, Carrefour Saudi Arabia, Carrefour Egypt, Carrefour Qatar, Carrefour Lebanon, Carrefour Pakistan, Carrefour Kenya and the HyperMax stores in Bahrain, Jordan and Oman, which run on the same platform.
Give it a keyword like milk, a category like Dairy & Eggs, a list of product IDs or any store link, and it returns every matching product with price, regular price, discount, unit price, stock level, brand, seller, rating, delivery estimate and category path. It works as a Carrefour API alternative: no account, no login, no browser. To try it, keep the example keyword milk, click Start, and download your Carrefour product data as JSON, CSV or Excel a few seconds later.
What can Carrefour MAF Scraper do?
- 🔎 Search by keyword in one store or in several at once, in English or Arabic.
- 🗂️ Scrape whole categories by category ID or by name. Names such as
Dairy & Eggswork in every market, even though each market has its own IDs. - 🔗 Paste store URLs: search pages keep their sort order and filters, category pages scrape the category, product pages return that product.
- 🧺 Track a basket: list product IDs or product URLs and get
quantityandlinePricefor each line. - 🔔 Monitor changes: incremental mode outputs only products that are new or whose price, stock, seller or discount changed since the last run, and can flag products that disappeared.
- 🏷️ Filter like the site: brand, price range, Today's Deals, Fulfilled by Carrefour, in-stock only, and sort by price.
- 📈 No listing limit: the store shows at most 1,260 products per search. Bigger searches and categories are split into price ranges automatically, so you get all of them.
- 🤖 Compact output with only the core fields, for AI agents and spreadsheets.
As an Apify Actor it also gives you scheduling for daily price monitoring, a REST API, integrations with Google Sheets, Zapier, Make, Slack and webhooks, and exports to JSON, CSV, Excel, XML and HTML.
What data can you extract from Carrefour?
| Field | Description |
|---|---|
productId | Carrefour product ID, the number at the end of product URLs |
title, brand | Product name and brand, as shown in the store |
price, regularPrice | Current selling price and the price before discount |
discountPercent, onSale | Discount shown on the product card, or calculated from the two prices |
unitPrice, packSize | Price per litre or kilo and pack size, e.g. "AED 6.15 per Liter" and "2L" |
inStock, stockStatus, stockQuantity | Stock level (inStock, lowStock, outOfStock) and units left when the store shows them |
minOrderQuantity, maxOrderQuantity | Order limits per customer |
sellerName, isMarketplaceOffer | Who sells the product: Carrefour or a marketplace seller |
rating, reviewCount | Star rating and number of ratings, when the product has them |
badges, coupons, promotionTags | Labels such as BESTSELLER, "Ends in 3 days", "Fulfilled by Carrefour" and coupon codes |
deliveryEstimate | Delivery slot or time shown on the card, e.g. "120 mins" |
categoryIds, categoryNames, category | Category path of the product |
countryOfOrigin | Origin country, when the store lists it |
images, imageUrl, url | Full-size product images and product page link |
market, country, currency, language | Store, country, currency and language of the row |
quantity, linePrice | Basket quantity and price × quantity |
changeType, previousPrice | Incremental mode: NEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED, and the price at the last run |
How to scrape Carrefour
- Open Carrefour MAF Scraper in Apify Console.
- Enter one or more keywords in Search queries, or paste Carrefour links in Start URLs.
- Pick the Market (or several Markets) and the Language.
- Optionally add brands, a price range or other filters, and set Max results.
- Click Start and wait for the run to finish.
- Download the data from the Output tab as JSON, CSV, Excel, XML or HTML, or read it through the API.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| queries | array | No* | — | Product keywords, one search each |
| startUrls | array | No* | — | Carrefour MAF search, category or product URLs |
| productIds | array | No* | — | Product IDs or product URLs to look up in each selected market |
| categoryIds | array | No* | — | Category IDs (e.g. F21600000) or category names (e.g. Dairy & Eggs) |
| market | string | No | mafuae | Store to scrape: mafuae, mafsau, mafegy, mafqat, maflbn, mafpak, mafken, mafbhr, mafjor, mafomn |
| markets | array | No | — | Several stores in one run; overrides market |
| language | string | No | en | en or ar |
| sortBy | string | No | relevance | relevance, price_asc or price_desc |
| brands | array | No | — | Only these brands |
| minPrice / maxPrice | integer | No | — | Price range in the market's currency |
| dealsOnly | boolean | No | false | Only Today's Deals |
| fulfilledByCarrefour | boolean | No | false | Only products fulfilled by Carrefour |
| inStockOnly | boolean | No | false | Leave out out-of-stock products |
| categories | array | No | — | Keep products whose category path contains one of these words |
| maxResults | integer | No | 100 | Maximum products for the whole run; 0 = all |
| compact | boolean | No | false | Core fields only |
| quantities | object | No | — | Basket quantities, e.g. {"1872989": 2} |
| incrementalMode | boolean | No | false | Output only new and changed products |
| stateKey | string | No | default | Name of the saved baseline for incremental mode |
| emitUnchanged | boolean | No | false | Also output unchanged products in incremental mode |
| emitExpired | boolean | No | false | Also output tracked products that are no longer listed |
| proxyConfiguration | object | No | Apify Proxy | Proxy settings |
*Add at least one of queries, startUrls, productIds or categoryIds.
Supported markets
| Market code | Store | Currency |
|---|---|---|
mafuae | Carrefour UAE (carrefouruae.com) | AED |
mafsau | Carrefour Saudi Arabia (carrefourksa.com) | SAR |
mafegy | Carrefour Egypt (carrefouregypt.com) | EGP |
mafqat | Carrefour Qatar (carrefourqatar.com) | QAR |
maflbn | Carrefour Lebanon (carrefourlebanon.com) | LBP |
mafpak | Carrefour Pakistan (carrefour.pk) | PKR |
mafken | Carrefour Kenya (carrefour.ke) | KES |
mafbhr | HyperMax Bahrain (hypermax.com.bh) | BHD |
mafjor | HyperMax Jordan (hypermax.com.jo) | JOD |
mafomn | HyperMax Oman (hypermax.com.om) | OMR |
Input examples
Basic search:
{ "queries": ["milk"], "maxResults": 50 }
Basket tracking with quantities:
{"productIds": ["1872989", "1902805", "11530"],"market": "mafuae","quantities": { "1872989": 2, "1902805": 3 }}
Daily price monitoring of a category, outputting only changes:
{"categoryIds": ["Dairy & Eggs"],"maxResults": 0,"incrementalMode": true,"stateKey": "uae-dairy","emitExpired": true}
Output example
[{"productId": "1902805","title": "Carrefour Full Fat Fresh Milk, 3.8L","brand": "Carrefour","url": "https://www.carrefouruae.com/mafuae/en/full-fat-milk/crf-fresh-milk-ff-1-gallon/p/1902805","imageUrl": "https://cdn.mafrservices.com/pim-content/UAE/media/product/1902805/1783407600/1902805_main.jpg","price": 14.99,"regularPrice": 19.99,"currency": "AED","onSale": true,"discountPercent": 25.0,"unitPrice": "AED 3.94 per Liter","packSize": "3.8L","inStock": true,"stockStatus": "inStock","maxOrderQuantity": 5,"sellerName": "Carrefour","isMarketplaceOffer": false,"productType": "FOOD","countryOfOrigin": "United Arab Emirates","badges": ["Ends in 3 days", "BESTSELLER"],"deliveryEstimate": "Tod. 6:30 PM","categoryIds": ["F1600000", "F21600000", "F21630500", "F21630502"],"categoryNames": ["Fresh Food", "Dairy & Eggs", "Milk & Laban"],"category": "Milk & Laban","market": "mafuae","country": "United Arab Emirates","language": "en","searchQuery": "milk","quantity": 3,"linePrice": 44.97,"scrapedAt": "2026-10-26T11:46:39.676Z"},{"productId": "2258798","title": "Apple iPhone 17 Pro ,256 GB, Silver, 5G","brand": "Apple","price": 3998.0,"regularPrice": 4299.0,"currency": "AED","discountPercent": 7.0,"inStock": true,"stockStatus": "lowStock","stockQuantity": 3,"stockNote": "Only 3 left","rating": 5.0,"reviewCount": 43,"sellerName": "SAFE TEL","isMarketplaceOffer": true,"hasWarranty": true,"badges": ["Fulfilled by Carrefour"],"coupons": ["Up to 250 AED off | Code BUZZMAX"],"deliveryEstimate": "120 mins","categoryNames": ["Smartphones, Tablets & Wearables", "Smartphones & Wearables", "Smartphones"],"market": "mafuae","searchQuery": "iphone 16"}]
The second row is shortened. Every row has the same fields; see the table above.
How to use the Carrefour Scraper API
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("parsebird/carrefour-maf-scraper").call(run_input={"queries": ["rice", "olive oil"],"markets": ["mafuae", "mafsau"],"sortBy": "price_asc","maxResults": 200,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["market"], item["title"], item["price"], item["currency"])
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('parsebird/carrefour-maf-scraper').call({productIds: ['1872989', '1902805'],markets: ['mafuae', 'mafqat'],quantities: { '1872989': 2 },});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach((item) => console.log(item.market, item.title, item.linePrice));
Get your token in Apify Console → Integrations. The full endpoint reference is on the API tab.
Use cases
- Price monitoring: track grocery and electronics prices across Gulf and regional markets every day.
- Competitor analysis: compare your shelf prices and promotions with Carrefour's.
- Basket and inflation tracking: price the same basket of products in several countries over time.
- Brand and assortment audits: see which of a brand's products each store lists, at what price and with what stock.
- Marketplace research: find the third-party sellers behind electronics and non-food offers.
- AI agents and dashboards: feed compact product rows to LLM tools, Google Sheets or BI dashboards.
How it works
- The scraper reads the same search result pages the store shows to visitors, 60 products per page.
- Category scopes run the category name as a search restricted to that category, then the parent department's name to fill gaps.
- Results larger than the store's 1,260-product listing limit are split into price ranges until every range fits.
- Product IDs are looked up through the store search, one request each.
- Category names come from each store's category menu, so every row has a readable category path.
- In incremental mode, a hash of the price, regular price, stock, seller and discount is saved per product in a named key-value store and compared on the next run.
How much does it cost to scrape Carrefour?
Carrefour MAF Scraper uses pay-per-event pricing. You pay per product saved; compute and proxy costs are included in the event price.
| Event | Free | Bronze | Silver | Gold |
|---|---|---|---|---|
product (per 1,000 products) | $2.49 | $1.99 | $1.79 | $1.59 |
For example, 1,000 Carrefour products cost $2.49 on the Free plan and $1.59 on Gold. In incremental mode you only pay for the rows that are output, so unchanged products cost nothing. Apify's Free plan comes with monthly platform credits you can use on this scraper, and you can set a maximum spend per run so a run never costs more than you expect.
FAQ
Which countries and stores are supported? Carrefour UAE, Saudi Arabia, Egypt, Qatar, Lebanon, Pakistan and Kenya, and HyperMax Bahrain, Jordan and Oman. Pick one in Market or several in Markets.
Why does a category ID work in one market but not another?
Each market has its own category IDs (for example F21600000 in the UAE and FKSA1630000 in Saudi Arabia for Dairy & Eggs). Use the category name, such as Dairy & Eggs, to scrape the same category in several markets.
Why do I get fewer products than the category count in the store menu? The store lists category products only through its search, and its search returns fewer products for a category than the count in its menu. The scraper searches inside the category with the category name and the department name and keeps everything those searches return. In tests on Carrefour UAE it returned 1,630 of the 1,872 products counted for Dairy & Eggs, and 49 of 65 for Eggs.
Can I use the same product ID in several markets? Usually not. Each market has its own product IDs, so a UAE product ID is not found in the Saudi store. Product URLs carry their market, so a list of URLs from different stores works in one run. To compare the same product across markets, search for it by name in each market.
Can I get more than 1,260 products from one search?
Yes. Set Max results to 0 or above 1,260 and the scraper splits the search into price ranges automatically. In a test, a milk search in the UAE returned 1,905 of the 1,906 reported products.
How does incremental mode work? The first run outputs every product and saves a baseline under your State key. Later runs with the same key output only products that are NEW, UPDATED (price, regular price, stock, seller or discount changed), or REAPPEARED after being gone. Turn on Include unchanged products or Include expired products to get the other two types. Expired products are only detected when the run reads the whole scope, so set Max results to 0.
How fast is it?
In tests on the Apify platform, a 100-product search finished in under a minute and a full milk search in the UAE (1,884 products) took about 2 minutes.
Does it return product descriptions, nutrition facts or barcodes? No. The scraper reads search result cards, which don't include descriptions, nutrition tables or barcodes (GTIN/EAN). Products are identified by the store's own product ID.
Why is the brand empty for some products?
Some stores, especially HyperMax, don't send a brand for every product card. The field is left empty rather than guessed. HyperMax also names some brands with their maker, such as BEIERSDORF:NIVEA; the Brands filter matches nivea to it.
What is displayPrice?
The price printed on the product card. It usually equals price. For products sold by weight, the card shows the price of the displayed portion (for example 250g), while price is the store's selling price.
Do I need a proxy or a Carrefour account? No account is needed. The default Apify Proxy setting spreads requests over several IPs, which keeps large runs under the store's rate limit.
Can I schedule it and send data to other tools? Yes. Use Apify schedules for daily or hourly runs and integrations to send results to Google Sheets, Slack, Zapier, Make or your own webhook.
Something is missing or not working? Open an issue on the Issues tab with your input and what you expected.
Is it legal to scrape Carrefour?
Our scrapers are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our scrapers, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. You can also read our blog post on the legality of web scraping.
Other grocery and retail scrapers
| Actor | What it scrapes |
|---|---|
| Tesco UK & Ireland Scraper | Tesco grocery products, Clubcard prices and nutrition |
| Daraz.pk Ecommerce Scraper | Daraz Pakistan products and prices |
| Trendyol Scraper - Products, Reviews & Q&A | Trendyol products, reviews and questions |
| Walmart Product Scraper | Walmart product details and prices |
| Amazon Search Scraper | Amazon search results |
| Zepto Product Scraper | Zepto quick-commerce products in India |
| Google Shopping Scraper | Google Shopping offers and prices |