Zakres zwraca zapisane obserwacje ze stronicowaniem, źródłem i oznaczeniem uzupełnienia.
Najważniejsze punkty
Strona JSON zawiera do 366 obserwacji. Korzystaj z next_cursor, dopóki has_more ma wartość true.
1 830 dni to limit zapytania, nie gwarancja historii każdej pary. Sprawdź source, wiersze i data: [].
Nie ma soboty 13 czerwca 2026, ponieważ zakres zwraca obserwacje, a nie wiersz dla każdego dnia.
Nie. To kursy orientacyjne; sprawdź notice i source.
Użyj endpointu zakresu
start_date i end_date obejmują oba końce. base domyślnie oznacza USD, a symbols rozdziela się przecinkami. Dostępne jest angielskie narzędzie historyczne.
data zawiera zapisane wiersze. Używaj has_more i next_cursor; CSV i Parquet obejmują obsługiwane okno.
Nie ma soboty 13 czerwca 2026, ponieważ zakres zwraca obserwacje, a nie wiersz dla każdego dnia.
Stronicowanie w Pythonie
Ta pętla przechodzi przez każdy kursor.
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 "")
Obserwacje i wartości przeniesione
Obserwacje zakresu mają is_forward_filled false; zapytanie o datę może zwrócić wcześniejszą wartość z true.
Weekend nie jest obserwacją
Zakres pomija sobotę 13 czerwca 2026. Zapytanie bezpośrednie może zwrócić wcześniejszą wartość z is_forward_filled true.
Data czy zakres
Pojedyncza data służy do kontroli, a zakres do wykresów, backfillu i analizy zbiorczej.
WymiarDataZakres
ŻądanieJedna dataJedno żądanie i strony
OdpowiedźJeden dzieńTablica data
Sprawdź zakres danych
1 830 dni to limit zapytania, nie gwarancja historii każdej pary. Sprawdź source, wiersze i data: [].
pandas
Wczytaj dane do pandas, posortuj po dacie i odfiltruj wartości przeniesione przed obliczeniami.
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 jest opcjonalny; te same wiersze można obsłużyć inaczej.