# N11 Product Scraper - Turkish Marketplace Prices & Sellers (`atesen-software/n11-product-scraper`) Actor

Scrape product listings from public n11.com search and category pages: title, price, rating, review count, seller, image and product ID. Search by keyword or paste URLs. $1.50 per 1,000 results.

- **URL**: https://apify.com/atesen-software/n11-product-scraper.md
- **Developed by:** [Atesen Software](https://apify.com/atesen-software) (community)
- **Categories:** E-commerce, Marketing
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$1.50 / 1,000 product results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

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

## N11 Product Scraper

An Apify Actor that scrapes **public** product search and category listing pages of [n11.com](https://www.n11.com), the Turkish e-commerce marketplace. It is a lightweight **n11 product API alternative** for price monitoring, market research and catalog enrichment: it returns product titles, prices, images, ratings, review counts and sellers from n11's public listings.

### What does N11 Product Scraper do?

This Actor visits **public, non-logged-in listing pages** of [n11.com](https://www.n11.com) — search result pages (e.g. `https://www.n11.com/arama?q=laptop`) and category pages (e.g. `https://www.n11.com/telefon-ve-aksesuarlari`) — and extracts one record per product card. It does **not** visit product detail pages, user profiles, or any page behind a login. It does **not** collect any personal data.

The Actor uses a real browser window (Chromium) to load listings. **Important honest limitation:** n11.com is currently served through Cloudflare and blocks typical headless automation. This Actor therefore opens a visible browser window by default and behaves like a normal human visitor. It **never bypasses** CAPTCHAs, login walls, paywalls, or anti-bot systems — if n11.com serves a block or challenge page even to the visible browser, the run stops and reports it instead of trying to defeat it.

### Why scrape n11.com?

- **Price monitoring** — track competitor prices on Turkey's marketplace across categories.
- **Market research** — count products, ratings and review volume by keyword or category.
- **Catalog enrichment** — collect product titles, images and product IDs for matching.
- 💬 Free tier friendly pricing: the Actor runs locally against real listings and charges per result (see below).
- 📒 Scheduled runs, API access, integrations (Make, Zapier, Airbyte) and monitoring come for free with the Apify platform.

### What data can N11 Product Scraper extract?

| Field | Type | Description |
| --- | --- | --- |
| `title` | string / null | Product listing title as shown on n11.com |
| `price` | number / null | Current listed price (numeric) |
| `currency` | string | Currency code, currently `TRY` |
| `url` | string / null | URL of the product's public page on n11.com |
| `imageUrl` | string / null | First product image from the listing card |
| `rating` | number / null | Average rating on a 0–5 scale (null if the product has no rating shown) |
| `reviewCount` | number / null | Number of customer reviews shown on the listing card |
| `seller` | string / null | Seller (shop) nickname, when visible in the page data |
| `productId` | string / null | n11.com internal numeric product ID |

### How to scrape n11.com products?

1. Open this Actor in [Apify Console](https://console.apify.com) (or run it locally with the Apify CLI using `apify run`).
2. On the **Input** tab, enter a **Search keyword** such as `laptop`, or add one or more **Start URLs** pointing at public n11.com category or search pages.
3. Set **Max results** (default 100). The Actor paginates politely (`?pg=2`, `?pg=3`, …) up to your limit.
4. Adjust politeness settings if needed (concurrency and page delay); defaults are already conservative.
5. Click **Run**. Results appear in the **Output → Dataset** tab.

Careful with very broad keywords (for example `laptop` matches over a million products on n11.com) — set **Max results** to keep runs short.

### How much will it cost to scrape n11.com?

The Actor uses the **pay-per-event** pricing model: you are charged one `results` event **per product pushed to the dataset**, priced in the Actor's pricing settings on Apify Store. The Apify compute cost is small (a single Chromium page session per 1–2 concurrent listings). Running locally is free apart from your own machine's resources.

### Input

See the **Input tab** for the full, validated list of options. Summary:

| Field | Type | Default | Description |
| --- | --- | --- | --- |
| `search` | string | `laptop` | Keyword used to build an n11.com search URL. Ignored when Start URLs are set. |
| `startUrls` | array | — | Public n11.com search/category URLs to start from. |
| `maxItems` | integer | `100` | Stop after this many product results. |
| `maxConcurrency` | integer | `2` | Parallel listing pages (1–5). Keep low to stay polite. |
| `requestDelayMillis` | integer | `4000` | Extra pause between pages. |
| `headless` | boolean | `false` | Run the browser without a visible window. n11.com currently blocks headless automation, so keep this off if you see block pages. |
| `proxyConfiguration` | object | off | Optional proxy settings (Apify Proxy is a paid service). |

### Output

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

```json
{
  "title": "Lenovo LOQ 15IRX10 i5-14500HX 16 GB 512 GB SSD RTX5050 15.6\" Dizüstü Bilgisayar",
  "price": 73400.94,
  "currency": "TRY",
  "url": "https://www.n11.com/urun/lenovo-loq-15irx10-83je012mtr-i5-14500hx-123689611",
  "imageUrl": "https://n11scdn.akamaized.net/a1/320_480/08/10/15/39/IMG-1234567890123456789.png",
  "rating": 4.5,
  "reviewCount": 20,
  "seller": "ExampleSeller",
  "productId": "123689611"
}
```

### Tips

- Start with **Max results** ≤ 100 while testing.
- If you see block pages, lower **Max concurrent browsers** to 1 and increase the page delay. The Actor cannot and will not bypass the site's protections for you.
- Product detail pages are out of scope; each result links to the product URL, so you can fetch details yourself for a small subset.

### FAQ

**Does the Actor need an n11.com account?** No. It only visits public pages that any visitor can see without logging in.

**Does it collect personal data?** No. It extracts product-level data only — no user profiles, no contact details, no tracking data.

**Ethical scraping disclaimer:** Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

**The run finished with zero results and a warning about blocked pages.** n11.com is protected by Cloudflare and sometimes blocks automated access. The Actor reports this honestly instead of bypassing it. Try with `headless: false` in an environment that can display a browser window, or come back later.

### Support

- For issues and feedback, use the **Issues** tab on the Actor page.
- For programmatic access, see the **API** tab.
- If n11.com changes its page structure and results degrade, open an issue — extraction selectors are maintained and verified regularly.

# Actor input Schema

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

Search keyword used to build an n11.com search URL, e.g. "laptop" or "iphone 15". Ignored when Start URLs are provided.

## `startUrls` (type: `array`):

Public n11.com category or search URLs to scrape, e.g. https://www.n11.com/telefon-ve-aksesuarlari or https://www.n11.com/arama?q=iphone. When provided, the Search keyword is ignored.

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

Maximum number of products to collect across all pages and URLs.

## `maxConcurrency` (type: `integer`):

Maximum number of pages scraped at the same time. Keep this low (1-2) to stay polite to n11.com.

## `requestDelayMillis` (type: `integer`):

Extra wait time after each page before continuing to the next one, in milliseconds.

## `headless` (type: `boolean`):

Runs the browser without a visible window. NOTE: n11.com currently blocks headless automation with Cloudflare; with this off, a normal visible browser window is used, exactly like a human visitor. If the site nevertheless shows a CAPTCHA or block page, the Actor stops rather than trying to bypass it.

## `proxyConfiguration` (type: `object`):

Optional proxy settings. Apify Proxy is a paid service - leave empty to connect directly.

## Actor input object example

```json
{
  "search": "laptop",
  "startUrls": [
    {
      "url": "https://www.n11.com/bilgisayar/dizustu-bilgisayar"
    }
  ],
  "maxItems": 100,
  "maxConcurrency": 2,
  "requestDelayMillis": 4000,
  "headless": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

Dataset containing all scraped n11.com products

# 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 = {
    "search": "laptop",
    "startUrls": [
        {
            "url": "https://www.n11.com/bilgisayar/dizustu-bilgisayar"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("atesen-software/n11-product-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 = {
    "search": "laptop",
    "startUrls": [{ "url": "https://www.n11.com/bilgisayar/dizustu-bilgisayar" }],
}

# Run the Actor and wait for it to finish
run = client.actor("atesen-software/n11-product-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 '{
  "search": "laptop",
  "startUrls": [
    {
      "url": "https://www.n11.com/bilgisayar/dizustu-bilgisayar"
    }
  ]
}' |
apify call atesen-software/n11-product-scraper --silent --output-dataset

```

## MCP server setup

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