Trendyol
Trendyol Search API
Search Trendyol by keyword on any of its 35 storefronts, in the storefront's language: 36 results per page with the total, sorted by recommended, price, newest, best seller, most favourited or most rated, and filtered by price, brand, category, seller, rating, free shipping, rush delivery, discount, Trendyol's lowest-price badge, seller type, flash sale, coupon or any facet. Each item has its content id, price, the price it is shown against, percent off, the lowest-price badge, badges, rating, review count, the site's favourite and order counts, the seller id and a sponsored flag. 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/jsonquerystringrequiredSearch keywords, 1-200 characters, in the storefront's language (telefon on tr, kleid on de, dress on ae).
Example: telefon
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
brand_idstring | string[]1 to 10 brand ids (items[].brand.id, e.g. 794 Samsung).
Example: 794
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)
# Phones from brands' official sellers on trendyol.com, cheapest first.
r = client.trendyol.search(query="telefon", seller_type="official", sort="price_asc")["data"]
print(r["total"], "results,", r["sponsored_count"], "sponsored on this page")
for i in r["items"]:
if i["sponsored"]:
continue
print(i["content_id"], i["name"], i["price"], i["original_price"], i["currency"], i["lowest_price_badge"])Response