Soru ya da sorun varsa GitHub Discussions'a yaz.

SDK'ya gerek yok. fetch her tarayıcıda, Node, Deno, Bun ve edge runtime'larda hazır geliyor. CORS açık ve sızdırılacak bir anahtar yok; API'yi doğrudan istemci kodundan çağırabilirsin.

Hızlı başlangıç

Kuru al ve dönüştür:

const res = await fetch("https://api.frankfurter.dev/v2/rate/usd/eur");
const data = await res.json();
const total = 100 * data.rate;

Yanıt tek bir düz nesne: {"date": "2026-07-17", "base": "USD", "quote": "EUR", "rate": 0.8739}. fetch HTTP hatalarında da resolve olur, o yüzden res.ok değerini kontrol et. Geçersiz bir para birimi kodu, JSON mesajıyla birlikte 422 döner.

Intl ile biçimlendirme

Para birimi sembollerini elle yerleştirme. Intl.NumberFormat, her yerel ayarda (locale) her para biriminin sembolünü, konumunu ve ondalık basamak sayısını bilir:

const res = await fetch("https://api.frankfurter.dev/v2/rate/usd/eur");
const { rate } = await res.json();

const eur = new Intl.NumberFormat("en", {
  style: "currency",
  currency: "EUR",
});
eur.format(100 * rate); // "€87.39"

Semboller ve ondalık basamaklar

Alt birimler veya semboller için projene ayrı bir metadata tablosu eklemene gerek yok. Formatter'a sor:

const yen = new Intl.NumberFormat("en", {
  style: "currency",
  currency: "JPY",
});

yen.resolvedOptions().maximumFractionDigits; // 0, the yen has no subunits
yen.formatToParts(1).find((part) => part.type === "currency").value; // "¥"

Frankfurter'in sunduğu tüm para birimlerine kodları ve sembolleriyle göz at.

Tek seferde birden fazla kur

/v2/rates, her hedef para birimi için bir satır içeren düz bir dizi döndürür. Object.fromEntries ile bunu bir lookup nesnesine çevir. Tüm para birimleri için quotes parametresini hiç gönderme.

const api = "https://api.frankfurter.dev";
const res = await fetch(`${api}/v2/rates?base=usd&quotes=eur,gbp,jpy`);
const rows = await res.json();

const rates = Object.fromEntries(rows.map((row) => [row.quote, row.rate]));
// { EUR: 0.8739, GBP: 0.74388, JPY: 162.33 }

Resmi kaynak sabitleme

Varsayılan olarak tüm kaynakların harmanını alırsın. Tek bir kurumu sabitlemek için providers ekle. Mevzuat, merkez bankasının yayımladığı kuru şart koşuyorsa bu önemli; AB KDV'si için ECB referans kuru buna bir örnek.

const api = "https://api.frankfurter.dev";
const res = await fetch(`${api}/v2/rate/usd/eur?providers=ecb`);

Tüm kaynaklara göz at. Sabitlenen bir kaynak kendi yayın takvimini izler; bu yüzden en güncel kuru, harmanlanmış güncel kurun bir gün gerisinde kalabilir.

Canlı dene

Tarayıcıdan çıkmadan sorgu oluşturup yanıtları görmek için Playground sayfasını kullan.