# N11 Product Scraper (`solidcode/n11-scraper`) Actor

\[💰 $3.00 / 1K] Extract product data from n11.com, Turkey's marketplace — titles, prices, discounts, ratings, seller info, breadcrumbs, specifications, images, and stock status. Search by keyword or paste category and product page URLs.

- **URL**: https://apify.com/solidcode/n11-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## N11 Product Scraper

Pull product data from n11.com, one of Turkey's largest online marketplaces — titles, brands, live prices with original-vs-discounted amounts, star ratings, review counts, seller identity, category breadcrumbs, full image galleries, and structured specification tables. Built for Turkish-market analysts, e-commerce sellers, and price-monitoring teams who need clean n11 product and pricing data without copy-pasting product pages by hand.

### Why This Scraper?

- **Three ways in, mixed in one run** — search by keyword, paste a category or brand page URL, or drop in direct product URLs. Combine all three sources in a single job.
- **6 sort orders** — Best Match, Price: Low to High, Price: High to Low, Best Selling, Most Reviewed, and Newest, so you collect the exact slice of a category you care about.
- **Full discount economics on every product** — original price, discounted price, and a computed discount percentage, captured the way Turkish shoppers actually see the deal.
- **A structured specifications table on every product** — every technical attribute n11 lists (brand, model, dimensions, materials, and more) as clean key-value pairs, instead of a wall of description text you'd have to parse yourself.
- **Full seller identity** — the primary seller's store name plus the third-party seller's storefront URL, ready for competitor tracking and lead lists.
- **Up to 5,000 products per search term or category** — go deep on a whole department, not just the first page.
- **Star rating (0–5) and exact review count** on every listing — sort by Most Reviewed to surface a category's proven best-sellers in one pass.
- **Complete image gallery per product** — every product photo URL, not just the thumbnail, with in-stock and free-shipping flags alongside.
- **Optional full-detail enrichment** — flip one switch for descriptions, specs, the full gallery, and seller details, or leave it off for fast, lightweight listing rows.

### Use Cases

**Price & Discount Monitoring**

- Track competitor pricing across an entire category on a schedule
- Measure real discount depth using original vs. discounted price
- Spot price drops and flash promotions as they go live
- Benchmark your listings against the cheapest and most expensive rivals

**Competitive & Market Research**

- Map a category's full assortment, brand mix, and price distribution
- Identify best-selling products by review volume and rating
- Watch newly listed products to catch emerging brands and trends
- Compare specification tables across competing models side by side

**Seller & Lead Intelligence**

- Build lists of third-party sellers with their storefront URLs
- Track which sellers dominate a category and at what price
- Monitor a specific seller's catalog, ratings, and stock status

**Catalog & Content Enrichment**

- Enrich your own product database with fresh titles, images, and specs
- Populate comparison tools and buying guides with structured attributes
- Feed ratings and review counts into recommendation and ranking systems
- Pull complete image galleries for catalog and creative work

### Getting Started

#### Simple Keyword Search

The quickest start — one search term, default settings:

```json
{
    "searchQueries": ["laptop"]
}
```

#### Sorted, Capped Search

Collect the 200 most-reviewed coffee machines to surface proven best-sellers:

```json
{
    "searchQueries": ["kahve makinesi"],
    "sortBy": "mostReviewed",
    "maxProductsPerQuery": 200
}
```

#### Category & Product URLs with Full Detail

Scrape a whole category page plus a couple of exact products, with rich details on every row:

