Des questions ou un problème ? Écris dans les GitHub Discussions.

L'endpoint CSV de Frankfurter se charge directement dans un DataFrame : récupérer des taux tient en une ligne. La raison de le préférer à une recherche rapide de cours de marché, c'est la reproductibilité. Choisis un seul fournisseur et son historique reste tel qu'il a été publié, donc un backtest lancé aujourd'hui donne le même résultat que celui de l'an dernier.

Démarrage rapide

Donne l'endpoint CSV à read_csv :

import pandas as pd

df = pd.read_csv("https://api.frankfurter.dev/v2/rates.csv?base=usd&quotes=eur,gbp")

Tu obtiens un DataFrame date,base,quote,rate, avec une ligne par devise cible.

Convertir un montant

Le CSV donne le taux, pas le montant converti. Multiplie ton montant par la colonne rate. Pour obtenir une seule valeur sans pandas, appelle l'endpoint de taux avec requests :

import requests

rate = requests.get("https://api.frankfurter.dev/v2/rate/usd/eur").json()["rate"]
total = 100 * rate

Choisir une source officielle

Par défaut, tu obtiens le taux combiné de toutes les sources. Ajoute providers pour t'en tenir à une seule autorité, ce qui garde ton analyse auditable : de nombreux pays imposent le taux publié par leur propre banque centrale pour convertir des montants en devises étrangères.

df = pd.read_csv("https://api.frankfurter.dev/v2/rates.csv?base=usd&quotes=eur&providers=ecb")
ECB
Taux de référence de la Banque centrale européenne, la norme pour la TVA et les douanes dans l'UE.
NBP
Narodowy Bank Polski. En Pologne, la TVA et l'impôt sur les sociétés se convertissent au taux de la NBP.
CNB
Fixing de la Banque nationale tchèque, utilisé pour la comptabilité et la fiscalité en Tchéquie.
BCB
Taux PTAX du Banco Central do Brasil, la référence pour les contrats et la fiscalité au Brésil.
BANXICO
Taux FIX du Banco de México, pour le règlement des dettes libellées en dollars américains.

Consulte toutes les sources. Une source choisie suit son propre calendrier de publication : son dernier taux peut donc avoir un jour de retard sur le dernier taux combiné.

Séries historiques

Utilise from pour une plage de dates et group=month pour obtenir une ligne par mois. Parse la colonne de date et utilise-la comme index, puis trace ou rééchantillonne. L'historique combiné peut bouger légèrement quand de nouvelles données arrivent. Choisis un fournisseur pour tout ce que tu dois pouvoir reproduire.

df = pd.read_csv(
    "https://api.frankfurter.dev/v2/rates.csv?from=1949-12-01&base=usd&quotes=gbp&providers=bbk&group=month",
    parse_dates=["date"],
    index_col="date",
)
df["rate"].plot()

Cette requête récupère le dollar américain face à la livre sterling depuis 1949, dans les archives de la Deutsche Bundesbank. Tu y vois le cable tenir sa parité fixe de 2,80 $ pendant des années, puis décrocher en 1967. L'historique ancien vient des fixings de la Bundesbank à Francfort : le dollar contre le mark dès 1948, la plupart des autres paires en dollar de 1949 à 1970. La Banque centrale européenne prend le relais à partir de 1999 : pour une série moderne continue, utilise le taux combiné par défaut ou providers=ecb.