Cotação do dólar automática pelo Banco Central no Power Query
Power BI · 6 min de leitura
Em resumo
Para trazer a cotação do dólar automaticamente para o Power BI, gere o link da série no portal de dados do Banco Central, importe-o como fonte Web e troque a data final fixa por uma consulta que calcula a data de hoje. Assim o histórico cresce sozinho a cada atualização.

Copiar a cotação do dólar de um site todo dia e colar na planilha é o tipo de tarefa que ninguém deveria fazer manualmente. O Banco Central disponibiliza essas cotações por uma API gratuita, e o Power Query consegue buscá-las sozinho. Com um ajuste simples, a consulta passa a trazer até a data de hoje a cada atualização, sem você mexer em nada.
Neste guia você vai montar o link da API do Banco Central, importar as cotações no Power BI e tornar a data final dinâmica, para o histórico crescer automaticamente todos os dias.
Caso prefira aprender por vídeo, veja o vídeo abaixo:

O que você vai aprender
- O que é uma API e onde fica a do Banco Central;
- Como gerar o link da cotação do dólar por período;
- Como importar os dados com Obter Dados > Web;
- Como criar uma consulta com a data de hoje e usá-la no link;
- Como tratar as colunas e conferir a atualização no dia seguinte.
O material da aula, um arquivo de texto com todos os links e códigos usados, está disponível para download logo abaixo do vídeo.
O que é uma API (de forma simples)
Uma API é um endereço que um sistema disponibiliza para que outros programas busquem informações. Em vez de abrir um site e ler a tabela, o Power BI chama o endereço e recebe os dados prontos, em formato estruturado (JSON). O Banco Central mantém um portal de dados abertos com várias APIs, entre elas a do dólar comercial (PTAX), com cotações de compra e venda.
Passo 1: gerar o link no portal do Banco Central
- Pesquise no Google por API Banco Central dólar comercial e abra o resultado "Dólar comercial (venda e compra)", do portal de dados abertos do BCB (o endereço começa com olinda.bcb.gov.br);
- Entre os recursos disponíveis, escolha Cotação do dólar por período;
- Preencha a data inicial (no vídeo, 01/01/2018) e a data final (o dia de hoje);
- Em campos, marque cotacaoCompra, cotacaoVenda e dataHoraCotacao;
- Em Máximo, coloque 10000 (o limite de registros por consulta);
- Deixe o formato de saída como JSON e clique em Copiar URL.
Atenção ao formato da data: o formulário usa o padrão americano, mês-dia-ano. 17 de setembro é 09-17-2024; se você digitar 17-09-2024, a consulta vem vazia.
Se quiser conferir antes, clique em Executar: a página mostra a tabela de cotações.
Passo 2: importar no Power BI
- No Power BI Desktop, clique em Obter Dados > Web;
- Cole a URL copiada e clique em OK;
- Se pedir o tipo de acesso, escolha Anônimo e conecte. Se aparecer uma lista de níveis do link, escolha o último e dê OK;
- No Power Query, a lista de cotações é convertida em tabela e expandida nas colunas de compra, venda e data/hora.
O problema: a data final está fixa
Clique na etapa Fonte, em Etapas Aplicadas, e veja a URL: a data final está escrita no link. Amanhã, a consulta continuará trazendo só até aquela data. Para o histórico crescer sozinho, a data final precisa ser sempre o dia de hoje.
Passo 3: criar a consulta com a data de hoje
- No painel de consultas, clique com o botão direito em uma área vazia e vá em Nova Consulta > Consulta Nula;
- Na barra de fórmulas, cole o código abaixo e dê Enter;
- Renomeie a consulta para DataHora.
= Date.ToText(Date.From(DateTime.LocalNow()), [Format = "MM-dd-yyyy"])
DateTime.LocalNow() pega a data e hora atuais; Date.From fica só com a data; e Date.ToText transforma em texto no formato que a API exige (mês-dia-ano). O resultado é algo como 09-17-2024, e muda sozinho a cada dia.
Passo 4: usar a DataHora no link
Volte à consulta das cotações, clique na etapa Fonte e substitua a data final fixa pela consulta DataHora, concatenando com &:
= Json.Document(Web.Contents("https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/CotacaoDolarPeriodo(dataInicial=@dataInicial,dataFinalCotacao=@dataFinalCotacao)?@dataInicial='01-01-2018'&@dataFinalCotacao='" & DataHora & "'&$top=10000&$format=json&$select=cotacaoCompra,cotacaoVenda,dataHoraCotacao"))
Dê Enter e vá até a última etapa: se não aparecer erro, a ligação funcionou.
Passo 5: tratar as colunas e carregar
- Remova a coluna que não será usada (a primeira, com o identificador do registro, no exemplo);
- Renomeie as colunas para Valor de compra, Valor de venda e Data e hora da cotação;
- Mova a data para o início (botão direito > Mover > Para o Início);
- Confira os tipos: números decimais para os valores e data/hora para a cotação;
- Renomeie a consulta para algo como fCotacoes e clique em Fechar e Aplicar.
Conferindo no dia seguinte
No vídeo, a consulta foi criada num dia 17 e trazia cotações até o dia 17. No dia seguinte, bastou clicar em Atualizar: a cotação do dia 18 apareceu no fim da tabela, sem nenhuma alteração na consulta.
Lembre que a PTAX só existe em dias úteis: fins de semana e feriados não têm cotação. Se você precisar de um valor por dia do calendário, relacione com uma tabela calendário e use a última cotação disponível.
Ideias de uso
- Converter vendas ou custos em dólar para reais pela cotação do dia da transação;
- Acompanhar a variação do câmbio num gráfico de linhas, com média móvel;
- Simular cenários de importação e exportação com a cotação mais recente;
- Outras moedas: a mesma API tem cotações de euro, libra e outras, no recurso de cotação por moeda.
Dica para atualizar no Power BI Service
Ao publicar o relatório e agendar a atualização no Service, URLs montadas com concatenação às vezes são tratadas como "fonte dinâmica" e bloqueiam o agendamento. Se isso acontecer, mantenha a parte fixa do endereço como base e passe o resto pelas opções RelativePath e Query do Web.Contents:
= Json.Document(Web.Contents(
"https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/odata/",
[
RelativePath = "CotacaoDolarPeriodo(dataInicial=@dataInicial,dataFinalCotacao=@dataFinalCotacao)",
Query = [
#"@dataInicial" = "'01-01-2018'",
#"@dataFinalCotacao" = "'" & DataHora & "'",
#"$top" = "10000",
#"$format" = "json",
#"$select" = "cotacaoCompra,cotacaoVenda,dataHoraCotacao"
]
]
))
Perguntas frequentes
A API do Banco Central é gratuita?
Sim. Os dados fazem parte do portal de dados abertos do BCB e não exigem cadastro nem chave.
Por que a consulta voltou vazia?
Quase sempre é o formato da data. A API espera mês-dia-ano (MM-dd-yyyy).
Por que não aparece cotação no sábado?
A PTAX é divulgada apenas em dias úteis.
Funciona no Excel?
Sim. O Power Query do Excel (Dados > Obter Dados > De Outras Fontes > Da Web) aceita os mesmos passos e o mesmo código.
Conclusão
Com a API do Banco Central e uma consulta que calcula a data de hoje, a cotação do dólar entra no Power BI sozinha e o histórico cresce a cada atualização. Baixe o arquivo de texto com os links e códigos da aula e monte a sua consulta. Para avançar nos cálculos com essas cotações, veja o minicurso gratuito de fórmulas DAX.
Bons estudos e até o próximo conteúdo! 🚀
Quer dominar o Power BI do básico ao avançado? Conheça o curso de Power BI online da Atuar: 245 aulas, certificado e monitoria 24h com IA.


