Trendyol Scraper icon

Trendyol Scraper

From $0.80/1K. Scrape Trendyol products, prices, ratings, badges, sellers, full reviews and Q&A. Search by keyword with filters, paste search,…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

Trendyol Scraper at a glance

Trendyol Scraper is a ready-to-run Apify actor from abotapi for collecting ecommerce data. Its documented output includes kind, content id, title, brand and price, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $1.20 per 1,000 results on the Apify Free plan and from $0.80 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Ecommerce, Developer Tools, Automation
Pricing
$1.20 per 1,000 results (Free plan), from $0.80 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
34 options

From $0.80/1K. Scrape Trendyol products, prices, ratings, badges, sellers, full reviews and Q&A. Search by keyword with filters, paste search, category, store or product URLs, or use reviews-only mode for a list of products.

What Trendyol Scraper can do

  • Three modes in one actor. Keyword search with filters, paste-any-URL (search, category, store or single product), or reviews-only for one row per review.
  • Trendyol's own campaign tiers as a first-class picker. Red, Orange and Yellow discount tiers plus the rotating Flash sale pool, combinable with a keyword search for the color tiers.
  • Deep product records. Roughly 75 fields per product with detail fetching on (the default), or around 50 with fetchDetails off: full attribute list, merchant info, category tree, English category translations and the winning variant's barcode and stock.
  • Rich filters. Price range and sort order are sent to Trendyol's own search; minimum rating, free shipping, fast delivery, official seller, collectable coupon and in-stock are applied to every fetched page.
  • Reviews and Q&A on demand. Attach a rating breakdown and review text, or answered Q&A pairs, to each product, or pull reviews for a list of products on their own.
  • Built for schedules. Incremental mode returns only new and changed products on recurring runs, and a run that gets blocked fails loudly with a clear message instead of quietly returning an empty dataset.

Choose what to collect

These inputs let you configure Trendyol Scraper - Products, Sellers, Reviews & Q&A. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredsearch = discover products by keyword + filters. url = paste Trendyol URLs (search, category, store or product page). reviews = take a list of product URLs / IDs and dump their reviews only.

Choices: search, url, reviews

queriesarrayOne or more keywords. Each runs as a separate search; the per-query budget is split evenly across them.
specialsCategorystringBrowse one of Trendyol's own campaign tiers instead of (or combined with) a keyword search. Red/Orange/Yellow are the site's own discount-severity color tiers (kırmızı/turuncu/sarı kampanya, red is deepest); Flash sale is the site's rotating hourly deal pool (browse-only, does not combine with a keyword). Leave as 'No filter' for a plain keyword search.

Choices: , red-deals, orange-deals, yellow-deals, flash-sale

sortBystringSite-native sort. BEST_SCORE is the default Trendyol relevance ranking.

Choices: BEST_SCORE, BEST_SELLER, NEWEST, PRICE_BY_ASC, PRICE_BY_DESC, MOST_RATED, MOST_FAVOURITE

