GELİŞTİRİCİLERE ÖZEL · GALERİ PRO & ENTERPRISE

Bunayorumum API

Araç analizi, piyasa keşfi ve raporları kendi ürününe entegre et. REST, JSON, API key. API erişimi Galeri Pro ve Enterprise planlarına dahildir.

API key alEndpoint'leri gör
API TIER'LARI

Tier'ın planından otomatik gelir

API tier'ı ayrıca satın alınmaz — SaaS planından otomatik türetilir. Free, Plus, Premium ve Galeri Starter planlarında API erişimi yoktur.

PRO

Enterprise planına dahil
  • 50.000 birim / ay
  • 200 / dakika rate limit

Kota aşımı: 0,01 ₺ / birim

Birim (costUnits) sistemi

Kota "çağrı" değil birim üzerinden düşer — her istek türü farklı maliyettedir.

  • 25 birimAnalizPOST /analysis — AI + veri çekme (en pahalı)
  • 2 birimArama / istatistikmarket/search, market/stats
  • 1 birimOkumarapor detayı, ilan detayı

Örnek: STARTER (5.000 birim/ay) ≈ 200 analiz veya 5.000 rapor okuma veya karışık kullanım. Cache'ten dönen analiz birim tüketmez.

ÜCRETLENDİRME MODU

Her key 3 moddan biriyle çalışır

Modu /api-key sayfasından değiştirebilirsin.

QUOTA

Aylık plan kotandan düşer (varsayılan). Bitince aşım ücretlendirilir veya reddedilir.

WALLET

Her çağrı cüzdanından düşer (pay-as-you-go). Bakiye yetersizse 402.

HYBRID

Önce aylık kota; bitince otomatik cüzdandan devam.

Kimlik doğrulama

Her isteğe API key'ini ekle. Key formatı: ba_live_ + 32 karakter.

BASE URL

https://bunayorumum.net/v1/api

HEADER (iki seçenek)

X-API-Key: ba_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# veya
Authorization: Bearer ba_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

cURL örneği

curl -X POST https://bunayorumum.net/v1/api/analysis \
  -H "X-API-Key: ba_live_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://www.sahibinden.com/ilan/...","evaluationMode":"AUTO"}'

HATA KODLARI

  • 401Geçersiz veya eksik API key
  • 402Cüzdan/kota bakiyesi yetersiz (WALLET / HYBRID)
  • 429Rate limit veya kota aşıldı (Retry-After döner)
  • 400 / 422Hatalı parametre veya desteklenmeyen URL
ENDPOINT'LER

5 endpoint, hepsi REST + JSON

POST/v1/api/analysis25 birimYeni analiz başlat

Bir sahibinden.com veya arabam.com URL'i göndererek yeni analiz raporu üretir (araç + motosiklet). Aynı ilan cache'ten dönerse birim tüketmez.

REQUEST BODY

{
  "url": "https://www.sahibinden.com/ilan/...",
  "evaluationMode": "AUTO"
}

RESPONSE ÖRNEĞİ

{
  "message": "Analiz başarıyla tamamlandı.",
  "report": {
    "id": "rpt_abc123",
    "verdictTag": "ALINIR",
    "score": 87
  }
}
GET/v1/api/reports/:id1 birimRapor detayı

Belirli bir raporu tüm bölümleriyle (tehlike sinyalleri, pazarlık noktaları, piyasa) döndürür.

RESPONSE ÖRNEĞİ

{
  "id": "rpt_abc123",
  "verdictTag": "ALINIR",
  "sections": {
    "redFlags": [...],
    "negotiationPoints": [...],
    "marketComparison": {...}
  }
}
GET/v1/api/market/search2 birimPiyasa keşfi

Query parametreleriyle ilan ara. brand, model, yearMin, yearMax, priceMin, priceMax destekler.

RESPONSE ÖRNEĞİ

{
  "items": [
    { "id": "lst_1", "title": "...", "price": 425000 },
    { "id": "lst_2", "title": "...", "price": 460000 }
  ],
  "pagination": { "page": 1, "total": 248 }
}
GET/v1/api/market/listings/:id1 birimİlan detayı

Piyasa veritabanındaki tek bir ilanın detayını ve varsa analiz raporunu döndürür.

RESPONSE ÖRNEĞİ

{
  "id": "lst_1",
  "title": "Volkswagen Passat 1.6 TDI",
  "report": { "verdictTag": "PAZARLIK_YAP" }
}
GET/v1/api/market/stats2 birimPiyasa istatistikleri

Brand, model, yıl aralığı bazında medyan fiyat, ortalama km ve analiz sayılarını döndürür.

RESPONSE ÖRNEĞİ

{
  "totalAnalyzed": 12834,
  "priceStats": {
    "median": 485000,
    "p10": 320000,
    "p90": 680000
  }
}

JavaScript ile başla

Node, Deno, Bun, browser - fetch standardı yeterli.

const res = await fetch("https://bunayorumum.net/v1/api/analysis", {
  method: "POST",
  headers: {
    "X-API-Key": process.env.BUNAYORUMUM_API_KEY,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({ url: listingUrl })
});
const data = await res.json();

if (["KACIRMA", "ALINIR"].includes(data.report.verdictTag)) {
  // Bu ilan alınabilir — UI'ya yeşil badge bas, kayıtlı ilanlara ekle vb.
  // verdictTag: KACIRMA | ALINIR | PAZARLIK_YAP | IDARE_EDER | RISKLI | VAZGEC | BILGI_YETERSIZ
  return { recommended: true, score: data.report.score };
}

Sınırlamalar ve best practice

  • Aynı ilan yeniden analiz edilirse cache'ten döner ve birim tüketmez.
  • Kota birim üzerinden düşer: analiz 25, arama/istatistik 2, okuma 1 birim.
  • API key'i client-side kodda gömme. Backend proxy kullan, ortam değişkeninden oku.
  • Rate limit'i aşmamak için exponential backoff + Retry-After'a saygı göster.
  • sahibinden.com ve arabam.com URL'leri kabul edilir (araç + motosiklet).
  • Production key'lerini rotate edebilmek için env değişkeni kullan, hardcode etme.
BAŞLAMAYA HAZIR MISIN?

API erişimi Galeri Pro ile açılır

Galeri Pro planı STARTER API tier'ını (5.000 birim/ay), Enterprise ise PRO tier'ını (50.000 birim/ay) otomatik açar. Planını yükselt, key'ini oluştur, dakikalar içinde ilk isteğini at.

Planları gör
Geliştirici API Dökümanı - Bunayorumum | Bunayorumum.net