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

noon API & Scraper

The noon API turns the Gulf's home-grown marketplace into clean JSON, in four actions - search, category/products, product/detail and product/offers - across six storefronts: the United Arab Emirates (AED), Egypt (EGP), Kuwait (KWD), Oman (OMR), Qatar (QAR) and Bahrain (BHD), each in English or Arabic.

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.

A search or category page returns up to 100 products per call with the price the shopper actually pays, the struck-through price and discount, any coupon code kept separate from the price, rating and review count, the seller and its own rating, noon Express and Supermall flags, the delivery estimate and noon's key specs, filtered by price, brand, minimum rating and delivery programme. product/detail returns the full record - title, brand, description and bullet points, gallery, model number, the buy-box price, the cheapest and dearest seller price, availability, rating with its 5-point scale, a sample of reviews, the breadcrumb, the full specification table, size variants and colour variants - and product/offers lists every seller's offer on that product, cheapest first, with stock, warranty, returns and delivery date. Verification on 2026-09-15 covered 12 products across 6 categories: title, price, availability, rating, review count and buy-box seller matched the page's own structured data on 12 of 12, and the price also matched a second, independent read of the page on 12 of 12. No noon account, no browser - one ReefAPI key and the standard { ok, data, meta, error } envelope.

Reference

The price field you want is the one the shopper pays - noon publishes two

noon's own product data carries a list price and a sale price side by side, and on a discounted product the list price is the struck-through one. Reading the wrong one overstates the price while still looking like a valid number. This engine returns the price paid as price and the struck number as price_before_discount. Coupon codes are a third thing again: a code the shopper types at checkout, returned as coupon and never subtracted from price.

Product (UAE storefront)price (paid)price_before_discountcoupon on the same row
iPhone 17 Pro Max 256 GB Silver4,590 AED5,099 AEDFAB10 - Extra 10% off with selected cards
Galaxy S25 Ultra 256 GB (Smartphones category)2,699 AED5,099 AEDFAB10 - Extra 10% off with selected cards
Nike Revolution 8 EasyOn297 AED349 AEDFAB10
iPhone 17 Pro Max 256 GB Cosmic Orange4,899 AEDnull - not discountedSALE200 - Extra 200 AED OFF

