Tutorial/Inicio rápido con Power BI

Cómo cargar tipos de cambio en Power BI con Power Query

Pega una consulta M en Power BI Desktop, convierte la respuesta JSON en una tabla y deja preparada la actualización programada.

ERexchangerate.dev·Aug 5, 2026·5 min

Power BI ya incluye el conector necesario. Crea una consulta en blanco y usa Web.Contents. Mantén el dominio fijo y coloca el endpoint en RelativePath; así el servicio reconoce una fuente estable cuando actualiza el modelo semántico.

Key points
Pega el código M en Editor avanzado.
Mantén fijo https://api.exchangerate.dev y usa RelativePath.
La salida tiene una fila por moneda y columnas de fuente y actualización.
Elige credenciales Anónimas porque la clave viaja en la cabecera.
Los editores del PBIX pueden ver la consulta; usa un proxy si distribuyes el archivo.

Crea una consulta en blanco

Crea una clave gratuita. En Power BI Desktop, abre Obtener datos → Consulta en blanco y después Vista → Editor avanzado dentro de Power Query.

Pega la consulta M

Power Query M · Advanced Editorcopy
let
    ApiKey = "exr_live_replace_with_your_key_here",
    Base = "USD",
    Symbols = "EUR,GBP,JPY",
    Response = Json.Document(
        Web.Contents(
            "https://api.exchangerate.dev",
            [
                RelativePath = "v1/latest/" & Base,
                Query = [symbols = Symbols],
                Headers = [Authorization = "Bearer " & ApiKey]
            ]
        )
    ),
    Rates = Record.ToTable(Response[rates]),
    Renamed = Table.RenameColumns(
        Rates,
        {{"Name", "currency"}, {"Value", "rate"}}
    ),
    WithBase = Table.AddColumn(Renamed, "base", each Response[base], type text),
    WithSource = Table.AddColumn(WithBase, "source", each Response[source], type text),
    WithUpdatedAt = Table.AddColumn(
        WithSource,
        "data_updated_at",
        each DateTimeZone.FromText(Response[data_updated_at]),
        type datetimezone
    )
in
    WithUpdatedAt

Sustituye la clave de ejemplo, pulsa Listo y llama FxRates a la consulta. La vista previa debe mostrar EUR, GBP y JPY en filas separadas.

Revisa los tipos de datos

Usa Texto para currency, base y source; Número decimal para rate; y Fecha/Hora/Zona para data_updated_at. Después pulsa Cerrar y aplicar.

Publica y configura la actualización

En el servicio de Power BI, abre las credenciales del origen https://api.exchangerate.dev y elige Anónimo. La consulta ya envía la clave en la cabecera Authorization. Define una frecuencia que tenga sentido para el informe.

RelativePath evita el error de origen dinámico
Power BI necesita reconocer un host estable. Deja el dominio en Web.Contents y mueve la ruta del endpoint a RelativePath para que la actualización siga funcionando después de publicar.

Un parámetro M no es una caja fuerte

Quien pueda editar el PBIX o la consulta puede llegar a ver la clave. Para un espacio interno y controlado puede ser suficiente. Si el archivo va a circular, llama a un proxy de tu servidor.

Tipos indicativos
Úsalos en informes, análisis, planificación y visualización. No son una cotización ejecutable ni un precio de liquidación.
ER
exchangerate.dev
Guías de integración para desarrolladores.

Keep reading

TutorialLive exchange rates in Excel with Power QueryRead ReferenceHistorical exchange rate APIRead TutorialGet exchange rates in n8nRead
Más ComparacionesFixer vs exchangerate.devOpen Exchange Rates vs exchangerate.devCurrencylayer vs exchangerate.dev
AprenderReading source and market_session in your pipelineIndicative vs executable FX rates: what a rates API actually gives youECB reference rates, explained
Tasas en VivoEUR/USDGBP/USDUSD/JPY