Dolar, euro ve sterlin kurunu tek istekle JSON olarak alın. PHP, JavaScript ve Python örnekleri, önbellek ve kota ipuçları."
tags: api, php, python, javascript
canonical_url: https://veriapi.pro/blog/doviz-kuru-api-php-javascript-python
Dolar ve euro kurunu sitenize ya da uygulamanıza eklemenin en kısa yolu, kuru hazır JSON olarak veren bir API'ye tek bir GET isteği göndermektir. VeriApi.Pro Döviz Kuru API ile GET https://api.veriapi.pro/v1/doviz?kod=USD,EUR,GBP isteği; alış, satış ve günlük değişimi tek yanıtta döndürür. Ücretsiz pakette günde 500 istek birimi vardır ve her döviz isteği 1 birimdir.
Bu yazıda isteğin nasıl yapılacağını, yanıtın nasıl okunacağını ve PHP, JavaScript ve Python örneklerini adım adım anlatıyoruz.
Hangi kurlar, ne sıklıkla?
/v1/doviz varsayılan olarak anlık serbest piyasa (Kapalıçarşı) kurunu verir. USD, EUR, GBP, CHF, CAD, AUD, JPY, SAR, KWD, AED, QAR ve JOD için alış ve satış fiyatı dakikada bir güncellenir. Listede olmayan paralar için uluslararası referans kurlardan hesaplanan çapraz kur döner. Her satırdaki kaynak alanı kurun serbest piyasa kuru mu (kapalicarsi), yoksa referans kurdan çapraz hesap mı olduğunu söyler.
| Parametre | Ne işe yarar | Örnek |
|---|---|---|
kod | Virgülle ayrılmış para kodları; boş bırakılırsa tüm liste | USD,EUR,GBP |
tur | anlik (varsayılan, dakikada bir) ya da referans (gün sonu referans kuru, günde bir) | referans |
Tutar çevirmek için ayrı bir uç var: /v1/cevir/doviz?miktar=100&kaynak=USD&hedef=TRY isteği "100 dolar kaç TL" sorusunu tek çağrıda yanıtlar.
1. Ücretsiz API anahtarı alın
Ücretsiz üye olun, panelde API anahtarlarım bölümünden bir anahtar oluşturun. Anahtar va_ ile başlar ve isteklerde X-API-Key başlığıyla gönderilir. Ücretsiz pakette sitenizde VeriApi.Pro'ya görünür bir bağlantı (atıf) vermenizi rica ederiz; zorunlu değildir, ayrıntılar atıf sayfasında.
2. İsteği gönderin ve yanıtı okuyun
curl -H "X-API-Key: va_ANAHTARINIZ" "https://api.veriapi.pro/v1/doviz?kod=USD,EUR" Yanıt her uçta aynı zarfla gelir: veri veri içinde, kaynak bilgisi (Veri: VeriApi.Pro) kaynak içinde, verinin zamanı guncelleme alanında.
{ "veri": { "tarih": "2026-11-02", "tur": "anlik", "kurlar": [ {"kod": "USD", "ad": "ABD Doları", "alis": 49.775, "satis": 49.936, "degisim_yuzde": 0.16, "kaynak": "kapalicarsi"}, {"kod": "EUR", "ad": "Euro", "alis": 55.278, "satis": 55.652, "degisim_yuzde": -0.0, "kaynak": "kapalicarsi"} ] }, "kaynak": [{"kod": "veriapi", "ad": "VeriApi.Pro", "atif": "Veri: VeriApi.Pro"}], "guncelleme": "2026-11-02T01:15:30", "bayat": false } bayat: true gelirse kaynak geçici olarak yanıt vermiyor demektir; API son iyi değeri döndürmeye devam eder, sayfanız boş kalmaz.
3. PHP ile döviz kuru çekme (önbellekli)
Kur dakikada bir değiştiği için her sayfa açılışında API'ye gitmenize gerek yok. Aşağıdaki örnek yanıtı 5 dakika dosyada saklar; böylece günde en fazla 288 istek yaparsınız ve ücretsiz kota fazlasıyla yeter.
<?php function doviz_kurlari(string $kodlar = 'USD,EUR,GBP'): array { $dosya = sys_get_temp_dir() . '/doviz_' . md5($kodlar) . '.json'; if (is_file($dosya) && time() - filemtime($dosya) < 300) { return json_decode(file_get_contents($dosya), true); } $ch = curl_init('https://api.veriapi.pro/v1/doviz?kod=' . urlencode($kodlar)); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_TIMEOUT => 10, CURLOPT_HTTPHEADER => ['X-API-Key: ' . getenv('VERIAPI_KEY')], ]); $yanit = json_decode(curl_exec($ch), true); $kod = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($kod !== 200 || empty($yanit['veri']['kurlar'])) { // hata: eski dosya varsa onu kullan return is_file($dosya) ? json_decode(file_get_contents($dosya), true) : []; } file_put_contents($dosya, json_encode($yanit['veri']['kurlar'])); return $yanit['veri']['kurlar']; } foreach (doviz_kurlari() as $k) { printf("%s: %s TL (%+.2f%%)\n", $k['ad'], number_format($k['satis'], 4, ',', '.'), $k['degisim_yuzde']); } Anahtarı koda yazmak yerine ortam değişkeninde (VERIAPI_KEY) tutmak, kodu paylaştığınızda anahtarın sızmasını önler.
4. JavaScript (Node.js) ile döviz kuru
Anahtarınızı tarayıcıda çalışan JavaScript'e koymayın: sayfanın kaynağını açan herkes görür. Tarayıcı tarafında kur göstermek için ya kendi sunucunuzdan geçirin ya da hazır döviz widget'ını kullanın. Sunucu tarafında (Node.js 18+) fetch yeterli:
const yanit = await fetch("https://api.veriapi.pro/v1/doviz?kod=USD,EUR", { headers: { "X-API-Key": process.env.VERIAPI_KEY }, }); if (!yanit.ok) throw new Error(`Döviz API hatası: ${yanit.status}`); const { veri } = await yanit.json(); for (const k of veri.kurlar) { console.log(`${k.kod}: alış ${k.alis} / satış ${k.satis}`); } 5. Python ile döviz kuru
import os import requests r = requests.get( "https://api.veriapi.pro/v1/doviz", params={"kod": "USD,EUR,GBP"}, headers={"X-API-Key": os.environ["VERIAPI_KEY"]}, timeout=10, ) r.raise_for_status() for k in r.json()["veri"]["kurlar"]: print(f"{k['ad']}: {k['satis']:.4f} TL ({k['degisim_yuzde']:+.2f}%)") Tutar çevirmek için:
r = requests.get("https://api.veriapi.pro/v1/cevir/doviz", params={"miktar": 250, "kaynak": "EUR", "hedef": "TRY"}, headers={"X-API-Key": os.environ["VERIAPI_KEY"]}, timeout=10) print(r.json()["veri"]) Kota, hata kodları ve iyi uygulamalar
- Her yanıtta kalan hakkınız başlıklarda yazar:
X-RateLimit-Remaining-Day(günlük) veX-RateLimit-Remaining-Minute(dakikalık). Ücretsiz pakette dakikada 20 istek sınırı vardır. - Sınır aşılırsa
429döner veRetry-Afterbaşlığı kaç saniye beklemeniz gerektiğini söyler. - Hatalar her zaman
{"hata": {"kod": …, "mesaj": "…"}}biçimindedir;401anahtar yok ya da geçersiz demektir. - Yanıtı 1–5 dakika önbelleğe alın. Kur dakikada bir değiştiği için daha sık istek yapmak bir şey kazandırmaz.
- Panelde anahtarınıza alan adı kısıtı ekleyebilirsiniz; anahtar başka bir sitede kullanılamaz.
Tüm parametreler ve diğer uçlar API dokümantasyonunda; altın fiyatları için Altın Fiyatları API sayfasına bakın.
Sık sorulan sorular
Döviz kuru API'si ücretsiz mi?
Evet. /v1/doviz ve /v1/cevir/doviz ücretsiz pakette de açıktır. Günde 500 istek birimi hakkınız vardır ve her döviz isteği 1 birimdir. Sitenizde VeriApi.Pro'ya bir bağlantı vermenizi rica ederiz; zorunlu değildir.
Kurlar banka kuru mu?
Hayır. Varsayılan kur Kapalıçarşı serbest piyasa alış/satış fiyatıdır. tur=referans ile gün sonu euro referans kurlarından hesaplanan kuru alırsınız. Hiçbiri belirli bir bankanın gişe kuru değildir; değerler bilgilendirme amaçlıdır.
Kurlar ne sıklıkla güncellenir?
Kapalıçarşı kurları dakikada bir, referans kurlar iş günlerinde günde bir güncellenir. Verinin zamanı yanıttaki guncelleme alanında ve her satırın zaman alanında yazar.
API anahtarımı JavaScript ile tarayıcıda kullanabilir miyim?
Önermiyoruz; sayfa kaynağını açan herkes anahtarı görür. İsteği kendi sunucunuzdan yapın ya da anahtarın sayfaya yazılmadığı hazır döviz widget'ını kullanın.
Kaç para birimi destekleniyor?
12 ana para birimi Kapalıçarşı'dan dakikada bir, 30'dan fazla diğer para referans kurlardan hesaplanarak verilir. Tam listeyi kod parametresini boş bırakarak alabilirsiniz.
Bu yazı ilk olarak VeriApi.Pro blogunda yayımlandı. Yazar VeriApi.Pro'nun geliştiricisidir.