# Noon.com Product & Ads Scraper (`drramerets/noon-products`) Actor

Products from noon.com search results and category pages: price, discount, brand, rating, seller, image and where each one ranked. Ads are marked, not hidden — you see which results were paid placements, in which slot and which store paid for them. UAE, Saudi Arabia and Egypt, English or Arabic.

- **URL**: https://apify.com/drramerets/noon-products.md
- **Developed by:** [Andrey](https://apify.com/drramerets) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 products

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Noon.com Product & Ads Scraper

Products from noon.com search results and category pages — with the paid placements told
apart from the ones that earned their rank.

### What you get

A table with one row per product: name, brand, price, the price it was before the
discount, the discount itself, rating, number of ratings, the seller, the image and the
link. Every row also carries where it stood in the results, when it was collected and
which marketplace it came from.

Ads are marked, not hidden. You see which products were paid placements, which slot they
occupied and which store paid for them — including products that appear **only** as ads
and never show up in the normal results. The ranking of the normal results stays clean:
it is read separately, so it is what a shopper actually sees.

### What you can do with it

- Track prices and discounts across a category, day by day.
- See who is buying visibility on your keywords, and how much of the page they hold.
- Find sellers who only advertise — they are invisible in the plain results.
- Compare the same catalogue across the Emirates, Saudi Arabia and Egypt.
- Pull an Arabic and an English run and put them side by side: prices, brands and product
  codes match, only the text changes.

### How to use it

Type in one or more keywords, or paste the address of a category page from your browser.
If you already know the products, paste their links or codes instead. Choose the
marketplace and the language, set how many products you want, and press Start.

A word on keywords: noon answers every search with something. A misspelt keyword comes
back as a full page of unrelated products rather than as an empty result — so the run
tells you when the results do not mention what you asked for. Check that message before
you use the data.

### Good to know

- One keyword gives you up to 2,000 products. For more, use narrower keywords or go
  category by category.
- Ads take at most a quarter of the rows you asked for, so they never crowd out the
  products you came for. If some were left out, the run says so.
- You can see how the prices you get compare with what a single seller charges — the
  price here is the storefront price, and the seller who actually gets the sale can
  charge differently. The Buy Box actor below is the one for that.
- Advertising budgets and bids cannot be measured — nobody publishes a competitor's bid.
  Who advertises, where and how often is what you get.

### What it costs

**$1.00 per 1,000 products**, plus $0.005 per run. On top of that Apify bills your
account for what the run consumes on the platform — computing time and data transfer.
This actor is built to keep that small: in our own measurements it came to roughly
**$0.02 per 1,000 products**.

### Support

Questions, a field you need that is not here, or another marketplace — write to
**admin@noonseller.ae** or visit **[noonseller.ae](https://noonseller.ae)**.

*This is an independent tool. It is not affiliated with, endorsed by, or connected to
noon.com.*

### Related actors

- **Noon.com Reviews Scraper** — what buyers write, with dates and translations.
- **Noon.com Seller & Buy Box Monitor** — every seller of a product, their price, and who
  is winning the sale.

# Actor input Schema

## `queries` (type: `array`):

One keyword per line — exactly what you would type into noon's search box, e.g. air fryer. Note that noon answers every search with something: if a keyword is misspelt you get a full page of unrelated products rather than an empty result, so the run will tell you when the results do not mention what you asked for.

## `categories` (type: `array`):

Paste the address of a noon category page, e.g. https://www.noon.com/uae-en/electronics-and-mobiles/ — copied straight from your browser. Deeper category pages work the same way.

## `productUrls` (type: `array`):

Collect named products instead of searching. Paste the link from your browser or the product code from the end of it — both work, and you can mix them.

## `includeSponsored` (type: `boolean`):

Marks which results are ads, in which slot and which store paid for them, and adds the products that appear only as ads. Organic ranking stays clean either way. Ads take at most a quarter of your row limit, so the products you asked for are never crowded out.

## `country` (type: `string`):

Which noon marketplace to read. Prices, availability and ranking differ between them.

## `language` (type: `string`):

Arabic returns product names in Arabic. Prices, brands and product codes are the same in both, so Arabic and English runs can be compared side by side.

## `maxItems` (type: `integer`):

How many products to collect at most.

## `sortBy` (type: `string`):

The same order noon offers on its own search page.

## `maxPagesPerQuery` (type: `integer`):

Leave as is. Lower it only if you want a quick look at the top results of each keyword.

## `useApifyProxy` (type: `boolean`):

Leave switched on. Without it noon will not serve data for the marketplace you selected and the run comes back empty.

## `customProxyUrl` (type: `string`):

Optional. Use your own proxy instead of Apify's.

## Actor input object example

```json
{
  "queries": [
    "laptop"
  ],
  "includeSponsored": true,
  "country": "ae",
  "language": "en",
  "maxItems": 200,
  "sortBy": "popularity",
  "maxPagesPerQuery": 10,
  "useApifyProxy": true
}
```

# Actor output Schema

## `products` (type: `string`):

One row per product: price, discount, brand, rating, seller, image, where it ranked, and whether it was a paid placement.

## `advertisers` (type: `string`):

One record per keyword: which stores bought which slots and how far each sits from where it ranks without paying.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        "laptop"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("drramerets/noon-products").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "queries": ["laptop"] }

# Run the Actor and wait for it to finish
run = client.actor("drramerets/noon-products").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "queries": [
    "laptop"
  ]
}' |
apify call drramerets/noon-products --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=drramerets/noon-products",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/8har5IL7eR25skywu/builds/NUgN3cbFYCSrXlxrD/openapi.json
