DadosAbertosBrasil.bacen
Módulo para captura de dados das APIs do Banco Central do Brasil.
Este módulo permite o acesso a diversas informações econômicas disponibilizadas pelo Banco Central, incluindo:
Histórico de câmbio das principais moedas do mundo;
Expectativas do mercado para indicadores macroeconômicos do Brasil;
Consulta a séries temporais do Sistema Gerenciador de Séries Temporais (SGS).
APIs Oficiais
SGS - Sistema Gerenciador de Séries Temporais: https://www3.bcb.gov.br/sgspub/
Cotação de Câmbio (PTAX): https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/swagger-ui3
Expectativas de Mercado: https://olinda.bcb.gov.br/olinda/servico/Expectativas/versao/v1/swagger-ui3#/
- DadosAbertosBrasil.bacen._cambio.cambio(moedas: list[str] | str = ['USD'], inicio: date = datetime.date(2000, 1, 1), fim: date | None = FieldInfo(annotation=Union[date, NoneType], required=False, default_factory=today), cotacao: Literal['compra', 'vendas'] = 'compra', boletim: Literal['abertura', 'fechamento', 'intermediário'] = 'fechamento', index: bool = False, formato: Literal['json', 'pandas', 'url'] = 'pandas', verificar_certificado: bool = True) DataFrame | str | dict | list[dict] [código-fonte]
Taxa de câmbio das principais moedas internacionais.
É possível escolher várias moedas inserindo uma lista no campo moeda. Defina o período da consulta pelos campos inicio e fim.
Parameters
- moedasstr or list of str, default=”USD”
Sigla da moeda ou lista de siglas de moedas que serão pesquisadas no formato “MMM” (três letras). Utilize a função bacen.moedas para obter a lista de moedas válidas.
- iniciodate, default=”2000-01-01”
String no formato de data “AAAA-MM-DD” que representa o primeiro dia da pesquisa.
- fimdate, optional
String no formato de data “AAAA-MM-DD” que representa o último dia da pesquisa. Caso este campo seja None, será considerada a data de hoje.
- cotacao{“compra”, “venda”}, default=”compra”
Tipo de cotação.
- boletim{“abertura”, “intermediário”, “fechamento”}, default=”fechamento”
Tipo de boletim.
- indexbool, default=False
Define se a coluna “Data” será o index do DataFrame.
- formato{“json”, “pandas”, “url”}, default=”pandas”
Formato do dado que será retornado: - “json”: Dicionário com as chaves e valores originais da API; - “pandas”: DataFrame formatado; - “url”: Endereço da API que retorna o arquivo JSON.
- verificar_certificadobool, default=True
Defina esse argumento como False em caso de falha na verificação do certificado SSL.
Returns
- pandas.core.frame.DataFrame | str | dict | list[dict]
Cotações diárias das moedas selecionadas.
Raises
- DAB_DataError
Caso seja inserida uma data inválida.
- DAB_MoedaError
Caso seja inserida uma moeda inválida.
See Also
- DadosAbertosBrasil.bacen.moedas
Utilize a função bacen.moedas para identificar as moedas que serão usadas no argumento da função bacen.cambio.
Notes
- API original das cotações de câmbio
https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/swagger-ui3
Examples
Retornar uma moeda usando argumentos padrões.
>>> bacen.cambio(moedas="EUR") Data EUR 0 2000-01-03 1.84601 1 2000-01-04 1.88695 2 2000-01-05 1.91121 3 2000-01-06 1.90357 4 2000-01-07 1.87790 .. ... ...
Retornar várias moedas, alterando argumentos.
>>> bacen.cambio( ... moedas = ["USD", "CAD"], ... inicio = "2021-01-01", ... fim = "2021-01-10", ... cotacao = "venda", ... boletim = "abertura", ... index = True ... ) USD CAD Data 2021-01-04 5.1402 4.0500 2021-01-05 5.3405 4.1890 2021-01-06 5.3013 4.1798 2021-01-07 5.3174 4.1833 2021-01-08 5.3612 4.2237
- DadosAbertosBrasil.bacen._expectativas.expectativas(expectativa: Literal['mensal', 'selic', 'trimestral', 'anual', 'inflacao', 'top5mensal', 'top5anual', 'instituicoes'], indicador: str | None = None, top: Annotated[int, Gt(gt=0)] | None = None, ordenar_por: str = 'Data', asc: bool = False, formato: Literal['json', 'pandas', 'url'] = 'pandas', verificar_certificado: bool = True) DataFrame | str | dict | list[dict] [código-fonte]
Expectativas de mercado para os principais indicadores macroeconômicos.
Parameters
- expectativastr
“mensal”: Expectativas de Mercado Mensal
“selic”: Expectativas de Mercado Selic
“trimestral”: Expectativas de Mercado Trimestral
“anual”: Expectativas de Mercado com referência anual
“inflacao”: Expectativas de mercado para inflação nos próximos 12 meses
“top5mensal”: Expectativas mensais de mercado para os indicadores do Top 5
“top5anual”: Expectativas de mercado anuais para os indicadores do Top 5
“instituicoes”: Expectativas de mercado informadas pelas instituições credenciadas
- indicadorstr, optional
Capturar apenas o indicador desejado. Deve ser um dos seguintes indicadores, desde que esteja de acordo com a expectativa escolhida. Caso o valor seja None, retorna todos os indicadores disponíveis: - “Balança Comercial”, - “Câmbio”, - “Conta corrente”, - “Dívida bruta do governo geral”, - “Dívida líquida do setor público”, - “IGP-DI”, - “IGP-M”, - “INPC”, - “Investimento direto no país”, - “IPA-DI”, - “IPA-M”, - “IPCA”, - “IPCA Administrados”, - “IPCA Alimentação no domicílio”, - “IPCA Bens industrializados”, - “IPCA Livres”, - “IPCA Serviços”, - “IPCA-15”, - “IPC-FIPE”, - “PIB Agropecuária”, - “PIB Despesa de consumo da administração pública”, - “PIB despesa de consumo das famílias”, - “PIB Exportação de bens e serviços”, - “PIB Formação Bruta de Capital Fixo”, - “PIB Importação de bens e serviços”, - “PIB Indústria”, - “PIB Serviços”, - “PIB Total”, - “Produção industrial”, - “Resultado nominal”, - “Resultado primário”, - “Selic”, - “Taxa de desocupação”.
- topint, optional
Número máximo de registros que será retornado.
- ordenar_porstr, default=’Data’
Por qual coluna da tabela os registros serão ordenados.
- ascbool, default=False
Se True, ordena os registros pela coluna selecionada no argumento ordenar_por em ordem crescente (A-Z ou 0-9);
Se False, ordena em ordem descrescente (Z-A ou 9-0).
- formato{“json”, “pandas”, “url”}, default=”pandas”
Formato do dado que será retornado: - “json”: Dicionário com as chaves e valores originais da API; - “pandas”: DataFrame formatado; - “url”: Endereço da API que retorna o arquivo JSON.
- verificar_certificadobool, default=True
Defina esse argumento como False em caso de falha na verificação do certificado SSL.
Returns
- pandas.core.frame.DataFrame | str | dict | list[dict]
Breve estatística descritiva da expectativa de mercado de cada indicador por período de referência.
Raises
- ValueError
Em caso de parâmetros inválidos.
Notes
- API original de expectativas de mercado
https://olinda.bcb.gov.br/olinda/servico/Expectativas/versao/v1/swagger-ui3#/
- Base de Cálculo 0:
Uso das expectativas mais recentes informadas pelas instituições participantes a partir do 30º dia anterior à data de cálculo das estatísticas.
- Base de Cálculo 1:
Uso das expectativas mais recentes informadas pelas instituições participantes a partir do 4º dia útil anterior à data de cálculo das estatísticas.
Examples
>>> bacen.expectativa(expectativa='mensal', indicador='IGP-M') Indicador Data DataReferencia Media Mediana DesvioPadrao ... 0 IGP-M 2021-06-25 07/2022 0.31 0.30 0.21 ... 1 IGP-M 2021-06-25 07/2021 0.64 0.61 0.42 ... 2 IGP-M 2021-06-25 06/2021 1.25 1.10 0.58 ... 3 IGP-M 2021-06-25 11/2022 0.47 0.47 0.16 ... 4 IGP-M 2021-06-25 11/2021 0.50 0.50 0.24 ... .. ... ... ... ... ... ... ...
>>> bacen.expectativa( ... expectativa = 'trimestral', ... indicador = 'PIB Total', ... top = 3, ... ordenar_por = 'Media', ... asc = True ... ) Indicador Data DataReferencia Media Mediana DesvioPadrao ... 0 PIB Total 2020-06-02 2/2020 -14.00 -14.0 3.92 ... 1 PIB Total 2020-06-09 2/2020 -14.00 -13.4 3.55 ... 2 PIB Total 2020-06-01 2/2020 -13.99 -14.0 3.91 ...
- DadosAbertosBrasil.bacen._moedas.moedas(formato: Literal['json', 'pandas', 'url'] = 'pandas', verificar_certificado: bool = True) DataFrame | str | dict | list[dict] [código-fonte]
Obtém os nomes e símbolos das principais moedas internacionais.
Parameters
- formato{“json”, “pandas”, “url”}, default=”pandas”
Formato do dado que será retornado: - “json”: Dicionário com as chaves e valores originais da API; - “pandas”: DataFrame formatado; - “url”: Endereço da API que retorna o arquivo JSON.
- verificar_certificadobool, default=True
Defina esse argumento como False em caso de falha na verificação do certificado SSL.
Returns
- pandas.core.frame.DataFrame | str | dict | list[dict]
Nomes e símbolos das principais moedas internacionais.
See Also
- DadosAbertosBrasil.bacen.cambio
Utilize a função bacen.moedas para identificar os argumentos da função bacen.cambio.
Notes
- API original das cotações de câmbio
https://olinda.bcb.gov.br/olinda/servico/PTAX/versao/v1/swagger-ui3
- Moedas do tipo ‘A’:
Para calcular o valor equivalente em US$ (dólar americano), divida o montante na moeda consultada pela respectiva paridade.
Para obter o valor em R$ (reais), multiplique o montante na moeda consultada pela respectiva taxa.
- Moedas do tipo ‘B’:
Para calcular o valor equivalente em US$ (dólar americano), multiplique o montante na moeda consultada pela respectiva paridade.
Para obter o valor em R$ (reais), multiplique o montante na moeda consultada pela respectiva taxa.
Examples
>>> bacen.moedas() simbolo nome tipo 0 AUD Dólar australiano B 1 CAD Dólar canadense A 2 CHF Franco suíço A 3 DKK Coroa dinamarquesa A 4 EUR Euro B 5 GBP Libra Esterlina B 6 JPY Iene A 7 NOK Coroa norueguesa A 8 SEK Coroa sueca A 9 USD Dólar dos Estados Unidos A
- DadosAbertosBrasil.bacen._serie.serie(cod: Annotated[int, Gt(gt=0)], ultimos: Annotated[int, Gt(gt=0)] | None = None, inicio: date | None = None, fim: date | None = None, index: bool = False, formato: Literal['json', 'pandas', 'url'] = 'pandas', verificar_certificado: bool = True) DataFrame | str | dict | list[dict] [código-fonte]
Série do Sistema Gerenciador de Série Temporais (SGS) do Banco Central.
Parameters
- codint
Código da série temporal. Utilize o seguinte link para obter o número da série desejada: https://www3.bcb.gov.br/sgspub/
- ultimosint, optional
Retorna os últimos N valores da série numérica.
- iniciodate, optional
Valor datetime ou string no formato de data “AAAA-MM-DD” que representa o primeiro dia da pesquisa.
- fimdate, optional
Valor datetime ou string no formato de data “AAAA-MM-DD” que representa o último dia da pesquisa. Caso este campo seja None, será considerada a data de hoje.
- indexbool, default=False
Define se a coluna “data” será o index do DataFrame.
- formato{“json”, “pandas”, “url”}, default=”pandas”
Formato do dado que será retornado: - “json”: Dicionário com as chaves e valores originais da API; - “pandas”: DataFrame formatado; - “url”: Endereço da API que retorna o arquivo JSON.
- verificar_certificadobool, default=True
Defina esse argumento como False em caso de falha na verificação do certificado SSL.
Returns
- pandas.core.frame.DataFrame | str | dict | list[dict]
Valores da série temporal pesquisada.
Raises
- JSONDecodeError
Em caso de parâmetros inválidos.
See Also
- DadosAbertosBrasil.favoritos
O módulo favoritos apresenta as principais séries temporáis do Banco Central do Brasil.
Notes
Os argumentos inicio e fim devem ser usados em conjunto para funcionar.
- API original do SGS - Sistema Gerenciador de Séries Temporais
Examples
Capturar a taxa SELIC desde 2010 até 2021.
>>> bacen.serie(cod=432, inicio='2010-01-01', fim='2021-01-01') data valor 0 2010-01-01 8.75 1 2010-01-02 8.75 2 2010-01-03 8.75 3 2010-01-04 8.75 4 2010-01-05 8.75 .. ... ...
Capturar os últimos 5 valores da meta de inflação.
>>> bacen.serie(cod=13521, ultimos=5) data valor 0 2019-01-01 4.25 1 2020-01-01 4.00 2 2021-01-01 3.75 3 2022-01-01 3.50 4 2023-01-01 3.25
Capturar toda a série de reservas internacionais (em milhões de dólares) usando a data como index do DataFrame.
>>> bacen.serie(cod=3546, index=True) valor data 1970-12-01 1187 1971-01-01 1229 1971-02-01 1280 1971-03-01 1316 1971-04-01 1379 ... ...