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
Lojistik & filo yönetimi
Nakliye firmaları, kurye şirketleri, filo kiralama
Gıda perakendesi & restoran zinciri
Zincir restoranlar, marketler, toplu yemek şirketleri, bulut mutfaklar
Hukuk bürosu & uyum ekibi
Avukatlık büroları, mali müşavirler, iç denetim ve compliance birimleri
Otomotiv ilan & kiralama platformu
İkinci el ilan siteleri, filo kiralama, sigorta acenteleri
Haber sitesi & içerik yayıncılığı
Ekonomi portalları, yerel haber siteleri, bülten yayıncıları
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]} />;
}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.