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
Para la moneda que muestras, consulta sources[currency] y effective_at[currency]: indican el tipo de fuente y la hora de observación. source resume los datos menos recientes de toda la respuesta. market_session describe la sesión de mercado; timestamp es la hora de generación de la respuesta, no la hora de observación.
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
La cuota mensual se reinicia el día 1 de cada mes a las 00:00 UTC. Ante un 429, respeta Retry-After antes de reintentar.
- 10,000 llamadas al mes
- 12 peticiones por minuto
- Sin tarjeta de crédito
- Cubre
/v1/latest,/v1/convert,/v1/rangey/v1/{date}/{base}