Trendyol Scraper: Products, Prices & Reviews (No login)
Pricing
from $0.65 / 1,000 products
Trendyol Scraper: Products, Prices & Reviews (No login)
Scrape Trendyol.com search results, product pages and customer reviews. No login. Prices in TRY with basket discount, seller, rating, stock, size and variant of each review. Clear not-found and error rows.
Pricing
from $0.65 / 1,000 products
Rating
0.0
(0)
Developer
Cliqto Media
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Trendyol Scraper gets products, prices and customer reviews from Trendyol.com, the largest online marketplace in Turkey. Add a keyword, a search URL or product URLs, and get a clean table with price in TRY, basket discount, seller, rating, stock and reviews. No login and no cookies are needed.
Start with one Turkish keyword, for example kulaklık (headphones), and 20 results. This run takes about 5 seconds and costs $0.028 on the Free plan.

Table of contents
- What it does
- What data you get
- Quick start
- Input
- Input examples
- Output
- Pricing
- Use cases
- Scheduling and monitoring
- API, export and AI agents (MCP)
- Limits and partial results
- Troubleshooting
- FAQ
- Support
What it does
The Actor reads the public Trendyol website. It has three modes:
| Mode | You add | You get |
|---|---|---|
search | keywords or Trendyol search URLs | one row per product in the search results, in the same order as on the site |
product | product URLs or product IDs | one row per product, with data from the product page |
reviews | product URLs or product IDs | one row per customer review |
It works without a Trendyol account. It does not need a Turkish IP address: it uses the Apify datacenter proxy by default.
Good fit
- Check prices and discounts of your products and your competitors on Trendyol.
- Find which products and sellers appear first for a keyword, including paid (ad) listings.
- Read what buyers say about a product, with the size and variant they bought.
Not a fit
- Other Trendyol countries (only trendyol.com, prices in TRY).
- Questions and answers (Q&A), seller pages and short
ty.gllinks are not supported. - Personal data: the Actor does not return reviewer names, body measurements or the legal details of sellers.
What data you get
Products: product ID, name, brand, category, price, basket price, old (strikethrough) price, discount percent, promotions, seller ID, rating, number of ratings, stock, free shipping, ad flag, variant, URL and images.
With product pages (product mode, or includeDetails in search) you also get: seller name, seller score, full category path, number of reviews, number of favourites, all attributes and all variants with stock.
Reviews: review ID, star rating, text, date, size and variant bought, fit feedback, helpful votes, verified-buyer flag, seller, photo URLs and language.
Every row has source, sourceUrl and fetchedAt, so you always know where and when the data was read.
Quick start
- Open the Input tab.
- Keep Mode =
search. - In Queries, keep
kulaklıkor add your own keyword. - Keep Max items =
20. - Click Start.
- Open the Output tab and check the Products view:
name,price,discountedPrice,rating.
Expected result: 20 product rows for the keyword, in the same order as on trendyol.com.
Input
| Field | Type | Default | Allowed values | What it does |
|---|---|---|---|---|
mode | string | search | search, product, reviews | What to collect. |
queries | array of strings | empty (prefill kulaklık) | up to 20 | search mode: keywords or Trendyol search URLs (https://www.trendyol.com/sr?q=...). From a search URL the Actor takes only the search words (q=); other URL filters are not used. |
productUrls | array of strings | empty | up to 100 | product and reviews modes: product URLs (...-p-123456789) or numeric product IDs. |
maxItems | integer | 100 (prefill 20) | 1–1000 | search: products per query. reviews: reviews per product. product mode always returns one row per URL. |
sort | string | relevance | relevance, price_asc, price_desc, newest, best_seller, most_favourite, most_rated | Order of search results. |
includeDetails | boolean | false | true / false | search mode: also open each product page for seller name, attributes, variants and counts. Slower, same price per product. |
skipSponsored | boolean | false | true / false | search mode: leave out paid (ad) listings. Ads always have isSponsored: true. |
reviewSort | string | relevance | relevance, newest | Order of reviews. |
proxyConfiguration | object | Apify proxy on | Apify proxy settings | Change only if you see blocked errors. |
Good to know:
- The same keyword in another letter case (
Kulaklıkandkulaklık) is read and paid only once. The same product twice is read only once. - A value that is not a Trendyol product (another website, a URL without an ID) gets a free
errorrow. The other values still run. - With
includeDetails: truethe Actor uses 512 MB of memory instead of 256 MB and is slower (about 300 products in 2–3 minutes).
Input examples
Search with a sort order
{"mode": "search","queries": ["kulaklık", "https://www.trendyol.com/sr?q=laptop"],"maxItems": 100,"sort": "price_asc","skipSponsored": true}
Up to 100 products for each query, cheapest first, without ads.
Product pages
{"mode": "product","productUrls": ["https://www.trendyol.com/tarcin/air-pro-2-anc-gurultu-engelleyici-bluetooth-kulaklik-ios-android-tum-telefonlar-ile-uyumlu-kulaklik-p-819066262","946802869"]}
One row per product with seller name, seller score, category path, attributes and variants.
Newest reviews of a product
{"mode": "reviews","productUrls": ["946802869"],"maxItems": 20,"reviewSort": "newest"}
The 20 newest reviews, with size and variant.
Output
The dataset has two views: Products and Reviews. You can export it as JSON, CSV, Excel or HTML.
Product row example
From the quick start run (search, kulaklık, 20 items). The image list is shortened.
{"recordType": "product","status": "complete","errorMessage": null,"query": "kulaklık","position": 4,"input": null,"productId": "666158167","name": "Pro 5 Plus Kablosuz Bluetooth Kulaklık Bluetooth 5.3 TWS iOS Android Uyumlu HD Stereo Ses Dokunmatik Kılıf Hediyeli Şarj Kutulu","brand": "TrkTech","category": "Kulak içi TWS Bluetooth Kulaklık","categoryPath": null,"price": 479.9,"discountedPrice": null,"originalPrice": 519.9,"discountPercentage": 8,"currency": "TRY","promotions": [],"seller": null,"sellerId": "260497","sellerScore": null,"rating": 3.76,"ratingCount": 28612,"reviewCount": null,"favoriteCount": null,"inStock": true,"freeShipping": true,"isSponsored": true,"variant": "Tek Ebat","variants": null,"attributes": null,"url": "https://www.trendyol.com/trktech/pro-5-plus-kablosuz-bluetooth-kulaklik-bluetooth-5-3-tws-ios-android-uyumlu-hd-stereo-ses-dokunmatik-kilif-hediyeli-sarj-kutulu-p-666158167","image": "https://cdn.dsmcdn.com/mnresize/400/-/ty1910/prod/QC_ENRICHMENT/20260728/10/9ec2e259-2706-3ae9-874d-68678b5a420a/1_org_zoom.jpg","images": ["https://cdn.dsmcdn.com/mnresize/400/-/ty1910/prod/QC_ENRICHMENT/20260728/10/9ec2e259-2706-3ae9-874d-68678b5a420a/1_org_zoom.jpg"],"detailsIncluded": false,"source": "trendyol.com","sourceUrl": "https://apigw.trendyol.com/discovery-sfint-search-service/api/search/products/?channelId=1&culture=tr-TR&countryCode=TR&storefrontId=1&language=tr&pageSize=36&pi=1&q=kulakl%C4%B1k&qt=kulakl%C4%B1k&st=kulakl%C4%B1k&os=1","fetchedAt": "2026-10-14T15:05:47.817Z"}
seller, categoryPath, reviewCount, favoriteCount, variants and attributes are null here because the run did not open product pages. Use product mode or includeDetails: true to fill them.
Review row example
From the newest-reviews example above.
{"recordType": "review","status": "complete","errorMessage": null,"input": "946802869","productId": "946802869","productUrl": "https://www.trendyol.com/x/y-p-946802869","reviewId": "672788584","rating": 4,"text": "guzel bir tisort ise yarar","date": "2026-10-14T03:40:54.974Z","lastModifiedAt": "2026-10-14T03:41:14.532Z","size": "M","variantAttribute": "Beden","variant": "M","fit": null,"seller": "TEE NOVA","sellerId": "1146443","likesCount": 0,"trusted": true,"photos": [],"language": "tr","source": "trendyol.com","sourceUrl": "https://apigw.trendyol.com/discovery-storefront-trproductgw-service/api/review-read/product-reviews/detailed?contentId=946802869&page=0&pageSize=50&order=DESC&orderBy=CreatedDate&channelId=1&countryCode=TR&culture=tr-TR&storefrontId=1&language=tr","fetchedAt": "2026-10-14T15:06:55.037Z"}
productUrl is a short link to the product. Trendyol redirects it to the full product page.
All output fields
null means "the site does not show this value" or "this mode does not read it". It never means zero.
| Field | Type | Rows | Meaning |
|---|---|---|---|
recordType | string | all | product or review. |
status | string | all | complete; partial (search data only, the product page could not be read); not_found (no product with this ID, free); error (bad input or source failure, free). |
errorMessage | string or null | all | Why a row is partial, not_found or error. |
query | string or null | product | Search query that found the product. |
position | integer or null | product | Place in the search results, starting at 1. |
input | string or null | all | Your product URL or ID as you gave it (product and reviews modes). |
productId | string or null | all | Trendyol product ID. |
name, brand, category | string or null | product | Product name, brand and category. |
categoryPath | string or null | product | Full category path, for example Elektronik > Giyilebilir Teknoloji > Kulaklıklar > .... Product pages only. |
price | number or null | product | Selling price in TRY. |
discountedPrice | number or null | product | Lower basket or campaign price in TRY, when the site shows one. |
originalPrice | number or null | product | Old (strikethrough) price in TRY, when the site shows one. |
discountPercentage | number or null | product | Discount from the highest shown price to the lowest one, in percent. null when there is no discount. |
currency | string or null | product | TRY. |
promotions | array | product | Promotion labels, for example 300 TL'ye %10 İndirim. |
seller | string or null | both | Seller name. In search mode only with includeDetails. For reviews: where the buyer bought the item. |
sellerId | string or null | both | Seller ID. |
sellerScore | number or null | product | Seller score from 0 to 10. Product pages only. |
rating | number or null | both | Average rating 1–5 for a product; stars for a review. |
ratingCount | integer or null | product | Number of ratings. |
reviewCount, favoriteCount | integer or null | product | Number of written reviews and of favourites. Product pages only. |
inStock, freeShipping | boolean or null | product | Can be bought now; free delivery. |
isSponsored | boolean or null | product | true for paid (ad) listings in search results. |
variant | string or null | both | Selected size or colour; for reviews, the variant the buyer bought. |
variants | array or null | product | All variants with stock: [{"value": "M", "inStock": true}]. Product pages only. |
attributes | object or null | product | Product attributes, name → value. Product pages only. |
url, image, images | string / array | product | Product page URL, main image and all images. |
detailsIncluded | boolean | product | true if the product page was read. |
productUrl | string or null | review | Link to the product. |
reviewId, text | string or null | review | Review ID and text. |
date, lastModifiedAt | string or null | review | Review date and last edit date (ISO 8601, UTC). |
size, variantAttribute | string or null | review | Size bought and the variant type, for example Beden (size) or Renk (colour). |
fit | string or null | review | Buyer's size-fit feedback, when given. |
likesCount | integer or null | review | How many users found the review helpful. |
trusted | boolean or null | review | true if Trendyol marks the buyer as verified. |
photos | array | review | Photo URLs in the review. |
language | string or null | review | Review language, for example tr. |
source, sourceUrl, fetchedAt | string | all | trendyol.com, the exact URL the row came from, and when it was read (ISO 8601, UTC). |
Run summary
Each run also saves RUN_SUMMARY in the key-value store. It shows the result for each query or product (complete, no_results, not_found or error), row counts, charged counts and request statistics. Open it from the Output tab or with the API.
Pricing
You pay per event (pay-per-event). Platform usage is included in the price.
| Event | When | Free plan | Bronze | Silver | Gold and higher |
|---|---|---|---|---|---|
| Actor start | once per run | $0.01 | $0.01 | $0.01 | $0.01 |
| Product | one product row saved | $0.0009 | $0.00082 | $0.00073 | $0.00065 |
| Review | one review row saved | $0.00065 | $0.00055 | $0.00047 | $0.00045 |
Free rows: not_found and error rows cost nothing. A run where nothing is found costs only the start event ($0.01). Product pages with includeDetails cost the same as normal product rows.
Examples on the Free plan:
| Run | Rows | Cost | Time |
|---|---|---|---|
| 1 keyword, 20 products (quick start) | 20 | $0.028 | about 5 s |
| 1 keyword, 100 products | 100 | $0.10 | under 20 s |
| 1 keyword, 1,000 products | 1,000 | $0.91 | about 20 s |
| 100 reviews of one product | 100 | $0.075 | under 20 s |
| 1,000 reviews of one product | 1,000 | $0.66 | about 40 s |
| 20 keywords with no results | 0 | $0.01 | about 45 s |
| 100 products × 1,000 reviews | 100,000 | $65 | about 70 min |
Times come from our test runs; Trendyol's speed changes during the day. Reviews are read at about 25 per second.
To limit the cost, use Max items and the Maximum cost per run option in the run settings. When the limit is reached, the Actor stops and keeps the rows it already saved.
Use cases
| Job | Mode and input | Key fields |
|---|---|---|
| Price check for your products | product, your product URLs | price, discountedPrice, originalPrice, inStock, seller |
| Keyword and ad tracking | search, your main keywords | position, isSponsored, brand, sellerId, rating |
| Category price research | search, a product-type keyword, sort: price_asc | price, discountPercentage, ratingCount |
| Review analysis | reviews, reviewSort: newest | rating, text, size, fit, date |
| Size and fit problems | reviews for clothes or shoes | size, variant, fit, rating |
Scheduling and monitoring
Create a task with your input and add an Apify schedule, for example every morning. Each run gives a new dataset with fetchedAt, so you can compare prices and positions over time. Use reviewSort: newest with a small maxItems to get only the latest reviews.
API, export and AI agents (MCP)
- Export: download the dataset as JSON, CSV, Excel or HTML from the Output tab.
- API: start the Actor and read the dataset with the Apify API. The API tab shows ready code for Python, JavaScript and cURL.
- Integrations: send results to Google Sheets, Slack, Make, Zapier or a webhook after each run.
Use with AI agents (MCP)
Connect this Actor to Claude, Cursor or another MCP client with the Apify MCP server:
https://mcp.apify.com?tools=cliqtomedia/trendyol-scraper
Smallest useful input:
{ "mode": "search", "queries": ["kulaklık"], "maxItems": 20 }
Main fields: name, price (TRY), discountedPrice (basket price), rating, url. A run with 20 products takes about 5 seconds and costs $0.028 on the Free plan. Limits: 20 queries or 100 products per run, 1,000 items per query or product.
Limits and partial results
- Up to 20 queries per run and up to 1,000 products per query (20,000 products in about 13 minutes).
- Up to 100 product URLs per run, and up to 1,000 reviews per product. 100,000 reviews take about 70 minutes; the default run timeout is 2 hours.
- Search results can change between runs: Trendyol personalises and updates its listings.
discountedPriceis the basket price that Trendyol shows to all visitors. Coupons and personal prices are not included.- If a query or a product fails because of a source error, the rows already saved stay in the dataset, the failed item gets a free
errorrow, and the run ends with status Failed so you notice it.RUN_SUMMARYshows which item failed. - With
includeDetails, a product whose page could not be read keeps its search data withstatus: partial.
Troubleshooting
No rows for a keyword. Check RUN_SUMMARY: no_results means Trendyol has no products for this keyword. Try Turkish words (kulaklık, not headphones) or copy the search URL from trendyol.com.
A product row says not_found. The product was removed from Trendyol or the ID is wrong. This row is free.
An error row. Read errorMessage. INVALID_INPUT means the value is not a Trendyol product URL or ID. Other errors come from the source; run the same input again later.
The run failed with a blocked or rate-limit message. Trendyol limited the requests. Run again later. Keep the default Apify proxy or try another proxy group in Proxy configuration.
FAQ
Do I need a Trendyol account or cookies? No. The Actor reads only public pages.
Which prices do I get? price is the selling price, discountedPrice is the lower basket price (if any), and originalPrice is the old strikethrough price (if any). All in TRY.
Why is seller empty in search? The search page shows only the seller ID. Turn on includeDetails or use product mode to get the seller name.
Are reviewer names included? No. To protect privacy, the Actor does not return reviewer names.
Is the data fresh? Yes. Each run reads Trendyol live. fetchedAt shows the time.
Support
For a bug or a feature request, open an issue in the Issues tab. Add the run ID, the mode and the error message. Do not share tokens or other private data.