Teknosa API: teknosa.com'da ürün, fiyat ve satıcı karşılaştırma verisi
teknosa.com yalnız Teknosa'nın değil, sitede mağaza açmış satıcıların da vitrini: 26 Ekim'de 'robot süpürge' diye arandığında ilk sayfadaki satırların hiçbirinde satıcı Teknosa değildi. Bu API o vitrini okur: ürün kodu, TL fiyat, üstü çizili fiyat, yalnız TeknoClub üyelerine gösterilen fiyat, satış kutusundaki mağaza ve aynı ürünü satan diğer mağazaların teklifleri, puan, barkod ve kategori. Teknosa'da mağaza açıp ürün yükleyen satıcıların kullandığı entegrasyonun yerine geçmez; sipariş, stok güncelleme ya da ilan yönetimi yok, yalnız müşteri tarafında görünen canlı ürün verisi var.
Uçlar
| endpoint | Ne döndürür | Zorunlu |
|---|---|---|
| search | Kelimeyle ('robot süpürge', 'kulaklık') ya da kategoriyle (adres veya kod: …-c-100001 → 100001) ürün listesi, sayfada yaklaşık 20 ürün. Her satırda ürün kodu, başlık, marka, TL fiyat, üstü çizili fiyat, TeknoClub fiyatı, peşin fiyatına taksit, satıcı ve Teknosa olup olmadığı, puan, barkod, kategori yolu ve reklam satırı işareti. Satıcıya, markaya ve fiyat aralığına göre daraltma, sitedeki sıralama seçenekleri; her yanıt o aramada seçilebilecek satıcıları, markaları ve fiyat bantlarını da taşır. | hepsi opsiyonel |
| product/detail | Tek ürünün sayfası, ürün kodu ya da teknosa.com linkiyle: fiyatlar, kampanya metinleri, satış kutusundaki mağaza ve rozetleri, diğer mağazaların teklifleri ve kargoya veriliş süreleri, yıldız dağılımı, görseller, özellik tablosu, açıklama, barkod. `seller_id` verilirse ürün o mağazanın teklifiyle açılır. | product_id |
| product/reviews | Ürün yorumları, sitedeki gibi sayfada 5 tane: yıldız, başlık, metin, tarih, ürünün hangi mağazadan satın alındığı, yorumcunun gerçekten alıcı olup olmadığı. En yeni, en eski ya da puana göre sıralama. Yorumcunun adı dönmez. | product_id |
| search/suggest | Arama kutusuna yazılan ilk harfler için Teknosa'nın önerdiği kelimeler, fiyatlarıyla öne çıkan ürünler, markalar, kategoriler ve mağazalar (en az 2 harf). | query |
Her çağrı kredi ile ücretlendirilir. Başarısız ve engellenen çağrılar ücretsizdir.
Çalışan örnek
Satış kutusunda Teknosa değil bir pazaryeri mağazası var (`is_teknosa: false`) ve ürün 19 999 TL. Aynı robot süpürgeyi iki mağaza daha satıyor, biri 21 249 TL'ye, diğeri 29 999 TL'ye; ikisi de `other_offers` içinde, kargoya veriliş süreleriyle. Ürün karşılaştırması yapıyorsanız tek bir `price` alanı yetmez: aynı ürün kodunun arkasında üç ayrı fiyat var ve hangisinin öne çıkacağına site karar veriyor. Belirli bir mağazanın fiyatını takip etmek için o teklifin `seller_id_param` değerini `seller_id` olarak gönderin.
curl -X POST https://api.reefapi.com/teknosa/v1/product/detail \
-H "x-api-key: API_ANAHTARINIZ" \
-H "content-type: application/json" \
-d '{"product_id": "100000053862"}'{
"ok": true,
"data": {
"product": {
"product_id": "100000053862",
"title": "Dreame L10S Plus Robot Süpürge",
"brand": "Dreame",
"price": 19999,
"currency": "TRY",
"was_price": null,
"member_price": null,
"schema_org_price": 19999,
"seller": { "name": "...", "shop_id": "3405", "is_teknosa": false, "badges": ["Başarılı Satıcı", "Hızlı Satıcı"] },
"other_offers": [
{
"seller": { "name": "...", "shop_id": "3841", "is_teknosa": false, "badges": ["Hızlı Satıcı"] },
"price": 21249,
"currency": "TRY",
"dispatch": { "min_business_days": 1, "max_business_days": 3, "text": "1-3 iş günü içinde kargoda" },
"seller_id_param": "3841"
},
{
"seller": { "name": "...", "shop_id": "5341", "is_teknosa": false, "badges": [] },
"price": 29999,
"currency": "TRY",
"seller_id_param": "5341",
...
}
],
"availability": "in_stock",
"rating": 5,
"review_count": 2,
"rating_breakdown": { "1": 0, "2": 0, "3": 0, "4": 0, "5": 2 },
"category_path": ["Elektrikli Ev Aletleri", "Elektrikli Süpürge", "Robot Süpürge"],
"barcode": "6976233674261",
"favorites_count": 50,
"specifications": [
{ "name": "Su Tankı Kapasitesi", "value": "0,2 - 0,49", "unit": "L" },
{ "name": "Gürültü Seviyesi", "value": "72 dB", "unit": null },
...
],
...
}
}
}teknosa.com için scraper yazmayı düşünüyorsanız
Sayfanın veri katmanındaki fiyat, ekranda görünen fiyat olmayabilir. Motoru kurarken pazaryerinden satılan bir iPhone 12 sayfasında veri katmanı 30 849 TL diyordu; sayfada ve schema.org bloğunda fiyat 39 999 TL'ydi. Bu motor fiyatı ekrandaki fiyat alanlarından okur, schema.org fiyatını da ayrıca `schema_org_price` olarak verir.
Karşılığı olmayan bir kelimeye site çoğu zaman 'sonuç yok' demiyor, listeyi ilgisiz ürünlerle şişiriyor: `zzqqxxnonexist123` için 296 alakasız ürün (piller) geldi. Aynı kelime bir istekte gerçekten boş, bir başkasında doldurulmuş dönebiliyor. Motor, hiçbir kartta aranan kelime geçmiyorsa bu satırları dışarıda bırakır, sayısını da `fallback_results_dropped` alanına yazar; kurulumdaki ölçümde 10 anlamsız sorgunun 10'u boşaldı, sonuç dönen 41 gerçek sorgudan hiçbiri boşalmadı.
Site her zaman açık da değil. 24 Eylül'de teknosa.com 'Bakımdayız' sayfasıyla HTTP 503 döndürdü. Bunu engellenme sanan bir script ayarlarını değiştirip boşuna yeniden dener; motor bakım sayfasını tanır ve kaynağın kapalı olduğunu söyleyen bir hata döndürür.
Bir fiyat karşılaştırma tablosunda üçü farklı iz bırakır: veri katmanındaki fiyat bir satıcıyı olduğundan ucuz gösterir, karşılığı olmayan bir arama alakasız ürünlerle dolu görünür, bakım günü de kayıtlara bir engelleme olarak geçer.
Aynı dildeki diğer API dökümanları
- Trendyol API dökümanı
- Hepsiburada API dökümanı
- n11 API dökümanı
- Pazarama API dökümanı
- Getir API dökümanı
- Migros API dökümanı
- CarrefourSA API dökümanı
- A101 API — fiyat listesi ve ürünler
- Watsons Türkiye API dökümanı
- ŞOK Market API — ürünler ve fiyatlar
- Amazon.com.tr API — fiyat ve ürün verisi
- MediaMarkt Türkiye API — fiyat ve ürün sorgulama
- Vatan Bilgisayar API — fiyat listesi ve mağaza stoğu
Sınırlar ve dürüst notlar
- Teknosa'dan bağımsız çalışır: bu API'yi Teknosa yayımlamadı, Teknosa'yla bir sözleşme ya da ortaklığımız da bulunmuyor.
- `in_stock` yalnız Teknosa'nın kendi depo işaretini yansıtır; pazaryeri satırlarında çoğunlukla null gelir ('robot süpürge' ilk sayfasında 20 satırın 19'unda). null 'stokta yok' anlamına gelmez; satılabilirlik için detaydaki `availability` alanına bakın.
- TeknoClub fiyatı (`member_price`) yalnız Teknosa bir ürüne üye fiyatı koyduğunda dolar. 26 Ekim'deki iki aramanın 40 satırında hiç yoktu; motor kurulurken ölçülen 445 arama satırının 11'inde vardı.
- Renk ve kapasite varyantları sayfada yayımlanmıyor, `variants` null gelir; her renk aramada ayrı bir ürün kodudur.
- Arama kelimeyi geniş yorumluyor: 'robot süpürge' sonuçlarında cam temizleme ve havuz temizleme robotları da vardı. Yalnız süpürge istiyorsanız `category_path` ile süzün ya da aramayı `category` ile yapın.
- Taksit tablosu, kampanya koşulları ve mağaza vitrin sayfaları için ayrı uç yok; detaydaki `campaigns` yalnız ürün sayfasındaki kampanya metnini taşır ve fiyattan düşülmez.
- Site bakımdayken (24 Eylül'deki gibi) çağrı hata ile döner ve ücretlendirilmez; o süre boyunca veri alınamaz.
- Her uçta çağrı başına 1 kredi düşer.