Founding offer: 40% off the first payment on selected apps with code FOUNDING40, until 30 November 2026.40% off selected apps’ first payment: FOUNDING40 until 30 Nov. See founding prices

How to export Trendyol product prices and reviews to CSV or Excel

For a spreadsheet of public Trendyol products, start with a category, search or product URL, collect a limited set of results, then download the dataset from Apify. Keep product prices and individual reviews in separate tables so that each row has a clear meaning.

Choose the public pages and the columns you need

Atesen Software's Trendyol Scraper accepts Trendyol.com category, brand, store, search and product URLs through startUrls, or search words through searchQueries. A listing URL keeps its existing filters and sort order. Use public pages only; do not supply account credentials, cookies or private account information. This workflow covers the Turkish Trendyol.com storefront.

For a few products, you can copy their visible names, URLs and prices into a spreadsheet manually. The Actor is an option when you need structured results from a listing or several public product pages. Running it uses Apify's paid event model. Check the current Store pricing and your run's maximum charge setting before starting; this guide does not promise a free run.

  • Prices: keep productId, name, url, price, sellingPrice, originalPrice, currency and scrapedAt.
  • Product details: enable includeProductDetails only if you need seller offers, attributes, barcodes or variants. This adds a chargeable event per product.
  • Individual reviews: enable includeReviews and set maxReviewsPerProduct. A product's ratingCount is an aggregate count, not the number of review rows you downloaded.

1. Enter a small, bounded input

Open the Actor in Apify Console and choose the JSON input editor. This is an illustrative configuration, not evidence of a completed run. It requests up to five products for one keyword and up to three reviews per product, ordered newest first. Limits are upper bounds; fewer results can be returned.

{
  "searchQueries": ["kahve makinesi"],
  "maxProductsPerSource": 5,
  "includeProductDetails": false,
  "includeReviews": true,
  "maxReviewsPerProduct": 3,
  "reviewSort": "NEWEST",
  "autoProxyFallback": false,
  "changesOnly": false
}

For known pages, replace searchQueries with startUrls, using entries such as {"url": "https://www.trendyol.com/fritoz-x-c1055"}. The product limit applies per source, so adding more URLs or keywords increases the possible total. Keep changesOnly off for a normal export; that mode deliberately omits unchanged products.

Review the limits and run options before selecting Start. No Actor run was launched to write this guide.

2. Check what the run actually collected

Open the finished run's Output and inspect both Table and JSON views. Also open its key-value store and read RUN_SUMMARY for counts, failed pages and the stop reason. A completed run can still contain partial results.

  • Status rows: rows with type: "status" describe problems such as unsupported_url, not_found, blocked or failed. Keep them out of the product table and retain their messages separately for diagnosis.
  • Missing reviews: inspect reviewsError when review requests are refused or rate-limited. An empty review result does not establish that the product has no reviews.
  • Challenges: if Trendyol presents an access challenge or the run reports blocked pages, stop and inspect the failure. The example leaves automatic proxy fallback disabled. This guide provides no login or challenge-bypass procedure.

Do not treat a capped, interrupted or blocked export as the complete catalogue or a complete review history. Product pages can disappear, fields can be unavailable, and Trendyol can change its responses.

3. Download the product price table

  1. From the run, open its dataset. Check the Products view against a few JSON records and keep reviews unexpanded so that each product occupies one row. Exclude type = status rows and, for a current-price sheet, monitoring records with changeType = removed.
  2. Select Export, then choose CSV or Excel (XLSX). Select the price columns listed above and use the export preview to check the rows before downloading. A Console view may show only a subset of the available fields. Keep the raw JSON separately if you need fields outside that view.
  3. Keep productId and url for matching rows later. Save the input and collection time with the workbook so the source and scope remain clear.

price represents the displayed price, including a cart promotion when supplied by the source; sellingPrice is the seller price before cart promotions. originalPrice is the crossed-out reference price and can be null. These are collected snapshots, not checkout-price or discount guarantees.

When product details provide a price, the Actor replaces the listing price fields together. A missing reference price or discount becomes null, and listing-only promotion labels are cleared. When a detail price is unavailable, the listing snapshot is retained. Leave missing prices blank in Excel rather than replacing them with zero.

4. Download reviews as a separate table

Inspect JSON before choosing the review export. Build 1.0.14 documents one dataset item per product, with individual reviews nested in the product's reviews[] array when requested. Reviews are not separate recordType: "review" dataset records. Check your selected build's JSON and documentation before applying these steps to another build.

  1. Select the Actor's Reviews (expanded; may include products without reviews) view, then export CSV or Excel (XLSX). This view unwinds reviews, merging each review's fields into its parent product row. The review field names below are top-level columns only after expansion.
  2. Filter reviewId to nonblank values before saving a review-only sheet: expanded exports can retain products with missing or null reviews as rows with blank review columns. Confirm one review per row in the export preview. If needed, download JSON without a view or unwind and expand reviews[] in a spreadsheet query tool; missing, null or empty arrays contribute zero review rows.
  3. Keep productId, reviewId, reviewRating, reviewText, reviewDate, reviewLikes, reviewSellerName and reviewVariant when available. Join reviews to products using productId.

Do not count repeated product prices in a review table as additional products. The review cap applies per product and the newest-first option controls ordering; neither guarantees a full historical export. The current input schema says reviewer names, height and weight are not collected.

5. Open and check the spreadsheet

XLSX avoids CSV delimiter choices. For CSV, use Excel's Data → From Text/CSV import, select UTF-8, and check the preview for Turkish characters and decimal separators. Import IDs as text and prices as numbers using the appropriate locale. Treat public review text as untrusted data: import text columns as text and do not execute formula-like cell contents.

Compare a few spreadsheet rows with the dataset, check for blank prices and review errors, and record the product and review row counts separately. Keep the original JSON if you need nested seller offers or attributes later. Product descriptions and a separate price for each size are outside the documented output.

Open the existing Trendyol Actor

Disclosure: Atesen Software publishes this guide and the Actor. Trendyol is a trademark of its owner; this guide and Actor are independent and are not endorsed by Trendyol.

Source check: 24 October 2026, released build 1.0.14 README, input and dataset definitions. These definitions document nested reviews and separate product-price and expanded-review exports. Export steps follow Apify's dataset documentation. Collection success and completeness have not been verified by a new run for this guide.

Review the current input and pricing before you start.

Open Trendyol Scraper on Apify