Trendyol APItrendyol.com ↗
Search Trendyol products, fetch full product details, read customer reviews, and browse the category tree via a single structured API.
What is the Trendyol API?
The Trendyol API exposes 4 endpoints covering Turkey's largest e-commerce storefront: search products by free-text query, retrieve full product detail records with pricing in TRY, read paginated customer reviews with per-star rating breakdowns, and pull the complete navigation category tree. The get_product endpoint alone returns over a dozen fields including variant-level stock, merchant info, attribute lists, and the full category hierarchy.
curl -X GET 'https://api.parse.bot/scraper/5f4e0482-b8b5-4da0-9102-4c60150dab8e/search_products?query=kulaklik' \ -H 'X-API-Key: $PARSE_API_KEY'
Searches Trendyol products by free-text query and returns one page of product cards (id, name, brand, category, price in TL, rating, images, badges). One round trip per call. Paginated with page (1-based) and page_size (max 36, the site's page size); has_more tells whether the next page exists. Ordering is selectable through sort (default relevance). When the query has no direct match the site itself falls back to broad/multilingual matching; search_strategy exposes that decision (DEFAULT vs e.g. MULTILINGUAL_SEARCH) so callers can recognise fallback results. total is the site's reported match count and is capped by the site at 100000.
| Param | Type | Description |
|---|---|---|
| page | integer | 1-based result page. |
| sort | string | Result ordering. Omitted = site relevance ordering. |
| queryrequired | string | Free-text search term, e.g. a product type or brand (Turkish or English). |
| page_size | integer | Products per page; values above 36 are clamped to 36. |
{
"type": "object",
"fields": {
"page": "page index returned (1-based)",
"sort": "sort code applied",
"query": "echo of the search term",
"total": "site-reported total matches (capped at 100000)",
"currency": "currency label of all prices (TL)",
"has_more": "true when another page is available",
"products": "array of product cards: product_id (string, use with get_product / get_product_reviews), name, brand, brand_id, category_id, category_name, merchant_id, url, image, images, price (current, numeric), original_price, currency, rating, rating_count, free_cargo, variant_value, group_id, badges (list of site badge labels)",
"page_size": "page size applied",
"rough_total": "site's human-readable total, e.g. 100.000+",
"search_strategy": "site search strategy used (DEFAULT when the query matched directly; other values mean fallback matching)"
},
"sample": {
"data": {
"page": 2,
"sort": "PRICE_BY_ASC",
"query": "kulaklik",
"total": 100000,
"currency": "TL",
"has_more": true,
"products": [
{
"url": "https://www.trendyol.com/concord/renkli-kablolu-kulak-icli-kulaklik-e1-p-274280609?boutiqueId=61&merchantId=180331",
"name": "Renkli Kablolu Kulak Içli Kulaklık E1",
"brand": "Concord",
"image": "https://cdn.dsmcdn.com/mnresize/400/-/ty1316/product/media/images/prod/QC/20240517/00/57adf67d-550f-31d7-9d18-3151b1e1a3e2/1_org_zoom.jpg",
"price": 64.99,
"badges": [],
"images": [
"https://cdn.dsmcdn.com/mnresize/400/-/ty1316/product/media/images/prod/QC/20240517/00/57adf67d-550f-31d7-9d18-3151b1e1a3e2/1_org_zoom.jpg"
],
"rating": 3.5434782608695654,
"brand_id": 9895,
"currency": "TL",
"group_id": 233130715,
"free_cargo": false,
"product_id": "274280609",
"category_id": 1778,
"merchant_id": 180331,
"rating_count": 46,
"category_name": "Kulak İçi Kablolu Kulaklık",
"variant_value": "Tek Ebat",
"original_price": 64.99
}
],
"page_size": 5,
"rough_total": "100.000+",
"search_strategy": "DEFAULT"
},
"status": "success"
}
}About the Trendyol API
Search and Product Data
The search_products endpoint accepts a query string (Turkish or English), an optional sort code, and page / page_size parameters (page size clamped to 36, matching the site's own page size). Each result card includes a product_id string, brand, brand_id, category_id, a numeric price in TL, star rating, image URLs, and promotional badges. The has_more flag signals whether a next page exists, and total reports site-reported matches capped at 100,000. The search_strategy field tells you whether the site matched your query directly (DEFAULT) or fell back to an alternate matching strategy.
Full Product Details
get_product takes the product_id emitted by search_products and returns the complete product record: name, brand, price (discounted), original price, currency (ISO code TRY), in_stock boolean, full-size images array, rating, and a merchant object containing seller id, name, official_name, city, and score. The response also includes the full category hierarchy and ancestor chain, a structured attribute list (ürün özellikleri), and per-variant stock data.
Reviews and Ratings
get_product_reviews returns paginated reviews for a given product_id. Pages are 0-based; page_size is clamped to 50. Each review object carries review_id, rate, comment, masked user_name, seller_name, likes_count, created_at in epoch milliseconds, a trusted flag, and any attached media_urls. The response also includes average_rating, total_rating_count, a per-star rating_counts array, total_pages, and an ai_summary field containing the site's AI-generated review digest when available.
Category Tree
list_categories returns Trendyol's full navigation category tree — top-level sections like Kadın, Erkek, and Elektronik — with nested children up to three levels deep. Each node has a title, a url to the listing page, and children of the same shape. Numeric id values are present only on top-level nodes; deeper nodes carry null for id.
The Trendyol API is a managed, monitored endpoint for trendyol.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when trendyol.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official trendyol.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track price changes on specific Trendyol products by polling
get_productfor thepriceand original price fields. - Build a cross-brand product comparison tool using
search_productsresults filtered bybrandandcategory_id. - Aggregate customer sentiment by collecting
commenttext andratevalues fromget_product_reviewsacross a product category. - Mirror Trendyol's category structure into a local database using
list_categoriesto maptitleandurlfor each node. - Monitor seller reputation by extracting the
merchant.scoreandmerchant.cityfields fromget_productfor competing listings. - Identify trending products by sorting
search_productsresults and trackingratingand badge fields over time. - Detect out-of-stock SKUs by reading the
in_stockflag and per-variant stock data fromget_product.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Trendyol have an official developer API?+
What does `search_strategy` in `search_products` responses mean?+
search_strategy is DEFAULT, the query matched products directly. Any other value indicates the site applied a fallback strategy — such as broadening the query or substituting related terms — which can mean results are less literal matches to your input. Checking this field helps you detect when a zero-result or near-zero-result query silently redirected.How does pagination work across the search and review endpoints?+
search_products uses 1-based page numbering with page_size capped at 36; has_more tells you whether a next page exists and total is capped at 100,000 regardless of actual match count. get_product_reviews uses 0-based page numbering with page_size capped at 50; total_pages gives the full page count for your chosen page size.Does the API return seller offers from multiple merchants for the same product?+
get_product endpoint returns a single merchant object representing the primary seller for that product listing. It does not enumerate all competing seller offers for the same item. You can fork this API on Parse and revise it to add an endpoint that lists alternate merchant offers for a given product.