noon Seller & Price Monitor - UAE & Saudi Buy Box Tracker avatar

noon Seller & Price Monitor - UAE & Saudi Buy Box Tracker

Pricing

from $1.50 / 1,000 offer returneds

Go to Apify Store
noon Seller & Price Monitor - UAE & Saudi Buy Box Tracker

noon Seller & Price Monitor - UAE & Saudi Buy Box Tracker

Every seller on a noon.com product in the UAE or Saudi Arabia: Buy Box winner, price, was-price, stock, delivery date, noon fulfilment, seller rating, per size or color. Monitor mode returns only changes: Buy Box won or lost, price up or down, new seller, seller gone.

Pricing

from $1.50 / 1,000 offer returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Every seller on a noon.com product in the UAE or Saudi Arabia, with the Buy Box winner (the offer that goes into the cart), as clean JSON: seller name and seller ID, price, was-price, stock, estimated delivery date, fulfilled by noon (FBN), free delivery, seller rating - for every size and color of the product. In monitor mode it returns only what changed since your last run: Buy Box won or lost, price up or down, a new seller, a seller that left. Built for noon sellers, brands watching their resellers, and repricing or price-intelligence pipelines that check the same products many times a day and do not want to pay again for offers that did not change.

  • Every seller of every size and color, every run. No seller is skipped between pages, so seller-left means the seller really is gone from the product.
  • One row per seller per size or color, with the Buy Box fields on every row: buyBoxSellerId, buyBoxSellerName, buyBoxPrice, and in monitor mode previousBuyBoxSellerId / previousBuyBoxPrice.
  • Numbers, not text. price, wasPrice, discountPercent, stock, sellerRating, sellerRatingsCount, sellerPositivePercent are numbers; currency is AED or SAR; estimatedDeliveryDate is an ISO date.
  • Monitor mode with a price threshold. Set minPriceChangePercent to ignore small moves, and watchName to keep one memory per watch even when you add or remove products.
  • Nothing is charged for products that could not be read. A SKU noon does not know, a product with no sellers right now, or a request noon refused comes back as a free row that says why. The first run of a watch is a normal run (every seller, first-check); after that you pay only for changes.
  • UAE and Saudi Arabia, each read with that country's store settings, so prices, sellers and delivery dates are what a shopper in that country sees. A price is reported only when noon's answer itself says which country it is for, and that country is the one you asked for.

Unofficial. No login, no cookies, no seller account and no API keys needed.

What you get

One row per seller and size or color. Example (local run on a saved noon answer, 2026-10-21, SKU N70211553V on noon UAE):

