Trendyol Scraper avatar

Trendyol Scraper

Pricing

from $0.60 / 1,000 products

Go to Apify Store
Trendyol Scraper

Trendyol Scraper

Collect public Trendyol products from searches, categories, stores, and product URLs. Export prices, ratings, sellers, product details, reviews, and answered Q&A.

Pricing

from $0.60 / 1,000 products

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

51

Total users

22

Monthly active users

15 days ago

Last modified

Categories

Share

🛍️ Collect public Trendyol product data

Trendyol Scraper helps ecommerce teams, sellers, analysts, and developers collect public Trendyol data. Get products, prices, brands, ratings, sellers, categories, stock signs, promotions, reviews, and answered Q&A without copying pages by hand.

Use it for:

📦 Returned data

Each dataset row has a recordType of product, review, or qna.

Product rows include IDs, links, names, brands, prices, discounts, currency, ratings, review counts, seller and category data, stock signs, images, shipping details, badges, promotions, attributes, variants, storefront, and the first discovery source.

Review rows link to a product. They can include a review ID, rating, text, shown date, public reviewer name, purchase status, helpful count, bought variant, customer media, and seller response.

Q&A rows link to a product. They can include the question, answer, shown dates, public asker details, and seller details. Optional values are left out when Trendyol does not show them.

🚀 Running the Actor

  1. Choose Search terms, Search result URLs, Category/collection URLs, Seller/store URLs, or Product URLs.
  2. Add searches or public Trendyol URLs for that Target.
  3. For search terms, choose Turkey, Azerbaijan, or International.
  4. Set a product limit, sort order, and any filters you need.
  5. Turn on reviews or answered Q&A if needed, then set their limits.
  6. Click Start.

No Trendyol login is needed. When inputs find the same product, the Actor saves it once and keeps only its first matching source context.

⚙️ Input

The chosen target sets which source field is used. Fields for other Targets are ignored.

FieldTypeWhat it does
targetstringChooses search terms, search result URLs, category or collection URLs, seller or store URLs, or product URLs.
searchQueriesstring arraySets the searches used by the search Target.
storefrontstringSets turkey, azerbaijan, or international for search terms.
searchUrlsobject arraySets public search result URLs for search_urls. Each object has a url.
categoryUrlsobject arraySets public category or collection URLs for category_urls. Each object has a url.
storeUrlsobject arraySets public seller or store URLs for store_urls. Each object has a url.
productUrlsobject arraySets direct public product URLs for product_urls. Each object has a url.
maxProductsPerSourceintegerSets the most products saved from each discovery source. Leave it empty to return all available results until the source is exhausted. It is ignored for Product URLs.
sortstringSets relevance, newest, price, best seller, most favorited, or most rated order where the source supports it.
minPricenumberKeeps products at or above this shown price.
maxPricenumberKeeps products at or below this shown price.
minRatingnumberKeeps products at or above this shown rating.
maxRatingnumberKeeps products at or below this shown rating.
discountedOnlybooleanKeeps products with a shown discount or original price.
inStockOnlybooleanKeeps products shown as available.
freeShippingOnlybooleanKeeps products with shown free shipping.
fastDeliveryOnlybooleanKeeps products with shown fast delivery.
couponOnlybooleanKeeps products with a shown coupon.
offerOnlybooleanKeeps products with a shown offer or campaign.
newReleaseOnlybooleanKeeps products marked as new releases.
influencerOnlybooleanKeeps products with a shown influencer link.
lowestPriceOnlybooleanKeeps products with a shown lowest-price mark.
reviewsobjectSets optional review collection.
reviews.enabledbooleanSaves shown reviews as linked rows.
reviews.maxPerProductintegerSets the most reviews per product. Leave it empty to return all available results until the source is exhausted.
reviews.orderstringUses Trendyol's default, highest-rating-first, or lowest-rating-first review order.
questionsAndAnswersobjectSets optional answered Q&A collection.
questionsAndAnswers.enabledbooleanSaves shown answered questions as linked rows.
questionsAndAnswers.maxPerProductintegerSets the most answered questions per product. Leave it empty to return all available results until the source is exhausted.