On one iPhone search page 20 of 49 rows were discounted. Every discounted row returned price below price_before_discount, and every row's price matched noon's own structured data. The coupon rows show why the coupon is kept apart: SALE200 is capped at 200 AED and runs for a limited time, and FAB10 needs a specific bank card and a 300 AED basket, so subtracting either would invent a price most shoppers are not charged.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/noon/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "query": "iphone",
    "country": "ae"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "noon",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 1074.3,
    "record_count": 50,
    "bytes": 1151352,
    "cache_hit": false,
    "pagination": {
      "page": 1,
      "has_more": true,
      "page_size": 50,
      "total": 1549
    },
    "country": "ae"
  },
  "data": {
    "results": [
      {
        "product_id": "N70211556V",
        "offer_code": "a749eebd333b530b",
        "title": "iPhone 17 256GB (Nano SIM + eSIM) White 5G With FaceTime - International Version",
        "brand": "Apple",
        "brand_code": "apple",
        "url": "https://www.noon.com/uae-en/iphone-17-256gb-nano-sim-esim-white-5g-with-facetime-international-version/N70211556V/p/?o=a749eebd333b530b",
        "image": "https://f.nooncdn.com/p/pzsku/ZA5DDC7198E0E85218265Z/45/_/1779094487/5c2e9914-4952-44e0-8a9f-ecff3ccd2be3.jpg",
        "images": [
          "https://f.nooncdn.com/p/pzsku/ZA5DDC7198E0E85218265Z/45/_/1779094487/5c2e9914-4952-44e0-8a9f-ecff3ccd2be3.jpg",
          "https://f.nooncdn.com/p/pzsku/ZA5DDC7198E0E85218265Z/45/_/1779094487/00a5a631-a2b3-4a64-aa13-7d94f7f268bd.jpg",
          "https://f.nooncdn.com/p/pzsku/ZA5DDC7198E0E85218265Z/45/_/1779094487/4bded869-fca7-4873-9eb6-679ef8561cb0.jpg"
        ],
        "price": 3399,
        "price_before_discount": null,
        "discount_percent": null,
        "currency": "AED",
        "coupon": {
          "code": "SHOP100",
          "title": "100 AED Cashback",
          "detail": "100 AED Cashback",
          "terms": [
            "[trimmed-depth]",
            "[trimmed-depth]"
          ]
        },
        "rating": 4.6,
        "review_count": 6105,
        "rating_scale": 5,
        "seller": {
          "id": null,
          "name": "callmate",
          "rating": 4.8,
          "rating_count": 8884,
          "rating_scale": 5,
          "positive_rating_percent": 88
        },
        "fulfilled_by_noon": false,
        "supermall": true,
        "marketplace_seller": false,
        "free_delivery_eligible": false,
        "buyable": true,
        "low_stock_quantity": null,
        "estimated_delivery": "GET IN 1 HR 13 MINS",
        "supermall_offer": {
          "offer_code": "a749eebd333b530b",
          "price": 3399,
          "price_before_discount": null,
          "discount_percent": null,
          "delivery": "GET IN 1 HR 13 MINS"
        },
        "best_seller_rank": null,
        "badges": [
          "Selling out fast"
        ],
        "deal_tag": null,
        "key_specs": {
          "Screen Size": "6.3 in",
          "RAM Size": "8 GB",
          "Battery Size": "3692 mAh",
          "Secondary Camera Resolution": "18 MP"
        },
        "colour_variant_count": null
      },
      {
        "product_id": "N70211464V",
        "offer_code": "df8ca885867d8b5a",
        "title": "iPhone 17 Pro Max 256 GB (eSIM only) Silver 5G With FaceTime - International Version",
        "brand": "Apple",
        "brand_code": "apple",
        "url": "https://www.noon.com/uae-en/iphone-17-pro-max-256-gb-esim-only-silver-5g-with-facetime-international-version/N70211464V/p/?o=df8ca885867d8b5a",
        "image": "https://f.nooncdn.com/p/pzsku/Z70429BD50D391C2CB0C1Z/45/_/1779094672/2c253ab7-e018-4bb7-a1cd-8ce1571839f6.jpg",
        "images": [
          "https://f.nooncdn.com/p/pzsku/Z70429BD50D391C2CB0C1Z/45/_/1779094672/2c253ab7-e018-4bb7-a1cd-8ce1571839f6.jpg",
          "https://f.nooncdn.com/p/pzsku/Z70429BD50D391C2CB0C1Z/45/_/1779094672/61ad078c-64cb-43d3-a8c0-5c789298fe58.jpg",
          "https://f.nooncdn.com/p/pzsku/Z70429BD50D391C2CB0C1Z/45/_/1779094672/2ea51829-5091-4027-a665-8c05e2c90c63.jpg"
        ],
        "price": 4590,
        "price_before_discount": 5099,
        "discount_percent": 10,
        "currency": "AED",
        "coupon": {
          "code": "FAB10",
          "title": "Extra 10% off",
          "detail": "Extra 10% off with FAB and Dubai first Mastercard Credit Cards",
          "terms": [
            "[trimmed-depth]",
            "[trimmed-depth]",
            "[trimmed-depth]"
          ]
        },
        "rating": 4.5,
        "review_count": 31727,
        "rating_scale": 5,
        "seller": {
          "id": null,
          "name": "callmate",
          "rating": 4.8,
          "rating_count": 8884,
          "rating_scale": 5,
          "positive_rating_percent": 88
        },
        "fulfilled_by_noon": false,
        "supermall": true,
        "marketplace_seller": false,
        "free_delivery_eligible": false,
        "buyable": true,
        "low_stock_quantity": null,
        "estimated_delivery": "GET IN 1 HR 13 MINS",
        "supermall_offer": {
          "offer_code": "df8ca885867d8b5a",
          "price": 4590,
          "price_before_discount": 5099,
          "discount_percent": 10,
          "delivery": "GET IN 1 HR 13 MINS"
        },
        "best_seller_rank": 3,
        "badges": [
          "#3 in Smartphones",
          "Lowest price in a year",
          "Selling out fast"
        ],
        "deal_tag": "Deal",
        "key_specs": {
          "Screen Size": "6.9 in",
          "RAM Size": "12 GB",
          "Battery Size": "5088 mAh",
          "Secondary Camera Resolution": "18 MP"
        },
        "colour_variant_count": null
      },
      {
        "product_id": "N70211465V",
        "offer_code": "f3c5559785715d9e",
        "title": "iPhone 17 Pro Max 256 GB (eSIM only) Cosmic Orange 5G With FaceTime - International Version",
        "brand": "Apple",
        "brand_code": "apple",
        "url": "https://www.noon.com/uae-en/iphone-17-pro-max-256-gb-esim-only-cosmic-orange-5g-with-facetime-international-version/N70211465V/p/?o=f3c5559785715d9e",
        "image": "https://f.nooncdn.com/p/pzsku/Z89B9D1453263B2B2EBC0Z/45/_/1779094477/5245f187-f6a6-4434-92bd-edf2eadf0506.jpg",
        "images": [
          "https://f.nooncdn.com/p/pzsku/Z89B9D1453263B2B2EBC0Z/45/_/1779094477/5245f187-f6a6-4434-92bd-edf2eadf0506.jpg",
          "https://f.nooncdn.com/p/pzsku/Z89B9D1453263B2B2EBC0Z/45/_/1779094477/94c5e1c0-4035-4c24-8afc-004ef72dfabf.jpg",
          "https://f.nooncdn.com/p/pzsku/Z89B9D1453263B2B2EBC0Z/45/_/1779094477/63eb49da-9277-4135-b61c-726825cc4a49.jpg"
        ],
        "price": 4506,
        "price_before_discount": 5099,
        "discount_percent": 11.6,
        "currency": "AED",
        "coupon": {
          "code": "FAB10",
          "title": "Extra 10% off",
          "detail": "Extra 10% off with FAB and Dubai first Mastercard Credit Cards",
          "terms": [
            "[trimmed-depth]",
            "[trimmed-depth]",
            "[trimmed-depth]"
          ]
        },
        "rating": 4.5,
        "review_count": 31727,
        "rating_scale": 5,
        "seller": {
          "id": null,
          "name": "callmate",
          "rating": 4.8,
          "rating_count": 8884,
          "rating_scale": 5,
          "positive_rating_percent": 88
        },
        "fulfilled_by_noon": true,
        "supermall": false,
        "marketplace_seller": false,
        "free_delivery_eligible": true,
        "buyable": true,
        "low_stock_quantity": null,
        "estimated_delivery": "Get it Tomorrow",
        "supermall_offer": {
          "offer_code": "d1039f848ce4625d",
          "price": 4799,
          "price_before_discount": 5099,
          "discount_percent": 5.9,
          "delivery": "GET IN 1 HR 13 MINS"
        },
        "best_seller_rank": 13,
        "badges": [
          "#13 in Smartphones",
          "Lowest price in a year",
          "Free Delivery"
        ],
        "deal_tag": "Deal",
        "key_specs": {
          "Screen Size": "6.9 in",
          "RAM Size": "12 GB",
          "Battery Size": "5088 mAh",
          "Secondary Camera Resolution": "18 MP"
        },
        "colour_variant_count": null
      }
    ],
    "count": 50,
    "total_results": 1549,
    "total_pages": 31,
    "page": 1,
    "sort_applied": {
      "by": "popularity",
      "dir": "desc"
    },
    "filters_applied": null,
    "breadcrumbs": null,
    "country": "ae",
    "currency": "AED",
    "language": "en",
    "query": "iphone"
  }
}
Actions