```json
{
    "categoryUrls": ["https://www.n11.com/bilgisayar"],
    "productUrls": [
        "https://www.n11.com/urun/example-product-1",
        "https://www.n11.com/urun/example-product-2"
    ],
    "maxProductsPerQuery": 500,
    "scrapeProductDetails": true
}
```

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchQueries` | string\[] | `["laptop"]` | Keywords to search on n11.com, such as "laptop" or "kahve makinesi". Each term is searched separately. |
| `categoryUrls` | string\[] | `[]` | n11.com category or listing page URLs (for example a brand or department page). Every product found on each page is collected. |
| `productUrls` | string\[] | `[]` | Direct n11.com product page URLs to scrape those exact products. |

#### Limits & Detail

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `maxProductsPerQuery` | integer | `100` | Maximum products to collect for each search term or category URL (1–5,000). Product URLs are always collected in full. |
| `sortBy` | select | `Best Match (default)` | Order in which products are collected from search terms and category pages: Best Match, Price: Low to High, Price: High to Low, Best Selling, Most Reviewed, or Newest. Does not affect direct product URLs. |
| `scrapeProductDetails` | boolean | `true` | Add rich details to every product — full description, specifications table, all product images, seller name, and stock status. Turn off for a faster, cheaper run that returns core listing fields only. |

### Output

Each product is one flat row. Here's a representative result with full details enabled:

```json
{
    "scrapedAt": "2026-08-05T14:30:00Z",
    "productUrl": "https://www.n11.com/urun/example-laptop-15-fhd",
    "productId": "123456789",
    "title": "Example 15.6\" FHD Laptop Intel Core i5 16GB 512GB SSD",
    "brand": "ExampleBrand",
    "sellerName": "TechStore",
    "sellerUrl": "https://www.n11.com/magaza/techstore",
    "price": 24999.0,
    "originalPrice": 38699.0,
    "discountPercentage": 35,
    "currency": "TRY",
    "rating": 4.6,
    "reviewCount": 1284,
    "inStock": true,
    "freeShipping": true,
    "categoryPath": ["Bilgisayar", "Dizüstü Bilgisayar", "Laptop"],
    "imageUrls": [
        "https://n11scdn.akamaized.net/a1/640/example-1.jpg",
        "https://n11scdn.akamaized.net/a1/640/example-2.jpg"
    ],
    "description": "Yüksek performanslı dizüstü bilgisayar, günlük kullanım ve iş için ideal...",
    "specifications": {
        "İşlemci Tipi": "Intel Core i5",
        "RAM": "16 GB",
        "SSD Kapasitesi": "512 GB",
        "Ekran Boyutu": "15.6 inç"
    },
    "sourceQuery": "laptop"
}
```

#### Core Product Fields

| Field | Type | Description |
|-------|------|-------------|
| `productId` | string | n11 product identifier |
| `productUrl` | string | Canonical product page URL |
| `title` | string | Product title |
| `brand` | string | Brand name |
| `categoryPath` | string\[] | Category breadcrumb, top level to leaf |
| `rating` | number | Average star rating, 0–5 (null when unrated) |
| `reviewCount` | integer | Number of customer reviews |
| `inStock` | boolean | Whether the product is currently available |
| `freeShipping` | boolean | Whether free shipping is offered |

#### Pricing

| Field | Type | Description |
|-------|------|-------------|
| `price` | number | Current selling price |
| `originalPrice` | number | Pre-discount price (null when there's no discount) |
| `discountPercentage` | number | Computed discount percent (null when there's no discount) |
| `currency` | string | Always `TRY` (Turkish Lira) |

#### Seller

| Field | Type | Description |
|-------|------|-------------|
| `sellerName` | string | Primary seller / store name |
| `sellerUrl` | string | Third-party seller storefront URL, when full details are on (null for the official n11 store) |

#### Media & Details

| Field | Type | Description |
|-------|------|-------------|
| `imageUrls` | string\[] | Full product image gallery |
| `description` | string | Full product description (when full details are on) |
| `specifications` | object | Key-value table of named product attributes (when full details are on) |

#### Meta

| Field | Type | Description |
|-------|------|-------------|
| `sourceQuery` | string | The search term or URL that produced this row |
| `scrapedAt` | string | ISO timestamp of when the product was collected |

### Tips for Best Results

- **Start small to test.** Set `maxProductsPerQuery` to 20–50 on your first run to confirm the data matches your needs, then scale up toward 5,000.
- **Category URLs beat broad keywords for precision.** A category or brand page URL returns a tightly scoped, on-topic set, while a broad keyword like "laptop" can pull in accessories and unrelated items.
- **Use Most Reviewed to find best-sellers.** Sorting by Most Reviewed surfaces the proven, high-volume products in a category — the fastest way to a shortlist of what actually sells.
- **Turn on full details only when you need specs.** Leave `scrapeProductDetails` on for descriptions, specification tables, and complete image galleries; turn it off for a faster, cheaper run when core listing fields are enough.
- **Search terms in Turkish return the richest results.** n11 is a Turkish-language marketplace, so native terms like "kahve makinesi" match far more inventory than their English equivalents.
- **Mix sources in one run.** Combine several search terms, category URLs, and product URLs in a single job — each row is tagged with its `sourceQuery` so you can trace where it came from.
- **Compare `originalPrice` to `price` for true discount depth.** The advertised discount percentage is computed for you, so you can filter for genuinely deep markdowns rather than token price cuts.

### Pricing

**From $3.00 per 1,000 results** — pay only for the products you collect, at one of the lowest rates for n11 data. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.36 | $0.34 | $0.32 | $0.30 |
| 1,000 | $3.60 | $3.40 | $3.20 | $3.00 |
| 10,000 | $36.00 | $34.00 | $32.00 | $30.00 |
| 100,000 | $360.00 | $340.00 | $320.00 | $300.00 |

A "result" is any product row in the output dataset. No compute or time-based charges — you pay per result, plus a small fixed per-run start fee.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor is designed for legitimate market research, price monitoring, and competitive analysis. Users are responsible for complying with applicable laws and n11.com's Terms of Service. Do not use extracted data for spam, harassment, or any illegal purpose, and respect content usage rules for any product data collected.

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords to search on n11.com, such as 'laptop' or 'kahve makinesi'. Each term is searched separately. Leave empty if you are pasting page URLs instead.

## `categoryUrls` (type: `array`):

Paste n11.com category or listing page URLs (for example a brand or department page). Every product found on each page is collected. Leave empty if you are using search terms instead.

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

Paste direct n11.com product page URLs to scrape those exact products. Leave empty if you are using search terms or category pages.

## `maxProductsPerQuery` (type: `integer`):

Maximum number of products to collect for each search term or category URL. Lower this to keep runs fast and cheap; raise it to go deep on a category. Product URLs are always collected in full.

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

Order in which products are collected from search terms and category pages. Does not affect direct product URLs.

## `scrapeProductDetails` (type: `boolean`):

Add rich details to every product — full description, specifications table, all product images, seller name, and stock status. Turn off for a faster, cheaper run that returns core listing fields only (title, price, rating, image).

## Actor input object example

```json
{
  "searchQueries": [
    "laptop"
  ],
  "categoryUrls": [],
  "productUrls": [],
  "maxProductsPerQuery": 100,
  "scrapeProductDetails": true
}
```

# Actor output Schema

## `overview` (type: `string`):

Table of scraped results with key fields.

# 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 = {
    "searchQueries": [
        "laptop"
    ],
    "categoryUrls": [],
    "productUrls": [],
    "maxProductsPerQuery": 100,
    "sortBy": "",
    "scrapeProductDetails": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/n11-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 = {
    "searchQueries": ["laptop"],
    "categoryUrls": [],
    "productUrls": [],
    "maxProductsPerQuery": 100,
    "sortBy": "",
    "scrapeProductDetails": True,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/n11-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 '{
  "searchQueries": [
    "laptop"
  ],
  "categoryUrls": [],
  "productUrls": [],
  "maxProductsPerQuery": 100,
  "sortBy": "",
  "scrapeProductDetails": true
}' |
apify call solidcode/n11-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,solidcode/n11-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/pSPdafK8zyOCbMK3U/builds/wkE223hSGS3dT3xz9/openapi.json
