Menú

Tipos de cambio históricos

Fecha en la ruta o `/v1/range`: Plus/Pro desde 1999-01-04, Basic 1 año, Free y sin clave 30 días.

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.

bash · Plus / Pro
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.

bash · Plus / Pro
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.

bash · Plus / Pro · CSV
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.csv

Conserva 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.

intervalPares únicos
1m221
5m221
15m221
1h221
4h209
1d10296
curl · Pro · EUR/JPY · 15m
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.

Cobertura y límites detallados

API de tipos de cambio intradía