What the noon API does

ActionDescriptionConcrete use caseKey params
searchSearch noon.com by keyword in one Gulf country and get the matching products: noon product id, title, brand, image, the price the shopper pays with the struck-through price and discount, any coupon code, rating and review count, the seller and its rating, noon Express / Supermall flags, delivery estimate and noon's own key specs. Filter by price, brand, minimum rating and delivery programme; sort by popularity, price or rating.Pricing teams call search to search noon.com by keyword in one Gulf country and get the matching products.query, country, language, page, limit, ...
category/productsBrowse one noon category (by its path) in one Gulf country: the same product rows, filters, sorts and paging as `search`, plus the category breadcrumb.Marketplace operators call category/products to get browse one noon category (by its path) in one Gulf country.category, country, language, page, limit, ...
product/detailThe full noon product record by `product_id` (or product URL) in one Gulf country: title, brand, description and bullet points, image gallery, model and model number, the buy-box price with struck-through price, discount and coupon, the cheapest and dearest seller price, availability, rating with review count and scale, a sample of reviews, the category breadcrumb, the full specification table, size variants, colour variants, and every seller's offer.Catalog enrichment teams call product/detail to get the full noon product record by `product_id` (or product URL) in one Gulf country.product_id, country, language, max_rotations
product/offersEvery seller's offer for one noon product in one Gulf country, cheapest first: the seller with its id, name and rating, the price paid with struck-through price and discount, coupon, stock, size variant, noon Express / marketplace flags, delivery estimate and date, warranty and return policy, and which offer holds noon's buy box.Retail analysts call product/offers to get every seller's offer for one noon product in one Gulf country, cheapest first.product_id, country, language, max_rotations
Code samples

