Uwierzytelnianie i limity Endpointy danych można testować anonimowo: 12 żądań na minutę i 100 na godzinę dla jednego IP. Klucz uruchamia miesięczny limit konta.
bash · header COPY
Authorization: Bearer YOUR_KEY
X-RateLimit-Remaining: 9999
X-RateLimit-Reset: 1788220800 Pola opisujące świeżość `source` określa klasę źródła, `market_session` stan rynku, a `data_updated_at` czas zapisania liczby. Zachowaj wszystkie trzy.
Endpointy GET /v1/latest[/{BASE}]Bieżące kursy, wszystkie lub filtrowane przez symbols.
GET /v1/{YYYY-MM-DD}[/{BASE}]Migawka historyczna dla daty i waluty bazowej.
GET /v1/convert/{FROM}/{TO}[/{AMOUNT}] · POST /v1/convertPrzeliczenie kwoty; pojedynczy GET lub grupowy POST.
GET /v1/rate/{slug}Płaska odpowiedź dla pary podanej jako slug.
GET /v1/rangeSeria dzienna z paginacją i pobieraniem plików.
GET /v1/currenciesLista obsługiwanych walut, bez parametrów.
GET /v1/accountKonto, plan, aktywny klucz i użycie w miesiącu.
Błędy Każdy błąd ma postać `{ result: "error", code, message }`. Odpowiedź 429 zawiera `Retry-After`; awaria źródła nigdy nie uruchamia danych testowych.
json · error COPY
{
"result": "error",
"code": "missing_parameter",
"message": "missing required parameter: symbols"
} English complete field-by-field reference →
Użyj z wybranym stosem To samo żądanie działa z curl, Pythonem i JavaScriptem. Do testów nie potrzebujesz klucza API.
Otwórz szybki start → curl Python JavaScript / Node.js
Kopiuj kod curl -fsS --max-time 10 "https://api.exchangerate.dev/v1/latest/USD?symbols=EUR,GBP" from urllib.request import Request, urlopen
import json
request = Request("https://api.exchangerate.dev/v1/latest/USD?symbols=EUR,GBP")
with urlopen(request, timeout=10) as response:
data = json.load(response)
print(data["rates"]["EUR"]) const response = await fetch("https://api.exchangerate.dev/v1/latest/USD?symbols=EUR,GBP", {
signal: AbortSignal.timeout(10_000),
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
console.log(data.rates.EUR); Przykładowa odpowiedź {
"result": "success",
"base": "USD",
"source": "live",
"sources": {
"EUR": "live",
"GBP": "live"
},
"market_session": "open",
"timestamp": "2026-06-15T12:00:00Z",
"data_updated_at": "2026-06-15T12:00:00Z",
"effective_at": {
"EUR": "2026-06-15T12:00:00Z",
"GBP": "2026-06-15T12:00:00Z"
},
"rates": {
"EUR": 0.86207,
"GBP": 0.74627
},
"derived_symbols": [],
"notice": "Indicative rates, not for settlement."
} rates.EUR to liczba EUR za 1 USD. effective_at.EUR oznacza czas obserwacji, a sources.EUR klasę źródła. Wartości i czasy są przykładowe.
Python → JavaScript / Node.js → Google Sheets → Excel → Go → Swift → Zapier →