📋 Genel Bakış

FiyatPlus API, araç değerleme işlemlerini programatik olarak gerçekleştirmenizi sağlar. API iki ana bölümden oluşur:

📌
1. Lookup API: Değerleme için gerekli verileri (marka, model, tip vb.) almanızı sağlar.
2. Valuation API: Araç bilgileriyle değerleme hesaplaması yapar.

API Kullanım Sırası

Doğru bir değerleme yapabilmek için verilerin sistemdeki karşılıklarıyla eşleşmesi gerekir. Bu nedenle:

  1. Önce Lookup API'den marka, model, tip listelerini alın
  2. Kullanıcının seçimlerini bu listelerden yapmasını sağlayın
  3. Seçilen değerlerle Valuation API'yi çağırın

🔐 Kimlik Doğrulama

Tüm API istekleri için X-API-Key header'ı zorunludur.

HTTP Header
X-API-Key: YOUR_API_KEY_HERE
Content-Type: application/json
⚠️
IP Kısıtlaması: API Key'iniz sadece tanımlı IP adreslerinden çalışır. Yeni IP eklemek için sistem yöneticinize başvurun.

API Key Nasıl Alınır?

API Key almak için sistem yöneticinizle iletişime geçin. Size şunlar sağlanacaktır:

  • API Key
  • İzin verilen IP adresleri
  • Rate limit bilgileri
  • Kontör paketi

🔄 Entegrasyon Akışı

Değerleme yapmak için CASCADE (zincirleme) yapıyı takip edin. Her dropdown seçimi, bir sonraki dropdown'ın verilerini belirler:

1

Yılları Çekin

GET /api/lookup/yillar ile model yıllarını alın. Kullanıcı önce yıl seçmeli.

2

Yıl Seçilince → Markaları Çekin

GET /api/lookup/markalar?year=2020 ile o yılda var olan markaları alın.

3

Marka Seçilince → Modelleri Çekin

GET /api/lookup/modeller?year=2020&brand=BMW ile yıl ve markaya ait serileri alın.

4

Model Seçilince → Tipleri Çekin

GET /api/lookup/tipler?year=2020&brand=BMW&series=3%20Serisi ile tipleri alın.

5

Tip Seçilince → Kasa Tiplerini Çekin

GET /api/lookup/kasatipleri?year=2020&brand=BMW&series=3%20Serisi&model=320i

6

Kasa Tipi Seçilince → Çekiş Tiplerini Çekin

GET /api/lookup/cekistipleri?year=2020&brand=BMW&series=3%20Serisi&model=320i&kasaTipi=Sedan

7

Çekiş Seçilince → Yakıt Tiplerini Çekin

GET /api/lookup/yakittipleri?year=2020&brand=BMW&series=3%20Serisi&model=320i&kasaTipi=Sedan&cekisTipi=Önden%20Çekiş

8

Yakıt Seçilince → Vites Tiplerini Çekin

GET /api/lookup/vitestipleri?year=2020&brand=BMW&series=3%20Serisi&model=320i&kasaTipi=Sedan&cekisTipi=Önden%20Çekiş&yakitTipi=Benzin

9

Değerleme İsteği Gönderin

POST /api/valuation/calculate ile tüm bilgileri göndererek değerleme sonucunu alın.

Önemli: Her adımda dönen değerler, bir sonraki adımın parametrelerinde birebir kullanılmalıdır. Bu sayede "veri bulunamadı" hatası almazsınız.

🔄 Cascade Dropdown Yapısı

Lookup API, zincirleme (cascade) bir dropdown yapısı sunar. Her seçim, bir sonraki listenin içeriğini belirler:

📋
Terminoloji Eşleştirmesi:
UI (Ön Yüz)VeritabanıAPI Parametresi
Markamarkabrand
Modelseriseries
Tipmodelmodel
Varsayılan Cascade Akış
// Akış sırası (UI Terminolojisi):
1️⃣ Yıl       → /api/lookup/yillar
2️⃣ Marka     → /api/lookup/markalar?year={yıl}
3️⃣ Model     → /api/lookup/modeller?year={yıl}&brand={marka}
4️⃣ Tip       → /api/lookup/tipler?year={yıl}&brand={marka}&series={model}
5️⃣ Kasa Tipi → /api/lookup/kasatipleri?year={yıl}&brand={marka}&series={model}&model={tip}
6️⃣ Çekiş     → /api/lookup/cekistipleri?year={yıl}&brand={marka}&series={model}&model={tip}&kasaTipi={kasaTipi}
7️⃣ Yakıt     → /api/lookup/yakittipleri?year={yıl}&brand={marka}&series={model}&model={tip}&kasaTipi={kasaTipi}&cekisTipi={çekiş}
8️⃣ Vites     → /api/lookup/vitestipleri?year={yıl}&brand={marka}&series={model}&model={tip}&kasaTipi={kasaTipi}&cekisTipi={çekiş}&yakitTipi={yakıt}
Alternatif Akış (Yakıt/Vites Önce)
// Bazı entegrasyonlarda yakıt ve vites seçimi tipten önce yapılır:
1️⃣ Yıl       → /api/lookup/yillar
2️⃣ Marka     → /api/lookup/markalar?year={yıl}
3️⃣ Model     → /api/lookup/modeller?year={yıl}&brand={marka}
4️⃣ Yakıt     → /api/lookup/yakittipleri?year={yıl}&brand={marka}&series={model}
5️⃣ Vites     → /api/lookup/vitestipleri?year={yıl}&brand={marka}&series={model}&yakitTipi={yakıt}
6️⃣ Tip       → /api/lookup/tipler?year={yıl}&brand={marka}&series={model}&yakitTipi={yakıt}&vites={vites}
7️⃣ Kasa Tipi → /api/lookup/kasatipleri?year={yıl}&brand={marka}&series={model}&model={tip}
8️⃣ Çekiş     → /api/lookup/cekistipleri?year={yıl}&brand={marka}&series={model}&model={tip}&kasaTipi={kasaTipi}
🔀
Esnek Filtreleme: Tüm lookup endpoint'leri, cascade sırasından bağımsız olarak diğer tüm parametreleri opsiyonel filtre olarak kabul eder. Örneğin /api/lookup/yillar?brand=BMW&yakitTipi=Benzinli ile BMW Benzinli araçların bulunduğu yılları, /api/lookup/markalar?year=2020&vites=Otomatik ile 2020 Otomatik vitesli araçların markalarını getirebilirsiniz. Bu sayede entegrasyon akışınızı istediğiniz sırada tasarlayabilirsiniz.
⚠️
Önemli: markalar endpoint'inde year; modeller, tipler, kasatipleri, cekistipleri, yakittipleri, vitestipleri endpoint'lerinde year, brand ve series parametreleri zorunludur. year 1950-2100 arasında olmalıdır. Diğer tüm parametreler opsiyoneldir ve verilirse sonuçları daraltır.