This is the public input from a successful default-input run:

{
"target": "search",
"searchQueries": [
"spor ayakkabi"
],
"storefront": "turkey",
"maxProductsPerSource": 2,
"sort": "relevance",
"discountedOnly": false,
"inStockOnly": false,
"freeShippingOnly": false,
"fastDeliveryOnly": false,
"couponOnly": false,
"offerOnly": false,
"newReleaseOnly": false,
"influencerOnly": false,
"lowestPriceOnly": false,
"reviews": {
"enabled": false,
"order": "default"
},
"questionsAndAnswers": {
"enabled": false
}
}

📊 Output

Results are saved to the default Apify dataset. Export them as JSON, CSV, or Excel, or get them through the Apify API. Optional fields are left out when Trendyol does not show them.

Product rows

FieldTypeWhat it does
recordTypestringIs product.
productId, productCodestringIdentify the product.
productUrl, sizeChartUrlstringLink to the product and its size chart.
name, brand, brandIdstringGive the shown product and brand details.
price, originalPrice, discountPercent, currencynumber or stringGive shown price and discount data.
rating, reviewCount, favoriteCount, orderCountnumberGive shown rating and activity signals.
sellerId, sellerName, sellerUrl, sellerScore, sellerLocationstring or numberGive public seller details.
sellerBusinessName, sellerBusinessDetailsstring or string arrayGive shown official seller details.
merchantId, listingIdstringIdentify the seller and offer.
categoryId, categoryName, categoryUrl, categoryHierarchystring or string arrayGive category details.
inStock, freeShipping, fastDeliverybooleanShow stock, shipping, and delivery signs.
hasCoupon, hasOffer, newRelease, influencerPick, lowestPricebooleanShow offer and product marks.
stockLimit, saleLimitintegerGive shown stock and sale limits.
images, badges, shipping, fulfilment, couponDetailsstring arrayGive shown media, badges, and messages.
promotionsobject arrayGives text and optional type for each promotion.
descriptionstringGives the shown product description.
attributesobject arrayGives each fact as name and value.
variantsobject arrayGives each choice's variantId, name, value, price, inStock, and imageUrl.
storefrontstringGives the Trendyol storefront.
sourceContextobjectGives the first saved match through type, query, url, and position.

A full product row from the current beta build:

{
"recordType": "product",
"productId": "241528489",
"productUrl": "https://www.trendyol.com/riccon/beyaz-beyaz-kadin-sneaker-0012255-p-241528489",
"name": "Beyaz Beyaz Kadın Sneaker 0012255",
"productCode": "LNRCNKM255",
"brand": "Riccon",
"brandId": "93397",
"price": 1100,
"currency": "TRY",
"rating": 4.251957295373665,
"reviewCount": 2730,
"favoriteCount": 128002,
"sellerId": "180000",
"sellerName": "Riccon",
"sellerScore": 8.8,
"sellerBusinessName": "LİNDON AYAKKABI İÇ VE DIŞ TİCARET LİMİTED ŞİRKETİ",
"merchantId": "180000",
"categoryId": "975",
"categoryName": "Sneaker",
"categoryHierarchy": [
"Ayakkabı",
"Spor Ayakkabı",
"Sneaker"
],
"inStock": true,
"freeShipping": true,
"fastDelivery": true,
"hasCoupon": false,
"hasOffer": true,
"newRelease": false,
"influencerPick": false,
"lowestPrice": false,
"images": [
"https://cdn.dsmcdn.com/ty1645/prod/QC/20250306/17/f66af729-f992-36c4-8ebe-aa8f97dabf20/1_org_zoom.jpg",
"https://cdn.dsmcdn.com/sfweb-pdp/images/product-placeholder-v2.jpeg",
"https://cdn.dsmcdn.com/ty1644/prod/QC/20250306/17/c5349104-eed5-35c6-9584-ce083daa875c/1_org_zoom.jpg",
"https://cdn.dsmcdn.com/ty1646/prod/QC/20250306/17/c8146858-fca3-380a-a2ff-260d5c4d5a84/1_org_zoom.jpg",
"https://cdn.dsmcdn.com/ty1644/prod/QC/20250306/17/d287ca5e-5f6b-35c7-9bd5-f1090a98e5cc/1_org_zoom.jpg",
"https://cdn.dsmcdn.com/ty1645/prod/QC/20250306/17/c87d9566-3f5c-3d1f-8863-d2401338c7cd/1_org_zoom.jpg",
"https://cdn.dsmcdn.com/ty1645/prod/QC/20250306/17/511e1f18-9be0-3dda-83d5-3c0db620057b/1_org_zoom.jpg",
"https://cdn.dsmcdn.com/ty1646/prod/QC/20250306/17/53bb6c6d-a2b3-320e-8c76-41137d085b5e/1_org_zoom.jpg",
"https://cdn.dsmcdn.com/ty1644/prod/QC/20250306/17/71efff3b-2f77-3063-90ee-9fef83172267/1_org_zoom.jpg"
],
"badges": [
"Hesaplı Ürünler"
],
"shipping": [
"350 TL ve Üzeri Kargo Bedava (Satıcı Karşılar)"
],
"fulfilment": [
"mp"
],
"promotions": [
{
"text": "Trendyol Plus'a Özel Fiyat"
},
{
"text": "350 TL ve Üzeri Kargo Bedava (Satıcı Karşılar)"
}
],
"description": "Beyaz Beyaz Kadın Sneaker 0012255 yorumlarını inceleyin, Trendyol'a özel indirimli fiyata satın alın 🧡",
"attributes": [
{
"name": "Bağlama Şekli",
"value": "Bağcıklı"
},
{
"name": "Materyal",
"value": "Suni Deri"
},
{
"name": "Taban Tipi",
"value": "Poliüretan İç Taban"
},
{
"name": "Koleksiyon",
"value": "Basic"
},
{
"name": "Dış Materyal",
"value": "Suni Deri"
},
{
"name": "Renk",
"value": "Beyaz"
},
{
"name": "İç Astar & İç Taban Materyali",
"value": "Suni Deri"
},
{
"name": "Alt Taban Materyali",
"value": "Poli"
},
{
"name": "Topuk Boyu",
"value": "Orta Topuklu (5-9 cm)"
},
{
"name": "Persona",
"value": "Cool & Comfort"
},
{
"name": "Ek Özellik",
"value": "Ortopedik Taban"
},
{
"name": "Sürdürülebilirlik Detayı",
"value": "Hayır"
},
{
"name": "Topuk Tipi",
"value": "Düz Topuklu"
},
{
"name": "Materyal Bileşeni",
"value": "70% Suni Deri, 30% Poliüretan"
},
{
"name": "Ortam",
"value": "Sportswear"
},
{
"name": "Yıkama Talimatı",
"value": "T101"
},
{
"name": "Desen",
"value": "Düz"
},
{
"name": "Kumaş Tipi",
"value": "Dokuma"
},
{
"name": "Ürün Detayı",
"value": "Suni Deri"
},
{
"name": "Menşei",
"value": "UM"
},
{
"name": "Yıkama Talimatları",
"value": "Temiz bir bezle silin"
}
],
"variants": [
{
"variantId": "LNRCNKM25560236",
"name": "Variant",
"value": "36",
"price": 1100,
"inStock": true
},
{
"variantId": "LNRCNKM25560237",
"name": "Variant",
"value": "37",
"price": 1100,
"inStock": true
},
{
"variantId": "LNRCNKM25560238",
"name": "Variant",
"value": "38",
"price": 1100,
"inStock": true
},
{
"variantId": "LNRCNKM25560239",
"name": "Variant",
"value": "39",
"price": 1100,
"inStock": true
},
{
"variantId": "LNRCNKM25560240",
"name": "Variant",
"value": "40",
"price": 1100,
"inStock": true
}
],
"sizeChartUrl": "https://cdn.dsmcdn.com//ty1724/product/charts/categories/975/brands/93397/tfiesylk.png",
"storefront": "turkey",
"sourceContext": {
"type": "productUrl",
"url": "https://www.trendyol.com/riccon/beyaz-beyaz-kadin-sneaker-0012255-p-241528489",
"position": 1
}
}

Review rows

