El sábado 2026-06-13 no aparece porque el rango devuelve observaciones guardadas, no una fila por día.
Paginación con Python
Usa este bucle para seguir cada cursor.
Python · requestscopy
import requests
API = "https://api.exchangerate.dev/v1"
KEY = "exr_live_..." # free key at https://exchangerate.dev/signup
params = {
"base": "USD",
"symbols": "EUR,GBP",
"start_date": "2026-06-10",
"end_date": "2026-06-13",
}
rows = []
while True:
resp = requests.get(
f"{API}/range",
headers={"Authorization": f"Bearer {KEY}"},
params=params,
timeout=10,
)
resp.raise_for_status()
data = resp.json()
rows.extend(data["data"])
if not data["has_more"]:
break
cursor = data.get("next_cursor")
if not cursor or cursor <= params.get("cursor", ""):
raise RuntimeError("Incomplete historical response")
params["cursor"] = cursor
for row in rows:
filled = row["is_forward_filled"]
print(row["date"], row["rates"]["EUR"], row["rates"]["GBP"], "filled" if filled else "")
Observaciones guardadas y valores trasladados
Las observaciones del rango tienen is_forward_filled false; una consulta fechada puede devolver el valor anterior y marcar true.
Un fin de semana no es una observación
El rango omite el sábado 2026-06-13. Una consulta directa puede devolver el valor anterior con is_forward_filled true.
Elige una fecha o un rango
Una fecha sirve para una consulta puntual. El rango sirve para gráficos, backfills y análisis masivo.
CampoFechaRango
SolicitudUna fechaUna solicitud y páginas
RespuestaUn díaArray data
Comprueba la cobertura
1.830 días es el límite, no una promesa de profundidad para cada pareja. Comprueba source, filas y data: [].
pandas
Carga las filas en pandas, ordénalas por fecha y excluye valores trasladados antes de calcular.
Python · pandascopy
import pandas as pd
# rows contains every page from the loop above
df = pd.json_normalize(rows)
df["date"] = pd.to_datetime(df["date"])
df = df.set_index("date").sort_index()
# keep only rows that were actually published that day
df = df[~df["is_forward_filled"]]
print(df[["rates.EUR", "rates.GBP"]].tail())
pandas es opcional; puedes procesar las mismas filas con otra herramienta.