{
"status": "ok",
"changeType": "first-check",
"changes": ["first-check"],
"sku": "N70211553V",
"country": "uae",
"productTitle": "iPhone 17 256GB (Nano SIM + eSIM) Black 5G With FaceTime - International Version",
"brand": "Apple",
"category": "Smartphones",
"productRating": 4.6,
"productRatingsCount": 6878,
"variantSku": "N70211553V-1",
"variant": null,
"buyBoxSellerId": "p-16024",
"buyBoxSellerName": "Viola-UAE",
"buyBoxPrice": 3399,
"sellersOnVariant": 3,
"lowestPrice": 3399,
"isBuyBoxWinner": true,
"sellerId": "p-16024",
"sellerName": "Viola-UAE",
"price": 3399,
"currency": "AED",
"wasPrice": null,
"discountPercent": null,
"offersFromSeller": 1,
"priceRank": 1,
"isLowestPrice": true,
"priceAboveBuyBox": 0,
"stock": 3,
"isBuyable": true,
"fulfilledByNoon": true,
"freeDelivery": true,
"estimatedDeliveryDate": "2026-10-22",
"sellerRating": 4.8,
"sellerRatingsCount": 1390,
"sellerPositivePercent": 98,
"warranty": "1 year manufacturer warranty",
"isReturnable": true,
"productUrl": "https://www.noon.com/uae-en/iphone-17-256gb-nano-sim-esim-black-5g-with-facetime-international-version/N70211553V/p/",
"checkedAt": "2026-10-21T06:51:58.105Z"
}
ColumnMeaning
statusok for an offer row. Other values are free rows that say why nothing was returned (below)
changeTypefirst-check, new-seller, seller-returned (a seller this watch saw leave or sell out is back), buybox-won, buybox-lost, price-down, price-up, seller-left or unchanged
changesAll changes for this seller in this run (for example ["buybox-won", "price-down"]); changeType is the first
sku, country, productTitle, brand, category, productRating, productRatingsCountThe product
variantSku, variantThe size or color (for example ZA133E7D109B839C34173Z-3, 41). variant is null for products without sizes or colors
buyBoxSellerId, buyBoxSellerName, buyBoxPriceWho holds the Buy Box for this size or color right now
buyBoxChanged, previousBuyBoxSellerId, previousBuyBoxSellerName, previousBuyBoxPriceMonitor mode: whether the Buy Box moved since the last run of this watch, and who had it
sellersOnVariant, lowestPriceHow many sellers offer this size or color, and the lowest price among them
isBuyBoxWinnerTrue for the seller holding the Buy Box
sellerId, sellerNameThe seller (noon's partner code, for example p-16024, and the store name)
price, currency, wasPrice, discountPercentThe price a shopper pays now, and the crossed-out price with the discount when noon shows one
offersFromSellerHow many offers this seller has on this size or color (the Buy Box offer or the cheapest one is returned)
previousPrice, priceChange, priceChangePercent, previousCheckedAtMonitor mode: the price this watch last reported for this seller, and the difference
priceRank, isLowestPrice, priceAboveBuyBoxPosition by price among the sellers of this size or color, and the gap to the Buy Box price
stock, isBuyableUnits noon shows as available for this offer, and whether it can be added to the cart
fulfilledByNoon, freeDelivery, estimatedDeliveryDateFBN or seller-fulfilled, free delivery, and the delivery date shown to a shopper
sellerRating, sellerRatingsCount, sellerPositivePercentSeller feedback as shown on the offer
warranty, isReturnableWarranty text and returns, as shown on the offer
sellerStillListedFor buybox-lost / seller-left rows: whether the seller still has an offer on this size or color
productUrlThe product page in that country
noteFree rows only: why nothing (or not everything) was returned
watchName, checkedAtThe watch and the time of the check

Free rows (not charged)

statusWhen
no-changeMonitor mode: no Buy Box change, no new seller, no reportable price move and no seller gone since the last run
no-offersnoon shows no seller for the product (or the size or color you asked for) right now
not-foundnoon has no product with this SKU (HTTP 404), or no size or color with the number you gave
blockednoon refused the requests. The Actor does not work around it, so it stops; the remaining products are listed in the row
unreadablenoon's answer could not be read, also after asking again, or it was not for the product or country asked for
more-not-returnedMore rows than maxOffersPerProduct; they were not returned and not charged
bad-inputThe input could not be used; nothing was requested
budget-reachedThe run hit the maximum total charge you set; rows not returned are not remembered, so the next run returns them
timeout-nearThe run was close to its timeout, so it stopped before the next product and saved what it had read; the products not checked are listed in the row
example-productproducts was empty, so the run checked the example product N70211553V (its seller rows are normal, charged rows)

Input

FieldTypeDefaultDescription
productsarray of stringsexample N70211553VSKUs (N70211553V), a SKU with a size or color number (ZA133E7D109B839C34173Z-3) or product URLs. A URL with ?o=<SKU>-N checks only that size or color. Up to 100 per run. The same product written several ways (SKU, SKU with a size, URL) is read and charged once; if any of them is the whole product, every size and color is returned. Empty: the example product N70211553V is checked and a free example-product row says so
countrystringuaeuae (noon.com/uae-en, AED) or saudi (noon.com/saudi-en, SAR). Product URLs must be for the same country
maxOffersPerProductinteger 1-20050Offer rows per product (one per seller per size or color)
onlyChangesbooleanfalseMonitor mode: after the first run, return only changed sellers
minPriceChangePercentnumber 0-500In monitor mode, ignore price moves smaller than this percentage
watchNamestring(none)Names the memory of monitor mode. With a name, the memory belongs to the name and the country, so adding or removing products keeps it. Without a name, the memory belongs to this exact list of products and the country: a different list starts again with first-check
resetMonitoringStatebooleanfalseForget this watch's memory at the start of the run

Example:

{ "products": ["N70211553V", "https://www.noon.com/uae-en/some-product/N12345678A/p/"], "country": "uae", "onlyChanges": true }

How to use it for Buy Box monitoring on noon

  1. Run it once with your SKUs to see every seller, every size and color, and who holds the Buy Box.
  2. Create a Schedule (every 15 or 60 minutes) with the same input and onlyChanges: true.
  3. Connect a webhook or an integration (Slack, email, Zapier, Make, Google Sheets). Filter on status = "ok"; a buybox-lost row for your own seller ID is the alert most sellers want.

Pricing

Pay per event:

  • Run start - charged once per run, only when at least one product's seller list was actually read. Not charged when every SKU is unknown, when noon refuses the request, or when the run's maximum total charge has no room for the start fee plus one row (then nothing is requested at all).
  • Offer returned - one per seller row. Free rows are never charged, and in monitor mode unchanged sellers are not returned.

A scheduled check with no change costs one run start. The exact prices are shown on the Pricing tab.

Good to know

  • The Buy Box shown is the one noon shows to a logged-out shopper in that country with the default delivery location.
  • For a size or color other than the product's default, the Buy Box is the first offer noon lists for it (the one its page shows first).
  • A seller with several offers on the same size or color is returned once (the Buy Box offer, or the cheapest), with offersFromSeller telling how many offers it has.
  • noon UAE and noon Saudi Arabia only. Each run reads one country; run once per country for both.
  • Two overlapping schedules for the same products and watchName can overwrite each other's memory; use different watchNames.
  • When every seller of a product sells out, monitor mode returns buybox-lost and seller-left once (with price: null and sellerStillListed: false), then free no-offers rows while it stays sold out. When the sellers come back, they are returned as seller-returned, not as new sellers.
  • If a run is aborted, restarted by Apify or close to its timeout, the seller rows already returned (and charged) are remembered, so the next run does not return them again. Products already checked before a restart are not checked again in the same run.
  • If noon's answer does not say which country it is for, the product comes back as a free unreadable row instead of prices that might be for the other country.
  • If noon refuses the requests, the run stops and says so in a free row. It never solves check pages or CAPTCHAs.

Thanks for using this Actor

We build these tools for people who run them every day, and we improve them from what users tell us.

  • Missing a field, or need another filter? Tell us in the Issues tab. If the data is there, we add it.
  • Found a bug or a wrong value? Post the run ID in the Issues tab. Wrong data is the thing we fix first.

If this Actor saved you time, a short review helps other people find it.