Call search from your stack

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

Who uses this API and why

  • Gulf price-monitoring teams track the price paid and the struck-through price per country for the same product id across the UAE, Egypt, Kuwait, Oman, Qatar and Bahrain.
  • Marketplace sellers call product/offers to see every competing seller on a product, their rating, stock and delivery date, and whether they hold the buy box.
  • Brands audit their noon catalogue per storefront with category/products filtered by brand, then product/detail for specs, bullets and model numbers.
  • Retail analysts compare coupon codes and discount depth by category with the coupon and discount_percent fields, kept separate so the price is never distorted.
FAQ

Questions developers ask before integrating

Which countries does the noon API cover, and what currency comes back?

Six storefronts: ae (United Arab Emirates, AED), eg (Egypt, EGP), kw (Kuwait, KWD), om (Oman, OMR), qa (Qatar, QAR) and bh (Bahrain, BHD). The currency is returned on every row and on every offer. Product ids are shared between storefronts, but price, sellers and stock are per country - the same iPhone 17 Pro Max (N70211545V) had 7 offers in the UAE and 5 in Kuwait on 2026-09-15. noon's Saudi Arabia storefront is not available through this API; country=sa returns a clear MARKET_UNAVAILABLE error rather than another country's data.

Is the price on a noon search row the price the shopper pays?

Yes. noon publishes both a list price and a sale price, and on a discounted product the list price is the struck-through one. price is always the price paid and price_before_discount carries the struck number, with discount_percent computed from the two. On 12 products checked against noon's own structured data on 2026-09-15, price matched on 12 of 12.

Are coupon codes included in the price?

No, and deliberately. A noon coupon such as SALE200 or FAB10 is a code the shopper enters, usually with a minimum basket, a cap or a payment-card condition. It is returned as coupon{code, title, detail, terms} and never subtracted from price.

Does product/detail return every seller, or only the one in the buy box?

Every seller. product/detail returns the buy-box offer as price and featured_seller, the cheapest and dearest seller price as price_min and price_max, and the full list of offers with each seller's id, name and rating, stock, warranty, return policy and delivery date. product/offers returns the same list sorted cheapest first. In the 12-product check the buy box was also the cheapest offer every time, but the two are separate fields so you never have to assume it.

How are shoe and clothing sizes handled?

Sizes are variants of one product, each with its own offers - a Nike Revolution 8 came back with 13 sizes, 6 of them in stock. Colours are separate noon products, listed under colour_variants with their own product_id, so a colour change is another product/detail call.

What is the stock number on an offer?

The number noon reports for that offer. It never exceeded 10 across the offers measured (12 of 45 offers sat exactly at 10), so read 10 as '10 or more'; stock_is_display_cap is true on those rows.

Can I get the product in Arabic?

Yes. language=ar returns titles, specifications, delivery text and coupon wording in Arabic from the same storefront, with the same product ids and prices.

What does noon NOT publish?

A barcode: no GTIN, EAN or UPC appeared on any of the 12 verified products, so gtin is null. A sponsored marker on search rows. A full review feed: product/detail returns the handful of reviews noon embeds in the product page as reviews_sample, not the complete list. A description on every product - 6 of 12 verified products had one, and shoes, fragrance and grocery items often do not.

