Trendyol API: arama, ürün detayı ve satıcı fiyatları JSON olarak
Trendyol'un kendi geliştirici programı satıcılara açıktır ve size yalnızca kendi kataloğunuzu verir. Pazarın tamamını, yani rakip satıcıların fiyatlarını ve herhangi bir ürünün detayını okumak istiyorsanız bu API onu yapar: satıcı hesabı istemez, 16 ucun tamamı tek anahtarla çalışır, yanıt JSON'dur.
Uçlar
| endpoint | Ne döndürür | Zorunlu |
|---|---|---|
| search | Anahtar kelimeyle ürün araması. Her satırda content_id, başlık, marka, TL fiyat (hem metin hem sayı), puan, yorum sayısı, kategori ve kargo bayrağı. | query |
| product/detail | Tek ürünün tamamı: güncel fiyat, liste fiyatı, indirim yüzdesi, kupon ve kart fiyatı, kampanya, stok, satıcı ve puanı, görseller, özellikler, varyantlar. | hepsi opsiyonel |
| product/offers | Aynı ürünü satan diğer satıcılar, seçili satıcı önde, kalanlar fiyata göre sıralı. Yayımlanmayan stok null gelir. | hepsi opsiyonel |
| product/reviews | Sayfalı müşteri yorumları: puan, metin, tarih, hangi satıcıdan alındığı ve doğrulanmış alıcı bilgisi. | hepsi opsiyonel |
| product/variants | Yayımlanmış katalog varyantları ve barkodları. Katalog fiyatı seçili satıcının fiyatından farklı olabilir. | hepsi opsiyonel |
| product/questions | Yanıtlanmış ürün soruları ve satıcı cevapları, sıfır tabanlı sayfalama. | hepsi opsiyonel |
| product/description | Uzun ürün açıklaması: HTML, düz metin ve görsel adresleri. | hepsi opsiyonel |
| product/coupons | Seçili ürün ve satıcı için herkese açık kuponlar: indirim tipi, alt sınır. | hepsi opsiyonel |
| product/similar | Trendyol'un kendi 'Benzer Ürünler' rayı. | hepsi opsiyonel |
| search/filters | Bir sorgu ya da kategori için kullanılabilir filtre başlıkları: marka, beden, renk, fiyat aralığı. | hepsi opsiyonel |
| category/products | Kategori id'siyle liste: çok satanlar, en yeniler, fiyat ve marka filtreli. | hepsi opsiyonel |
| seller/products | Bir satıcının tüm ürünleri, sayfalı ve sıralanabilir. | hepsi opsiyonel |
| seller/info | Satıcı profili: mağaza adı, resmi unvan, toplam ürün ve puan. | hepsi opsiyonel |
| seller/categories | Satıcı kategori ağacı: her kategori, id'si ve tam yolu. | hepsi opsiyonel |
| seller/category-attributes | Bir kategorinin ürün yükleme şablonu: her özellik ve izin verilen değerleri. | category_id |
| suggest | Yazılan sorgu için anahtar kelime önerileri. | query |
Her çağrı kredi ile ücretlendirilir. Başarısız ve engellenen çağrılar ücretsizdir.
Çalışan örnek
Arama sonucundan bir content_id alın, sonra o ürünü satan bütün satıcıları tek çağrıda okuyun. Pazaryerinde asıl soru 'kaç lira' değil, 'başka kim satıyor ve kaça' olduğu için bu iki çağrı çoğu işi bitirir.
curl -X POST https://api.reefapi.com/trendyol/v1/search \
-H "x-api-key: ANAHTARINIZ" \
-H "content-type: application/json" \
-d '{"query": "laptop", "page": 1}'{
"ok": true,
"data": {
"results": [
{
"content_id": 762254881,
"title": "...",
"brand": "...",
"price": 18499.0,
"rating": 4.6,
"comment_count": 1243
}
]
},
"meta": { "record_count": 24, "cache_hit": false, "mode": "live" }
}Kendi Trendyol scraper'ınızı yazmak yerine
Trendyol için GitHub'da scraper aramak yaygın bir ilk adım ve çoğu zaman çalışır. Sorun ilk çalıştırmada değil, ikinci ayda çıkıyor: site HTML'ini değiştirdiğinde ayrıştırıcınız sessizce boş döner, bot koruması devreye girdiğinde ise IP'nizi engeller.
Bu API aynı veriyi veriyor ama bakımı bizde: site şema değiştirdiğinde motoru biz düzeltiriz, engelleme olduğunda hata kodu döner ve o çağrıdan ücret alınmaz. Kendi scraper'ınızda o iki durumun ikisi de sessizdir.
Dürüst olmak gerekirse: tek seferlik, küçük ve bir daha koşmayacak bir iş için kendi scriptiniz daha ucuzdur. Düzenli çalışan bir şey kuruyorsanız kırılma maliyeti kodun kendisinden büyük olur.
Sınırlar ve dürüst notlar
- Satıcı hesabı gerekmez, ama bu Trendyol'un resmi API'si değildir ve onunla bir ortaklığımız yoktur.
- Arama sayfa başına 24 ürün döner; max_pages ile tek çağrıda 10 sayfaya kadar gezip tekrarları ayıklayabilirsiniz.
- product/reviews sayfalaması sıfır tabanlıdır, search ise bir tabanlı. Aynı motorda iki farklı taban var çünkü kaynak öyle yayımlıyor.
- Fiyatlar çağrının yapıldığı andaki değerdir; önbelleğe alınmış yanıt almazsınız, her çağrı canlıdır.