Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the LuLu Hypermarket API page →
E-commerce & Marketplaces

LuLu Hypermarket API & Scraper

LuLu Hypermarket is one of the largest supermarket chains in the Gulf, and its online shop serves six countries from one catalogue.

4 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.

`search` returns the products for a search term in the country you choose (ae, sa, qa, kw, bh or om) with the price a shopper pays in that country's currency, the regular price when a cut is running, the cut in money and percent, the country's promotion badge such as "Buy 3→Cart Free" or "Online Exclusive", the stock count, pack size, a price per kg, litre or piece, the other pack sizes of the same item with their own prices, brand, barcodes, category path, dietary flags and the per-order limit. Filters are brand, product type, category, price range, minimum discount and organic, with sorting by price, newest or biggest discount. `category` lists a category, `categories` returns the shop's category tree and `product` returns one product with every pack size, images, description, highlights, ingredients and the full specification sheet. Names and descriptions are available in English or Arabic.

Reference

What a LuLu Hypermarket field actually contains

Fields that read differently from how they look. Every row was measured against live LuLu Hypermarket responses on 2026-10-15.

FieldWhat it holds
priceWhat a shopper pays now in the chosen country, the price the product page prints first (Almarai Full Fat Fresh Milk 2 L on 2026-10-15: 12.50 AED, 12.85 SAR, 11.00 QAR, 1.035 KWD, 1.250 BHD, 1.330 OMR).
currency, currency_decimalsThe country's currency and how many decimals it uses: 2 for AED, SAR and QAR, 3 for KWD, BHD and OMR (1.035 KWD is one dinar and 35 fils, not 1,035).
regular_price, discount_amount, discount_percentThe price before a running cut and the cut itself (Al Rawabi milk 2 L: 13.10, 1.00, 7.63 %). The page prints the percent rounded (8 % Off). All three are empty when no cut runs.
badgesThe promotion label the shop shows in that country only, for example Buy 3→Cart Free on Pampers in the UAE. The same product can carry a different badge, or none, in another country.
pack_optionsThe other pack sizes of the same item, each with its own product_id and price (Almarai Double Chocolate Milk 200 ml: 1 pc 2.85 AED, 6 pcs 12.85 AED). Price and discount filters keep a row when any of its pack sizes matches, so check pack_options when a row's own price is outside your range.
unit_price, unit_price_unitPrice per kg, litre or piece worked out from price and pack_size (2 L at 12.10 AED gives 6.05 per litre). Empty when the pack size is not one plain measure, such as 500 g + Offer.
stock, in_stockThe online stock count and availability in the chosen country. The same milk had 282 units in the UAE and 0 (out of stock) in Qatar in the same minute.
pinnedTrue when the shop puts a promoted item on top of a page sorted by price, above cheaper items. The row is kept in the shop's order and flagged.

