Trendyol
Trendyol Reviews API
A Trendyol product's reviews: rating, rating and review counts, the star histogram, topics reviewers talk about with positive and negative counts, sizes bought, Trendyol's own review summary, and the reviews with rating, text, date, likes, the author as the site shows it (already masked), verified buyer, the seller bought from, size, fit, variant and photos. Up to 50 a page, sorted and filtered by star rating or photos. 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/jsoncontent_idstringA product's content id: items[].content_id, the number after -p- in a product link. Send content_id or url.
Example: 975557855
urlstringA product link of any Trendyol storefront, alternative to content_id (a language-only path such as /en/... needs country).
Example: https://www.trendyol.com/samsung/galaxy-a17-4-128-gb-siyah-cep-telefonu-p-975557855
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:1Page, 1-based (up to 500).
Example: 2
page_sizeintegerdefault:20Reviews per page, 1 to 50.
Example: 50
sortenum<string>default:recommendedReview order.
Example: newest
recommended— The site's own order. The default.newest— Newest first.oldest— Oldest first.rating_desc— Highest rating first.rating_asc— Lowest rating first.
ratingintegerOnly reviews with this many stars (1 to 5).
Example: 1
with_mediabooleanOnly reviews with photos.
Example: true
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key", timeout=120)
r = client.trendyol.reviews(content_id="975557855", sort="newest", page_size=50)["data"]
print(r["rating"], r["review_count"], r["rating_histogram"])
for t in r["topics"]:
print(t["name"], t.get("positive"), t.get("negative"))
for rv in r["reviews"]:
print(rv["date"], rv["rating"], rv["seller"]["name"] if rv["seller"] else None, rv["text"][:80])Response