Alternativas a exchangerate.host, ahora que requiere una clave
exchangerate.host solía responder solicitudes sin ningún registro. Ahora lo opera APILayer, y el plan gratuito se limita a 100 solicitudes al mes tras una clave. Esto es lo que cambió y hacia dónde se están moviendo los desarrolladores.
Si un script que funcionó bien durante años de repente devuelve 401 o un mensaje de "quota exceeded", la causa es casi con certeza esta: exchangerate.host pasó a estar bajo APILayer, y lo que era un endpoint sin clave y prácticamente ilimitado ahora requiere registro y te da 100 solicitudes al mes en el plan gratuito. Los planes de pago empiezan en $14.99/mes por 10,000 solicitudes. Debajo están las opciones realistas, incluido el caso en el que deberías dejar de buscar y usar la gratuita.
Qué cambió en realidad
exchangerate.host se ganó una reputación como la opción gratuita y sin clave: sin registro, solo una solicitud GET. Esa versión ya no existe. Ahora lo opera APILayer, y cada solicitud necesita una cabecera apikey ligada a una cuenta.
El plan gratuito permite 100 solicitudes al mes. Para un proyecto que solía hacer unos cientos de llamadas al día, ese techo llega antes de que termine la primera semana. El acceso de pago empieza en $14.99/mes por 10,000 solicitudes.
Si un dato diario del BCE es todo lo que necesitas
Antes de comparar las opciones de pago, evalúa si necesitas alguna. Frankfurter es de código abierto y no requiere ninguna clave de API. Envuelve los tipos de referencia del Banco Central Europeo, publicados una vez por día hábil alrededor de las 16:00 CET, sin datos de fin de semana — el sábado muestra el cierre del viernes — y ahora ofrece su propio servidor MCP en mcp.frankfurter.dev.
Para un panel, un informe o un trabajo por lotes que solo necesita "el tipo oficial de hoy", esa frecuencia diaria puede bastar por sí sola. Abajo se enlaza una guía de migración completa con un mapeo de endpoints si decides que no.
Las alternativas realistas, una junto a la otra
El campo se divide según lo que restringe cada plan gratuito: moneda base, número de llamadas, o ambos.
ExchangeRate-API: sin clave, pero lee las condiciones de atribución
ExchangeRate-API opera un endpoint de acceso abierto en open.er-api.com que no necesita clave, y se actualiza una vez al día como Frankfurter. Pero hay que mostrar "Rates By Exchange Rate API" con un enlace de vuelta, y no redistribuir los datos en bruto. Alcanzar el límite de peticiones devuelve un 429 que se despeja en 20 minutos. También existe un nivel con clave, de 1,500 solicitudes al mes.
Open Exchange Rates: 1,000 solicitudes, pero fijado a USD
Open Exchange Rates da 1,000 solicitudes gratis al mes con actualizaciones cada hora e historial diario incluido. La trampa: el plan gratuito está fijado a USD. Que IDR o GBP sea la base significa convertir del lado del cliente, o pagar $12/mes por cualquier base más series temporales y llamadas de conversión.
Fixer: 100 llamadas, solo EUR, sin endpoint de conversión
El plan gratuito de Fixer permite 100 llamadas a la API al mes con actualizaciones cada hora e historial incluido. La moneda base está fijada a EUR, sin endpoint de conversión hasta BASIC — /convert?from=USD&to=IDR no funcionará, tienes que obtener los tipos y multiplicar tú mismo.
Dónde se ubica exchangerate.dev en todo esto
El plan gratuito de exchangerate.dev da 10,000 llamadas al mes a 12 solicitudes por minuto, sin tarjeta requerida para registrarte. Las llamadas anónimas sin clave también funcionan, para una evaluación rápida, limitadas por IP. No hay restricción de moneda base en ningún plan — cualquiera de los 465 pares del catálogo puede ser la base. El historial diario desde 1999 está incluido gratis en todos los planes, no reservado tras un plan de pago.
Los pares principales se actualizan aproximadamente cada 60 segundos durante la semana de negociación; la mayoría de los demás pares también, con tipos de referencia del BCE y de la FRED completando el resto. Cada respuesta lleva source, market_session, timestamp, data_updated_at, y un campo notice, así que tu código puede distinguir un tipo en vivo de un dato diario sin adivinar por el reloj. Un servidor MCP con clave viene incluido en todos los planes, incluido el gratuito, con la misma cuota que la API REST.
Qué se rompe en realidad durante la migración
Salir de un endpoint sin clave toca más que la URL. Añade una cabecera Authorization o un parámetro apikey, ya que toda opción anterior excepto Frankfurter y el endpoint de acceso abierto de ExchangeRate-API requiere una. Los nombres de campo tampoco están estandarizados, así que un script que lee rates.EUR de una API puede romperse en silencio si el nuevo proveedor anida los datos de forma distinta.
Los límites de peticiones merecen lógica de reintento, no un encogimiento de hombros. Un plan gratuito medido en los cientos bajos al mes significa que un solo bucle de reintento sin backoff puede quemar el presupuesto de un día en minutos. Cachea de forma agresiva y trata el conteo mensual como un techo duro.
Elegir uno
Haz coincidir la restricción que afecta a tu código. Un tipo diario del BCE con cero configuración: Frankfurter. Dispuesto a añadir texto de atribución: el endpoint abierto de ExchangeRate-API. Necesitas una base distinta de USD o EUR, o movimiento intradía: ese es el hueco que llenan las opciones con clave, incluido exchangerate.dev.