Conversión de divisas en JavaScript y Node.js
Obtén tipos de cambio en vivo y convierte importes en JavaScript con la API global fetch. Funciona en Node 18+, Deno, Bun y navegadores modernos. Sin clave para empezar, 10,000 llamadas al mes en el plan gratuito.
El camino más rápido a los tipos de cambio en JavaScript es un GET a /v1/latest/USD con fetch. La respuesta es JSON plano con tipos para 31 monedas y dos campos de frescura, source y market_session. Tu primera llamada no necesita clave de API.
fetch global funciona de serie en Node 18+, Deno, Bun y navegadores, sin dependencias extra./v1/latest/{base} devuelve tipos para 31 monedas, más source y market_session.Authorization: Bearer exr_live_..., o usa X-API-Key si tu plataforma no puede fijar Authorization.Tu primera llamada, sin clave
En Node 18 o en cualquier navegador moderno ya tienes fetch. Un solo await basta para leer el tipo del EUR:
Las llamadas anónimas tienen tope por dirección IP, así que pásate a una clave gratuita en cuanto dejes atrás la prueba rápida.
Añade una clave y manejo de errores
Pasa la clave como token bearer en la cabecera Authorization. Comprueba res.ok y lanza en un estado malo para que los errores salgan a la superficie pronto:
La cabecera X-API-Key: exr_live_... también se acepta, para plataformas que no pueden fijar una cabecera Authorization (algunos entornos serverless, Zapier y herramientas no-code parecidas).
Convierte un importe
Para una conversión directa llama a /v1/convert/{from}/{to}/{amount}. La respuesta te da el tipo y el importe convertido en un solo viaje:
El endpoint de conversión devuelve los mismos campos source y market_session que el endpoint latest, así que puedes mostrar a los usuarios la clase de tipo y si la semana interbancaria está abierta.
Entiende source y market_session
Cada respuesta incluye dos campos que te dicen la edad y el tipo del dato. source identifica la clase: live es un consenso spot agregado que se actualiza más o menos cada 60 segundos durante la semana de negociación, ecb_daily es el fix de referencia del Banco Central Europeo publicado una vez por día hábil hacia las 16:00 CET, y fred_daily es la serie diaria de la Reserva Federal. market_session es open, weekend, o interbank_closed para un cierre conocido fuera de fin de semana.
El campo data_updated_at te dice cuándo se escribió por última vez el tipo subyacente. timestamp registra cuándo se construyó la respuesta. Juntos te permiten decidir cómo cachear y mostrar el valor.
notice.Límites del plan gratuito
Una clave gratuita te da 10,000 llamadas al mes a 12 peticiones por minuto. No hace falta tarjeta para registrarse. Si superas el límite por minuto la API devuelve un 429; espera y reintenta. La cuota mensual se reinicia en tu aniversario de facturación.
- 10,000 llamadas al mes
- 12 peticiones por minuto
- Sin tarjeta de crédito
- Cubre
/v1/latest,/v1/convert,/v1/rangey/v1/{date}/{base}