1️⃣ Yıllar

GET /api/lookup/yillar

Model yıllarını döndürür (azalan sırada). Opsiyonel parametreler verilirse sonuçlar daraltılır.

Parametreler (Hepsi Opsiyonel)

ParametreTipZorunluAçıklama
brandstring❌ HayırMarka adı (verilirse o markadaki yıllar)
seriesstring❌ HayırSeri adı
modelstring❌ HayırModel (tip) adı
kasaTipistring❌ HayırKasa tipi
cekisTipistring❌ HayırÇekiş tipi
yakitTipistring❌ HayırYakıt tipi
vitesstring❌ HayırVites tipi
kategoristring❌ HayırKategori

Örnek İstekler

Request
// Tüm yıllar
GET /api/lookup/yillar

// BMW araçların bulunduğu yıllar
GET /api/lookup/yillar?brand=BMW

// Dizel Otomatik araçların bulunduğu yıllar
GET /api/lookup/yillar?yakitTipi=Dizel&vites=Otomatik

Response

JSON Response
{
  "success": true,
  "data": [2025, 2024, 2023, 2022, 2021, 2020, ...]
}

2️⃣ Markalar

GET /api/lookup/markalar?year={yıl}

Belirtilen yılda var olan araç markalarını döndürür. Opsiyonel parametreler verilirse sonuçlar daraltılır.

Parametreler

ParametreTipZorunluAçıklama
yearinteger✅ EvetModel yılı (1950-2100)
seriesstring❌ HayırSeri adı
modelstring❌ HayırModel (tip) adı
kasaTipistring❌ HayırKasa tipi
cekisTipistring❌ HayırÇekiş tipi
yakitTipistring❌ HayırYakıt tipi
vitesstring❌ HayırVites tipi
kategoristring❌ HayırKategori

Örnek İstekler

Request
// 2020 yılındaki markalar
GET /api/lookup/markalar?year=2020

// 2020 yılında Otomatik vitesli araçların markaları
GET /api/lookup/markalar?year=2020&vites=Otomatik

// 2020 yılında Dizel SUV araçların markaları
GET /api/lookup/markalar?year=2020&yakitTipi=Dizel&kasaTipi=SUV

Response

JSON Response
{
  "success": true,
  "data": [
    "Audi",
    "BMW",
    "Citroen",
    "Fiat",
    "Ford",
    "Honda",
    "Hyundai",
    "Mercedes - Benz",
    // ... filtreye uyan markalar
  ]
}
💡
İpucu: Opsiyonel parametreler verildiğinde yalnızca o özelliklere sahip araçların markaları listelenir.

3️⃣ Modeller

GET /api/lookup/modeller?year={yıl}&brand={marka}

Belirtilen yıl ve markaya ait modelleri döndürür. Bu değerler Valuation API'deki Seri alanına yazılır (veritabanında "seri" olarak saklanır).

📝
Terminoloji: UI'da "Model" olarak gösterilen bu alan, veritabanında seri olarak saklanır ve API'de series parametresi olarak kullanılır.

Parametreler

