Döviz kuru API: PHP, JavaScript ve Python ile kur çekme

Dolar, euro ve sterlin kurunu tek istekle JSON olarak alın. PHP, JavaScript ve Python örnekleri, önbellek ve kota ipuçlarıyla ücretsiz döviz kuru API rehberi.

· 4 dk okuma

Kod penceresinde döviz kuru isteği ve yükselen USD/TRY grafiği

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 Avrupa Merkez Bankası (ECB) referans kurundan hesaplanan çapraz kur döner. Her satırdaki kaynak alanı hangisinin kullanıldığını söyler (kapalicarsi ya da ecb).

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 (ECB, 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) bulunması gerekir; 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 ve atıf bilgisi 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": "biquote", "ad": "biquote.io", "atif": "…"}],
  "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) ve X-RateLimit-Remaining-Minute (dakikalık). Ücretsiz pakette dakikada 20 istek sınırı vardır.
  • Sınır aşılırsa 429 döner ve Retry-After başlığı kaç saniye beklemeniz gerektiğini söyler.
  • Hatalar her zaman {"hata": {"kod": …, "mesaj": "…"}} biçimindedir; 401 anahtar 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. Ücretsiz pakette sitenizde VeriApi.Pro bağlantısı bulunması gerekir.

Kurlar banka kuru mu?

Hayır. Varsayılan kur Kapalıçarşı serbest piyasa alış/satış fiyatıdır. tur=referans ile Avrupa Merkez Bankası referans kurunu 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, ECB 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 ECB referans kurundan hesaplanarak verilir. Tam listeyi kod parametresini boş bırakarak alabilirsiniz.

#Döviz kuru#PHP#JavaScript#Python#Ücretsiz API

Verileri sitenize ekleyin

Döviz, namaz vakitleri, hava durumu, deprem ve daha fazlası; tek anahtar, Türkçe JSON. Ücretsiz paketle başlayın.

Benzer yazılar