What is the noon API?

noon API is a ReefAPI endpoint group for gulf marketplace products, prices and every seller's offer in six countries. It returns live JSON through POST requests under /noon/v1.

Is the noon API free to try?

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

Do I need a noon login or account?

No login to noon 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 noon 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 noon API use?

noon actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.

Can I call noon from an AI assistant or MCP client?

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

docs / noon

noon

Gulf marketplace products, prices and every seller's offer in six countries.

base /noon/v14 endpoints
post/noon/v1/category/products1 credit

Browse one noon category (by its path) in one Gulf country: the same product rows, filters, sorts and paging as `search`, plus the category breadcrumb.

ParameterAllowed / rangeDescription
categoryrequirednoon category path — the part of a noon category URL after the country segment (https://www.noon.com/uae-en/electronics-and-mobiles/… → electronics-and-mobiles/…). A full category URL is accepted. `breadcrumbs[].code` on a listing returns these.
country = aeoptionalae · eg · kw · om · qa · bhnoon storefront. Prices come back in that country's currency and product ids are shared across storefronts, but price, stock and sellers differ per country. Saudi Arabia is not available.
language = enoptionalen · arLanguage of titles, specs and descriptions. Prices and ids are the same in both.
page = 1optional1–200Result page, 1-based. `total_pages` says how many exist; a page past the end returns an empty list, not an error.
limit = 50optional1–100Products per page, 1-100 (noon's own default is 50).
sort = popularoptionalpopular · price_asc · price_desc · ratingOrder of results. Only orderings noon honours are accepted; anything else is rejected rather than silently ignored.
price_minoptional0–Lowest price, in the country's currency.
price_maxoptional0–Highest price, in the country's currency.
brandoptionalnoon brand code, lowercase with underscores (apple, samsung, new_balance). Every result row returns it as `brand_code`.
min_ratingoptional1–5Only products rated at least this (1-5).
fulfillmentoptionalexpress · supermallRestrict to one noon delivery programme.
max_rotations = 3optional1–5Advanced: how many times to retry a difficult request (1-5).
Try in playground →
post/noon/v1/product/detail1 credit

The full noon product record by `product_id` (or product URL) in one Gulf country: title, brand, description and bullet points, image gallery, model and model number, the buy-box price with struck-through price, discount and coupon, the cheapest and dearest seller price, availability, rating with review count and scale, a sample of reviews, the category breadcrumb, the full specification table, size variants, colour variants, and every seller's offer.

ParameterAllowed / rangeDescription
product_idrequirednoon product id (the code before /p/ in a product URL, e.g. N70211545V or Z21880EA663D8910F1026Z). A full noon product URL is accepted and its country is used when `country` is not given.
country = aeoptionalae · eg · kw · om · qa · bhnoon storefront. Prices come back in that country's currency and product ids are shared across storefronts, but price, stock and sellers differ per country. Saudi Arabia is not available.
language = enoptionalen · arLanguage of titles, specs and descriptions. Prices and ids are the same in both.
max_rotations = 3optional1–5Advanced: how many times to retry a difficult request (1-5).
Try in playground →
post/noon/v1/product/offers1 credit

Every seller's offer for one noon product in one Gulf country, cheapest first: the seller with its id, name and rating, the price paid with struck-through price and discount, coupon, stock, size variant, noon Express / marketplace flags, delivery estimate and date, warranty and return policy, and which offer holds noon's buy box.

ParameterAllowed / rangeDescription
product_idrequirednoon product id (the code before /p/ in a product URL, e.g. N70211545V or Z21880EA663D8910F1026Z). A full noon product URL is accepted and its country is used when `country` is not given.
country = aeoptionalae · eg · kw · om · qa · bhnoon storefront. Prices come back in that country's currency and product ids are shared across storefronts, but price, stock and sellers differ per country. Saudi Arabia is not available.
language = enoptionalen · arLanguage of titles, specs and descriptions. Prices and ids are the same in both.
max_rotations = 3optional1–5Advanced: how many times to retry a difficult request (1-5).
Try in playground →