Solicita una fecha
En fin de semana o festivo se devuelve el último fixing publicado y is_forward_filled vale true. No se inventa una observación.
curl "https://api.exchangerate.dev/v1/2024-01-15/EUR?symbols=USD,GBP" \ -H "Authorization: Bearer YOUR_API_KEY"Solicita un intervalo
Indica symbols, start_date y end_date. JSON devuelve hasta 366 filas por página; continúa con next_cursor cuando has_more sea true.
curl "https://api.exchangerate.dev/v1/range?base=USD&symbols=EUR,GBP&start_date=2024-01-01&end_date=2024-06-30" \ -H "Authorization: Bearer YOUR_API_KEY"Descarga CSV o Parquet
Añade format=csv o format=parquet. La descarga contiene todo el intervalo solicitado y no usa cursor JSON.
curl -L "https://api.exchangerate.dev/v1/range?base=USD&symbols=EUR,GBP&start_date=2024-01-01&end_date=2024-12-31&format=csv" \ -H "Authorization: Bearer YOUR_API_KEY" \ --output usd-rates-2024.csvConserva la procedencia
Guarda source, is_forward_filled y derived_symbols junto a cada observación. Sin ellos, luego no podrás explicar el dato.
source, is_forward_filled, derived_symbols
Series intradía y cobertura
/v1/timeseries admite 1m, 5m, 15m, 1h, 4h y referencias diarias 1d; no hay 2h. Los cruces SGD sin USD no admiten 4h; USD/SGD y su inverso sí. La recopilación de mercado comenzó el 2026-09-14. Los datos 1m se conservan 30 días; los intervalos mayores no tienen caducidad programada. La retención no garantiza que ya exista toda esa profundidad. La cobertura intradía de 1m a 1h incluye 221 pares únicos: 143 pares USD y 78 cruces.
Los cruces históricos requieren cierres reales del mismo intervalo UTC, separados como máximo 5 segundos. effective_at conserva la observación más antigua. No se rellenan huecos y el intervalo abierto puede cambiar. 1d usa referencias diarias de todo el catálogo. La tabla cuenta pares únicos; se admiten ambos sentidos.
| interval | Pares únicos |
|---|---|
1m | 221 |
5m | 221 |
15m | 221 |
1h | 221 |
4h | 209 |
1d | 10296 |
curl "https://api.exchangerate.dev/v1/timeseries?base=EUR&symbols=JPY&interval=15m&from=2026-09-14T12:00:00Z&to=2026-09-14T13:00:00Z" \ -H "Authorization: Bearer YOUR_API_KEY"Una ventana admitida sin observaciones devuelve HTTP 200 con data: [], has_more: false y next_cursor: null. Un intervalo desconocido devuelve unsupported_interval; un par fuera de cobertura, unsupported_pair_interval y rejected_pairs (HTTP 400). Las solicitudes mixtas se rechazan completas.