Ana Sayfa / Kullanım Senaryoları

Kullanım Senaryoları

apibir'i gerçekte nasıl kullanıyorlar? Altı sektörden uçtan uca örnek mimari, çalışan kod ve ölçülebilir sonuç.

Sektöre göre kullanım senaryoları

Fintech & yatırım uygulaması

Portföy takip uygulamaları, aracı kurum panelleri, robo-danışmanlar

Sorun

Kullanıcının portföyünde hisse, kripto, altın ve döviz bir arada var. Her varlık sınıfı için ayrı veri sağlayıcıya bağlanmak hem maliyetli hem de dört farklı yanıt şeması demek.

Çözüm

Tek batch isteğiyle dört varlık sınıfının fiyatını çekip aynı normalize yapıda işleyin. Kullanıcı portföyünü TRY cinsinden anlık değerleyin.

Sonuç: 4 ayrı entegrasyon yerine 1 HTTP çağrısı, 4 kredi. Ortalama 120 ms'de tam portföy değerlemesi.

// Portföyü tek batch isteğiyle değerle
const portfoy = [
  { tur: "hisse",  sembol: "AAPL", adet: 12 },
  { tur: "kripto", sembol: "BTC",  adet: 0.35 },
  { tur: "emtia",  sembol: "XAU",  adet: 2 },
  { tur: "doviz",  sembol: "USD",  adet: 5000 }
];