urlsarrayPaste any Trendyol URLs. Supported page types: search results (/sr?q=…), category (/-x-c), seller store (/magaza/-m-), single product (//-p-), a campaign-tier search (/sr?tag=…), the flash-sale hub (/flas-indirimler), a merchant-filtered search (/sr?mid=) or a product reviews link (…-p-/yorumlar). Sort with siralama= or sst=, start page with pi=. Left untouched, one example of each shape is scraped. Bare /p-, brand (-x-b) pages and ty.gl links are not served by Trendyol and are skipped with a warning; m.trendyol.com is mapped to www. Pagination walks forward from the page number embedded in the URL (default page 1).
productInputsarrayEither a full Trendyol product URL ending in /…-p-, or just the numeric content ID. One row per review. Use maxReviewsPerProduct to cap how many you pull from each. Reviews mode is charged one detail-page unit for every started block of 10 delivered review rows (no detail-page base unit - this mode reads no detail pages).
maxReviewsPerProductintegerReviews mode only: hard cap on how many reviews are pulled per product (the site exposes thousands for popular products, so a cap keeps cost and runtime predictable). Does not apply to the reviews attached to product rows by Fetch reviews, which always hold one page of up to 50.
Show 27 more inputs
More input fields
InputWhat it controls
reviewSortstringOrder of the reviews you get, in reviews mode and in the reviews attached to product rows (Fetch reviews). Recommended keeps Trendyol's own default order.

Choices: recommended, newest, oldest, rating_desc, rating_asc

minPriceintegerMinimum price in storefront currency (TL for TR, EUR/USD for international).
maxPriceintegerMaximum price in storefront currency.
minRatingstringDrop products rated below this threshold.

Choices: 0, 1, 2, 3, 4, 4.5

freeCargoOnlybooleanDrop products that don't include free shipping.
fastDeliveryOnlybooleanKeep only products with the fast-delivery tag.
officialSellerOnlybooleanKeep only products from sellers with the verified-official badge.
couponsOnlybooleanKeep only products that currently offer a collectable coupon at checkout.
lowestPriceDaysarrayKeep only products Trendyol flags as 'lowest price in the last N days'. Pick one or more of 10, 14, 30. Matched on the listing's own marker; empty = no filter.
influencerPreferredOnlybooleanKeep only products carrying Trendyol's influencer-recommends badge.
specialOffersOnlybooleanKeep only products with a real strikethrough discount (original price above current price).
inStockOnlybooleanDrop products that are currently out of stock.
maxPagesintegerMaximum SERP pages to walk per query in search mode, or per URL in URL mode. 0 = no per-search cap (use maxListings to bound the total).
maxListingsintegerTotal cap across all queries / URLs. 0 = unlimited (still bounded by maxPages). Ignored in reviews-only mode.
fetchDetailsbooleanWhen ON in search or URL mode, fetch each product's detail page and add ~25 extra fields: full attribute list, merchant info (name, official name, city, score), category tree, web brand, favorite count, max installment, tax %, refundable flag, merchandising group, English category translations, full promotions, winner variant with barcode + stock + tags. Costs roughly +1 fetch per product. Each delivered product whose enrichment reads served is charged as one detail-page event (plus one more unit for every started block of 10 review items attached); products whose reads all fail, and products incremental mode suppresses as unchanged, are not charged.
fetchReviewsbooleanWhen ON in search or URL mode, attach the rating breakdown + the first batch of review text to each product record. Costs roughly +1 API call per product.
fetchQnabooleanWhen ON in search or URL mode, attach the answered Q&A pairs to each product record. Costs roughly +1 API call per product. The Q&A read folds into the per-product detail-page event unit (see Fetch detail-page fields).
maxQnaPerProductintegerCap on Q&A pairs per product when fetchQna = true.
resumeFromRunIdstringPaste a previous run ID or dataset ID to continue a large crawl of products without returning or charging for products already collected there. Use this after an interrupted run, or when continuing a product pull in another run. For recurring daily/weekly monitoring of the same search, use Incremental mode below instead.
incrementalModebooleanTurn this on for daily or recurring monitoring. The first run returns all matching products as NEW. Later runs normally return only NEW, UPDATED, and REAPPEARED products. What is compared: price (current/original/discount), name, brand, seller, stock status (in stock or not), images, badges, promotions, categories, attributes and every other output field. What is excluded: scrapedAt, the raw stock count, rating and review counters, socialProof counters, the order of attributes/badges, and the CDN host of image URLs; these change on their own and never make a product UPDATED (they stay in the output). Turn on "Emit unchanged" or "Emit expired" only when you also want those products returned (and billed). State is kept separately for each mode/query/URL/filter combination; use State key when you want to name or deliberately share a monitoring campaign. To continue one specific interrupted run instead, use Resume from a previous run above.
stateKeystringOptional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently-configured runs. Leave empty to let the actor derive a key automatically from the queries/URLs/specials tier/filters, different searches then never mix state with each other.
emitUnchangedbooleanOff by default. Turn on to also return products that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have, so leave it off unless you specifically want the full snapshot every run.
emitExpiredbooleanOff by default. Turn on to also return products that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned every tracked query/URL, not when Max products capped it, or when Resume was used. This returns, and bills, extra synthetic rows, so leave it off unless you need expiry tracking.
ignoreFieldsForChangesarrayOptional. Field names that must never make a product UPDATED, in addition to the built-in exclusions. Use a top-level name (for example badges) or a dotted path to a nested value (for example price.original). Ignored fields stay in the output, they are only left out of change detection and changedFields.
mcpConnectorsarrayOptionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON, the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).
notionParentPageUrlstringURL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on items written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