Prices are the shop's online prices for scheduled delivery in each country. In-store prices and the express (minutes) delivery range are not part of the public listings.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/luluhypermarket/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "milk",
    "country": "ae"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "luluhypermarket",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 3418.2,
    "record_count": 20,
    "bytes": 132410,
    "cache_hit": false,
    "upstream_requests": 1,
    "total": 311,
    "charged_credits": 2,
    "version": "0.1.0",
    "request_id": "66687305b42845d8",
    "fetched_at": "2026-10-15T17:02:57.978Z"
  },
  "data": {
    "country": "ae",
    "country_name": "United Arab Emirates",
    "currency": "AED",
    "currency_decimals": 2,
    "language": "en",
    "query": "milk",
    "category": null,
    "filters": {},
    "sort": "relevance",
    "total": 311,
    "total_capped": false,
    "page": 1,
    "page_size": 20,
    "last_page": 16,
    "last_reachable_page": 16,
    "has_more": true,
    "returned": 20,
    "facets": {
      "categories": [
        {
          "category_id": "5017",
          "name": "Grocery",
          "count": 128
        },
        {
          "category_id": "5207",
          "name": "Fresh Food",
          "count": 188
        }
      ],
      "brands": [
        {
          "name": "Activia",
          "count": 12
        },
        {
          "name": "Al Ain",
          "count": 4
        },
        {
          "name": "Al Mudhish",
          "count": 2
        }
      ],
      "product_types": [
        {
          "name": "UHT Milk",
          "count": 37
        },
        {
          "name": "Laban",
          "count": 60
        },
        {
          "name": "Flavoured Milk",
          "count": 59
        }
      ],
      "pack_sizes": [
        {
          "name": "1 pc",
          "value": "1",
          "count": 50
        },
        {
          "name": "3 pcs",
          "value": "3",
          "count": 3
        },
        {
          "name": "4 pcs",
          "value": "4",
          "count": 19
        }
      ],
      "price_range": {
        "min": 0.8,
        "max": 269.5
      }
    },
    "results": [
      {
        "rank": 1,
        "product_id": "278",
        "sku": "7564",
        "base_code": "7564",
        "name": "Al Rawabi Full Cream Fresh Milk 2 Litres",
        "brand": "Al Rawabi",
        "barcodes": [
          "0000000075640",
          "0001212120104",
          "6291030200025"
        ],
        "price": 12.1,
        "regular_price": 13.1,
        "discount_amount": 1,
        "discount_percent": 7.63,
        "on_offer": true,
        "currency": "AED",
        "currency_decimals": 2,
        "tax_rate_percent": 5,
        "badges": [],
        "pack_size": "2 Litres",
        "unit_price": 6.05,
        "unit_price_unit": "l",
        "pack_quantity": null,
        "pack_options": [],
        "in_stock": true,
        "stock": 136,
        "max_order_quantity": 1,
        "delivery_type": "Quick",
        "product_type": "Full Cream",
        "category_path": [
          "Fresh Food",
          "Dairy , Eggs & Cheese",
          "Cooking Ingredients"
        ],
        "dietary": [],
        "hidden_in_country": false,
        "image": "https://bf1af2.akinoncloudcdn.com/products/2025/03/25/55843/3fef2873-2f71-44bc-9c8d-efe4f87c192e.jpg",
        "url": "https://gcc.luluhypermarket.com/en-ae/al-rawabi-full-cream-fresh-milk-2-litres/p/7564/",
        "pinned": false
      },
      {
        "rank": 2,
        "product_id": "276",
        "sku": "7548",
        "base_code": "7548",
        "name": "Almarai Full Fat Fresh Milk 2 Litres",
        "brand": "Almarai",
        "barcodes": [
          "6281007120401",
          "0000000075480"
        ],
        "price": 12.5,
        "regular_price": 13.6,
        "discount_amount": 1.1,
        "discount_percent": 8.09,
        "on_offer": true,
        "currency": "AED",
        "currency_decimals": 2,
        "tax_rate_percent": 5,
        "badges": [],
        "pack_size": "2 Litres",
        "unit_price": 6.25,
        "unit_price_unit": "l",
        "pack_quantity": null,
        "pack_options": [],
        "in_stock": true,
        "stock": 290,
        "max_order_quantity": null,
        "delivery_type": "Quick",
        "product_type": "Full Fat",
        "category_path": [
          "Fresh Food",
          "Dairy , Eggs & Cheese",
          "Cooking Ingredients"
        ],
        "dietary": [],
        "hidden_in_country": false,
        "image": "https://bf1af2.akinoncloudcdn.com/products/2026/06/04/55822/0f4647e1-8167-4efb-82e9-6a511cbdc432.jpg",
        "url": "https://gcc.luluhypermarket.com/en-ae/almarai-full-fat-fresh-milk-2-litres/p/7548/",
        "pinned": false
      },
      {
        "rank": 3,
        "product_id": "260",
        "sku": "12701",
        "base_code": "12701",
        "name": "Al Ain Farms Full Cream Fresh Milk 2 Litres",
        "brand": "Al Ain Farms",
        "barcodes": [
          "6291056001101",
          "0000000127011",
          "6291056001002"
        ],
        "price": 13.15,
        "regular_price": null,
        "discount_amount": null,
        "discount_percent": null,
        "on_offer": false,
        "currency": "AED",
        "currency_decimals": 2,
        "tax_rate_percent": 5,
        "badges": [],
        "pack_size": "2 Litres",
        "unit_price": 6.58,
        "unit_price_unit": "l",
        "pack_quantity": null,
        "pack_options": [],
        "in_stock": true,
        "stock": 334,
        "max_order_quantity": 1,
        "delivery_type": "Quick",
        "product_type": "Full Cream",
        "category_path": [
          "Fresh Food",
          "Dairy , Eggs & Cheese",
          "Cooking Ingredients"
        ],
        "dietary": [],
        "hidden_in_country": false,
        "image": "https://bf1af2.akinoncloudcdn.com/products/2025/11/27/55797/873dc4fa-812f-4418-8c8c-60ae8c8a75d3.jpg",
        "url": "https://gcc.luluhypermarket.com/en-ae/al-ain-farms-full-cream-fresh-milk-2-litres/p/12701/",
        "pinned": false
      }
    ]
  }
}
Actions

What the LuLu Hypermarket API does

