The Gulf's marketplace as JSON, in six countries and two languages
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 active endpoints. Every call is 1 credit.
- POST/noon/v1/search
- POST/noon/v1/category/products
- POST/noon/v1/product/detail
- POST/noon/v1/product/offers
What noon endpoints does ReefAPI ship?
4 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
noon API
3 of 4 endpoints, ready to run
noon's product grid for a keyword in one country: product id, title, brand, image, the price the shopper pays with the struck-through price and discount, the coupon code kept apart, rating and review count, the seller and its rating, noon Express and Supermall flags, delivery estimate and key specs.
{ "ok": true, "meta": { "api": "noon", "endpoint": "search", "mode": "live", "latency_ms": 2376.7, "record_count": 49, "cache_hit": false }, "data": { "results": [ { "product_id": "N70211665V", "offer_code": "ceb971a64f5f40cb", "title": "iPhone 17 256GB (eSIM only) Black 5G With FaceTime - International Version", "brand": "Apple", "brand_code": "apple", "url": "https://www.noon.com/uae-en/iphone-17-256gb-esim-only-black-5g-with-facetime-international-version/N70211665V/p/?o=ceb971a64f5f40cb", "image": "https://f.nooncdn.com/p/pzsku/Z841A71E739CBF0A19402Z/45/_/1779094715/627df93b-deda-4051-aac7-2ec6473dcd74.jpg", "images": [ "https://f.nooncdn.com/p/pzsku/Z841A71E739CBF0A19402Z/45/_/1779094715/627df93b-deda-4051-aac7-2ec6473dcd74.jpg", "https://f.nooncdn.com/p/pzsku/Z841A71E739CBF0A19402Z/45/_/1779094714/1a08273a-ce55-4c6d-a419-cb998b5511a8.jpg", "https://f.nooncdn.com/p/pzsku/Z841A71E739CBF0A19402Z/45/_/1779094714/70b25403-ecc9-4b6c-af9d-094a5c74daa5.jpg" ], "price": 3399, "price_before_discount": null, "discount_percent": null, "currency": "AED", "coupon": { "code": "FAB10", "title": "Extra 10% off", "detail": "Extra 10% off with FAB and Dubai first Mastercard Credit Cards", "terms": [ "Extra 10% up to 50 AED off", "Offer is valid when you checkout with your FAB and Dubai first Mastercard Credit Cards", "Offer is applicable on an order value of 300 AED and above" ] }, "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": true, "supermall": false, "marketplace_seller": false, "free_delivery_eligible": true, "buyable": true, "low_stock_quantity": null, "estimated_delivery": "Get it Tomorrow", "supermall_offer": null, "best_seller_rank": null, "badges": [ "Free Delivery", "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": "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": [ "Extra 10% up to 50 AED off", "Offer is valid when you checkout with your FAB and Dubai first Mastercard Credit Cards", "Offer is applicable on an order value of 300 AED and above" ] }, "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 8 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 }, { "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": [ "Extra 10% up to 50 AED off", "Offer is valid when you checkout with your FAB and Dubai first Mastercard Credit Cards", "Offer is applicable on an order value of 300 AED and above" ] }, "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 8 MINS", "supermall_offer": { "offer_code": "df8ca885867d8b5a", "price": 4590, "price_before_discount": 5099, "discount_percent": 10, "delivery": "GET IN 1 HR 8 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 } ], "count": 49, "total_results": 1065, "total_pages": 22, "page": 1, "sort_applied": { "by": "popularity", "dir": "desc" }, "filters_applied": null, "breadcrumbs": null, "country": "ae", "currency": "AED", "language": "en", "query": "iphone 17" } }
How the noon API works
noon is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 252 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
Find a product, then compare its price and sellers across Gulf countries
noon product ids are shared between storefronts, but the price, the sellers and the stock are not. One search gives you the id; the same id in another country gives you that country's market.
{"query": "iphone 17 pro max", "country": "ae", "sort": "price_asc"}One page of up to 100 products with the price paid, struck-through price, coupon, rating and seller. Take results[].product_id.
{"product_id": "N70211464V", "country": "ae"}Every UAE seller on that product, cheapest first, with stock, delivery date and which offer holds the buy box.
{"product_id": "N70211464V", "country": "kw"}The same product id in Kuwait: its own sellers and its own prices, in KWD.
A per-country view of one product - who sells it, for how much, with what stock and delivery - without ever mixing a list price, a sale price and a coupon into one number.
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"}'{
"ok": true,
"data": { … },
"meta": {
"api": "noon",
"endpoint": "search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}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_discount | coupon on the same row |
|---|---|---|---|
| iPhone 17 Pro Max 256 GB Silver | 4,590 AED | 5,099 AED | FAB10 - Extra 10% off with selected cards |
| Galaxy S25 Ultra 256 GB (Smartphones category) | 2,699 AED | 5,099 AED | FAB10 - Extra 10% off with selected cards |
| Nike Revolution 8 EasyOn | 297 AED | 349 AED | FAB10 |
| iPhone 17 Pro Max 256 GB Cosmic Orange | 4,899 AED | null - not discounted | SALE200 - 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.
Which countries, which price, which currency, and what noon leaves out
Six noon storefronts, one product id shared across them, and a currency on every row. Measured on 2026-09-15 with live calls in every supported country and a 12-product check against the page's own structured data. Three of these lines go against us.
ae (AED), eg (EGP), kw (KWD), om (OMR), qa (QAR) and bh (BHD), each in English or Arabic. Every row, product and offer carries its currency, and each storefront was checked live for the currency it actually prices in - not the one a country code implies.
A noon id such as N70211545V opens the same product in every storefront, but the sellers, prices and stock differ by country - the same iPhone 17 Pro Max had 7 offers in the UAE and 5 in Kuwait when measured. A pasted product URL sets the country for you.
noon publishes a list price and a sale price, and on a discounted product the list price is the struck-through one. price is always what the shopper pays, price_before_discount is the struck number, and a coupon code is returned on its own and never subtracted.
On 12 products across phones, shoes, fragrance, kitchen, toys and grocery, the title, price, availability, rating, review count and buy-box seller matched noon's own structured data on 12 of 12, and the price matched a second independent read of the page on 12 of 12.
product/detail and product/offers list every seller's offer on the product with seller rating, stock, warranty, returns and delivery date, and flag the buy-box offer. price_min and price_max come from the real offers, never from the buy box alone.
noon's Saudi storefront cannot be served through this API. country=sa returns MARKET_UNAVAILABLE rather than quietly answering with another country's catalogue.
noon publishes no GTIN, EAN or UPC, so gtin is null on every product measured. Offer stock never went above 10, so 10 means '10 or more' and is flagged as such.
A product call in the UAE or Egypt typically takes around ten seconds, because noon itself takes that long to build those pages; the same call in Kuwait, Oman, Qatar or Bahrain returns in one to two seconds. Search and category calls are fast in every country.
What people build with noon
The jobs this data is most often used for.
endpoints
credit per call
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.
What noon data costs
The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 252 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
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"}'import requests
r = requests.post(
"https://api.reefapi.com/noon/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "iphone",
"country": "ae"
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up noon.
Get a free key →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.
91 E-commerce & Marketplaces APIs on the same key
One key, one credit pool, one response envelope. If you are pulling noon, you are one call away from the rest of the category — no second contract, no second integration.
Need something this API does not do?
Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 251 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-09-15.