Pular para conteúdo

API ANP Diesel

O modulo ANP Diesel fornece dados de precos de revenda e volumes de venda de diesel no Brasil, publicados pela Agencia Nacional do Petroleo. Namespace: agrobr.alt.anp_diesel.

Funcoes

precos_diesel

Precos de revenda de diesel por municipio, UF ou nivel Brasil.

async def precos_diesel(
    uf: str | None = None,
    municipio: str | None = None,
    produto: str = "DIESEL S10",
    inicio: str | date | None = None,
    fim: str | date | None = None,
    agregacao: str = "semanal",
    nivel: str = "municipio",
    return_meta: bool = False,
) -> pd.DataFrame | tuple[pd.DataFrame, MetaInfo]

Parametros:

Parametro Tipo Descricao
uf str \| None Filtro por UF (ex: SP, MT, PR)
municipio str \| None Filtro por municipio (substring case-insensitive)
produto str "DIESEL" ou "DIESEL S10" (default)
inicio str \| date \| None Data inicial (YYYY-MM-DD)
fim str \| date \| None Data final (YYYY-MM-DD)
agregacao str "semanal" (default) ou "mensal"
nivel str "municipio" (default), "uf" ou "brasil"
return_meta bool Se True, retorna tupla (DataFrame, MetaInfo)

Retorno:

DataFrame com colunas: data, uf, municipio, produto, preco_venda, preco_compra, margem, n_postos

Exemplo:

from agrobr.alt import anp_diesel

# Precos de DIESEL S10
df = await anp_diesel.precos_diesel()

# Filtrar por UF e periodo
df = await anp_diesel.precos_diesel(
    uf="MT",
    inicio="2024-01-01",
    fim="2024-06-30",
)

# Nivel UF com agregacao mensal
df = await anp_diesel.precos_diesel(nivel="uf", agregacao="mensal")

vendas_diesel

Volumes de venda de diesel por UF (mensal).

async def vendas_diesel(
    uf: str | None = None,
    inicio: str | date | None = None,
    fim: str | date | None = None,
    return_meta: bool = False,
) -> pd.DataFrame | tuple[pd.DataFrame, MetaInfo]

Parametros:

Parametro Tipo Descricao
uf str \| None Filtro por UF (ex: SP, MT, PR)
inicio str \| date \| None Data inicial
fim str \| date \| None Data final
return_meta bool Se True, retorna tupla (DataFrame, MetaInfo)

Retorno:

DataFrame com colunas: data, uf, regiao, produto, volume_m3

Exemplo:

from agrobr.alt import anp_diesel

# Volumes de diesel
df = await anp_diesel.vendas_diesel()

# Filtrar por UF
df = await anp_diesel.vendas_diesel(uf="MT")

Versao Sincrona

from agrobr.sync import alt

df = alt.anp_diesel.precos_diesel(uf="MT")
df = alt.anp_diesel.vendas_diesel()

Notas

  • Fonte: ANP Gov.br — licenca livre (Decreto 8.777/2016)
  • Dados: XLSX bulk (precos 2013+), XLS (volumes)
  • XLSX de precos por municipio podem ser grandes (50-100MB) — cache por periodo do arquivo
  • TTL cache: 7 dias