ActionDescriptionConcrete use caseKey params
searchSearch LuLu Hypermarket's online shop in one Gulf country: price paid and regular price in the local currency, discount, promotion badges, stock count, pack size and price per kg/l/pc, other pack sizes with their prices, brand, barcodes, category path. `query` required; filters brand, product_type, category_id, min_price/max_price, min_discount, organic; sort; page.Pricing teams call search to search LuLu Hypermarket's online shop in one Gulf country.query, country, language, category_id, brand, ...
categoryList one LuLu category (its path from `categories`, e.g. grocery-food-cupboard-beverage, or a numeric category id) with the same row fields, filters and sorts as `search`.Marketplace operators call category to list one LuLu category (its path from `categories`, e.g.category, country, language, brand, product_type, ...
productOne LuLu product by the `product_id` a search row returns (or its shop URL), in one country: prices, discount, badges, stock, every pack size with its own price and stock flag, barcodes, images, description, highlights, ingredients and the full specification sheet.Catalog enrichment teams call product to get one LuLu product by the `product_id` a search row.product_id, country, language
categoriesLuLu's category tree from the shop menu (318 nodes on 2026-10-15): name, path, id where the menu gives one, children. Paths and ids feed `category`.Retail analysts call categories to get luLu's category tree from the shop menu (318 nodes on 2026-10-15).category, country, language
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/luluhypermarket/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"milk","country":"ae"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.luluhypermarket.search with {"query":"milk","country":"ae"}.
Use cases

Who uses this API and why

  • Track grocery prices, price cuts and promotion badges across the six Gulf countries.
  • Compare the same product's price, stock and pack sizes between the UAE, Saudi Arabia, Qatar, Kuwait, Bahrain and Oman.
  • Compare prices per kg or litre across brands and LuLu's own label.
  • Build a Gulf grocery and electronics catalogue with barcodes, brands, category paths and specifications.
  • Monitor which products are discounted by at least a given percent in one country.
FAQ

Questions developers ask before integrating

Which countries are covered?

All six LuLu online shops: United Arab Emirates (AED), Saudi Arabia (SAR), Qatar (QAR), Kuwait (KWD), Bahrain (BHD) and Oman (OMR). Pass country on each call; every response names the country and currency it is for.

Do prices differ between countries?

Yes, and so do stock, range, badges and order limits. The same 2-litre Almarai milk cost 12.50 AED in the UAE, 12.85 SAR in Saudi Arabia and was out of stock in Qatar on 2026-10-15. The shop also hides some products in some countries, and the API leaves them out the same way.

Do I need a LuLu account?

No. Everything is read logged out: the prices, badges, stock counts and product details any visitor sees.

Can I get Arabic names?

Yes. Pass language=ar and names, descriptions and badges come in Arabic where the shop has them.

Which filters work?

brand, product_type, category_id, min_price and max_price, min_discount and organic, plus sorting by price, newest or biggest discount. Each was checked against the unfiltered count in the same run: 'milk' in the UAE had 315 products, 44 from Almarai, 60 Laban, 99 between 10 and 20 AED, 33 cut by at least 10 % and 6 organic.

Why does a row's price fall outside my price range?

LuLu filters whole product groups: a row is kept when any of its pack sizes is in range. The matching pack is in pack_options with its own price and product_id.

How deep can I page?

Up to 20 products per page and up to the first 10,000 products of any listing (page 500 at 20 per page). last_reachable_page says where a listing stops; narrow with filters or a category to reach the rest.

How fresh is the data?

Every call reads the shop live; nothing is cached.

What is the LuLu Hypermarket API?

LuLu Hypermarket API is a ReefAPI endpoint group for gulf supermarket prices from lulu hypermarket in the uae, saudi arabia, qatar, kuwait, bahrain and oman: price paid and regular price, discounts, promotion badges, stock and pack sizes. It returns live JSON through POST requests under /luluhypermarket/v1.

Is the LuLu Hypermarket API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. LuLu Hypermarket calls use the same shared credit balance as every other ReefAPI engine.

Do I need a LuLu Hypermarket login or account?

No login to LuLu Hypermarket is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.

How fresh is the LuLu Hypermarket data?

The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.

How many credits does the LuLu Hypermarket API use?

LuLu Hypermarket actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.

Can I call LuLu Hypermarket from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call luluhypermarket actions with the same key, credit pool and JSON envelope used by normal REST requests.

docs / luluhypermarket

LuLu Hypermarket

Gulf supermarket prices from LuLu Hypermarket in the UAE, Saudi Arabia, Qatar, Kuwait, Bahrain and Oman: price paid and regular price, discounts, promotion badges, stock and pack sizes.

base /luluhypermarket/v14 endpoints
post/luluhypermarket/v1/category2 credits

List one LuLu category (its path from `categories`, e.g. grocery-food-cupboard-beverage, or a numeric category id) with the same row fields, filters and sorts as `search`.

ParameterAllowed / rangeDescription
categoryrequired—A category path as `categories` returns it (grocery, grocery-food-cupboard-beverage), a shop category URL, or a numeric category id (5017).
country = aeoptionalae · sa · qa · kw · bh · omWhich LuLu online shop: ae (UAE, AED), sa (Saudi Arabia, SAR), qa (Qatar, QAR), kw (Kuwait, KWD), bh (Bahrain, BHD), om (Oman, OMR). Prices, stock, range, badges and order limits all follow the country (Almarai milk 2 L: 12.50 AED, 12.85 SAR, 11.00 QAR out of stock, 1.035 KWD, 1.250 BHD, 1.330 OMR on 2026-10-15). Default ae; the response always names it.
language = enoptionalen · aren (default) or ar: names, descriptions and badges in Arabic where the shop has them.
brandoptional—One brand as the shop prints it (a row's `brand`, e.g. Almarai, Al Rawabi). Matched against the listing's own brand list; an unknown brand returns 0 with the brands present.
product_typeoptional—LuLu's product type as a row's `product_type` prints it (e.g. Full Fat, Laban, UHT Milk).
min_priceoptional0–Lowest price in the country's currency. The shop filters product GROUPS: a row is kept when any of its pack sizes is in range, so a row's own `price` can be outside it (its `pack_options` show the matching pack).
max_priceoptional0–Highest price in the country's currency (same group rule as min_price).
min_discountoptional1–100Only items cut by at least this percent (1-100). Same group rule as the price filter: a row is kept when any of its pack sizes has the cut (17/20 rows had it on their own price, 3/20 on a pack option; 2026-10-15, 'milk' AE).
organicoptional—true: only items the shop labels organic.
sort = relevanceoptionalrelevance · price_asc · price_desc · newest · discountrelevance · price_asc · price_desc · newest · discount (biggest % first). The shop can pin a promoted item on top of a sorted page; such rows carry `pinned: true`.
page = 1optional1–10000Result page. The shop serves the first 10,000 products of any listing (page 500 at 20 per page); `last_reachable_page` says where a listing stops.
page_size = 20optional1–20Products per page, 1-20 (default 20).
Try in playground →
post/luluhypermarket/v1/product1 credit

One LuLu product by the `product_id` a search row returns (or its shop URL), in one country: prices, discount, badges, stock, every pack size with its own price and stock flag, barcodes, images, description, highlights, ingredients and the full specification sheet.

ParameterAllowed / rangeDescription
product_idrequired—The `product_id` a search row returns (e.g. 276), or the product's shop URL (https://gcc.luluhypermarket.com/en-ae/<name>/p/<sku>/).
country = aeoptionalae · sa · qa · kw · bh · omWhich LuLu online shop: ae (UAE, AED), sa (Saudi Arabia, SAR), qa (Qatar, QAR), kw (Kuwait, KWD), bh (Bahrain, BHD), om (Oman, OMR). Prices, stock, range, badges and order limits all follow the country (Almarai milk 2 L: 12.50 AED, 12.85 SAR, 11.00 QAR out of stock, 1.035 KWD, 1.250 BHD, 1.330 OMR on 2026-10-15). Default ae; the response always names it.
language = enoptionalen · aren (default) or ar: names, descriptions and badges in Arabic where the shop has them.
Try in playground →
post/luluhypermarket/v1/categories3 credits

LuLu's category tree from the shop menu (318 nodes on 2026-10-15): name, path, id where the menu gives one, children. Paths and ids feed `category`.

ParameterAllowed / rangeDescription
categoryoptional—Return only this node's subtree (its path, e.g. grocery); omit for the whole tree.
country = aeoptionalae · sa · qa · kw · bh · omWhich LuLu online shop: ae (UAE, AED), sa (Saudi Arabia, SAR), qa (Qatar, QAR), kw (Kuwait, KWD), bh (Bahrain, BHD), om (Oman, OMR). Prices, stock, range, badges and order limits all follow the country (Almarai milk 2 L: 12.50 AED, 12.85 SAR, 11.00 QAR out of stock, 1.035 KWD, 1.250 BHD, 1.330 OMR on 2026-10-15). Default ae; the response always names it.
language = enoptionalen · aren (default) or ar: names, descriptions and badges in Arabic where the shop has them.
Try in playground →
Built for volume
5M+ requests a day

Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.

Missing a source?
We build it

Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.

Support
2 minute median reply

Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.

One key, one balance
Every API included

No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.

Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.