Trendyol Scraper
Pricing
from $1.00 / 1,000 product scrapeds
Trendyol Scraper
[💰 $1.0 / 1K] Extract products and customer reviews from Trendyol — Turkey's largest marketplace. Search by keyword, paste category or seller pages, or supply direct product URLs. Reviews are opt-in and emitted as separate dataset rows.
Pricing
from $1.00 / 1,000 product scrapeds
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Pull products and customer reviews from Trendyol — Turkey's largest e-commerce marketplace — at scale, with brand, seller, pricing, discount, rating, favorite count, breadcrumb category path, variants, badges, customer images, reviewer level, verified-purchase flag, and seller responses on every row. Built for Turkish e-commerce sellers, cross-border dropshippers, brand managers, and market researchers who need a clean Trendyol catalog and review feed without wrestling with Turkish SPA pagination one tab at a time.
Why This Scraper?
- Products and reviews in one run — opt into reviews per product (cap or unlimited) without spawning a second actor. One run, one dataset, two
recordTyperows:productandreview. - Three Trendyol storefronts in one input — Turkey (TL), Azerbaijan (AZN), and the International store (USD/EUR). Flip a single dropdown to switch — currency, language, and
/en/path prefixes are handled for you. - Seven sort orders that match Trendyol's own UI — Best match, Newest, Price low-to-high, Price high-to-low, Best sellers, Most favorited, Most rated.
- Six purpose-built filters — minimum star rating (3 / 4 / 4.5+), min and max price in the storefront's currency, free shipping, fast delivery, and discounted-only.
- Mix any URL type in one list — search result pages (
/sr?q=...), category pages (/<slug>-x-c<id>), seller / merchant pages (/magaza/...-m-<id>), and direct product URLs (/<brand>/<slug>-p-<id>). The actor auto-detects the URL shape. - Full Turkish UTF-8 preserved —
ı,ş,ğ,ç,ö,üin product names, category breadcrumbs, and review text are never ASCII-folded. - Split per-result pricing — $1.00 per 1,000 products plus $0.80 per 1,000 reviews. Reviews are off by default; turn them on only when you need them. No compute or platform-bandwidth surprises.
- Per-source caps, not a single global limit —
maxProductsPerSourcedefaults to 100, so a 10-URL run is bounded at 1,000 rows, never 50,000. - Variant roll-ups and full category breadcrumbs — every direct-product-URL row carries a
variants[]array (attribute name, attribute value, price, in-stock, SKU) plus acategoryPathresolved all the way up to the storefront root.
Use Cases
Price & Discount Monitoring
- Track competitor prices, strike-through
originalPrice, anddiscountPercentacross a category - Watch a seller's full catalog (
/magaza/...) for repricing events - Compare the same product across Turkey, Azerbaijan, and the International storefront
Market & Trend Research
- Map Turkish consumer demand by category — phones, beauty, fashion, home goods
- Rank top brands and top sellers in any category using
rating,reviewCount, andfavoriteCount - Detect emerging best-sellers via the Best sellers / Most favorited / Most rated sort orders
Cross-Border Sourcing & Dropshipping
- Build a product feed for resale on Etsy, eBay, Amazon, or Shopify
- Pull product images, full category breadcrumbs, and brand names ready for catalog import
- Filter for
freeShippingOnlyorfastDeliveryOnlyto find sellers ready to ship internationally
Review Sentiment & Product Quality Tracking
- Pull every review for a flagship product (including unlimited mode) with rating, text, reviewer level, verified-purchase flag, helpful count, customer images, and seller responses
- Spot quality issues by mining 1-star reviews across a brand's catalog
- Quantify trust signals —
Trendyol Elitereviewers and verified-purchase ratios
Brand & Seller Outreach
- Build seller contact lists from
/magaza/pages - Identify high-volume Trendyol-only brands for direct partnership
- Audit how sellers respond to negative reviews via the
sellerResponsefield
Getting Started
Simple keyword search
The cheapest path — products only, no reviews:
{"searchQueries": ["erkek spor ayakkabı"],"maxProductsPerSource": 100}
Products plus reviews with a cap
Enrich each product with up to 50 reviews:
{"searchQueries": ["kahve makinesi", "iPhone 15"],"maxProductsPerSource": 50,"includeReviews": true,"maxReviewsPerProduct": 50}
Direct product URLs with a tight rating filter
Paste any Trendyol product URL and add minimum rating and a price band:
{"startUrls": ["https://www.trendyol.com/apple/iphone-15-128-gb-p-755253562","https://www.trendyol.com/samsung/galaxy-s24-256-gb-p-829145673"],"minRating": "4.5","minPrice": 30000,"maxPrice": 80000,"includeReviews": true,"maxReviewsPerProduct": 100}
Category sweep on the International storefront
Sort by best sellers, switch to the International store, capture EUR prices:
{"startUrls": ["https://www.trendyol.com/en/sr?q=coffee+maker"],"sort": "best_seller","country": "international","discountedOnly": true,"maxProductsPerSource": 200}
Input Reference
Sources
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQueries | string[] | ["erkek spor ayakkabı"] | Turkish or English search terms. Each keyword runs as its own search. Leave empty if you only use URLs below. |
startUrls | string[] | [] | Trendyol URLs to scrape. Mix search pages, category pages, seller pages, and direct product URLs in one list — the URL shape is auto-detected. |
Limits
| Parameter | Type | Default | Description |
|---|---|---|---|
maxProductsPerSource | integer | 100 | Maximum product rows per search keyword, category URL, or seller URL. Direct product URLs always return exactly one product and ignore this cap. Set to 0 for unlimited (Trendyol caps deep pagination around ~50 pages per search). |
includeReviews | boolean | false | When on, fetch customer reviews for every product returned and emit them as separate recordType: "review" rows. Off by default — reviews are billed at a separate per-row rate. |
maxReviewsPerProduct | integer | 50 | Maximum review rows per product. Ignored when includeReviews is off. Set to 0 to fetch every review Trendyol exposes (can be thousands on flagship items). |
Sort & filter
| Parameter | Type | Default | Description |
|---|---|---|---|
sort | select | Best match (default) | Best match (default), Newest first, Price: low to high, Price: high to low, Best sellers, Most favorited, or Most rated. Ignored on direct product URLs. |
minPrice | integer | (none) | Only include products priced at or above this value, in the storefront's currency. |
maxPrice | integer | (none) | Only include products priced at or below this value, in the storefront's currency. |
minRating | select | Any rating | Any rating, 3 stars and up, 4 stars and up, or 4.5 stars and up. |
freeShippingOnly | boolean | false | Only include products eligible for free shipping. |
fastDeliveryOnly | boolean | false | Only include products tagged with Trendyol's fast-delivery / same-day badge. |
discountedOnly | boolean | false | Only include products currently on sale (showing a strike-through original price). |
Localization
| Parameter | Type | Default | Description |
|---|---|---|---|
country | select | Turkey (trendyol.com — TL) | Storefront to target. Turkey (trendyol.com — TL), Azerbaijan (trendyol.az — AZN), or International (trendyol.com/en — USD/EUR). Determines currency, language, and which catalog is searched. |
Output
Every row carries a recordType field — product or review — so you can filter or split the dataset cleanly downstream.
Product (recordType: "product")
{"recordType": "product","productId": "755253562","productUrl": "https://www.trendyol.com/apple/iphone-15-128-gb-p-755253562","productName": "Apple iPhone 15 128 GB (Apple Türkiye Garantili)","brandName": "Apple","brandId": 110197,"sellerName": "Apple Authorized Reseller","sellerId": "968413","price": 49999.0,"originalPrice": 59999.0,"discountPercent": 17,"currency": "TRY","rating": 4.7,"reviewCount": 3113,"favoriteCount": 57000,"inStock": true,"imageUrl": "https://cdn.dsmcdn.com/ty1234/product/media/images/iphone-15.jpg","images": ["https://cdn.dsmcdn.com/ty1234/product/media/images/iphone-15.jpg"],"categoryPath": ["Elektronik", "Telefon", "Cep Telefonu"],"variants": [{ "attributeName": "Renk", "attributeValue": "Siyah", "price": 49999.0, "inStock": true, "sku": "IPH15-128-BLK" }],"productCode": "MTP63TU/A","badges": ["FastDelivery", "FreeShipping"],"sourceUrl": "https://www.trendyol.com/sr?q=iPhone+15","scrapedAt": "2026-05-16T10:30:00Z"}
Core fields
| Field | Type | Description |
|---|---|---|
recordType | string | Always "product" |
productId | string | Trendyol's internal product id (extracted from URL -p-<id>) |
productUrl | string | Canonical product detail URL |
productName | string | Full product title |
productCode | string | Merchant SKU or model code when shown (direct-product-URL rows only) |
inStock | boolean | At least one variant is buyable |
imageUrl | string | Primary product image (CDN URL) |
images | string[] | All product image URLs |
categoryPath | string[] | Breadcrumb e.g. ["Erkek", "Ayakkabı", "Spor Ayakkabı"] |
badges | string[] | Visible badges (e.g., ["FastDelivery", "FreeShipping", "Discounted"]) |
variants | object[] | Per-variant breakdown — [{ attributeName, attributeValue, price, inStock, sku }]. Populated only for direct-product-URL rows. |
sourceUrl | string | The search / category / seller URL this row was discovered from |
scrapedAt | string | ISO 8601 timestamp of extraction |
Brand & seller
| Field | Type | Description |
|---|---|---|
brandName | string | Brand name (e.g. "Nike", "Apple") |
brandId | integer | Trendyol brand id when available |
sellerName | string | Merchant / store name (direct-product-URL rows only) |
sellerId | string | Merchant id |
Price & popularity
| Field | Type | Description |
|---|---|---|
price | number | Current sale price |
originalPrice | number | Strike-through price when discounted |
discountPercent | integer | 0–100 percent off |
currency | string | TRY, AZN, USD, or EUR depending on storefront |
rating | number | Average customer rating 0.0–5.0 |
reviewCount | integer | Total reviews on the product |
favoriteCount | integer | How many shoppers have favorited the product (from Trendyol's social-proof bar; populated for listing-sourced rows) |
Direct product URL extras
These fields are only present on rows extracted from a direct product URL (startUrls containing ...-p-<id>):
| Field | Type | Description |
|---|---|---|
slugDrift | boolean | true when Trendyol returned a different product id than the one in the input URL (the original may have been delisted). Use this to filter unexpected rows. |
requestedProductId | string | The product id that was in your input URL — for joining against productId when slug drift occurs. |
Review (recordType: "review")
Emitted only when includeReviews: true. Capped at maxReviewsPerProduct per product.
{"recordType": "review","reviewId": "412598834","productId": "755253562","productUrl": "https://www.trendyol.com/apple/iphone-15-128-gb-p-755253562","productName": "Apple iPhone 15 128 GB (Apple Türkiye Garantili)","rating": 5,"reviewText": "Ürün hızlı geldi, kutusu sağlamdı. Renk fotoğraftaki gibi.","reviewDate": "2026-04-22","reviewerName": "M*** S.","reviewerLevel": "Trendyol Elite","isVerifiedPurchase": true,"helpfulCount": 14,"sellerResponse": "Memnuniyetiniz bizim için çok değerli, teşekkür ederiz.","images": ["https://cdn.dsmcdn.com/ty1234/review/images/iphone-15-buyer-1.jpg"],"variantInfo": "Beden: 128 GB, Renk: Siyah","scrapedAt": "2026-05-16T10:30:05Z"}
| Field | Type | Description |
|---|---|---|
recordType | string | Always "review" |
reviewId | string | Trendyol's review id |
productId | string | Parent product id (denormalized for joins) |
productUrl | string | Parent product URL |
productName | string | Parent product name (denormalized) |
rating | integer | 1–5 stars for this review |
reviewText | string | Customer comment (may be empty for star-only reviews) |
reviewDate | string | ISO date the review was posted |
reviewerName | string | Display name (often initials, e.g. "M*** S.") |
reviewerLevel | string | Trendyol's reviewer tier label (e.g. Trendyol Elite) |
isVerifiedPurchase | boolean | True when Trendyol marks the reviewer as a verified buyer |
helpfulCount | integer | Helpful / like count on the review |
sellerResponse | string | Merchant's reply to the review when present |
images | string[] | Customer-uploaded image URLs (common on apparel and electronics) |
variantInfo | string | Which variant the reviewer bought (e.g. "Beden: 42, Renk: Siyah") |
scrapedAt | string | ISO 8601 timestamp of extraction |
Tips for Best Results
- Start small. Set
maxProductsPerSourceto 20–50 on your first run to confirm the data matches your needs, then scale up. - Use the most specific URL you have. Paste the exact Trendyol category URL from the site breadcrumb (
/<slug>-x-c<id>) instead of a broad keyword — you'll get a tighter, more consistent catalog sweep. - Reviews are the cost driver. Leave
includeReviewsoff when you're only price-tracking. Turn it on with a tightmaxReviewsPerProduct(e.g. 20) when you need sentiment data without paying for every comment on a 3,000-review flagship. - Storefront determines currency. The Turkey store returns TRY, Azerbaijan returns AZN, and the International store returns USD or EUR depending on geo — pick the storefront that matches your analytics. The
currencyfield is always populated so you never have to guess. - Sort matters for limited runs. With
maxProductsPerSource: 50,sort: "best_seller"gives you the 50 most-bought items, whilesort: "most_rated"gives you the 50 with the most review activity — very different lists. - Tight filters need a higher cap. Filters like
minRating: "4.5"plusdiscountedOnly: trueare applied to each result page after fetch — Trendyol may need to scan several pages before your cap fills. RaisemaxProductsPerSourceby 2–3× when stacking strict filters. - Mix every source type in one run. Two search keywords, three category URLs, and ten direct product URLs can all live in the same input — one billed start, one combined dataset.
- Direct product URLs can drift. Trendyol occasionally reassigns an old product id to a different SKU. When that happens you'll see
slugDrift: trueandrequestedProductIdon the row plus a one-line note in the final status message — filter onslugDriftto quarantine those rows.
Pricing
$1.00 per 1,000 products plus $0.80 per 1,000 reviews. Reviews are opt-in via includeReviews and capped via maxReviewsPerProduct — you control review cost.
| Workload | Products | Reviews | Cost |
|---|---|---|---|
| Quick lookup | 100 | 0 | $0.10 |
| Small market scan | 1,000 | 5,000 (avg 5/product) | $5.00 |
| Full category sweep | 10,000 | 100,000 (avg 10/product) | $90.00 |
| Enterprise pull | 100,000 | 2,500,000 (avg 25/product) | $2,100.00 |
A "product" is any row with recordType: "product"; a "review" is any row with recordType: "review". Leave includeReviews off and you only pay the product rate — the small market scan above becomes 1,000 × $0.001 = $1.00. Platform fees (compute, storage) are billed by Apify, not by this actor, and have a small fixed startup cost per run — they amortize away at scale (50+ rows per run) but dominate on tiny runs.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n — Workflow automation
- Google Sheets — Direct spreadsheet export
- Slack / Email — Notifications on new results
- Webhooks — Trigger custom APIs on run completion
- Apify API — Full programmatic access
Legal & Ethical Use
This actor is designed for legitimate market research, competitive intelligence, lead generation, and catalog enrichment. Users are responsible for complying with applicable laws and Trendyol's terms of service, including making reasonable-rate requests and respecting any content usage rules for product images, descriptions, and customer reviews. Do not use extracted data for spam, harassment, defamation, or any illegal purpose. Be especially mindful when handling customer review content — treat reviewer names and uploaded images as personal data.