Endeks nedir

FiyatPlus+ Endeksi, Türkiye'nin en büyük ikinci el araç ilan havuzundan her ay üretilen, konut fiyat endeksinin araç karşılığı olan bir fiyat düzeyi göstergesidir. Ocak 2026 = 100 alınır; 104,2 değeri o ayın fiyat düzeyinin Ocak 2026'ya göre %4,2 yüksek olduğunu söyler.

  • Kırılımlar: Türkiye geneli, marka, kasa tipi, yakıt, il (yeterli hacimli iller; küçükler "Diğer"), fiyat bandı.
  • Ay kapanışı: ayın son günü + 3 gün gecikme; ayın 4'ünde yayımlanır. Kapanmış ay değişmez; kalite kapısından geçemeyen ay gecici etiketiyle yayımlanır.
  • Her nokta beraberinde: aylık ve yıllık değişim, eşleşmiş kombinasyon ve ilan sayısı, ilan fiyatı medyanı ile çeyrekleri (p25/p75).

Nasıl hesaplanır

1
Ay sonu fiyatı. Ay içinde yayında olan her ilanın ay sonundaki fiyatı alınır (fiyat izinden; ilan sonradan indirilse de o ayın değeri değişmez).
2
Kombinasyon. İlanlar marka·seri·model·yıl·yakıt·vites·kasa kesitinde gruplanır; her kombinasyon için km düzeltmeli medyan fiyat hesaplanır (fiyatlar kombinasyonun sabit referans km'sine çekilir; kombinasyon içi p5–p95 dışı ilanlar dışarıda kalır).
3
Eşleştirilmiş sepet. İki ardışık ayda da en az 10 ilanı olan kombinasyonlar eşleştirilir; aylık değişim bu kombinasyonların fiyat oranlarının ilan hacmiyle ağırlıklı geometrik ortalamasıdır.
4
Zincirleme. Endeks bir önceki aydan çarpılarak ilerler (bazdan geriye bölünerek). Sepet her ay yenilenir; süreklilik zincirle korunur.
5
Kalite kapısı. İlan hacmi, fiyat kaydı kapsaması ve aylık değişimin makullüğü denetlenir; geçmeyen ay gecici olarak işaretlenir. Segment için en az 20 eşleşmiş kombinasyon ve 300 ilan aranır; altı yayımlanmaz.

Tam metodoloji ve tanımlar: fiyatplus.com/endeks/metodoloji. Mevsimsel düzeltme ilk sürümde uygulanmaz.

Sözlük

endeks
Fiyat düzeyi, baz dönem = 100.
aylikDegisimPct / yillikDegisimPct
Bir önceki aya / 12 ay öncesine göre yüzde değişim (yıllık değer ancak 12 aylık seri oluşunca dolar).
kalite
kesin ya da gecici (kalite kapısı).
komboSayisi / ilanSayisi
O ay endekse giren eşleşmiş kombinasyon sayısı ve bu kombinasyonların aktif ilanı.
aktifIlan
Segmentte o ay en az bir gün yayında olan tüm ilanlar (endekse girenlerle sınırlı değil).
fiyatMedyan, fiyatP25, fiyatP75
Segmentin ham ilan fiyatı medyanı ve çeyrekleri (km düzeltmesiz; bilgi amaçlı).
slug
Segmentin URL/API anahtarı: renault, hatchback-5-kapi, istanbul, fiyat bandı için 1–5.
süre dolumu
Ayrıntı serisinde: yayın süresi 28-30 / 59-61 / 89-91 / 119-121 gün olan kalkmış ilan (satılmadan yayın süresi dolan); kalanı "satıldı" sayılır.

Erişim ve kapsam

Kamuya açık uçlar (/ozet, /seri, /segmentler, /donemler, /bulten/{donem}, /saglik) anahtar istemez; IP başına dakikada 60 istek (X-RateLimit-* başlıkları, aşımda 429 + Retry-After). Yanıtlar 1 saat önbelleklidir; sık çağrı gereksizdir.

Ayrıntılı seri (/ayrinti: kombinasyon düzeyi altı özet katmanı — il çaprazları, p25/p75, km, süre dolumu) lisans kapsamındadır. İlk sürümde herkese açıktır; lisans kapısı devreye alındığında X-API-Key başlığı ve lisanslı bir anahtar gerekir (izinli IP listesi dolu olmalı; sandbox anahtarı kabul edilmez).

📌
Atıf: Yayınlarda "FiyatPlus+ Endeksi" adı ve fiyatplus.com/endeks bağlantısı ile atıf yapılması rica olunur. Ham ilan verisi paylaşılmaz; yalnız toplulaştırılmış istatistik sunulur.

İlk istek

1 · Son yayınlanan ayın özeti
curl https://api.fiyatplus.com/api/endeks/v1/ozet
2 · Renault serisi (CSV)
curl "https://api.fiyatplus.com/api/endeks/v1/seri?kirilim=marka&segment=renault&format=csv" -o renault.csv
3 · Bir kırılımın tüm serileri tek istekte (segment boş)
curl "https://api.fiyatplus.com/api/endeks/v1/seri?kirilim=il"   # { kirilim, adet, seriler: [ { segment, slug, noktalar: [...] }, … ] } — segment başına ayrı istek atmayın
Yanıt · /ozet (kısaltılmış)
{
  "ad": "FiyatPlus+ Endeksi", "donem": 202608, "donemAdi": "Ağustos 2026",
  "baz": { "donem": 202601, "aciklama": "Ocak 2026 = 100" },
  "turkiye": { "endeks": 104.2, "aylikDegisimPct": 1.1, "kalite": "kesin", "komboSayisi": 3120, "ilanSayisi": 412000, "fiyatMedyan": 895000 },
  "seri": [ { "donem": 202512, "endeks": 98.7 }, … ],
  "segmentler": { "marka": [ { "segment": "Renault", "slug": "renault", "endeks": 103.5, … } ], "kasa": [ … ], "il": [ … ] }
}

Yanıt ve önbellek

  • JSON camelCase; boş (null) alanlar yazılmaz; tarihler ISO 8601. ?format=csv ile CSV (UTF-8 BOM, noktalı virgül; Excel'de doğrudan açılır).
  • ETag / If-None-Match: değişmeyen içerik 304 döner. Cache-Control: public, max-age=3600 — endeks ayda bir değişir; saatte birden sık çağırmayın.
  • Dönemler yyyyMM tam sayı (202608); adlar Türkçe ("Ağustos 2026").
  • CORS: uçlar tarayıcıdan da çağrılabilir (Access-Control-Allow-Origin: *, yalnız GET) — kendi sayfanızda grafik çizmek için sunucu aracısı gerekmez.

Hatalar

200Başarılı.
304Değişmedi (If-None-Match).
400{ success:false, kod, mesaj }: DONEM_GECERSIZ, KIRILIM_GECERSIZ, SEGMENT_GEREKLI, FILTRE_GEREKLI, ARALIK_BUYUK.
401 / 403Yalnız lisans kapısı açıkken: anahtar yok/geçersiz, IP izinli değil, LISANS_YOK, SANDBOX_YASAK.
404YAYIN_YOK (henüz yayınlanmış ay yok), SEGMENT_YOK, BULTEN_YOK.
429HIZ_LIMITI: dakikalık limit aşıldı (Retry-After: 60).
500{ success:false, message, reference }; referansla destek.

Son yayınlanan ayın özeti

GET/api/endeks/v1/ozetKamuya açık

Türkiye endeksi (baz Ocak 2026 = 100), aylık/yıllık değişim, son 13 aylık Türkiye serisi ve tüm segment tabloları (marka, kasa, yakıt, il, fiyat bandı) tek yanıtta. Kamu sayfası bu ucu kullanır.

Parametreler

ParametreTipAçıklama
donemintegerBelirli bir ay (yyyyMM). Boşsa son yayınlanan ay.
formatstringcsv → segment tablosu CSV (UTF-8 BOM, ; ayraç).

Örnek: /api/endeks/v1/ozet · CSV: &format=csv

Zaman serisi (segment ya da kırılımın tümü)

GET/api/endeks/v1/seriKamuya açık

Seçilen kırılım ve segment için yayındaki tüm aylar: endeks, aylık/yıllık değişim, eşleşmiş kombinasyon ve ilan sayısı, medyan ve çeyrekler. Baz dönemde verisi olmayan segmentte seriBazDonem alanı 100 alınan ayı bildirir. segment boş bırakılırsa kırılımdaki TÜM segmentlerin serileri tek yanıtta (seriler[]) döner — toplu indirme için segment başına istek atmak yerine bunu kullanın.

Parametreler

ParametreTipAçıklama
kirilimstringtr | marka | kasa | yakit | il | fiyat-bandi (varsayılan tr).
segmentstringSegment slug'ı (segmentler ucundan): renault, suv, dizel, istanbul, 3 … Boşsa kırılımın tüm serileri; tr için gerekmez.
basintegerBaşlangıç ayı (yyyyMM).
bitintegerBitiş ayı (yyyyMM).
formatstringcsv

Örnek: /api/endeks/v1/seri?kirilim=marka&segment=renault · CSV: &format=csv

Bir ayın tüm segmentleri

GET/api/endeks/v1/segmentlerKamuya açık

Yayındaki segmentlerin listesi (slug'larıyla) ve o aydaki değerleri. Segment seçici ve tablo üretimi için.

Parametreler

ParametreTipAçıklama
donemintegerAy (yyyyMM); boşsa son yayınlanan.
kirilimstringmarka | kasa | yakit | il | fiyat-bandi ile daraltma.
formatstringcsv

Örnek: /api/endeks/v1/segmentler?kirilim=il · CSV: &format=csv

Yayındaki aylar

GET/api/endeks/v1/donemlerKamuya açık

Yeniden eskiye yayındaki aylar, kalite etiketi (kesin/gecici), yayın tarihi ve bülten varlığı.

Örnek: /api/endeks/v1/donemler

Bir ayın bülteni

GET/api/endeks/v1/bulten/{donem}Kamuya açık

Yayınlanmış aylık bültenin başlığı, özeti, gövdesi (düz metin paragrafları) ve öne çıkan bulgular. Onaylanmamış bülten dönmez (404).

Parametreler

ParametreTipAçıklama
donem *integerAy (yyyyMM), yol parçası.

Örnek: /api/endeks/v1/bulten/202608

Özet katmanı (lisans kapsamı)

GET/api/endeks/v1/ayrintiLisans kapsamı

Kırılım × filtre × ay: aktif/yeni/kalkan ilan, süre dolumu ve satıldı, fiyat düşüren/artıran ilan, medyan, p25/p75, ortalama, km medyanı, ilan günü medyanı. İl çaprazlarında (marka-il, kasa-il, yakit-il) en az bir filtre gerekir. İlk sürümde herkese açık (Api.AyrintiHerkeseAcik=1); kapatıldığında X-API-Key ve lisanslı bayi gerekir.

Parametreler

ParametreTipAçıklama
kirilimstringtr | marka | kasa | yakit | il | fiyat-bandi | marka-il | kasa-il | yakit-il (varsayılan marka).
basintegerBaşlangıç ayı (yyyyMM); boşsa son 12 ay.
bitintegerBitiş ayı; boşsa son yayınlanan.
markastringMarka adı filtresi (büyük/küçük harf duyarsız).
kasastringKasa tipi filtresi.
yakitstringYakıt filtresi.
ilstringİl filtresi.
bantintegerFiyat bandı (1-5).
formatstringcsv

Örnek: /api/endeks/v1/ayrinti?kirilim=marka-il&marka=Renault&il=İstanbul · CSV: &format=csv

Sağlık

GET/api/endeks/v1/saglikKamuya açık

Son yayınlanan ay, beklenen son ay ve gece özetinin yaşı. Dış izleme için: saglikli=false ise kapanış ya da gece işi aksamıştır. Önbelleklenmez.

Örnek: /api/endeks/v1/saglik

Sürümleme

  • Yol sürümü /v1. Alan ekleme geriye uyumludur; alan kaldırma ya da anlam değişikliği yeni yol sürümünde yapılır.
  • Baz dönem (Ocak 2026 = 100) değişmez. Metodoloji değişikliği duyurulur ve seri yeniden hesaplanırsa metodoloji belgesinde tarihlenir.
  • Bu belge ve openapi.json aynı koddan üretilir; belge sürümü 1.0.0.