kindKind (text)
contentIdContent ID (text)
nameTitle (text)
brandBrand (text)
pricePrice (object)
changeTypeChange type (text)
ratingRating (object)
urlProduct URL (link)
productContentIdReview · Product (text)
rateReview · Rating (number)
commentReview · Comment (text)
userFullNameReview · Reviewer (text)
Show 27 more fields
productUrlReview · Product URL (link)
changedFieldsChanged fields (array)
firstSeenAtFirst seen at (date)
lastSeenAtLast seen at (date)
isOnSpecialOn special (boolean)
sellerSeller (object)
freeCargoFree ship (boolean)
fastDeliveryFast (boolean)
officialSellerOfficial (boolean)
stockStock (number)
detailFetcheddetailFetched
reviewsFetchedreviewsFetched
likesCountLikes (number)
createdAtCreated (number)
categorycategory (object)
inStockIn stock (boolean)
imagesimages (array)
promotionspromotions (array)
badgesbadges (array)
variantValuevariantValue (text)
scrapedAtScraped at (date)
qnaqna
textQuestion (text)
answerAnswer (object)
userNameAsked by (text)
creationDateAsked at (epoch ms) (number)
sellerNameAnswered by seller (text)

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "kind": "product",
  "contentId": 100000001,
  "id": 100000001,
  "groupId": 100000000,
  "url": "https://www.trendyol.com/apple/apple-iphone-15-128-gb-mavi-cep-telefonu-p-100000001",
  "name": "Apple iPhone 15 128 GB Mavi Cep Telefonu",
  "brand": "Apple",
  "brandId": 1000,
  "category": {
    "id": 103498,
    "name": "Cep Telefonu"
  },
  "price": {
    "current": 27999,
    "original": 32999,
    "discountPercent": 15.2,
    "currency": "TL"
  },
  "rating": {
    "score": 4.6,
    "totalRatings": 18342,
    "totalComments": 4210
  },
  "seller": {
    "id": 100000,
    "name": "ABC Teknoloji Mağazası"
  },
  "image": "https://cdn.dsmcdn.com/mnresize/400/-/sample/100000001-800x600.jpeg",
  "stock": 120,
  "inStock": true,
  "freeCargo": true,
  "fastDelivery": false,
  "officialSeller": true,
  "hasCoupon": false,
  "hasFlashSale": false,
  "isOnSpecial": true,
  "savingsAmount": 5000,
  "scrapedAt": "2026-01-01T00:00:00.000Z"
}

Ways to use this data

  • E-commerce and pricing teams: track competitor prices, discount percentages and stock levels across a category or a list of stores.
  • Deal hunters and content creators: pull the Red, Orange and Yellow campaign tiers and the flash-sale pool to publish daily deal roundups.
  • Marketplace sellers: monitor rival sellers' badges (official seller, free shipping, fast delivery), coupons and pricing in a given category.
  • Review and reputation analysts: harvest full review streams and Q&A pairs for sentiment analysis or customer research.
  • Market researchers: build historical pricing, discount and rating datasets for Turkish e-commerce trend analysis.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does Trendyol Scraper return?

The documented output for Trendyol Scraper includes kind, content id, title, brand, price, change type, rating and product url. Availability of each field depends on the source page and the selected mode.

How much does Trendyol Scraper cost?

It costs $1.20 per 1,000 results on the Apify Free plan and from $0.80 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

Can I get only new or changed products on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new, updated and reappeared products, and unchanged ones are not billed unless you turn on Emit unchanged.

Why does search mode return fewer products than I expected?

Search mode stops once Max products or Max pages is reached, whichever comes first. Raise either (or set it to 0) to walk further into the result set. Filters such as price range, rating or free shipping are applied after fetching, so a narrow filter combination can also shrink the count.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

Ready to collect with Trendyol Scraper?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.