# Trendyol Product Scraper (`foxlabs/trendyol-product-scraper`) Actor

Scrape Trendyol.com product data at scale. Extract prices, ratings, brands, seller info, images, and stock status from any search, category, or product page. Fast, reliable, and export-ready (JSON, CSV, Excel).

- **URL**: https://apify.com/foxlabs/trendyol-product-scraper.md
- **Developed by:** [Berkan Kaplan](https://apify.com/foxlabs) (community)
- **Categories:** E-commerce, Developer tools
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## 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/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## Trendyol Scraper - Product Data Extractor

**Trendyol Scraper** extracts product data from [Trendyol.com](https://www.trendyol.com), Turkey's largest e-commerce marketplace with over 200 million products. Scrape prices, ratings, brands, seller info, images, and more — ready to export as JSON, CSV, or Excel.

### What can Trendyol Scraper do?

- Extract **product name, brand, price, discount, and stock status**
- Collect **ratings and review counts** for product analysis
- Scrape **seller/merchant information** for lead generation
- Gather **product images** and category data
- Handle **automatic pagination** to scrape thousands of products
- Support **search queries, category pages, and direct product URLs**
- Built-in **anti-bot protection** with proxy support and browser fingerprinting

### What data can you extract from Trendyol?

| Field | Description | Example |
|-------|-------------|---------|
| `productId` | Unique Trendyol product ID | `941342405` |
| `name` | Full product name | `IdeaPad Slim 3 Intel Celeron N100...` |
| `brand` | Brand name | `LENOVO` |
| `categoryName` | Product category | `Laptop` |
| `sellingPrice` | Current selling price (TRY) | `10999` |
| `originalPrice` | Original price before discount | `12999` |
| `discountPercentage` | Discount percentage | `15` |
| `ratingAverage` | Average rating (0-5) | `4.1` |
| `ratingCount` | Number of ratings | `543` |
| `merchantName` | Seller/merchant name | `Classone` |
| `imageUrls` | Product image CDN URLs | `["https://cdn.dsmcdn.com/..."]` |
| `url` | Direct product page URL | `https://www.trendyol.com/...` |
| `inStock` | Stock availability | `true` |
| `scrapedAt` | Scraping timestamp (ISO) | `2026-04-01T10:30:00.000Z` |

### How to scrape Trendyol

1. Click **Try for free** to open the Actor in Apify Console
2. Paste your Trendyol URLs or enter search keywords
3. Set the maximum number of products you want
4. Enable **Apify Proxy** (recommended for best results)
5. Click **Start** and wait for the results
6. Export your data as **JSON, CSV, or Excel**

#### Input examples

**Scrape by search keyword:**
```json
{
    "searchQueries": ["laptop", "iphone kilif"],
    "maxItems": 100,
    "proxyConfiguration": { "useApifyProxy": true }
}
````

**Scrape by category URL:**

```json
{
    "startUrls": [
        { "url": "https://www.trendyol.com/laptop-x-c103108" }
    ],
    "maxItems": 500,
    "proxyConfiguration": { "useApifyProxy": true }
}
```

**Scrape a specific product page:**

```json
{
    "startUrls": [
        { "url": "https://www.trendyol.com/lenovo/ideapad-slim-3-p-941342405" }
    ],
    "proxyConfiguration": { "useApifyProxy": true }
}
```

#### Supported URL types

| Type | URL Pattern | Example |
|------|-------------|---------|
| Search results | `trendyol.com/sr?q=...` | `https://www.trendyol.com/sr?q=laptop` |
| Category page | `trendyol.com/{category}-x-c{id}` | `https://www.trendyol.com/laptop-x-c103108` |
| Product page | `trendyol.com/{brand}/{product}-p-{id}` | `https://www.trendyol.com/apple/macbook-air-m2-p-123456` |

### Output example

```json
{
    "productId": 941342405,
    "name": "IdeaPad Slim 3 Intel Celeron N100 4GB 128GB 15.6\" FHD W11 Notebook",
    "brand": "LENOVO",
    "categoryName": "Laptop",
    "url": "https://www.trendyol.com/lenovo/ideapad-slim-3-...-p-941342405",
    "originalPrice": 10999,
    "sellingPrice": 10999,
    "discountPercentage": 0,
    "currency": "TRY",
    "ratingAverage": 4.1,
    "ratingCount": 543,
    "reviewCount": 0,
    "imageUrls": [
        "https://cdn.dsmcdn.com/ty1687/product/media/images/prod/PIM/20250602/09/77a116fc.jpg"
    ],
    "merchantName": "Lenovo",
    "inStock": true,
    "scrapedAt": "2026-04-01T10:30:00.000Z"
}
```

### Pricing

This Actor uses the **pay-per-event** pricing model. You only pay for what you get.

| Event | Price |
|-------|-------|
| Result (per item) | $4.00 / 1,000 results |
| Actor start | $0.00005 per start |

Platform usage costs (compute, proxies) are charged separately based on actual consumption.

#### Cost examples

| Scenario | Results | Result cost | Est. total (incl. platform) |
|----------|---------|-------------|----------------------------|
| Small test | 100 | $0.40 | ~$0.50 |
| Medium batch | 1,000 | $4.00 | ~$4.50 |
| Large extraction | 10,000 | $40.00 | ~$45.00 |

#### Free tier

Apify's free plan includes $5.00 in monthly credits — enough to scrape approximately **1,000+ products at no cost**.

#### Tips to reduce costs

- Recommended memory: **1 GB** (increase only if needed)
- Set `maxItems` to limit results and control spending
- Use the **max run cost** setting to cap your budget per run
- Use **datacenter proxies** instead of residential when possible

### Use cases

#### Price monitoring

Track product prices across categories and receive alerts when prices drop. Perfect for deal-hunting apps and price comparison services.

#### Competitor analysis

Compare prices, ratings, and seller performance across brands. Identify market gaps and pricing opportunities on Trendyol.

#### Market research

Analyze product availability, pricing trends, and brand positioning in Turkey's largest online marketplace. Build datasets for business intelligence.

#### Lead generation

Collect seller and merchant data from Trendyol for B2B outreach and partnership opportunities.

#### E-commerce intelligence

Build comprehensive product databases for analytics dashboards, reporting tools, and data-driven decision making.

### Recommended settings

- **Memory:** 1 GB (sufficient for most use cases)
- **Timeout:** 600 seconds
- **Proxy:** Datacenter (Anywhere)

### Tips for best results

- Always enable **Apify Proxy** to avoid rate limiting and blocks
- Start with a small `maxItems` value (10-50) to test before large scrapes
- Use **datacenter proxy** for the best cost-to-performance ratio
- Category pages can contain thousands of products — set `maxItems` to control costs
- The Actor automatically handles pagination, retries, and anti-bot protection

### Integrations

Export your Trendyol data directly to:

- **Google Sheets** — Automatic sync for dashboards
- **Zapier / Make** — Trigger workflows when new data arrives
- **Webhooks** — Push data to your own API
- **Amazon S3 / Google Cloud** — Store large datasets
- **Slack / Email** — Get notifications when scraping completes

### FAQ

**Is it legal to scrape Trendyol?**
Web scraping of publicly available data is generally legal. However, always review [Trendyol's Terms of Service](https://www.trendyol.com/kullanim-kosullari) before scraping. This Actor respects rate limits and does not collect personal data protected under KVKK/GDPR.

**Why do some products have no rating?**
Not all products on Trendyol have been rated by customers. New or low-traffic products may show `ratingAverage: 0`.

**Why is merchantName empty for some products?**
Seller information is only displayed on certain product card types in Trendyol's search results. The `merchantId` is always available in the product URL for identification.

**Why am I getting unrelated products (e.g. laptop cases when searching for "laptop")?**
Trendyol's search algorithm returns related products alongside exact matches. For more precise results, use **category URLs** instead of search keywords (e.g. `https://www.trendyol.com/laptop-x-c103108` instead of searching "laptop"). You can find category URLs by browsing Trendyol and copying the URL from the category page.

**Can I scrape Trendyol without proxy?**
Proxy is highly recommended. Without proxy, Trendyol may block requests after a few pages. Enable Apify Proxy in the input configuration for reliable scraping.

**How often is the data updated?**
Each run scrapes live data from Trendyol.com. Schedule recurring runs in Apify Console to keep your dataset fresh.

# Actor input Schema

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

List of Trendyol URLs to scrape. Supports category pages (e.g. trendyol.com/laptop-x-c103108), search result pages (e.g. trendyol.com/sr?q=laptop), and direct product pages (e.g. trendyol.com/brand/product-p-12345).

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

Search keywords to find products on Trendyol. Each keyword will trigger a separate search.

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

Maximum number of products to scrape. Set to 0 for unlimited (not recommended for large categories).

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

Proxy settings to avoid rate limiting and blocks. Apify Proxy is recommended for best results.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.trendyol.com/sr?q=laptop"
    }
  ],
  "searchQueries": [
    "laptop"
  ],
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

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

No description

# 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 = {
    "startUrls": [
        {
            "url": "https://www.trendyol.com/sr?q=laptop"
        }
    ],
    "searchQueries": [
        "laptop"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("foxlabs/trendyol-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 = {
    "startUrls": [{ "url": "https://www.trendyol.com/sr?q=laptop" }],
    "searchQueries": ["laptop"],
}

# Run the Actor and wait for it to finish
run = client.actor("foxlabs/trendyol-product-scraper").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 '{
  "startUrls": [
    {
      "url": "https://www.trendyol.com/sr?q=laptop"
    }
  ],
  "searchQueries": [
    "laptop"
  ]
}' |
apify call foxlabs/trendyol-product-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Trendyol Product Scraper",
        "description": "Scrape Trendyol.com product data at scale. Extract prices, ratings, brands, seller info, images, and stock status from any search, category, or product page. Fast, reliable, and export-ready (JSON, CSV, Excel).",
        "version": "0.0",
        "x-build-id": "y2GZ4I0qYiSEbDtE0"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/foxlabs~trendyol-product-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-foxlabs-trendyol-product-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/foxlabs~trendyol-product-scraper/runs": {
            "post": {
                "operationId": "runs-sync-foxlabs-trendyol-product-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/foxlabs~trendyol-product-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-foxlabs-trendyol-product-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "startUrls": {
                        "title": "Trendyol URLs",
                        "type": "array",
                        "description": "List of Trendyol URLs to scrape. Supports category pages (e.g. trendyol.com/laptop-x-c103108), search result pages (e.g. trendyol.com/sr?q=laptop), and direct product pages (e.g. trendyol.com/brand/product-p-12345).",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "searchQueries": {
                        "title": "Search Keywords",
                        "type": "array",
                        "description": "Search keywords to find products on Trendyol. Each keyword will trigger a separate search.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxItems": {
                        "title": "Maximum Products",
                        "minimum": 1,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "Maximum number of products to scrape. Set to 0 for unlimited (not recommended for large categories).",
                        "default": 100
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Proxy settings to avoid rate limiting and blocks. Apify Proxy is recommended for best results.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
