La mayoría de las APIs gratuitas parecen iguales: JSON, un token y una lista de monedas. Las diferencias aparecen cuando los datos se actualizan, cuando alcanzas un límite o cuando tu código necesita saber la antigüedad del valor.
- Compara la cuota mensual y el límite por minuto antes de programar tareas periódicas.
- La frescura intradía separa una referencia diaria de un valor que sigue los movimientos del mercado.
source,market_sessionydata_updated_atdescriben qué dato estás usando.- El historial diario puede comenzar en 1999 cuando existen observaciones para el par.
- La conversión por
/v1/converty el servidor MCP reducen código auxiliar.
Por qué conviene comparar dimensiones
Una lista ordenada dice qué prefería su autor el día que la escribió. Comparar dimensión por dimensión muestra qué encaja con tu proyecto. Un panel que solo necesita una referencia diaria tiene necesidades distintas de una aplicación que muestra precios durante el día.
Dimensión 1: cuota gratuita y límite de solicitudes
La cuota indica cuánto puedes probar o ejecutar sin pagar. El límite por minuto indica si una tarea por lotes puede hacer muchas llamadas seguidas. El feed público del BCE no tiene cuota, pero entrega XML y se actualiza una vez por día hábil. Los proyectos de JSON estático como fawazahmed0/exchange-api tampoco ofrecen un servidor propio, metadatos de frescura o datos intradía. exchangerate.dev admite pruebas anónimas por IP; una clave gratuita incluye 5.000 llamadas al mes y 10 por minuto.
Cuenta las llamadas antes de elegir. Una página que consulta una tasa en cada carga consume una llamada por visita. Agrupa monedas en un solo parámetro symbols cuando puedas.
Dimensión 2: frescura intradía
El BCE publica el fixing hacia las 16:00 CET en días hábiles. La fuente live se actualiza cada 60 s en la semana de negociación. Free y sin clave: 15 minutos de retraso; planes de pago: en vivo. market_session indica la sesión.
Dimensión 3: metadatos de frescura
Para la caché, usa data_updated_at, no la hora de respuesta. market_daily: cierre diario guardado del feed de mercado para divisas sin fijación del BCE.
source:live,ecb_daily,market_dailymarket_session: estado de la sesión interbancaria.data_updated_at: última escritura del dato subyacente, distinta detimestamp.is_forward_filled: indica que una fecha sin publicación usa el valor anterior.
Dimensión 4: profundidad histórica
Free y las llamadas sin clave incluyen los últimos 30 días; Basic, el último año. Plus y Pro ofrecen todo el historial disponible desde 1999. Usa /v1/{date}/{base} o /v1/range con una clave para mayor profundidad.
Dimensión 5: conversión incorporada
GET /v1/convert/USD/EUR/100 devuelve rate, converted y derived en una llamada. POST /v1/convert permite conversiones por lotes y calcula cruces triangulados en el servidor.
Dimensión 6: agentes y MCP
Un agente necesita definiciones de herramientas estructuradas. exchangerate.dev ofrece un servidor MCP en https://api.exchangerate.dev/v1/mcp con herramientas como start_checkout, list_currencies, get_rate, get_usd_index, convert, get_range y search_docs. Checkout requiere confirmación humana y usa la misma cuota que REST.
Las seis dimensiones, lado a lado
| Dimensión | Feed de referencia del BCE | exchangerate.dev (plan gratuito) |
|---|---|---|
| Cuota mensual | Sin cuota en el feed público | 5.000 llamadas/mes, 10 por minuto |
| Frescura intradía | Último fixing hasta el siguiente día hábil | Free y sin clave: 15 minutos de retraso |
| Metadatos | Marca temporal | source, market_session, data_updated_at |
| Historial | Series XML publicadas desde aproximadamente 1999 | Últimos 30 días de historial diario |
| Conversión | No incluye endpoint de conversión | /v1/convert y POST por lotes |
| Agentes / MCP | Sin servidor MCP nativo | Servidor MCP con herramientas |
Cómo elegir
Si solo necesitas una referencia diaria y puedes leer XML, el feed público del BCE puede bastar. Si necesitas movimiento intradía, metadatos de fuente, historial, conversiones o herramientas para agentes, revisa la cobertura de exchangerate.dev y sus límites del plan gratuito.
La API adecuada es la que tiene límites compatibles con tu caso, no la que tiene la lista de funciones más larga.