# Noon Advanced Scraper (`buseta/noon-advanced-scraper`) Actor

Scrape everything with Noon Advanced Scraper ! Whole category, search results, list of products, ratings, reviews, pricing info, and more... Last Update: Mar 22, 2026

- **URL**: https://apify.com/buseta/noon-advanced-scraper.md
- **Developed by:** [buseta](https://apify.com/buseta) (community)
- **Categories:** E-commerce, Automation
- **Features:** Limited permissions
- **Stats:** 242 total users, 5 monthly users, 92.9% runs succeeded, 2 bookmarks
- **User rating**: 3.39 out of 5 stars

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Noon Advanced Scraper: Extract Detailed Product Data

The **Noon Advanced Scraper** is a powerful tool designed to extract in-depth product information from **Noon**, one of the Middle East's leading e-commerce platforms. Whether you're a market researcher, entrepreneur, or online retailer, this scraper helps you gather essential product data with ease.

***

### 🚀 What Does the Noon Scraper Do?

#### 1. Extract Detailed Product Information

- Scrape key product details, including:
  - **Product Title, Description, Prices (Local/USD), Old Prices, Discounts, Images, Ratings, and Reviews.**
- Retrieve historical pricing data to monitor discounts and trends.

#### 2. Scrape Category Pages

- Provide a category URL, and the scraper will automatically navigate through all product pages, enqueue product URLs, and extract data for each item.

#### 3. Review and Rating Insights

- Gather detailed customer reviews, including:
  - **Ratings, Review Comments, Review Titles, Date of Submission, Verified Purchase Status, and Reviewer Name.**
- Access rating distributions and statistics for customer sentiment analysis.

#### 4. Track Discounts

- Identify discounted products and their original prices, helping you spot the best deals.

#### 5. Data Output in Multiple Formats

- Export your scraped data in the following formats:
  - **JSON, CSV, Excel, or HTML** for further analysis.

***

### 💼 Who Needs the Noon Scraper?

#### 1. Market Researchers

- Conduct **competitor analysis** by gathering pricing, discounts, and customer feedback.
- Analyze **customer sentiment** and preferences based on reviews and ratings.
- Monitor **trending products** and forecast demand.

#### 2. Entrepreneurs & Retailers

- Plan **product launches** by studying popular categories and customer behavior.
- Monitor **competitor pricing** and optimize their own pricing strategy.
- Find the best deals to **source inventory at discounted rates.**

#### 3. E-commerce Businesses

- Scrape product data to create **localized product listings.**
- Track market trends to adjust **stock levels and marketing strategies.**

#### 4. Data Analysts & AI Developers

- Leverage structured data for in-depth **business intelligence and reporting.**
- Identify patterns in product performance and customer feedback.
- Use reviews and other data in training **LLM models**.

***

### ⚙️ How to Use the Noon Scraper?

You need to provide the scrape type with either "category_url", "product_urls", or "search" fields to start with. You also need to provide the base country you want to use Noon in.

- If you chose "category", you must provide "category_url".
- If you chose "product", you must provide "product_urls" which is a list of product urls.
- If you chose "search", you must provide "search" field with the search keyword.

You can sort products by their popularity, price (highest or lowest), newest first, or rating. You can set a price range if you want. You can optionally choose to scrape reviews, translate them to english, and provide maximum of reviews to scrape. Note that if a product has a lot of reviews, then scraping them will take longer. So, if you just want a quick scraping, you can set a maximum reviews count such as 100.

#### Some Input Examples

Example for scraping a category:

```json
{
  "scrape_type": "category",
  "category_url": "https://www.noon.com/uae-en/electronics/",
  "country": "uae",
  "sort_by": "popularity",
  "min_price": 100,
  "max_price": 500,
  "get_reviews": true,
  "max_reviews_per_product": 100,
  "translate_to_english": true
}
```

Example for scraping product URLs:

```json
{
  "scrape_type": "product",
  "product_urls": [
    "https://www.noon.com/uae-en/product-1",
    "https://www.noon.com/uae-en/product-2"
  ],
  "get_reviews": true
}
```

Example for scraping a search result:

```json
{
  "scrape_type": "search",
  "search": "laptop",
  "sort_by": "lowest-price",
  "max_reviews_per_product": 10,
  "max_price": 5000
}
```

***

### ⚙️ Output

You can download the dataset extracted by Noon Advanced Scraper in various formats such as JSON, HTML, CSV, or Excel.

A sample output result for each product will be as follows:

```json
{
  "name": "Gaming Laptop",
  "description": "High-performance gaming laptop with powerful specs.",
  "product_link": "https://www.noon.com/uae-en/gaming-laptop/",
  "price": {
    "local_currency": "AED",
    "price_local": 5000,
    "price_usd": 1361.23,
    "price_old_local": 5500,
    "price_old_usd": 1496.35,
    "discount": "9%"
  },
  "rating_info": {
    "rating": 4.5,
    "number_of_ratings": 100,
    "rating_distribution_percentage": [
      { "5": "70%" },
      { "4": "20%" },
      { "3": "5%" },
      { "2": "0%" },
      { "1": "5%" }
    ]
  },
  "images": [
    "https://noon-cdn.com/laptop1.jpg",
    "https://noon-cdn.com/laptop2.jpg"
  ],
  "number_of_reviews": 50,
  "reviews": [
    {
      "title": "Great Laptop",
      "review": "Excellent performance and battery life.",
      "helpful_count": 20,
      "reviewed_by": "John Doe",
      "rating": 5,
      "verified_purchase": true,
      "review_date": "2024-06-01",
      "review_images": ["https://noon-cdn.com/review1.jpg"]
    }
  ]
}
```

***

### ⚙️ Is it legal to scrape Noon?

Our scrapers are ethical and do not extract any private user data. They only extract publicly available data. However, always ensure that scraping is compliant with Noon’s terms of service and applicable regulations.

For more details, check out Apify's blog on [the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

# Actor input Schema

## `scrape_type` (type: `string`):

Type of scraping to perform: Search, Category, Product List

## `product_urls` (type: `array`):

(if Product List): List of product URLs to scrape

## `category_url` (type: `string`):

(if Category): Category URL to scrape

## `search` (type: `string`):

(if Search): Keyword to search for

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

(If Search): Country that the website will display search results

## `sort_by` (type: `string`):

Products will be sorted by this option

## `min_price` (type: `integer`):

Products with this minimum price will be scraped

## `max_price` (type: `integer`):

Products with this maximum price will be scraped

## `get_reviews` (type: `boolean`):

Also scrape reviews from each product

## `max_reviews_per_product` (type: `integer`):

Maximum reviews to scrape per product

## `translate_to_english` (type: `boolean`):

Translate reviews to English or keep in original language

## `proxy_config` (type: `object`):

Select proxies to be used for scraping

## Actor input object example

```json
{
  "scrape_type": "product",
  "product_urls": [
    "https://www.noon.com/uae-en/iphone-14-pro-max-physical-dual-sim-128gb-silver-5g-without-facetime/N53347546A/p"
  ],
  "sort_by": "popularity",
  "get_reviews": false,
  "max_reviews_per_product": 10,
  "translate_to_english": false,
  "proxy_config": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

Product data including prices, ratings, reviews, and images from Noon.com (UAE, KSA, Egypt).

# 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 = {
    "scrape_type": "product",
    "product_urls": [
        "https://www.noon.com/uae-en/iphone-14-pro-max-physical-dual-sim-128gb-silver-5g-without-facetime/N53347546A/p"
    ],
    "sort_by": "popularity",
    "get_reviews": false,
    "max_reviews_per_product": 10,
    "proxy_config": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("buseta/noon-advanced-scraper").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 = {
    "scrape_type": "product",
    "product_urls": ["https://www.noon.com/uae-en/iphone-14-pro-max-physical-dual-sim-128gb-silver-5g-without-facetime/N53347546A/p"],
    "sort_by": "popularity",
    "get_reviews": False,
    "max_reviews_per_product": 10,
    "proxy_config": { "useApifyProxy": False },
}

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

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

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

```

## CLI example

```bash
echo '{
  "scrape_type": "product",
  "product_urls": [
    "https://www.noon.com/uae-en/iphone-14-pro-max-physical-dual-sim-128gb-silver-5g-without-facetime/N53347546A/p"
  ],
  "sort_by": "popularity",
  "get_reviews": false,
  "max_reviews_per_product": 10,
  "proxy_config": {
    "useApifyProxy": false
  }
}' |
apify call buseta/noon-advanced-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,buseta/noon-advanced-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/p89uz21ptfu7Zg3RT/builds/zlpInmEPgdYhapCT1/openapi.json