ParametreTipZorunluAçıklama
yearinteger✅ EvetModel yılı (1950-2100)
brandstring✅ EvetMarka adı (markalar endpoint'inden alınmalı)
modelstring❌ HayırModel (tip) adı
kasaTipistring❌ HayırKasa tipi
cekisTipistring❌ HayırÇekiş tipi
yakitTipistring❌ HayırYakıt tipi
vitesstring❌ HayırVites tipi
kategoristring❌ HayırKategori

Örnek İstekler

Request
// Temel kullanım
GET /api/lookup/modeller?year=2020&brand=BMW

// Dizel araçların modelleri
GET /api/lookup/modeller?year=2020&brand=BMW&yakitTipi=Dizel

// Otomatik SUV modeller
GET /api/lookup/modeller?year=2020&brand=BMW&vites=Otomatik&kasaTipi=SUV

Response

JSON Response
{
  "success": true,
  "data": [
    "1 Serisi",
    "2 Serisi",
    "3 Serisi",
    "4 Serisi",
    "5 Serisi",
    "X1",
    "X3",
    "X5"
    // ...
  ]
}
⚠️
Hata Durumu: year veya brand eksikse/geçersizse 400 Bad Request döner.

4️⃣ Tipler

GET /api/lookup/tipler?year={yıl}&brand={marka}&series={model}

Belirtilen yıl, marka ve modele ait tipleri döndürür. Bu değerler Valuation API'deki Model alanına yazılır (veritabanında "model" olarak saklanır). Opsiyonel parametreler verilirse, sonuçlar yalnızca o parametrelere sahip tiplere daraltılır.

📝
Terminoloji: UI'da "Tip" olarak gösterilen bu alan, veritabanında model olarak saklanır ve API'de model parametresi olarak kullanılır.

Parametreler

ParametreTipZorunluAçıklama
yearinteger✅ EvetModel yılı (1950-2100)
brandstring✅ EvetMarka adı (markalar endpoint'inden alınmalı)
seriesstring✅ EvetModel adı (modeller endpoint'inden alınmalı)
modelstring❌ HayırTip adı (verilirse o tipe sahip sonuçları filtreler)
kasaTipistring❌ HayırKasa tipi (kasatipleri endpoint'inden alınmalı)
cekisTipistring❌ HayırÇekiş tipi (cekistipleri endpoint'inden alınmalı)
yakitTipistring❌ HayırYakıt tipi (yakittipleri endpoint'inden alınmalı)
vitesstring❌ HayırVites tipi (vitestipleri endpoint'inden alınmalı)
kategoristring❌ HayırKategori

Örnek İstekler

Request
// Temel kullanım (sadece zorunlu parametreler)
GET /api/lookup/tipler?year=2020&brand=BMW&series=3%20Serisi

// Yakıt tipine göre filtrelenmiş (sadece Benzin tipler)
GET /api/lookup/tipler?year=2020&brand=BMW&series=3%20Serisi&yakitTipi=Benzin

// Birden fazla filtre ile (Benzin + Otomatik tipler)
GET /api/lookup/tipler?year=2020&brand=BMW&series=3%20Serisi&yakitTipi=Benzin&vites=Otomatik

// Kasa tipi ve çekiş tipi ile
GET /api/lookup/tipler?year=2020&brand=BMW&series=3%20Serisi&kasaTipi=Sedan&cekisTipi=Arkadan%20İtiş

Response

JSON Response
{
  "success": true,
  "data": [
    "316i",
    "318i",
    "320i",
    "320d",
    "320i xDrive",
    "330i",
    "330i xDrive",
    "M340i xDrive"
    // ...
  ]
}
💡
Bu değerler Valuation API'deki Model alanına yazılır. Opsiyonel filtreler verildiğinde, yalnızca o özelliklere sahip tipler döner.

5️⃣ Kasa Tipleri

GET /api/lookup/kasatipleri?year={yıl}&brand={marka}&series={seri}

Belirtilen parametrelere ait kasa tiplerini döndürür. model opsiyoneldir; verilmezse seri bazında tüm kasa tipleri döner. Bu değer değerleme API'sinde KasaTipi alanına yazılır.

Parametreler

ParametreTipZorunluAçıklama
yearinteger✅ EvetModel yılı (1950-2100)
brandstring✅ EvetMarka adı
seriesstring✅ EvetSeri adı
modelstring❌ HayırModel (tip) adı (verilirse o tipe göre filtrelenir)
yakitTipistring❌ HayırYakıt tipi
cekisTipistring❌ HayırÇekiş tipi
vitesstring❌ HayırVites tipi
kategoristring❌ HayırKategori

Örnek İstekler

Request
// Model olmadan - seri bazında tüm kasa tipleri
GET /api/lookup/kasatipleri?year=2020&brand=Fiat&series=Egea

// Model ile
GET /api/lookup/kasatipleri?year=2020&brand=Fiat&series=Egea&model=1.4%20Fire%20Urban%20Plus

// Yakıt tipi ile filtrelenmiş
GET /api/lookup/kasatipleri?year=2020&brand=Fiat&series=Egea&yakitTipi=Benzinli

Response

JSON Response
{
  "success": true,
  "data": [
    "Sedan",
    "Hatchback 5 kapı"
  ]
}

Olası Değerler

Sedan Hatchback 3 kapı Hatchback 5 kapı Station Wagon Coupe Cabrio SUV Crossover MPV Pick-up
💡
İpucu: Kasa tipi seçimi opsiyoneldir. Gönderilmezse değerleme tüm kasa tipleri dahil edilerek yapılır. Ancak doğru sonuç için kasa tipi gönderilmesi önerilir.

6️⃣ Çekiş Tipleri

GET /api/lookup/cekistipleri?year={yıl}&brand={marka}&series={seri}

Belirtilen parametrelere ait çekiş tiplerini döndürür. model ve diğer parametreler opsiyoneldir. Model verilmezse seri bazında tüm çekiş tipleri döner.

Parametreler

ParametreTipZorunluAçıklama
yearinteger✅ EvetModel yılı (1950-2100)
brandstring✅ EvetMarka adı
seriesstring✅ EvetSeri adı
modelstring❌ HayırModel (tip) adı (verilirse o tipe göre filtrelenir)
kasaTipistring❌ HayırKasa tipi
yakitTipistring❌ HayırYakıt tipi
vitesstring❌ HayırVites tipi
kategoristring❌ HayırKategori

Örnek İstekler

Request
// Model olmadan - seri bazında tüm çekiş tipleri
GET /api/lookup/cekistipleri?year=2020&brand=BMW&series=3%20Serisi

// Model ile
GET /api/lookup/cekistipleri?year=2020&brand=BMW&series=3%20Serisi&model=320i

// Model + kasa tipi ile
GET /api/lookup/cekistipleri?year=2020&brand=BMW&series=3%20Serisi&model=320i&kasaTipi=Sedan

Response

JSON Response
{
  "success": true,
  "data": [
    "Önden Çekiş",
    "Arkadan İtiş",
    "4x4 (Sürekli)",
    "4x4 (Elektronik)"
  ]
}

Olası Değerler

Önden Çekiş Arkadan İtiş 4x4 (Sürekli) 4x4 (Elektronik)
💡
İpucu: Çekiş tipi seçimi opsiyoneldir. Eğer çekiş tipi seçilirse, sonraki adımlarda (yakıt, vites) sadece o çekiş tipine sahip araçların değerleri döner.

7️⃣ Yakıt Tipleri

GET /api/lookup/yakittipleri?year={yıl}&brand={marka}&series={seri}

Belirtilen parametrelere göre yakıt tiplerini döndürür. Zorunlu parametreler dışındaki tüm parametreler opsiyoneldir. Model verilmezse seri bazında tüm yakıt tipleri döner.

Parametreler

ParametreTipZorunluAçıklama
yearinteger✅ EvetModel yılı (1950-2100)
brandstring✅ EvetMarka adı
seriesstring✅ EvetSeri adı
modelstring❌ HayırModel (tip) adı (verilirse o tipe göre filtrelenir)
kasaTipistring❌ HayırKasa tipi
cekisTipistring❌ HayırÇekiş tipi
vitesstring❌ HayırVites tipi
kategoristring❌ HayırKategori

Örnek İstekler

Request
// Model olmadan - seri bazında tüm yakıt tipleri
GET /api/lookup/yakittipleri?year=2020&brand=BMW&series=3%20Serisi

// Model ile - o tipe ait yakıt tipleri
GET /api/lookup/yakittipleri?year=2020&brand=BMW&series=3%20Serisi&model=320i

// Model + kasa tipi + çekiş tipi ile (tam filtreli)
GET /api/lookup/yakittipleri?year=2020&brand=BMW&series=3%20Serisi&model=320i&kasaTipi=Sedan&cekisTipi=Önden%20Çekiş

Response

JSON Response
{
  "success": true,
  "data": ["Benzin", "Benzin & LPG"]
}

Olası Değerler

Benzin Dizel Benzin & LPG Hibrit Elektrik
💡
Alternatif Akış: Bazı entegrasyonlarda yakıt tipi seçimi, tip seçiminden önce yapılabilir (Yıl → Marka → Seri → Yakıt → Vites → Tip). Bu durumda model parametresi göndermeden çağırın.

8️⃣ Vites Tipleri

GET /api/lookup/vitestipleri?year={yıl}&brand={marka}&series={seri}

Belirtilen parametrelere ait vites tiplerini döndürür. model, kasaTipi, cekisTipi ve yakitTipi opsiyoneldir. Model verilmezse seri bazında tüm vites tipleri döner.

Parametreler

ParametreTipZorunluAçıklama
yearinteger✅ EvetModel yılı (1950-2100)
brandstring✅ EvetMarka adı
seriesstring✅ EvetSeri adı
modelstring❌ HayırModel (tip) adı (verilirse o tipe göre filtrelenir)
kasaTipistring❌ HayırKasa tipi (kasatipleri'nden alınmalı)
cekisTipistring❌ HayırÇekiş tipi (cekistipleri'nden alınmalı)
yakitTipistring❌ HayırYakıt tipi (yakittipleri'nden alınmalı)
kategoristring❌ HayırKategori

Örnek İstekler

Request
// Model olmadan - seri bazında tüm vites tipleri
GET /api/lookup/vitestipleri?year=2020&brand=BMW&series=3%20Serisi

// Model olmadan + yakıt tipi ile
GET /api/lookup/vitestipleri?year=2020&brand=BMW&series=3%20Serisi&yakitTipi=Benzin

// Model ile
GET /api/lookup/vitestipleri?year=2020&brand=BMW&series=3%20Serisi&model=320i

// Tam filtreli
GET /api/lookup/vitestipleri?year=2020&brand=BMW&series=3%20Serisi&model=320i&kasaTipi=Sedan&cekisTipi=Önden%20Çekiş&yakitTipi=Benzin

Response

JSON Response
{
  "success": true,
  "data": ["Otomatik", "Manuel"]
}

Olası Değerler

Manuel Otomatik Yarı Otomatik
💡
Alternatif Akış: Bazı entegrasyonlarda vites tipi seçimi, tip seçiminden önce yapılabilir (Yıl → Marka → Seri → Yakıt → Vites → Tip). Bu durumda model parametresi göndermeden, sadece yakitTipi ile çağırın.

🎨 Renkler

GET /api/lookup/renkler

Renkleri döndürür. Parametre verilmezse tüm renkler, parametre verilirse filtrelenmiş renkler döner.

Parametreler (Hepsi Opsiyonel)

ParametreTipZorunluAçıklama
yearinteger❌ HayırModel yılı
brandstring❌ HayırMarka adı
seriesstring❌ HayırSeri adı
modelstring❌ HayırModel (tip) adı
kasaTipistring❌ HayırKasa tipi
cekisTipistring❌ HayırÇekiş tipi
yakitTipistring❌ HayırYakıt tipi
vitesstring❌ HayırVites tipi

Örnek İstekler

Request
// Tüm renkler (geriye uyumluluk)
GET /api/lookup/renkler

// Belirli araç için mevcut renkler
GET /api/lookup/renkler?year=2020&brand=BMW&series=3%20Serisi&model=320i

// Kasa tipi ve çekiş tipi ile filtrelenmiş
GET /api/lookup/renkler?year=2020&brand=BMW&series=3%20Serisi&model=320i&kasaTipi=Sedan&cekisTipi=Önden%20Çekiş

Response

JSON Response
{
  "success": true,
  "data": ["Beyaz", "Siyah", "Gri", "Gümüş", "Mavi", ...]
}
💡
İpucu: Renkler cascade akışından bağımsız olarak da kullanılabilir. Parametre vermeden çağırırsanız tüm renkler döner.

💺 Koltuk Sayıları

GET /api/lookup/koltuksayilari

Koltuk sayısı seçeneklerini döndürür. Parametre verilmezse tüm değerler, cascade parametreleri verilirse yalnız o araca uyan değerler döner.

Parametreler (Hepsi Opsiyonel)

ParametreTipZorunluAçıklama
yearinteger❌ HayırModel yılı
brandstring❌ HayırMarka adı
seriesstring❌ HayırSeri adı
modelstring❌ HayırModel (tip) adı
kasaTipistring❌ HayırKasa tipi
cekisTipistring❌ HayırÇekiş tipi
yakitTipistring❌ HayırYakıt tipi
vitesstring❌ HayırVites tipi
renkstring❌ HayırRenk
kategoristring❌ HayırKategori
sasiTipistring❌ HayırŞasi tipi
motorHacmiTipistring❌ HayırMotor hacmi
ruhsatKaydiTipistring❌ HayırRuhsat kayıt tipi

Örnek İstekler

Request
// Tüm değerler
GET /api/lookup/koltuksayilari

// Belirli araç için filtrelenmiş
GET /api/lookup/koltuksayilari?year=2020&brand=Renault&series=Clio

Response

JSON Response
{
  "success": true,
  "data": ["4+1", "5+1", "2+1", "7+1", "8+1", ...],
  "timestamp": "2026-08-17T20:03:29.7211419Z",
  "requestId": "2047b75edb61"
}

🔩 Şasi Tipleri

GET /api/lookup/sasitipleri

Şasi tiplerini döndürür. Parametre verilmezse tüm değerler, cascade parametreleri verilirse yalnız o araca uyan değerler döner.

Parametreler (Hepsi Opsiyonel)

ParametreTipZorunluAçıklama
yearinteger❌ HayırModel yılı
brandstring❌ HayırMarka adı
seriesstring❌ HayırSeri adı
modelstring❌ HayırModel (tip) adı
kasaTipistring❌ HayırKasa tipi
cekisTipistring❌ HayırÇekiş tipi
yakitTipistring❌ HayırYakıt tipi
vitesstring❌ HayırVites tipi
renkstring❌ HayırRenk
kategoristring❌ HayırKategori
motorHacmiTipistring❌ HayırMotor hacmi
ruhsatKaydiTipistring❌ HayırRuhsat kayıt tipi
koltukSayisiTipistring❌ HayırKoltuk sayısı

Örnek İstekler

Request
// Tüm değerler
GET /api/lookup/sasitipleri

// Belirli araç için filtrelenmiş
GET /api/lookup/sasitipleri?year=2020&brand=Renault&series=Clio

Response

JSON Response
{
  "success": true,
  "data": ["Kısa (Standart)", "Orta", "Uzun", ...],
  "timestamp": "2026-08-17T20:03:29.7211419Z",
  "requestId": "2047b75edb61"
}

⚙️ Motor Hacimleri

GET /api/lookup/motorhacimleri

Motor hacimlerini döndürür. Parametre verilmezse tüm değerler, cascade parametreleri verilirse yalnız o araca uyan değerler döner.

Parametreler (Hepsi Opsiyonel)

ParametreTipZorunluAçıklama
yearinteger❌ HayırModel yılı
brandstring❌ HayırMarka adı
seriesstring❌ HayırSeri adı
modelstring❌ HayırModel (tip) adı
kasaTipistring❌ HayırKasa tipi
cekisTipistring❌ HayırÇekiş tipi
yakitTipistring❌ HayırYakıt tipi
vitesstring❌ HayırVites tipi
renkstring❌ HayırRenk
kategoristring❌ HayırKategori
sasiTipistring❌ HayırŞasi tipi
ruhsatKaydiTipistring❌ HayırRuhsat kayıt tipi
koltukSayisiTipistring❌ HayırKoltuk sayısı

Örnek İstekler

Request
// Tüm değerler
GET /api/lookup/motorhacimleri

// Belirli araç için filtrelenmiş
GET /api/lookup/motorhacimleri?year=2020&brand=Renault&series=Clio

Response

JSON Response
{
  "success": true,
  "data": ["999 cc", "1248 cc", "1461 cc", "1598 cc", ...],
  "timestamp": "2026-08-17T20:03:29.7211419Z",
  "requestId": "2047b75edb61"
}

📄 Ruhsat Kayıt Tipleri

GET /api/lookup/ruhsatkayitlari

Ruhsattaki araç sınıfını döndürür. Parametre verilmezse tüm değerler, cascade parametreleri verilirse yalnız o araca uyan değerler döner.

Parametreler (Hepsi Opsiyonel)

ParametreTipZorunluAçıklama
yearinteger❌ HayırModel yılı
brandstring❌ HayırMarka adı
seriesstring❌ HayırSeri adı
modelstring❌ HayırModel (tip) adı
kasaTipistring❌ HayırKasa tipi
cekisTipistring❌ HayırÇekiş tipi
yakitTipistring❌ HayırYakıt tipi
vitesstring❌ HayırVites tipi
renkstring❌ HayırRenk
kategoristring❌ HayırKategori
sasiTipistring❌ HayırŞasi tipi
motorHacmiTipistring❌ HayırMotor hacmi
koltukSayisiTipistring❌ HayırKoltuk sayısı

Örnek İstekler

Request
// Tüm değerler
GET /api/lookup/ruhsatkayitlari

// Belirli araç için filtrelenmiş
GET /api/lookup/ruhsatkayitlari?year=2020&brand=Renault&series=Clio

Response

JSON Response
{
  "success": true,
  "data": ["Otomobil", "Kamyonet", "Minibüs", "Kamyon", ...],
  "timestamp": "2026-08-17T20:03:29.7211419Z",
  "requestId": "2047b75edb61"
}

🗂️ Kategoriler

GET /api/lookup/kategoriler

Araç kategorilerini döndürür. Parametre verilmezse tüm değerler, cascade parametreleri verilirse yalnız o araca uyan değerler döner.

Parametreler (Hepsi Opsiyonel)

ParametreTipZorunluAçıklama
yearinteger❌ HayırModel yılı
brandstring❌ HayırMarka adı
seriesstring❌ HayırSeri adı
modelstring❌ HayırModel (tip) adı
kasaTipistring❌ HayırKasa tipi
cekisTipistring❌ HayırÇekiş tipi
yakitTipistring❌ HayırYakıt tipi
vitesstring❌ HayırVites tipi
renkstring❌ HayırRenk
kategoristring❌ HayırKategori
sasiTipistring❌ HayırŞasi tipi
motorHacmiTipistring❌ HayırMotor hacmi
koltukSayisiTipistring❌ HayırKoltuk sayısı
ruhsatKaydiTipistring❌ HayırRuhsat kayıt tipi

Örnek İstekler

Request
// Tüm değerler
GET /api/lookup/kategoriler

// Belirli araç için filtrelenmiş
GET /api/lookup/kategoriler?year=2020&brand=Renault&series=Clio

Response

JSON Response
{
  "success": true,
  "data": ["Otomobil", "Arazi, SUV & Pickup", "Minivan & Panelvan", ...],
  "timestamp": "2026-08-17T20:03:29.7211419Z",
  "requestId": "2047b75edb61"
}

📦 Tüm Veriler (Basitleştirilmiş)

GET /api/lookup/all

Yıllar ve renkler gibi cascade'den bağımsız temel verileri tek seferde döndürür.

⚠️
Not: Cascade yapı kullanıyorsanız, markalar/seriler/modeller/yakıt/vites verilerini ayrı ayrı çekmeniz gerekir. Bu endpoint sadece years ve colors gibi statik verileri döndürür.

Response

JSON Response
{
  "success": true,
  "data": {
    "years": [2025, 2024, 2023, ...],
    "colors": ["Siyah", "Beyaz", "Gri", ...],
    "info": "Cascade yapı: years → brands(year) → series(...) → ..."
  }
}

💰 Değerleme Hesapla

POST /api/valuation/calculate

Araç bilgilerini alarak değerleme hesaplar. Her başarılı istek 1 kontör tüketir.

Request Body

AlanTipZorunluAçıklama
Marka string Araç markası (/api/lookup/markalar'tan)
Seri string Model serisi (/api/lookup/modeller'tan)
Model string Araç tipi (/api/lookup/tipler'tan)
Yil integer Model yılı (1950-2100)
Km integer Kilometre (0-9.999.999)
YakitTipi string Yakıt tipi (/api/lookup/yakittipleri'tan)
Vites string Vites tipi (/api/lookup/vitestipleri'tan)
KasaTipi string Kasa tipi (/api/lookup/kasatipleri'tan)
CekisTipi string Çekiş tipi (/api/lookup/cekistipleri'tan)
Renk string Araç rengi (/api/lookup/renkler'tan)
AgirHasarKayitli string "Evet" veya "Hayır" (varsayılan: Hayır)
TramerTutari decimal Tramer hasar tutarı (TL)
Paneller object Panel durumları (aşağıya bakın)
SagSasiIslemli string "Evet" veya "Hayır"
SolSasiIslemli string "Evet" veya "Hayır"
BagajHavuzuIslemli string "Evet" veya "Hayır"

🚗 Panel Bilgileri

Araç panellerinin durumu değerlemeyi etkiler. Paneller objesi içinde aşağıdaki panel isimlerini kullanın:

Panel İsimleri

Kaput
Tavan
Bagaj
OnTampon
ArkaTampon
SolOnCamurluk
SagOnCamurluk
SolArkaCamurluk
SagArkaCamurluk
SolOnKapi
SagOnKapi
SolArkaKapi
SagArkaKapi

Panel Değerleri

Her panel aşağıdaki değerlerden birini alabilir:

Orijinal Boyalı Lokal Değişen

Örnek Paneller Objesi

JSON
{
  "Paneller": {
    "Kaput": "Orijinal",
    "Tavan": "Orijinal",
    "Bagaj": "Boyalı",
    "OnTampon": "Orijinal",
    "ArkaTampon": "Lokal",
    "SolOnCamurluk": "Orijinal",
    "SagOnCamurluk": "Değişen",
    "SolArkaCamurluk": "Orijinal",
    "SagArkaCamurluk": "Orijinal",
    "SolOnKapi": "Orijinal",
    "SagOnKapi": "Boyalı",
    "SolArkaKapi": "Orijinal",
    "SagArkaKapi": "Orijinal"
  }
}
💡
Not: Paneller opsiyoneldir. Gönderilmezse tüm paneller "Orijinal" kabul edilir. Sadece orijinal olmayan panelleri göndermeniz yeterlidir.

📤 Response Yapısı

JSON Response
{
  "success": true,
  "data": {
    // 💰 Ana Fiyatlar
    "IlanFiyati": 2500000,           // Piyasa (ilan) fiyatı
    "SatarFiyati": 2425000,          // Bayi satış fiyatı
    "AlinirFiyati": 2300000,         // Bayi alış fiyatı
    
    // 🏛️ İhale Fiyatları
    "IhaleRezervFiyati": 2300000,    // İhale rezerv fiyatı
    "IhaleBaslangicFiyati": 2162000, // İhale başlangıç fiyatı
    "IhaleDususOrani": 0.06,         // Uygulanan düşüş oranı
    "ShowAuctionPrices": true,       // İhale fiyatları aktif mi?
    
    // 📊 İndirim Bilgileri
    "SatisFiyatiIndirimOrani": 3,    // İlan→Satar indirim %
    "AlinirFiyatIndirimOrani": 5.15,  // Satar→Alınır indirim %
    "IndirimTipi": "Model",           // "Model", "Marka", "Genel", "Yok"
    
    // 📈 Hesaplama Detayları
    "BasePrice": 2550000,           // Ham medyan fiyat
    "RecordsUsed": 45,              // Kullanılan ilan sayısı
    "BackoffLevel": "exact",        // Eşleşme kalitesi
    "LowConfidence": false,         // Düşük güvenilirlik?
    "SegmentKmMedian": 48000,       // Segment KM ortalaması
    
    // 🔧 Uygulanan Düzeltmeler
    "Adjustments": {
      "Km": {
        "DeltaSteps": 0.5,           // KM farkı (10.000 birim)
        "PercentApplied": -0.6       // Uygulanan KM etkisi %
      },
      "HeavyDamage": {
        "Applied": false,
        "Percent": 0
      },
      "ChangedPanels": { "Count": 1, "PercentTotal": -1.5 },
      "PaintedPanels": { "Count": 2, "PercentTotal": -2 },
      "LocalPanels": { "Count": 1, "PercentTotal": -0.5 }
    }
  },
  "remainingCredits": 94,           // Kalan kontör sayısı
  "timestamp": "2025-11-28T22:00:00Z",
  "requestId": "abc-123-def"
}

BackoffLevel Değerleri

DeğerAçıklamaGüvenilirlik
exactTam eşleşme (Marka+Seri+Model+Yıl+Yakıt+Vites)🟢 Yüksek
modelModel seviyesi eşleşme🟡 Orta
seriSeri seviyesi eşleşme🟠 Düşük
no_dataVeri bulunamadı🔴 Yok

⚠️ Hata Kodları

200 OK
İstek başarılı
400 Bad Request
Geçersiz veya eksik parametre
401 Unauthorized
Geçersiz API Key
402 Payment Required
Yetersiz kontör
403 Forbidden
IP adresi yetkisiz
429 Too Many Requests
Rate limit aşıldı

402 Yetersiz Kontör Response

JSON
{
  "success": false,
  "error": "INSUFFICIENT_CREDIT",
  "message": "Değerleme için kontörünüz kalmadı.",
  "remainingCredits": 0
}

💻 Tam Entegrasyon Örneği

JavaScript (Fetch) - Cascade Dropdown

JavaScript
const API_KEY = 'YOUR_API_KEY';
const BASE_URL = 'https://api.fiyatplus.com';

// Yardımcı fonksiyon
async function apiCall(endpoint, method = 'GET', body = null) {
  const options = {
    method,
    headers: {
      'Content-Type': 'application/json',
      'X-API-Key': API_KEY
    }
  };
  
  if (body) options.body = JSON.stringify(body);
  
  const response = await fetch(BASE_URL + endpoint, options);
  return response.json();
}

// ═══════════════════════════════════════════════════════════
// CASCADE DROPDOWN AKIŞI
// ═══════════════════════════════════════════════════════════

// 1️⃣ Yılları çek (ilk dropdown)
const yearsRes = await apiCall('/api/lookup/yillar');
console.log('Yıllar:', yearsRes.data);
// Kullanıcı 2020 seçti
const selectedYear = 2020;

// 2️⃣ Yıl seçildi → O yıldaki markaları çek
const brandsRes = await apiCall(`/api/lookup/markalar?year=${selectedYear}`);
console.log('2020 Markaları:', brandsRes.data);
// Kullanıcı BMW seçti
const selectedBrand = 'BMW';

// 3️⃣ Marka seçildi → Modelleri çek
const seriesRes = await apiCall(`/api/lookup/modeller?year=${selectedYear}&brand=${encodeURIComponent(selectedBrand)}`);
console.log('BMW Modelleri:', seriesRes.data);
// Kullanıcı 3 Serisi (Model) seçti
const selectedSeries = '3 Serisi'; // UI'da "Model", API'de "series"

// 4️⃣ Model seçildi → Tipleri çek
const modelsRes = await apiCall(`/api/lookup/tipler?year=${selectedYear}&brand=${encodeURIComponent(selectedBrand)}&series=${encodeURIComponent(selectedSeries)}`);
console.log('3 Serisi Tipleri:', modelsRes.data);
// Kullanıcı 320i (Tip) seçti
const selectedModel = '320i'; // UI'da "Tip", API'de "model"

// 5️⃣ Tip seçildi → Kasa tiplerini çek
const bodyRes = await apiCall(`/api/lookup/kasatipleri?year=${selectedYear}&brand=${encodeURIComponent(selectedBrand)}&series=${encodeURIComponent(selectedSeries)}&model=${encodeURIComponent(selectedModel)}`);
console.log('Kasa Tipleri:', bodyRes.data);
// Kullanıcı Sedan seçti (veya null bırakabilir)
const selectedBody = 'Sedan'; // Opsiyonel

// 6️⃣ Kasa tipi seçildi → Çekiş tiplerini çek
const drivesRes = await apiCall(`/api/lookup/cekistipleri?year=${selectedYear}&brand=${encodeURIComponent(selectedBrand)}&series=${encodeURIComponent(selectedSeries)}&model=${encodeURIComponent(selectedModel)}&kasaTipi=${encodeURIComponent(selectedBody)}`);
console.log('Çekiş Tipleri:', drivesRes.data);
// Kullanıcı Önden Çekiş seçti (veya null bırakabilir)
const selectedDrive = 'Önden Çekiş'; // Opsiyonel

// 7️⃣ Çekiş seçildi → Yakıt tiplerini çek
const fuelsRes = await apiCall(`/api/lookup/yakittipleri?year=${selectedYear}&brand=${encodeURIComponent(selectedBrand)}&series=${encodeURIComponent(selectedSeries)}&model=${encodeURIComponent(selectedModel)}&kasaTipi=${encodeURIComponent(selectedBody)}&cekisTipi=${encodeURIComponent(selectedDrive)}`);
console.log('Yakıt Tipleri:', fuelsRes.data);
// Kullanıcı Benzin seçti
const selectedFuel = 'Benzin';

// 8️⃣ Yakıt seçildi → Vites tiplerini çek
const transRes = await apiCall(`/api/lookup/vitestipleri?year=${selectedYear}&brand=${encodeURIComponent(selectedBrand)}&series=${encodeURIComponent(selectedSeries)}&model=${encodeURIComponent(selectedModel)}&kasaTipi=${encodeURIComponent(selectedBody)}&cekisTipi=${encodeURIComponent(selectedDrive)}&yakitTipi=${encodeURIComponent(selectedFuel)}`);
console.log('Vites Tipleri:', transRes.data);
// Kullanıcı Otomatik seçti
const selectedTrans = 'Otomatik';

// 9️⃣ Tüm seçimler tamam → Değerleme yap
const valuation = await apiCall('/api/valuation/calculate', 'POST', {
  Yil: selectedYear,
  Marka: selectedBrand,
  Seri: selectedSeries,        // modeller endpoint'inden (UI'da "Model")
  Model: selectedModel,        // tipler endpoint'inden (UI'da "Tip")
  Km: 53000,
  YakitTipi: selectedFuel,
  Vites: selectedTrans,
  KasaTipi: selectedBody,      // bodytypes endpoint'inden (opsiyonel)
  CekisTipi: selectedDrive,    // drivetypes endpoint'inden (opsiyonel)
  Renk: 'Siyah',
  AgirHasarKayitli: 'Hayır',
  Paneller: {
    Kaput: 'Orijinal',
    Tavan: 'Orijinal',
    SagOnCamurluk: 'Boyalı'
  }
});

console.log('✅ Değerleme Sonucu:');
console.log('  İlan Fiyatı:', valuation.data.IlanFiyati.toLocaleString('tr-TR'), '₺');
console.log('  Satar Fiyatı:', valuation.data.SatarFiyati.toLocaleString('tr-TR'), '₺');
console.log('  Alınır Fiyatı:', valuation.data.AlinirFiyati.toLocaleString('tr-TR'), '₺');
console.log('  Kalan Kontör:', valuation.remainingCredits);

cURL - Tam Değerleme

cURL
curl -X POST https://api.fiyatplus.com/api/valuation/calculate \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "Yil": 2022,
    "Marka": "Audi",
    "Seri": "A4",
    "Model": "A4 Sedan 40 TDI Quattro Advanced",
    "Km": 53000,
    "YakitTipi": "Dizel",
    "Vites": "Otomatik",
    "KasaTipi": "Sedan",
    "CekisTipi": "4x4 (Sürekli)",
    "Renk": "Siyah",
    "AgirHasarKayitli": "Hayır",
    "TramerTutari": 0,
    "SagSasiIslemli": "Hayır",
    "SolSasiIslemli": "Hayır",
    "BagajHavuzuIslemli": "Hayır",
    "Paneller": {
      "Kaput": "Orijinal",
      "Tavan": "Orijinal",
      "Bagaj": "Orijinal",
      "OnTampon": "Orijinal",
      "ArkaTampon": "Orijinal",
      "SolOnCamurluk": "Orijinal",
      "SagOnCamurluk": "Boyalı",
      "SolArkaCamurluk": "Orijinal",
      "SagArkaCamurluk": "Orijinal",
      "SolOnKapi": "Orijinal",
      "SagOnKapi": "Orijinal",
      "SolArkaKapi": "Orijinal",
      "SagArkaKapi": "Orijinal"
    }
  }'

FiyatPlus API v1.0 • © 2025 Tüm hakları saklıdır

Destek: destek@fiyatplus.com