Trendyol
Trendyol Brand API
One brand's products on Trendyol by brand id or link, on any of the 35 storefronts: 36 per page with the total, the search sorts and filters (price, category, seller, rating, discount, lowest-price badge, seller type, flash sale, coupon, any facet), each item with its price, the price it is shown against, percent off, lowest-price badge, rating and seller id. Costs 1 credit per request.
Authorizations
AuthorizationstringheaderrequiredBearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).
Body
application/jsonbrand_idstringA brand id (items[].brand.id, e.g. 794 Samsung). Send brand_id or url.
Example: 794
urlstringA brand link (<brand>-x-b<id>), alternative to brand_id.
Example: https://www.trendyol.com/samsung-x-b794
countrystringdefault:trThe Trendyol storefront, as a lowercase country code. This endpoint serves all 35 Trendyol storefronts (13 languages, 16 currencies). Names come back in the storefront's language and prices in its currency, never converted; the answer echoes country, language and currency. ge, kz, kg and iq are served by Trendyol as the Turkish storefront, and ie, mt, gb, ru, us, ca, jo and lb are not sold to: they answer 400, not charged.
Example: tr
tr— Turkey, TRY, tr (Turkish) or en (English) or ar (Arabic); default tr. The default.de— Germany, EUR, de (German).at— Austria, EUR, de (German).fr— France, EUR, en (English).be— Belgium, EUR, en (English).hr— Croatia, EUR, en (English).dk— Denmark, EUR, en (English).ee— Estonia, EUR, en (English).fi— Finland, EUR, en (English).it— Italy, EUR, en (English).lv— Latvia, EUR, en (English).lt— Lithuania, EUR, en (English).nl— Netherlands, EUR, en (English).pt— Portugal, EUR, en (English).si— Slovenia, EUR, en (English).es— Spain, EUR, en (English).se— Sweden, EUR, en (English).lu— Luxembourg, EUR, en (English).bg— Bulgaria, EUR, bg (Bulgarian) or en (English); default bg.gr— Greece, EUR, el (Greek) or en (English); default el.cz— Czechia, CZK, cs (Czech) or en (English); default cs.hu— Hungary, HUF, hu (Hungarian) or en (English); default hu.pl— Poland, PLN, pl (Polish) or en (English); default pl.ro— Romania, RON, ro (Romanian) or en (English); default ro.sk— Slovakia, EUR, sk (Slovak) or en (English); default sk.rs— Serbia, RSD, sr (Serbian (Latin)) or en (English); default sr.ua— Ukraine, UAH, uk (Ukrainian) or en (English); default uk.md— Moldova, MDL, ro (Romanian) or en (English); default ro.ae— United Arab Emirates, AED, en (English) or ar (Arabic); default en.sa— Saudi Arabia, SAR, ar (Arabic) or en (English); default ar.qa— Qatar, QAR, ar (Arabic) or en (English); default ar.kw— Kuwait, KWD, ar (Arabic) or en (English); default ar.om— Oman, OMR, ar (Arabic) or en (English); default ar.bh— Bahrain, BHD, ar (Arabic) or en (English); default ar.az— Azerbaijan, AZN, tr (Turkish).
languagestringThe answer's language, from the storefront's own list (the first is the default): tr tr, en or ar; de and at de; the 15 English-language EU storefronts en; bg bg or en; gr el or en; cz cs or en; hu hu or en; pl pl or en; ro and md ro or en; sk sk or en; rs sr or en; ua uk or en; ae en or ar; sa, qa, kw, om and bh ar or en; az tr. Titles, categories and reviews come back in it. A language the storefront does not serve answers 400.
Example: en
pageintegerdefault:1Results page, 1-based, 36 items per page. Trendyol lists at most 138 pages (about 5,000 results a query): page 139 and up answer 400. A page past the last returns no items and a note.
Example: 2
sortenum<string>default:recommendedResult order.
Example: price_asc
recommended— The site's recommended order. The default.price_asc— Price, low to high.price_desc— Price, high to low.newest— Newest first.best_seller— Best sellers first.most_favourited— Most favourited first.most_rated— Most rated first.
price_minnumberLowest price, in the storefront's currency.
Example: 5000
price_maxnumberHighest price, in the storefront's currency.
Example: 20000
category_idstring | string[]1 to 10 category ids (product category.id or category.tree[].id, or the wc facet).
Example: 103498
seller_idstringOnly one seller's items (items[].seller.id).
Example: 4473
min_ratingnumberProduct rating and up: 1, 2, 3, 4 or 4.5.
Example: 4
free_shippingbooleanOnly items with free shipping.
Example: true
fast_deliverybooleanOnly items with rush delivery.
Example: true
min_discountintegerOnly items at least this many percent off (1 to 90).
Example: 30
lowest_price_daysintegerOnly items carrying Trendyol's lowest-price badge for that many days: 7, 10, 14, 30 or 90 (10, 14, 30 and 90 on tr; 7, 14 and 30 on the international storefronts).
Example: 30
seller_typeenum<string>Only items from one kind of seller, as Trendyol badges them.
Example: official
official— The brand's official seller.authorized— Authorized sellers.successful— Sellers Trendyol badges as successful.
flash_salebooleanOnly flash-sale items.
Example: true
has_couponbooleanOnly items with a collectable coupon.
Example: true
filtersobjectAny other facet, keyed by facets[].param with facets[].options[].value values (send include_facets once to read them): {"attr": ["348|1"]} is a color, {"wg": "1"} a gender. At most 12 facets, 10 values each.
Example: {"attr": ["348|1"]}
include_facetsbooleanAlso return facets (filter groups with option values and counts: what filters takes). 2 calls, still 1 credit.
Example: true
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key", timeout=120)
# Samsung from its official seller, with the facets to filter on.
r = client.trendyol.brand(brand_id="794", seller_type="official", include_facets=True)["data"]
print(r["brand"]["name"], r["total"], [f["param"] for f in r["facets"]])
for i in r["items"]:
print(i["content_id"], i["name"], i["price"], i["original_price"], i["lowest_price_badge"], i["sponsored"])Response