FieldTypeWhat it does
recordTypestringIs review.
reviewIdstringGives the Trendyol review ID.
productId, productUrl, productNamestringLink the review to its product.
storefrontstringGives the Trendyol storefront.
rating, text, reviewTitle, reviewDatenumber or stringGive the review content and shown timing.
reviewerName, reviewerId, reviewerDetailsstring or string arrayGive public reviewer details.
verifiedPurchasebooleanShows Trendyol's verified-purchase mark.
helpfulCount, unhelpfulCountintegerGive shown feedback counts.
variantstringGives the bought product choice.
mediaUrlsstring arrayGives customer photo or video URLs.
sellerResponseobjectGives the reply's text, date, and sellerName.
{
"recordType": "review",
"reviewId": "473413424",
"productId": "241528489",
"productUrl": "https://www.trendyol.com/riccon/beyaz-beyaz-kadin-sneaker-0012255-p-241528489",
"productName": "Beyaz Beyaz Kadın Sneaker 0012255",
"rating": 5,
"text": "yorumlara bakarak büyük beden aldım 37 giyiyordum 38 aldım tam oldu. Ayakkabının ayakta duruşu çok güzel hiç kaba durmuyor.",
"reviewDate": "2025-02-17T22:00:00.364Z",
"reviewerName": "**** ****",
"verifiedPurchase": true,
"helpfulCount": 3,
"variant": "38",
"mediaUrls": [],
"storefront": "turkey"
}

Answered Q&A rows

FieldTypeWhat it does
recordTypestringIs qna.
qnaIdstringGives the Trendyol answered-question ID.
productId, productUrl, productNamestringLink the Q&A to its product.
storefrontstringGives the Trendyol storefront.
questionText, questionDate, askerNamestringGive the question, shown timing, and public asker.
answerText, answerDatestringGive the answer and shown timing.
sellerId, sellerNamestringIdentify the seller who answered.
{
"recordType": "qna",
"qnaId": "215607391",
"productId": "241528489",
"productUrl": "https://www.trendyol.com/riccon/beyaz-beyaz-kadin-sneaker-0012255-p-241528489",
"productName": "Beyaz Beyaz Kadın Sneaker 0012255",
"questionText": "Merhabalar 37 numarası ne zaman gelir acaba",
"questionDate": "2024-04-03T16:23:36.810Z",
"askerName": "**** ****",
"answerText": "Merhaba efendim,net bir bilgiye sahip değiliz,takipte kalınız.",
"sellerId": "180000",
"sellerName": "Riccon",
"storefront": "turkey"
}

💳 Pricing

This Actor uses pay-per-event pricing. One Actor-start event is charged for each run. Product, review, and answered Q&A events are charged only after the matching row is saved. Reviews and Q&A are off by default, and product details are included with each product. See the Pricing tab for current rates. Apify platform charges may also apply.

🔌 Integrations

Start runs and get dataset rows with the Apify API. Use Apify Schedules for repeat runs and Webhooks to alert another service. You can also send dataset exports to tools in the Apify Console.

❓ FAQ

What happens when several inputs find the same product?

The product is saved once per run. It keeps the first matching discovery source. Later matches are ignored and do not change the saved row.

Why did filters return fewer products than my limit?

The limit is a maximum. A page may have fewer matching products, and filters can remove products that do not show the needed signs.

Can I collect reviews or Q&A without a product row?

No. Reviews and answered Q&A are optional rows linked to a saved product.

Can I collect one direct product page?

Yes. Choose Product URLs and add the public product URL.

Which Trendyol storefronts are supported?

Search-term runs support Turkey, Azerbaijan, and International. Submitted URLs set their own public Trendyol surface.

Is this the official Trendyol API?

No. The Actor reads data shown on public Trendyol pages. It does not need Trendyol API keys.

Can I use a Trendyol scraper library instead?

A library may fit a custom app, but you must run and maintain it. This Actor gives you Apify datasets, schedules, Webhooks, and API access without building that setup.

Does it keep price history or send alerts?

No. Each run returns data shown at that time. Use Schedules and your own storage or workflow to build price history or alerts.

📝 Changelog

  • 0.2: Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré