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

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

https://www3.bcb.gov.br/sgspub/

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
...            ...