Temu Türkiye API: aramada TL fiyat, ürün kaydında varyant stoğu ve satın alma sınırı
Temu her ülkeye ayrı bir katalog açıyor ve Türkiye vitrini kendi ürünleriyle geliyor: 'çay bardağı' araması Paşabahçe setleri ve ince belli bardaklar döndürüyor, fiyatlar TL, başlıklar Türkçe. O vitrine ulaşmak için her istekte `"market": "tr"` gerekir; parametre olmadan ABD vitrini ve dolar fiyatı döner. Arama satırında TL fiyat, varsa üstü çizili fiyat, '1K+ adet satıldı' gibi satış metni, puan ve marka bulunur; ürün kaydında ise her varyantın fiyatı, stok adedi ve kişi başı satın alma sınırı. Temu satıcılarının ürün listelemek ve siparişleri işlemek için bağlandığı sistemden ayrıdır: ürün yüklemez, sipariş görmez, yalnız ziyaretçiye açık sayfaları okur.
Uçlar
| endpoint | Ne döndürür | Zorunlu |
|---|---|---|
| search | Türkçe ya da başka bir dilde kelimeyle arama; Temu'nun döndürdüğü ilk sayfa, en fazla 40 ürün: ürün ve varyant id'si, başlık, link, görsel, TL fiyat ve görünen hâli ('219,62 TL'), üstü çizili fiyat, satış metni, puan, yorum sayısı ve marka. Sonraki sayfalar alınamaz. Kartta stok bilgisi yoktur. | query |
| product/detail | Tek ürün, `goods_id` ya da temu.com linkiyle: fiyat aralığı, her varyantın (renk, malzeme, kapasite) fiyatı, normal fiyatı, stok adedi ve satın alma sınırı, görseller, satıcı, puan, yorum ve satış sayısı, marka, kategori yolu, 'Menşei' dahil özellikler, açıklama görselleri ve tükendi bilgisi. | hepsi opsiyonel |
Her çağrı kredi ile ücretlendirilir. Başarısız ve engellenen çağrılar ücretsizdir.
Çalışan örnek
28 Ekim 2026'da 40 sonuç istendi, Temu 28 ürün döndürdü. Puan 28 kartın 8'inde, marka 6'sında vardı; puanı olmayan kartta `rating` 0 değil null gelir. Markaya göre süzecekseniz yazımı normalleştirin: aynı Paşabahçe bir kartta "paşabahçe", ötekinde "PAŞABAHÇE" olarak geldi, çünkü marka satıcının girdiği hâliyle yayımlanıyor. Satış sayısı da sayı değil metin: '1K+ adet satıldı' ile '1 adet satıldı' aynı alanda duruyor ve 1K+ bir alt sınırdan ibaret.
curl -X POST https://api.reefapi.com/temu/v1/search \
-H "x-api-key: ANAHTARINIZ" \
-H "content-type: application/json" \
-d '{"query": "çay bardağı", "market": "tr", "max_results": 40}'{
"ok": true,
"data": {
"query": "çay bardağı",
"market": "tr",
"currency": "TRY",
"results": [
{
"goods_id": "603596615727800",
"sku_id": "61806458443578",
"title": "6 Lı Cam Kulplu Çizgili Çay Bardağı Bardak 120ml",
"price": 219.62,
"price_display": "219,62 TL",
"normal_price": 232.17,
"currency": "TRY",
"sales_text": "1K+ adet satıldı",
"rating": 4.7,
"review_count": 152,
"brand": null
},
{
"goods_id": "603580241153855",
"title": "Vefa İnce Belli Çay Bardak 24 Adet",
"price": 945.0,
"price_display": "945,00 TL",
"normal_price": 1369.0,
"sales_text": "1 adet satıldı",
"rating": null,
"review_count": null,
"brand": "paşabahçe"
},
...
{
"goods_id": "603760898194912",
"title": "Paşabahçe 42861 Miss Çay Bardak 48 Li 170 cc",
"price": 1302.03,
"price_display": "1.302,03 TL",
"normal_price": 1397.0,
"sales_text": "",
"brand": "PAŞABAHÇE"
},
...
],
"count": 28,
"page": 1,
"next_page": null,
"pagination_supported": false
},
"meta": { "record_count": 28, "charged_credits": 4, "cache_hit": false, "mode": "live" }
}Temu scraper'ı: Türkiye vitrininde sizi yanıltacak sayfalar
Türkiye vitrininde satılmayan bir ürünün sayfası boş dönmüyor. Eylül 2026'da ölçtüğümüz bir üründe sayfa açıldı ama hiçbir varyant yoktu ve Türkçe 'Satın alma işlemi şu anda mevcut değil' yazıyordu. Bunu 'stokta yok' diye okuyan bir script, aslında başka ülkenin kataloğundaki bir ürünü Türkiye fiyat tablosuna tükenmiş olarak yazar. Bu motor o durumu `not_sold_in_market` gerekçesiyle NOT_FOUND olarak döndürür; ölçtüğümüz ABD ürününde cevap 3,4 saniyede geldi ve kredi düşmedi.
Olmayan ürün numarası da başta aynı karışıklığa yol açıyordu: motor o sayfayı geçici bir engel sanıp beş kez deniyor ve yaklaşık 19,5 saniye sonra TARGET_BLOCKED veriyordu. 18 Eylül'den beri Temu'nun kendi 'ürün yok' işaretini okuyoruz; Türkiye'de ölü bir id 1,2 saniyede NOT_FOUND oluyor.
Aynı gün iki sessiz değişiklik daha yaşandı. Temu ürün sayfalarının her birine, ürün verisi eksiksiz geldiği hâlde bir hata bloğu eklemeye başladı; her hata bloğunu ölümcül sayan kod o sabah ürünlerin hiçbirini okuyamadı. Arama sayfası ise sonuç listesini sunucuda boş göndermeye başladı, hata vermeden. Ürün tarafında artık yalnız ürün verisinin kendisine bakıyoruz, aramayı da sonuçları hâlâ veren başka bir yoldan okuyoruz; kendi scraper'ınızda bu, 'ürün bulunamadı' satırlarıyla dolan bir sabah demek.
Uygulamada tek bir fiyata bakarken bunların hiçbiri fark edilmez. Aynı ürünlerin TL fiyatını her gün kaydeden bir işte ise her boş satır için aynı soru sorulmalı: ürün gerçekten mi kalktı, yoksa Temu sayfada bir şeyi mi değiştirdi?
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
- Teknosa API — ürün sorgulama ve satıcı fiyatları
- Vatan Bilgisayar API — fiyat listesi ve mağaza stoğu
- Çiçeksepeti API dökümanı
- AliExpress API — TL fiyat ve Türkiye kargosu
Sınırlar ve dürüst notlar
- Temu ile ticari bir ilişkimiz yok; bu kanalı Temu açmadı, onaylamış da değil.
- Varsayılan vitrin ABD'dir (`us`). Türkiye kataloğu ayrıdır: ABD vitrininden alınmış bir id `market: "tr"` ile NOT_FOUND (`not_sold_in_market`) döner. Ürün id'lerini Türkiye aramasından alın.
- Yalnız ilk sayfa: arama en fazla 40 ürün döndürür, sonraki sayfa yoktur. 40 istendiğinde de daha az gelebilir ('çay bardağı': 28).
- Aramadaki üstü çizili fiyat (`normal_price`) ürün kaydındakiyle uyuşmayabilir; baktığımız iki üründe de farklıydı. Thermos Icon IS115 kupada arama 1.847,16 TL yanında 2.143,90 TL gösterdi, ürün kaydında varyantın normal fiyatı 1.847,16 TL'ydi. İndirim oranı hesaplıyorsanız hangi kaynağı kullandığınızı kayda geçin.
- Kargo ücreti ve teslim süresi oturum açmamış ziyaretçiye ürün bazında yayımlanmıyor, bu yüzden yanıtta yok. Ürünün Türkiye'ye girişinde ödenecek vergiyi de kendiniz hesaplamalısınız.
- Ağırlık alanı (`weight`) pratikte boş: motor kurulurken 27 ürün kaydının hiçbirinde ağırlık satırı yoktu. 'Menşei' satıcı girdiyse `properties` içinde gelir; baktığımız iki Türkiye ürününden birinde 'Türkiye', ötekinde 'Shanghai, China' yazıyordu.
- Yavaş olabilir: 28 Ekim'deki ölçümde ürün kaydı 19,0, 16,4 ve 4,9 saniye sürdü; aramalar 14,7 ve 6,6 saniye. 20 saniyelik bir istemci zaman aşımı en yavaş çağrıları ancak kıl payı yakalar; en az 30 saniye bırakın.
- Arama da ürün kaydı da 4 kredi; aramada `max_results` ne olursa olsun ücret değişmez. NOT_FOUND dönen çağrılar ücretlendirilmez.