How to use it: 3 steps
- Make a free Apify accountApify is the cloud platform where our tools run. The free plan gives you $5 of usage every month, no credit card needed. You pay Apify, not us.
- Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example:
kulaklıkin Queries. Each start is one run. - Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.
This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.
What it does
Trendyol Scraper gets products, prices and customer reviews from Trendyol.com, the largest online marketplace in Turkey. Add a keyword, a search URL or product URLs, and get a clean table with price in TRY, basket discount, seller, rating, stock and reviews. No login and no cookies are needed.
Good for
- Check prices and discounts of your products and your competitors on Trendyol.
- Find which products and sellers appear first for a keyword, including paid (ad) listings.
- Read what buyers say about a product, with the size and variant they bought.
Not a good fit
- Other Trendyol countries (only trendyol.com, prices in TRY).
- Questions and answers (Q&A), seller pages and short
ty.gllinks are not supported. - Personal data: the Actor does not return reviewer names, body measurements or the legal details of sellers.
Who uses it
Sellers on Trendyol
Check prices and discounts of your products and competitors.
Marketing teams
See which products and ads show first for a keyword.
Fashion brands
Read reviews with size and fit to find sizing problems.
Price
Pay per event: you pay for each result the tool saves, plus a small start fee for each run. The price includes Apify platform costs. Apify bills you, not us. Prices below are for the Apify free plan.
| What you pay for | Price | When |
|---|---|---|
| Start fee | $0.01 | Charged once per run. This tool uses 1 GB of memory or less by default; more memory costs more. |
| Product | $0.0009 (from $0.00065 on paid Apify plans) | One Trendyol product row saved to the dataset (search result, product URL or product page details). not_found and error rows are free. |
| Review | $0.00065 (from $0.00045 on paid Apify plans) | One Trendyol customer review row saved to the dataset. not_found and error rows are free. |
Examples
- One product: about $0.01.
- 1,000 products: about $1.00 (10 runs of up to 100).
- Every day 100 products, for 30 days: about $3.00 a month.
- 100 products once a week (4 runs a month): about $0.40 a month.
Free to try: the Apify free plan gives you $5 of usage every month, no credit card needed. That is enough for about 5,000 products.
Prices checked on 24 October 2026. See the current price on Apify.
Questions
Does it work for other Trendyol countries?
No. Only trendyol.com with prices in TRY.
Does it include coupon prices?
No. Coupons and personal prices are not included.
Are reviewer names saved?
No. Reviewer names and body measurements are not returned.
How many reviews can I get?
Up to 1,000 reviews per product and 100 product URLs per run.
Details
Step by step on Apify
- Open the Input tab.
- Keep Mode =
search. - In Queries, keep
kulaklıkor add your own keyword. - Keep Max items =
20. - Click Start.
- Open the Output tab and check the Products view:
name,price,discountedPrice,rating.
Use cases
| Task | Mode and input | Key fields |
|---|---|---|
| Price check for your products | product, your product URLs | price, discountedPrice, originalPrice, inStock, seller |
| Keyword and ad tracking | search, your main keywords | position, isSponsored, brand, sellerId, rating |
| Category price research | search, a product-type keyword, sort: price_asc | price, discountPercentage, ratingCount |
| Review analysis | reviews, reviewSort: newest | rating, text, size, fit, date |
| Size and fit problems | reviews for clothes or shoes | size, variant, fit, rating |
Tips for better results
- Check the basket discount price. It is the price shown to every visitor.
- Use review size and fit fields to spot items that run small or big.
- Look at the RUN_SUMMARY when a run fails. It names the item that failed.
Limits and good to know
- Up to 20 queries per run and up to 1,000 products per query (20,000 products in about 13 minutes)
- Up to 100 product URLs per run, and up to 1,000 reviews per product. 100,000 reviews take about 70 minutes; the default run timeout is 2 hours
- Search results can change between runs: Trendyol personalises and updates its listings
discountedPriceis the basket price that Trendyol shows to all visitors. Coupons and personal prices are not included- If a query or a product fails because of a source error, the rows already saved stay in the dataset, the failed item gets a free
errorrow, and the run ends with status Failed so you notice it.RUN_SUMMARYshows which item failed - With
includeDetails, a product whose page could not be read keeps its search data withstatus: partial
For developers
Sample result
One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.
{
"recordType": "product",
"status": "complete",
"errorMessage": null,
"query": "kulaklık",
"position": 4,
"input": null,
"productId": "666158167",
"name": "Pro 5 Plus Kablosuz Bluetooth Kulaklık Bluetooth 5.3 TWS iOS Android Uyumlu HD Stereo Ses Dokunmatik Kılıf Hediyeli Şarj Kutulu",
"brand": "TrkTech",
"category": "Kulak içi TWS Bluetooth Kulaklık",
"categoryPath": null,
"price": 479.9,
"discountedPrice": null,
"originalPrice": 519.9,
"discountPercentage": 8,
"currency": "TRY",
"promotions": [],
"seller": null,
"sellerId": "260497",
"sellerScore": null,
"rating": 3.76,
"ratingCount": 28612,
"reviewCount": null,
"favoriteCount": null,
"inStock": true,
"freeShipping": true,
"isSponsored": true,
"variant": "Tek Ebat",
"variants": null,
"attributes": null,
"url": "https://www.trendyol.com/trktech/pro-5-plus-kablosuz-bluetooth-kulaklik-bluetooth-5-3-tws-ios-android-uyumlu-hd-stereo-ses-dokunmatik-kilif-hediyeli-sarj-kutulu-p-666158167",
"image": "https://cdn.dsmcdn.com/mnresize/400/-/ty1910/prod/QC_ENRICHMENT/20260728/10/9ec2e259-2706-3ae9-874d-68678b5a420a/1_org_zoom.jpg",
"images": ["https://cdn.dsmcdn.com/mnresize/400/-/ty1910/prod/QC_ENRICHMENT/20260728/10/9ec2e259-2706-3ae9-874d-68678b5a420a/1_org_zoom.jpg"],
"detailsIncluded": false,
"source": "trendyol.com",
"sourceUrl": "https://apigw.trendyol.com/discovery-sfint-search-service/api/search/products/?channelId=1&culture=tr-TR&countryCode=TR&storefrontId=1&language=tr&pageSize=36&pi=1&q=kulakl%C4%B1k&qt=kulakl%C4%B1k&st=kulakl%C4%B1k&os=1",
"fetchedAt": "2026-10-14T15:05:47.817Z"
}Use it from code
Actor ID: cliqtomedia/trendyol-scraper. You need your Apify API token from Apify Console → Settings → API & Integrations.
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("cliqtomedia/trendyol-scraper").call(run_input={
"mode": "search",
"queries": [
"kulaklık"
]
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)curl -X POST "https://api.apify.com/v2/acts/cliqtomedia~trendyol-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode": "search", "queries": ["kulaklık"]}'# pip install langchain-apify
# set APIFY_TOKEN in your environment
from langchain_apify import ApifyActorsTool
tool = ApifyActorsTool("cliqtomedia/trendyol-scraper")
result = tool.invoke({"run_input": {"mode": "search", "queries": ["kulaklık"]}})
print(result)The cURL call waits for the results, up to 300 seconds. For longer runs, start a run (/runs) and get the results with a webhook or by checking the run. Apify API docs. LlamaIndex, MCP for AI agents and the JavaScript client: AI agents & MCP.
Data fields (40)
| Field | Type | Meaning |
|---|---|---|
recordType | string | Row type: product or review. Use the Products / Reviews view. |
status | string | complete; partial = search data only (product page could not be read); not_found = no product with this ID (free); error = input or source failure (free). |
errorMessage | string | Reason for a partial, not_found or error row; null when complete. |
query | string | Search query that returned this product (search mode). |
position | integer | 1-based position in the search results for the query. |
input | string | Your product URL or ID as given (product and reviews modes). |
productId | string | Trendyol product (content) ID. |
name | string | Product name. |
brand | string | Brand. |
category | string | Leaf category. |
categoryPath | string | Full category path, e.g. Elektronik > ... (product pages / includeDetails). |
price | number | Selling price in TRY. |
discountedPrice | number | Lower basket/campaign price in TRY when the site shows one; null when none. |
originalPrice | number | Strikethrough (pre-discount) price in TRY; null when none. |
discountPercentage | number | Discount in percent: the lowest price (discountedPrice, else price) vs the highest shown price (originalPrice, else price). Null when there is no discount. |
currency | string | Currency code, TRY. |
promotions | array | Promotion labels shown on the listing. |
seller | string | Seller (merchant) display name. In search mode only with includeDetails. |
sellerId | string | Seller (merchant) ID; for reviews, the seller the reviewer bought from. |
sellerScore | number | Seller score 0–10 (product pages / includeDetails). |
rating | number | Average rating 1–5 for products; star rating for a review. null when there are no ratings. |
ratingCount | integer | Number of ratings. |
reviewCount | integer | Number of written reviews (product pages / includeDetails). |
favoriteCount | integer | How many users added the product to favourites (product pages / includeDetails). |
inStock | boolean | true if the product can be bought now. |
freeShipping | boolean | true if delivery is free. |
isSponsored | boolean | true for paid (ad) listings in search results. |
variant | string | Selected variant (size/colour) of the product, or the variant the reviewer bought. |
variants | array | All variants with stock: [{value, inStock}] (product pages / includeDetails). |
attributes | object | Product attributes as name → value (product pages / includeDetails). |
url | string | Clean product page URL. |
image | string | Main image URL. |
images | array | Image URLs. |
detailsIncluded | boolean | true if the product page was read (product mode or includeDetails). |
productUrl | string | Product page URL (review rows). |
reviewId | string | Trendyol review ID. |
text | string | Review text. |
date | string | Review date (ISO 8601, UTC). |
lastModifiedAt | string | Last edit date of the review (ISO 8601, UTC). |
size | string | Size the reviewer bought, when the product has sizes. |
Input settings (9)
The main fields of the input form. With the API you send them as JSON.
| Setting | Name in the API | Type | Example value |
|---|---|---|---|
| Mode required | mode | string | "search" |
| Queries | queries | array | ["kulaklık"] |
| Product URLs or IDs | productUrls | array | |
| Max items | maxItems | integer | 20 |
| Search sort | sort | string | "relevance" |
| Open each product page (search) | includeDetails | boolean | false |
| Skip sponsored listings | skipSponsored | boolean | false |
| Review sort | reviewSort | string | "relevance" |
| Proxy | proxyConfiguration | object | {"useApifyProxy": true} |
Use cases with this tool
Each guide shows all the steps and the other tools.



