To get Trendyol seller prices, read the product's buybox seller and every other seller with their price, crossed-out price, seller score and lowest-price badge, and store a row per seller per day. Scavio's Trendyol API returns all of them: POST /api/v1/trendyol/product gives the buy_box and other_sellers of one product, /search, /category and /brand find products 36 at a time, /seller scores a seller, and /coupons and /delivery show what each listing offers beyond the price. It covers Turkey and 34 international storefronts, and every call costs 1 credit, so 100 products read daily is 3,000 credits a month, $3 on the Growth plan.
A Trendyol seller price needs five things per row: the product, the seller, the price, whether that seller holds the buybox, and the day. The buybox matters because Trendyol shows one seller's offer first and lists the rest under Other Sellers, ordered by buybox score rather than price, and the day matters because Trendyol shows price history only to signed-in shoppers. Every response in the steps below is a trimmed capture from live calls on November 15, 2026, between 02:01 and 02:13 UTC. Prices are numbers in the storefront's currency.
Step 1: Find the product id
Every Trendyol product URL ends with its content id after -p-: .../speed-champions-ferrari-sf-24-f1-...-p-1157438648 is 1157438648. To find ids by keyword, search in the storefront's language:
curl -s https://api.scavio.dev/api/v1/trendyol/search \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "lego", "country": "tr", "sort": "best_seller"}'36 products a page; the third, trimmed:
{
"position": 3,
"content_id": 1157438648,
"name": "® Speed Champions Ferrari SF-24 F1® Yarış Arabası 77242 - 10+ Oyuncak Yapım Seti (275 Parça)",
"brand": { "id": 104725, "name": "LEGO" },
"price": 1199,
"original_price": 1233.1,
"discount_percent": 3,
"currency": "TRY",
"lowest_price_badge": { "days": 30, "text": "Son 30 Günün En Düşük Fiyatı" },
"badges": ["free_shipping", "next_day_delivery", "coupon", "official_seller", "lowest_price"],
"rating": 4.79,
"review_count": 1807,
"favourites": "105K",
"orders": "100+",
"seller": { "id": 107730 },
"sponsored": false
}The card's price and seller are the buybox's: on all 90 products we read, the card matched the product call. The search reported 8,242 LEGO results; the site lists at most 138 pages of 36. Sponsored cards are flagged with sponsored: true and can repeat on every page. favourites and orders are the site's rounded text, and the card's review_count is the number of ratings (the product call splits it into rating_count and written review_count). 1 credit.
Step 2: Read the buybox and every other seller
curl -s https://api.scavio.dev/api/v1/trendyol/product \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"content_id": 1157438648, "country": "tr"}'Trimmed to the price fields, with the first two of 90 other sellers:
{
"content_id": 1157438648,
"price": 1199,
"original_price": 1233.1,
"discount_percent": 3,
"currency": "TRY",
"lowest_price_badge": { "days": 30, "text": "Son 30 Günün En Düşük Fiyatı" },
"rating": 4.79,
"rating_count": 1807,
"review_count": 624,
"buy_box": {
"seller": { "id": 107730, "name": "Armağan Oyuncak", "score": 8, "badges": [], "city": "İstanbul", "country": "Türkiye" },
"listing_id": "b99eb1e90109cfb2c009304e718523b1",
"item_number": 1619365732,
"price": 1199,
"original_price": 1233.1,
"discount_percent": 3,
"free_shipping": true,
"rush_delivery_hours": null,
"flash_sale": false,
"has_coupon": true
},
"other_sellers": [
{
"seller": { "id": 1135722, "name": "AVDA", "score": 8.6, "badges": [] },
"listing_id": "489c91b765407df276872a07379bf844",
"price": 1149,
"original_price": null,
"free_shipping": true,
"rush_delivery": true,
"lowest_price_badge": null,
"promotions": ["350 TL ve Üzeri Kargo Bedava (Satıcı Karşılar)"]
},
{
"seller": { "id": 546520, "name": "fırsatsepetimde", "score": 9.3, "badges": [] },
"listing_id": "61d13f5faa536073d867a366cd2d9a18",
"price": 1189,
"original_price": null,
"free_shipping": true,
"rush_delivery": true,
"lowest_price_badge": null,
"promotions": ["350 TL ve Üzeri Kargo Bedava (Satıcı Karşılar)"]
}
],
"other_seller_count": 90
}The buybox listed 1,199 TRY; AVDA listed 1,149 TRY, 4.2% less. other_sellers is in Trendyol's order, not by price (the next five were 1,195, 1,199, 1,180, 1,200 and 1,199), so sort it yourself. Across 70 best-selling multi-seller products read the same morning, the buybox had the lowest listed price on 60, tied on 3 and was undercut on 7; the full comparison is in the best Trendyol seller price APIs. price is what one unit costs at checkout with basket discounts applied, and original_price is the crossed-out price it is shown against. A content id that does not exist on the storefront answers 404, and that call is charged. 1 credit.
Step 3: Score the sellers
curl -s https://api.scavio.dev/api/v1/trendyol/seller \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"seller_id": 1135722, "country": "tr"}'{
"id": 1135722,
"name": "AVDA",
"score": 8.6,
"score_scale": 10,
"product_count": 182,
"follower_count": 2277,
"badges": [],
"city": "Şanlıurfa",
"on_trendyol_for": "1 Yıl",
"average_shipping_time": "15 Saat",
"question_response_time": "4-6 Saat",
"average_product_rating": 3.3,
"store_url": "https://www.trendyol.com/magaza/avda-m-1135722"
}The buybox seller, Armağan Oyuncak (107730), returned a score of 8, 5,197 products, 44,407 followers, 7 years on Trendyol, a one-day average shipping time and an average product rating of 4.3. Labels such as on_trendyol_for come in the storefront's language. Add "include_products": true to get the seller's catalog as a grid in the same call. The seller's legal disclosure (registered email, tax number, address) is not returned. 1 credit.
Step 4: Check the coupons on a listing
curl -s https://api.scavio.dev/api/v1/trendyol/coupons \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"content_id": 1157438648}'{
"product": { "name": "® Speed Champions Ferrari SF-24 F1® Yarış Arabası 77242 - 10+ Oyuncak Yapım Seti (275 Parça)", "seller": { "id": 107730, "name": "Armağan Oyuncak" }, "price": 1199, "currency": "TRY" },
"coupons": [
{
"discount_type": "amount",
"discount_amount": 100,
"min_basket": 1100,
"currency": "TRY",
"valid_until": "2026-11-21T10:00:00",
"issued_by": "Seller Center",
"seller_id": 107730,
"plus_members_only": false,
"collectable": true
}
],
"count": 1
}Coupons belong to a seller's listing: the call reads the buybox by default, and seller_id reads another seller's. Here the buybox listing carried a 100 TRY coupon above a 1,100 TRY basket, which has_coupon: true in Step 2 already flagged. Coupons are collected on the site and applied at checkout, so price does not include them. Turkey only. 1 credit.
Step 5: Compare delivery dates
curl -s https://api.scavio.dev/api/v1/trendyol/delivery \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"content_id": 1157438648, "city_id": 133, "district_id": 54}'The buybox listing and AVDA's, out of 195 listings returned for Istanbul's Şişli district:
[
{
"listing_id": "b99eb1e90109cfb2c009304e718523b1",
"delivery": { "start": "2026-11-16T05:11:17", "end": "2026-11-20T05:11:17" },
"ships_in_days": 2,
"rush_delivery_hours": null,
"seller": { "id": 107730, "name": "Armağan Oyuncak" },
"buy_box": true
},
{
"listing_id": "489c91b765407df276872a07379bf844",
"delivery": { "start": "2026-11-16T05:11:17", "end": "2026-11-19T05:11:17" },
"ships_in_days": 1,
"fast_options": [{ "type": "tomorrow_shipping", "daily_cutoff": "00:00" }],
"rush_delivery_hours": 24,
"seller": { "id": 1135722, "name": "AVDA" },
"buy_box": false
}
]Dates are Istanbul time. Sellers are named for the buybox and the other sellers the product page lists, and null for the rest. City and district ids work on Turkey only (Istanbul is 133, Şişli 54); other storefronts take the call without them. 1 credit.
Step 6: Watch a whole category or brand
To watch buybox prices across a category rather than one product, read grids: 36 products per credit, each with its buybox price, crossed-out price and badge. The lowest-price badge is a filter too:
curl -s https://api.scavio.dev/api/v1/trendyol/category \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"category_id": 108327, "sort": "best_seller", "lowest_price_days": 30}'The building-toys category (108327) returned 832 products at their 30-day lowest-price badge, 24 pages, and all 36 on the first page carried "lowest_price_badge": {"days": 30, ...}. POST /api/v1/trendyol/brand with {"brand_id": 104725, "sort": "best_seller"} returned LEGO's 8,242 products the same way, and /rankings with a category_id returns Trendyol's top 100 of that category by best seller, favourites, rating or views. 1 credit each.
Step 7: Poll every day through Efsane Günler
This script reads a watchlist once and stores one row per seller per product per day in SQLite. Run it from cron each morning, or every six hours during the sale:
import os, sqlite3, datetime, requests
API = "https://api.scavio.dev/api/v1/trendyol/product"
HEADERS = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}"}
WATCH = [ # (content_id, country)
(1157438648, "tr"), # LEGO Speed Champions Ferrari SF-24
(1071656870, "tr"), # LEGO Creator 3in1 hamster
(777109643, "tr"), # Nike Court Borough Low Recraft (GS)
]
db = sqlite3.connect("trendyol_sellers.db")
db.execute("""CREATE TABLE IF NOT EXISTS offers (
day TEXT, content_id INTEGER, country TEXT, seller_id INTEGER, seller TEXT,
score REAL, price REAL, original_price REAL, badge_days INTEGER, is_buy_box INTEGER,
currency TEXT, PRIMARY KEY (day, content_id, country, seller_id))""")
day = datetime.date.today().isoformat()
for content_id, country in WATCH:
r = requests.post(API, headers=HEADERS, timeout=120,
json={"content_id": content_id, "country": country})
if r.status_code != 200:
print(content_id, country, r.status_code, r.text[:120]) # 502/503 are not charged: retry later
continue
p = r.json()["data"]
offers = [(p["buy_box"], 1)] + [(o, 0) for o in p["other_sellers"]]
for o, is_bb in offers:
badge = o.get("lowest_price_badge") if not is_bb else p["lowest_price_badge"]
db.execute("INSERT OR REPLACE INTO offers VALUES (?,?,?,?,?,?,?,?,?,?,?)", (
day, p["content_id"], country, o["seller"]["id"], o["seller"]["name"],
o["seller"]["score"], o["price"], o["original_price"],
badge["days"] if badge else None, is_bb, o["currency"]))
print(content_id, country, "buy box", p["buy_box"]["seller"]["name"], p["buy_box"]["price"],
"| sellers", len(offers), "| lowest", min(o["price"] for o, _ in offers))
db.commit()Its first run, on November 15, 2026, stored 135 rows from 3 credits:
1157438648 tr buy box Armağan Oyuncak 1199 | sellers 91 | lowest 1149
1071656870 tr buy box TOYSRUS 539 | sellers 31 | lowest 524.28
777109643 tr buy box ich1one 3006.96 | sellers 13 | lowest 2999
The buybox and the two cheapest other sellers of each:
| day | content_id | seller_id | seller | score | price | original_price | badge_days | is_buy_box |
|---|---|---|---|---|---|---|---|---|
| 2026-11-15 | 1157438648 | 107730 | Armağan Oyuncak | 8 | 1199 | 1233.1 | 30 | 1 |
| 2026-11-15 | 1157438648 | 1135722 | AVDA | 8.6 | 1149 | 0 | ||
| 2026-11-15 | 1157438648 | 1105309 | URAZELİZ TEKNOLOJİ | 9.3 | 1180 | 0 | ||
| 2026-11-15 | 1071656870 | 1202441 | TOYSRUS | 8.9 | 539 | 1 | ||
| 2026-11-15 | 1071656870 | 968 | Trendyol | 9.3 | 524.28 | 0 | ||
| 2026-11-15 | 1071656870 | 107730 | Armağan Oyuncak | 8 | 654 | 0 | ||
| 2026-11-15 | 777109643 | 378753 | ich1one | 8.9 | 3006.96 | 3037.33 | 1 | |
| 2026-11-15 | 777109643 | 860145 | Ocean Spor | 9.1 | 2999 | 3299 | 0 | |
| 2026-11-15 | 777109643 | 658470 | GÖKÇE SPOR | 9.2 | 3029 | 0 |
To see each day's buybox against the cheapest seller, and when the buybox changes hands:
SELECT day, content_id,
MAX(CASE WHEN is_buy_box = 1 THEN seller END) AS buy_box_seller,
MAX(CASE WHEN is_buy_box = 1 THEN price END) AS buy_box_price,
MIN(price) AS lowest_price,
COUNT(*) AS sellers
FROM offers GROUP BY day, content_id ORDER BY content_id, day;The dates worth reading more often:
- Efsane Günler: November 26 to December 2, 2026, per the Turkish press calendar. Trendyol's own November announcement names Efsane Günler after Erken Fırsatlar (November 1 to 4), Süper İndirim Günleri and a Gaming Festival, and promises discounts of up to 50%, without dating it. Read every six hours from November 25.
- Black Friday: Friday, November 27, 2026.
A watchlist costs 1 credit per product per storefront per reading: 100 products daily is 3,000 credits a month, and 100 products every six hours through the seven days of Efsane Günler is 2,800 credits.
Step 8: Know what the crossed-out price and the badge are
The crossed-out price is original_price, and discount_percent is the page's own percentage. The lowest-price badge is a separate tag, Son 10, 14, 30 or 90 Günün En Düşük Fiyatı (lowest price of the last 10, 14, 30 or 90 days), returned as lowest_price_badge with the day count and the text. Trendyol shows the day count, not the price the badge refers to, and shows price history only to signed-in shoppers, so the API returns neither; your daily rows in Step 7 are the history. On the 70 products in our comparison, 106 of 1,247 offers carried a badge: 43 at 14 days, 34 at 30, 23 at 10 and 6 at 90.
Turkey moved the reference period for discount labels from 30 days to 10: the price before a discount must be the lowest price charged in the 10 days before it, under the Fiyat Etiketi Yönetmeliği amendment published in the Resmî Gazete on October 11, 2025, and, for discount advertising, the Ticari Reklam ve Haksız Ticari Uygulamalar Yönetmeliği amendment in force since August 1, 2026. Store original_price and the badge as Trendyol shows them; the API does not judge either. Coupons, Trendyol Plus member prices, installment offers and cart prices are not in price.
Step 9: Read reviews and questions
curl -s https://api.scavio.dev/api/v1/trendyol/reviews \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"content_id": 1157438648, "sort": "newest", "page_size": 5}'{
"rating": 4.8,
"rating_count": 1809,
"review_count": 555,
"photo_review_count": 179,
"rating_histogram": { "1": 39, "2": 12, "3": 34, "4": 113, "5": 1611 },
"topics": [
{ "name": "Paketleme", "count": 108, "positive": 79, "negative": 29, "positive_percent": 73 },
{ "name": "Teslimat Süresi", "count": 86, "positive": 79, "negative": 7, "positive_percent": 92 }
],
"reviews": [
{
"rating": 5,
"text": "Çok beğendim 5 yaşındaki oğlumla beraber yapıyoruz",
"date": "2026-11-13T16:47:12.350Z",
"verified_buyer": true,
"seller": { "id": 968, "name": "Trendyol" },
"language": "tr"
}
]
}Each review names the seller the buyer bought from, which is how you read a seller's reviews on one product. The response also carries Trendyol's own review summary as the product page shows it. Sort by recommended, newest, oldest or rating, filter by star rating or photos, 1 credit a page. POST /api/v1/trendyol/questions returns the product's questions with each seller's answer and how fast it came ("30 dakika içinde cevaplandı"), 144 on the Ferrari set. Only answered questions are listed, as on the site, and askers are not named. 1 credit.
Step 10: Read another storefront
Every endpoint takes country, and most take language: {"content_id": 1055237392, "country": "ae", "language": "en"} reads the same LEGO set on trendyol.ae in English and AED. International storefronts have their own price lists rather than a currency conversion of the Turkish price, and many items there are sold by Trendyol itself: is Trendyol legit? compares 10 products on the UAE and Turkish storefronts. Store country and currency with every row and compare like with like.
All Trendyol endpoints
| Endpoint | What it returns | Storefronts | Credits |
|---|---|---|---|
POST /api/v1/trendyol/search | 36 products a page with buybox price, crossed-out price, discount, badge, seller id, rating; 7 sorts, filters, facets | All 35 | 1 |
POST /api/v1/trendyol/product | One product: prices, variants, attributes, buybox seller and every other seller with price, score and badge | All 35 | 1 |
POST /api/v1/trendyol/category | A category grid by id or URL, with the search sorts and filters | All 35 | 1 |
POST /api/v1/trendyol/brand | A brand grid by id or URL, with the search sorts and filters | All 35 | 1 |
POST /api/v1/trendyol/reviews | Rating histogram, topics, review summary and paged reviews with the seller bought from | All 35 | 1 |
POST /api/v1/trendyol/questions | Questions with each seller's answer | All 35 | 1 |
POST /api/v1/trendyol/seller | Seller score, counts, shipping and response times, ratings, optionally its catalog | All 35 | 1 |
POST /api/v1/trendyol/deals | The flash deals grid by slot, or Super Fırsatlar | Turkey | 1 |
POST /api/v1/trendyol/coupons | Coupons on the buybox listing or another seller's | Turkey | 1 |
POST /api/v1/trendyol/rankings | A category's top 100 by best seller, favourites, rating or views | 20 storefronts (not the 15 English-language EU ones) | 1 |
POST /api/v1/trendyol/suggestions | Search autocomplete: keywords, categories, brands, stores | All 35 | 1 |
POST /api/v1/trendyol/delivery | Delivery window of every listing of an item; Turkish city and district | All 35 (districts Turkey only) | 1 |
The 35 storefronts are Turkey (Turkish, English or Arabic), Germany and Austria (German), France, Belgium, Croatia, Denmark, Estonia, Finland, Italy, Latvia, Lithuania, the Netherlands, Portugal, Slovenia, Spain, Sweden and Luxembourg (English), Bulgaria, Greece, Czechia, Hungary, Poland, Romania, Slovakia, Serbia, Ukraine and Moldova (local language or English), the UAE, Saudi Arabia, Qatar, Kuwait, Oman and Bahrain (Arabic or English) and Azerbaijan (Turkish). Failed calls (502, 503) are not charged; a product, category, brand or seller that does not exist is.
Getting started
- Sign up for 50 free credits, no card, and copy your API key.
- Run a search and a product call in the playground and pick your content ids and storefronts.
- Save the Step 7 script with your list, set
SCAVIO_API_KEY, and schedule it daily, then every six hours from November 25. - After Efsane Günler, query the table for buybox changes, undercuts and badges that appeared or went away.
The money math on the Growth plan of $1 per 1,000 credits: 100 products read daily cost 3,000 credits a month, $3; a 1,000-product list costs $30; the Hobby plan, $15 a month for 3,000 credits, covers the 100-product list. The best Trendyol seller price APIs compares seven options, and the Trendyol API page lists every field.
Reference: Trendyol API overview · product docs · search docs · seller docs · coupons docs · delivery docs · category docs · reviews docs · best Trendyol seller price APIs · is Trendyol legit? · how to get Allegro price data
Frequently asked questions
Does Trendyol have an API for prices?
Not a public one. The Trendyol Partner API is for sellers in the Trendyol Partner Program and their integrators, who use credentials from the seller panel to manage their own products, prices, stock and orders. Scavio's Trendyol API returns the public product page data, including the buybox seller and every other seller's price, as JSON for 1 credit a call.
How do I find the cheapest seller of a Trendyol product?
Read the product with POST /api/v1/trendyol/product and compare buy_box.price with the lowest price in other_sellers. other_sellers comes in Trendyol's order, which follows buybox scores, not price, so sort it yourself. On November 15, 2026 the buybox had the lowest listed price on 60 of 70 multi-seller products we read and was undercut on 7.
Can I get Trendyol price history?
Not through the API: Trendyol shows price history only to signed-in shoppers, and public pages carry only a lowest-price badge with a day count (10, 14, 30 or 90 days) on some offers. Store your own daily readings, one row per product, seller and day, and you have the history from your first run. Scavio does not cache responses, so each call is a fresh reading.
When is Efsane Günler and Black Friday on Trendyol in 2026?
Trendyol's own November announcement lists Erken Fırsatlar on November 1 to 4, followed by Süper İndirim Günleri, a Gaming Festival and Efsane Günler. The Turkish press calendar dates Efsane Günler November 26 to December 2, 2026, and Black Friday falls on Friday, November 27.
Is it allowed to collect Trendyol prices automatically?
Trendyol's legal notice says the site's materials, including machine-readable technical data, may not be copied, reproduced or distributed without its prior written permission. This is not legal advice; read the current terms for your use case.