Learn/Python hızlı başlangıç

Python ile döviz kuru alma

Standart kütüphaneyle başlayın, daha fazla kontrol için requests kullanın; forex-python mevcut kodu taşırken geçici bir arayüz olabilir.

ERexchangerate.dev·1 Ekim 2026 tarihinde güncellendi·6 dk okuma

/v1/latest/USD kur, kaynak ve gözlem zamanını içeren JSON döndürür. Para tutarlarında Decimal kullanın.

Önemli noktalar
urllib ek bağımlılık istemez.
requests kimlik doğrulama, timeout ve hataları kolaylaştırır.
forex-python geçiş sırasında ara bir arayüz olabilir.
source, effective_at ve data_updated_at alanlarını kurla birlikte saklayın.
Geçmiş için tarihli endpoint veya /v1/range kullanın.

İlk istek

İlk istek için standart kütüphane yeterlidir. Para hesabında JSON sayılarını Decimal olarak okuyun.

Anahtarlı requests

Serviste timeout ayarlayın, anahtarı ortam değişkeninden okuyun ve kaydetmeden önce HTTP durumunu kontrol edin.

forex-python’dan geçiş

forex-python kendi sağlayıcısını kullanır ve exchangerate.dev’e otomatik bağlanmaz. Geçiş sırasında tanıdık arayüzü koruyabilirsiniz; ancak exchangerate.dev’in source ve gözlem zamanını kaybetmeyin.

Geçmiş veriyi doğru ele alın

Tarihli istek, o gün yeni veri yayımlanmadıysa taşınmış bir değer döndürebilir. /v1/range saklanan gözlemleri döndürür ve JSON’u 366 satırlık sayfalara böler.

Sık sorulanlar

python · standard librarycopy
import json
from decimal import Decimal
import urllib.request

url = "https://api.exchangerate.dev/v1/latest/USD?symbols=EUR,GBP"
with urllib.request.urlopen(url, timeout=10) as response:
    data = json.load(response, parse_float=Decimal)

print(data["rates"]["EUR"])
print(data["sources"]["EUR"], data["effective_at"]["EUR"])
print(data["market_session"])
python · requestscopy
# Install first: python -m pip install requests
import os
from decimal import Decimal
import requests

response = requests.get(
    "https://api.exchangerate.dev/v1/latest/USD",
    headers={"Authorization": f"Bearer {os.environ['EXCHANGERATE_API_KEY']}"},
    timeout=10,
    allow_redirects=False,
)
if response.status_code == 429:
    raise RuntimeError(f"Rate limited; Retry-After: {response.headers.get('Retry-After')}")
if 300 <= response.status_code < 400:
    raise RuntimeError("Unexpected redirect")
response.raise_for_status()
data = response.json(parse_float=Decimal)
print(data["rates"]["GBP"], data["effective_at"]["GBP"])
python · convert 100 USD to EURcopy
import os
from decimal import Decimal
import requests

response = requests.get(
    "https://api.exchangerate.dev/v1/convert/USD/EUR/100",
    headers={"Authorization": f"Bearer {os.environ['EXCHANGERATE_API_KEY']}"},
    timeout=10,
    allow_redirects=False,
)
if not 200 <= response.status_code < 300:
    raise RuntimeError(f"HTTP {response.status_code}; Retry-After: {response.headers.get('Retry-After')}")
data = response.json(parse_float=Decimal)
print(data["rate"], data["converted"])
python · rate on a past datecopy
import os
from decimal import Decimal
import requests

response = requests.get(
    "https://api.exchangerate.dev/v1/2026-03-14/USD?symbols=JPY",
    headers={"Authorization": f"Bearer {os.environ['EXCHANGERATE_API_KEY']}"},
    timeout=10,
    allow_redirects=False,
)
if not 200 <= response.status_code < 300:
    raise RuntimeError(f"HTTP {response.status_code}; Retry-After: {response.headers.get('Retry-After')}")
data = response.json(parse_float=Decimal)
print(data["rates"]["JPY"], data["is_forward_filled"])
ER
exchangerate.dev
Geliştiriciler için entegrasyon kılavuzları.

Okumaya devam edin

TutorialJavaScript ile para birimi dönüştürmeOku TutorialGeçmiş kurlar ve zaman serileriOku
KarşılaştırmaFixer vs exchangerate.devKarşılaştırmaOpen Exchange Rates vs exchangerate.devKarşılaştırmaCurrencylayer vs exchangerate.devRehberJavaScript ve Node.js ile para birimi dönüştürmeRehberNext.js ve TypeScript ile döviz kurlarıRehberPython ile USD/IDR kur uyarısı oluşturmaCanlı kurEUR/USDCanlı kurGBP/USDCanlı kurUSD/JPY