Trendyol Reviews Scraper: Export Reviews, Ratings & Yorumlar avatar

Trendyol Reviews Scraper: Export Reviews, Ratings & Yorumlar

Pricing

from $0.50 / 1,000 reviews

Go to Apify Store
Trendyol Reviews Scraper: Export Reviews, Ratings & Yorumlar

Trendyol Reviews Scraper: Export Reviews, Ratings & Yorumlar

Export all reviews (yorumlar) of a Trendyol product to CSV, Excel or JSON by product URL or ID: stars, text, date, likes, seller, size variant and photo links, plus the rating split and aspect scores. Pay per review; status rows are free.

Pricing

from $0.50 / 1,000 reviews

Rating

0.0

(0)

Developer

Atesen Software

Atesen Software

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

2

Monthly active users

6 hours ago

Last modified

Features

Limited permissions

Share

Trendyol Reviews Scraper: Export Product Reviews (Yorumlar)

Want to know what buyers praise and complain about on a Trendyol product, yours or a competitor's, without copying reviews by hand? This Actor exports the reviews (yorumlar) of any Trendyol product to CSV, Excel or JSON from a product URL or ID, with star rating, review text, date, likes, seller, size or color variant and customer photo links.

Switch on the summary row and each product also gets its 1-5 star split, aspect scores (for example Kalite, Paketleme, Fiyat) and Trendyol's own written summary of what buyers say. Filter by stars (only 1-2 star reviews, for example) or by reviews with photos, and sort newest first.

Who uses it

  • Trendyol sellers and brands read the 1-2 star reviews of competing products before they list, price or write a product page.
  • Market and product researchers export reviews with dates and variants for sentiment or topic analysis in Excel, Python or a BI tool.
  • Agencies and category managers run it daily on a product list and send the newest reviews to Google Sheets, Slack or a database.

Quick start

  1. Open the Input tab and click Start. The prefilled input reads the 20 newest reviews of two products and adds a summary row for each.
  2. Open the Output tab. The Reviews and Product summaries views separate the two row types.
  3. Replace the products with your own product URLs or IDs, one per line. The ID is the number after -p- in the product URL.

Input

FieldWhat it does
productsProduct URLs (any Trendyol product link, a /yorumlar page, or a https://ty.gl/... share link from the app) or the numeric ID after -p-. Duplicates are removed.
maxReviewsPerProductPer product, after filters. 0 returns every review. Default 100; the prefill uses 20.
reviewSortNEWEST (default) or RELEVANCE, Trendyol's recommended order.
minRating / maxRatingStar range. maxRating: 2 keeps negative reviews only.
onlyWithMediaKeep only reviews with customer photos or videos.
includeSummaryOne extra summary row per product (default on).
proxyConfiguration / autoProxyFallbackNo proxy by default. autoProxyFallback: true retries blocked requests through Apify Proxy RESIDENTIAL (TR).

Example input and output

A real run: one product, the 3 newest reviews, summary on.

{
"products": ["838129892"],
"maxReviewsPerProduct": 3,
"reviewSort": "NEWEST",
"includeSummary": true,
"minRating": 1,
"maxRating": 5,
"onlyWithMedia": false,
"proxyConfiguration": { "useApifyProxy": false },
"autoProxyFallback": false
}

First review row of that run. productUrl is null because the input was an ID, not a URL:

{
"productId": 838129892,
"productUrl": null,
"reviewId": 681370761,
"reviewRating": 5,
"reviewText": "Harika gayet kullanışlı",
"reviewDate": "2026-11-12T11:40:30.475Z",
"reviewLikes": 0,
"reviewSellerId": 253958,
"reviewSellerName": "KARACA ZÜCCACİYE",
"reviewVariant": null,
"reviewLanguage": "tr",
"reviewMediaUrls": [],
"reviewTrusted": true,
"scrapedAt": "2026-11-12T15:39:48.367Z"
}

The summary row for a product (real row from an earlier run, shortened to 2 of 6 aspects and without the summary sentences):

{
"type": "summary",
"productId": 838129892,
"averageRating": 4.4,
"ratingCount": 247,
"commentCount": 101,
"photoReviewCount": 21,
"ratingDistribution": { "1": 20, "2": 2, "3": 12, "4": 26, "5": 187 },
"aspects": [
{ "name": "Kalite", "mentions": 11, "positive": 11, "negative": null, "positivePercent": 100 },
{ "name": "Paketleme", "mentions": 9, "positive": 7, "negative": 2, "positivePercent": 78 }
]
}

A value the source does not have is null. Reviews and summaries are separate dataset rows; filter on type in the API.

What it does and what it does not

  • Reads every review a product has when maxReviewsPerProduct is 0, up to 50 per request, newest first or in Trendyol's order.
  • Gives the review text exactly as written, with the language code (reviewLanguage).
  • Leaves out reviewer names, height and weight (personal data).
  • Needs product URLs or IDs. It does not search or crawl categories; use the Trendyol Scraper to get a product list first.
  • Keeps no memory between runs, so a daily schedule can return reviews you already have. Deduplicate on reviewId in your sheet or workflow.
  • Opens a Chromium session to reach Trendyol's public review endpoint and does not solve CAPTCHAs. A small run takes roughly 10 to 30 seconds. A product with thousands of reviews takes longer because Trendyol rate-limits the endpoint and each request is tried up to three times, waiting 8 and then 25 seconds between tries.
  • Runs without a proxy by default. If Trendyol blocks the requests you get free blocked rows; set autoProxyFallback: true to retry through a Turkish residential proxy (proxy traffic adds cost).

Status rows

A product that yields no reviews does not fail the run. It returns a free row with "type": "status":

statusMeaning
invalid_inputNot a Trendyol product URL or ID (a category page, for example), or the list was empty
no_reviewsThe product has no ratings, or the ID does not exist
no_matching_reviewsReviews exist but none match your star or photo filters
blockedTrendyol rate-limited the requests after retries; try later or enable the proxy fallback
failedUnexpected response after retries; message explains

Watch new reviews on a schedule

Save your input as a task (product list, reviewSort: "NEWEST", a small maxReviewsPerProduct such as 50). In Apify Console open Schedules, create one (cron 0 7 * * * is every day at 07:00, time zone Europe/Istanbul) and add the task. Under the task's Integrations tab send each finished run to Google Sheets, Slack, email or a webhook. Each run also adds a fresh rating split per product, so you can chart the average rating over time.

Run it from the API, n8n, Make or Zapier

API. One request starts the Actor, waits for it and returns the rows as JSON. Put the token in the Authorization header, never in a URL:

curl -X POST "https://api.apify.com/v2/acts/atesen-software~trendyol-reviews-scraper/run-sync-get-dataset-items?timeout=120" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{ "products": ["838129892"], "maxReviewsPerProduct": 20, "reviewSort": "NEWEST" }'

The synchronous endpoint waits at most 300 seconds. For longer jobs start the run with POST https://api.apify.com/v2/acts/atesen-software~trendyol-reviews-scraper/runs, wait for it (or use a webhook), then read https://api.apify.com/v2/datasets/<datasetId>/items.

n8n. Use the Apify node (Run Actor and Get Dataset), or an HTTP Request node with method POST, the URL above, a Header Auth credential (Authorization: Bearer <your token>) and the JSON input as body. Apify n8n integration

Make. Use the Apify modules Run an Actor and Get Dataset Items, or the HTTP, Make a request module with the same URL, header and body. Apify Make integration

Zapier. Use the Apify app to run this Actor or a saved task, trigger a Zap when a run finishes and fetch the dataset items. Apify Zapier integration

FAQ

How do I export all reviews of one product? Set maxReviewsPerProduct to 0. In the Output tab pick the Reviews view and click Export for CSV, Excel or JSON. Through the API add format=csv or format=xlsx to the dataset items URL.

How do I get only the negative reviews? Set maxRating to 2. The limit applies after the filter, so maxReviewsPerProduct: 200 returns up to 200 reviews with 1 or 2 stars.

Why did I get fewer reviews than I asked for? The limit is a maximum. The product may have fewer reviews, your filters may remove some, the Maximum cost per run may have been reached, or Trendyol may have blocked the product (you get a free blocked row). The run's status message and the RUN_SUMMARY record in the key-value store name the reason. If Min stars is higher than Max stars, the two values are swapped and a warning is logged.

Do I need a proxy? No. The default runs without one. If you see blocked rows, enable autoProxyFallback or set Apify Proxy RESIDENTIAL with country TR.

Is it legal to scrape Trendyol reviews? The Actor reads publicly visible review content without logging in and does not export reviewer names, height or weight. You are responsible for how you use the data under Trendyol's terms, the Turkish personal-data law (KVKK), GDPR and any other law that applies to you. This is not legal advice.

Pricing

Pay per event: one event for each saved review and one for each product summary row. Current prices are on the Pricing tab. Status rows are free. Set Maximum cost per run in the run options and the Actor stops at that limit.

Built by Atesen Software. Not affiliated with Trendyol. Found a problem? Open an issue on the Issues tab with the run ID and the product URL.