const res = await fetch("https://api.apibir.com/v1/batch", {
  method: "POST",
  headers: {
    Authorization: `apikey ${process.env.APIBIR_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    requests: [
      { id: "hisse",  path: "/stocks/us/quote", params: { symbols: "AAPL", convert: "TRY" } },
      { id: "kripto", path: "/crypto/prices",   params: { symbols: "BTC", convert: "TRY" } },
      { id: "emtia",  path: "/commodities",     params: { symbol: "XAU", currency: "TRY" } },
      { id: "doviz",  path: "/fx/latest",       params: { symbols: "USD" } }
    ]
  })
});

const { results } = await res.json();

const fiyat = {
  hisse:  results.hisse.data[0].price,
  kripto: results.kripto.data[0].price,
  emtia:  results.emtia.data[0].price,
  doviz:  results.doviz.data[0].selling
};

const toplam = portfoy.reduce((acc, p) => acc + p.adet * fiyat[p.tur], 0);
console.log("Portföy değeri:", toplam.toLocaleString("tr-TR"), "TL");

Lojistik & filo yönetimi

Nakliye firmaları, kurye şirketleri, filo kiralama

Sorun

Yakıt maliyeti sürekli değişiyor, teslim tarihi sözü verilirken resmi tatiller hesaba katılmıyor ve şoför fişleri ile gerçek pompa fiyatı arasındaki fark denetlenemiyor.

Çözüm

Sefer maliyetini güncel il fiyatıyla hesaplayın, teslim tarihini iş günü aritmetiğiyle bulun ve fiş tutarını o günkü pompa fiyatıyla çapraz kontrol edin.

Sonuç: Sefer başına maliyet sapması %11'den %2'ye düştü; teslim tarihi şikayetleri tatil dönemlerinde ortadan kalktı.

import os
import requests

BASE = "https://api.apibir.com/v1"
H = {"Authorization": f"apikey {os.environ['APIBIR_KEY']}"}

def sefer_maliyeti(sehir: str, km: float, tuketim_100km: float = 28.0):
    yakit = requests.get(f"{BASE}/fuel/prices",
                         params={"city": sehir, "fuelType": "motorin"},
                         headers=H, timeout=10).json()

    litre_fiyat = min(d["prices"]["motorin"] for d in yakit["data"])
    litre = km / 100 * tuketim_100km
    return round(litre * litre_fiyat, 2)


def teslim_tarihi(baslangic: str, is_gunu: int):
    r = requests.get(f"{BASE}/business-days/add",
                     params={"start": baslangic, "days": is_gunu, "country": "TR"},
                     headers=H, timeout=10).json()
    return r["data"]["resultDate"]


print(sefer_maliyeti("istanbul", km=480))        # 7286.14 TL
print(teslim_tarihi("2026-08-28", is_gunu=3))    # 2026-09-03 (30 Ağustos atlandı)

Gıda perakendesi & restoran zinciri

Zincir restoranlar, marketler, toplu yemek şirketleri, bulut mutfaklar

Sorun

Menü maliyeti sebze-meyve fiyatlarıyla haftada birkaç kez değişiyor ama fiyatlandırma elle güncelleniyor; hangi tedarikçinin pahalı olduğu görülemiyor.

Çözüm

Hal fiyatlarını reçetelerinize bağlayıp porsiyon maliyetini günlük hesaplayın; tedarikçi teklifini hal ortalamasıyla kıyaslayarak müzakere gücü kazanın.

Sonuç: Gıda maliyet oranı hedef bandın dışına çıktığında otomatik uyarı; ay sonu marj sapması %4'ten %0,8'e indi.

# Reçete bazlı günlük porsiyon maliyeti
RECETE = {
    "domates-sera": 0.180,   # kg
    "salatalik":    0.120,
    "maydanoz":     0.020,
    "sogan-kuru":   0.060,
}

hal = requests.get(f"{BASE}/hal/prices",
                   params={"city": "istanbul", "market": "bayrampasa"},
                   headers=H, timeout=10).json()

fiyatlar = {u["productCode"]: u["avgPrice"] for u in hal["data"]}

maliyet = sum(fiyatlar.get(kod, 0) * miktar for kod, miktar in RECETE.items())
satis   = maliyet / 0.28          # hedef gıda maliyeti oranı %28

print(f"Porsiyon maliyeti: {maliyet:.2f} TL")
print(f"Önerilen satış fiyatı: {satis:.2f} TL")

Hukuk bürosu & uyum ekibi

Avukatlık büroları, mali müşavirler, iç denetim ve compliance birimleri

Sorun

Her sabah Resmi Gazete'yi tek tek okumak saatler alıyor; müvekkili ilgilendiren değişiklik gözden kaçıyor ve yürürlük tarihleri takip edilemiyor.

Çözüm

Resmi Gazete özetini ve mevzuat değişikliklerini konu etiketiyle süzüp her sabah otomatik bülten üretin; yürürlük tarihlerini takvime iş günü hesabıyla düşürün.

Sonuç: Günlük mevzuat taraması 45 dakikadan 3 dakikaya indi; kaçırılan yürürlük tarihi sayısı sıfırlandı.

// Her sabah 09:00'da Slack'e sektörel özet gönder
const KONULAR = ["vergi", "is-hukuku", "kvkk", "ticaret-hukuku"];

const rg = await apibir("/official-gazette/today", {
  topics: KONULAR.join(","),
  importance: "high,medium"
});

if (rg.length === 0) {
  console.log("Bugün ilgili düzenleme yok.");
} else {
  const bloklar = rg.map(m => ({
    type: "section",
    text: {
      type: "mrkdwn",
      text: `*<${m.sourceUrl}|${m.title}>*\n${m.summary}\n` +
            `_Yürürlük: ${m.effectiveDate} · Etki: ${m.importance}_`
    }
  }));

  await fetch(process.env.SLACK_WEBHOOK, {
    method: "POST",
    body: JSON.stringify({
      text: `Resmi Gazete özeti — ${rg.length} ilgili madde`,
      blocks: bloklar
    })
  });
}

Otomotiv ilan & kiralama platformu

İkinci el ilan siteleri, filo kiralama, sigorta acenteleri

Sorun

Sıfır araç liste fiyatları ayda birkaç kez değişiyor; kasko bedeli, kiralama tarifesi ve ikinci el değerleme modeli eski fiyatla çalıştığı için sapıyor.

Çözüm

Fiyat değişimini günlük tarayıp modelinizi besleyin, değişen modeller için otomatik yeniden fiyatlandırma tetikleyin.

Sonuç: Kasko bedeli sapması ortalama %6'dan %0,5'e düştü; kiralama tarifeleri zam gününde otomatik güncelleniyor.

// Fiyatı değişen modelleri yakala ve yeniden fiyatlandır
const bugun = await apibir("/vehicles/new/prices", { sort: "updated", limit: 500 });

const degisenler = bugun.filter(v => Math.abs(v.changePercent ?? 0) >= 1);

for (const arac of degisenler) {
  await yenidenFiyatlandir({
    marka: arac.brand,
    model: arac.model,
    donanim: arac.trim,
    yeniListe: arac.listPrice,
    otvOrani: arac.priceBreakdown.otvRate,
    kaskoBedeli: Math.round(arac.listPrice * 0.94)
  });
}

console.log(`${degisenler.length} model güncellendi.`);

Haber sitesi & içerik yayıncılığı

Ekonomi portalları, yerel haber siteleri, bülten yayıncıları

Sorun

Ekonomi sayfalarındaki kur, altın, akaryakıt ve borsa tabloları elle güncelleniyor; veri eskidiği için kullanıcı güveni ve SEO performansı düşüyor.

Çözüm

Sunucu tarafında 60 saniyelik önbellekle veri çekip statik sayfaları yeniden üretin. ETag kullanarak kredi tüketimini minimumda tutun.

Sonuç: Sayfa başına veri gecikmesi 6 saatten 60 saniyeye indi; ekonomi sayfalarında oturum süresi %38 arttı.

// Next.js — 60 saniyede bir yeniden üretilen ekonomi şeridi
export const revalidate = 60;

async function veriler() {
  const res = await fetch("https://api.apibir.com/v1/batch", {
    method: "POST",
    headers: {
      Authorization: `apikey ${process.env.APIBIR_KEY}`,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      requests: [
        { id: "kur",    path: "/fx/latest",   params: { symbols: "USD,EUR,GAU" } },
        { id: "endeks", path: "/indices",     params: { codes: "XU100,SPX" } },
        { id: "yakit",  path: "/fuel/prices", params: { city: "istanbul" } }
      ]
    }),
    next: { revalidate: 60 }
  });
  return (await res.json()).results;
}

export default async function EkonomiSeridi() {
  const { kur, endeks, yakit } = await veriler();
  return <Serit kur={kur.data} endeks={endeks.data} yakit={yakit.data[0]} />;
}
Daha fazla fikir

Küçük ama etkili otomasyonlar

Bir öğleden sonrada kurabileceğiniz, hemen değer üreten işler.

Kur alarmı botu

Dolar belirlediğiniz seviyeyi geçtiğinde Telegram'a mesaj atan 20 satırlık bir cron işi.

Sabah ekonomi bülteni

Kur, endeks, akaryakıt ve günün ekonomik takvimini tek e-postada toplayıp 08:00'de ekibinize gönderin.

Fatura kur farkı botu

Muhasebe sisteminize düşen dövizli faturaları TCMB tarihli kuruyla otomatik değerleyin.

Teslim tarihi hesaplayıcı

Sepette "3 iş günü" yazan yerin gerçek tarihi göstermesi için iş günü API'sini bağlayın.

Zam radarı

Sıfır araç veya akaryakıt fiyatı değiştiğinde abonelerinize otomatik bildirim gönderin.

Sektörel mevzuat özeti

Yalnızca kendi sektörünüzü ilgilendiren Resmi Gazete maddelerini Slack kanalınıza düşürün.

Ücretsiz API anahtarınızı 30 saniyede alın

Kredi kartı istemiyoruz. Ücretsiz plan tüm API'leri kapsar; yalnızca aylık kredi limiti farklıdır.