Ir para o conteúdo

CONAB Progresso de Safra

Dados semanais de progresso de plantio e colheita das principais culturas anuais, publicados pela CONAB.

conab.progresso_safra()

Percentuais de semeadura e colheita por cultura x estado x semana.

import agrobr

df = await agrobr.conab.progresso_safra(produto="Soja", uf="MT")

Parâmetros

Parâmetro Tipo Obrigatório Descrição
produto str Não Cultura publicada, sem diferenciar caixa e acento: "Soja", "Milho 1a", "Milho 2a", "Arroz", "Algodao", "Feijao 1a", "Trigo". Também aceita os nomes do dataset (milho_1, milho_2, feijao_1), feijao para a 1ª safra e milho para a 1ª e a 2ª. Outro valor, inclusive um pedaço do nome, levanta InvalidParameterError com as culturas publicadas, antes do pedido. Se None, todas
uf str Não Sigla da UF (ex: "MT", "GO", "PR"), ou "MEDIA_ESTADOS" para a média da CONAB dos estados monitorados, que não é a média simples das UFs (contrato). Nome por extenso ou sigla inexistente levanta InvalidParameterError antes do pedido. "BR" é recusado com InvalidParameterError, porque a CONAB não publica Brasil. Se None, todos
operacao str Não "Semeadura" ou "Colheita" (outro valor levanta InvalidParameterError antes do pedido). Se None, ambas
semana_url str Não URL de uma semana específica, em https://www.gov.br/conab/ (outra URL levanta InvalidParameterError antes do pedido). Se None, busca a mais recente
as_polars bool Não Se True, retorna polars.DataFrame
return_meta bool Não Se True, retorna (DataFrame, MetaInfo)

Colunas de Retorno

Coluna Tipo Descrição
cultura str Nome da cultura como publicado (ex: "Soja", "Milho 2ª")
safra str Safra como publicada: "YYYY/YY" (ex: "2025/26"), ou ano civil "YYYY" no trigo (ex: "2026")
operacao str "Semeadura" ou "Colheita"
uf str UF (ex: "MT", "GO"); "MEDIA_ESTADOS" na linha "N estados" da planilha (média da própria CONAB dos estados monitorados, não a média simples das UFs nem o Brasil); "BR" só se a planilha publicar "Brasil"
semana_atual str Data de referencia da semana (YYYY-MM-DD)
pct_ano_anterior float % mesma semana do ano anterior (0.0-1.0)
pct_semana_anterior float % semana anterior (0.0-1.0)
pct_semana_atual float % semana atual (0.0-1.0)
pct_media_5_anos float % media dos últimos 5 anos (0.0-1.0)
revisado bool Algum percentual da linha veio com a marca de revisão * da CONAB; nulo sem percentual numérico
n_estados int Estados da média ("7 estados"), lido da planilha; nulo nas UFs
cobertura_area_pct float Fração da área cultivada coberta por esses estados, lida da nota "(Esses N estados correspondem a X% da área cultivada)" (0,98 = 98%), sem recálculo; nulo nas UFs

A linha "N estados" é uma média calculada pela própria CONAB e não se reproduz com as áreas do levantamento: não é o total do Brasil. O percentual de colheita dos blocos marcados com * é calculado sobre o semeado acumulado (nota da planilha), não sobre a área total.

Os percentuais por UF são compilados pela CONAB a partir dos levantamentos estaduais, e semana_atual é a semana da publicação da CONAB. No Paraná, o valor repete o levantamento do DERAL da segunda-feira anterior (no boletim de 18/09/2026, o DERAL de 14/09): para a data do levantamento, use deral.condicao_lavouras.

Culturas Disponíveis

Cultura Estados Operações
Soja 12 estados (96% da área) Semeadura, Colheita
Milho 1ª 9 estados (92% da área) Semeadura, Colheita
Milho 2ª 9 estados (91% da área) Semeadura, Colheita
Arroz 6 estados (88% da área) Semeadura, Colheita
Feijão 1ª 8 estados (91% da área) Semeadura, Colheita
Algodão 7 estados (98% da área) Semeadura, Colheita
Trigo 8 estados (99,9% da área) Colheita

A tabela vale para os boletins de 27/09/2025, 22/02/2026, 28/08/2026 e 18/09/2026, e o trigo só aparece com colheita neles. Os estados e a cobertura de cada bloco saem da nota da planilha e podem mudar de safra para safra.


conab.semanas_disponiveis()

Lista semanas disponiveis no portal CONAB Progresso de Safra.

import agrobr

semanas = await agrobr.conab.semanas_disponiveis()
for s in semanas[:3]:
    print(s["descricao"], s["url"])

Parametros

Parametro Tipo Obrigatorio Descricao
max_pages int Nao Maximo de paginas a buscar (default 4 = ~80 semanas). Precisa ser inteiro positivo: 0 ou negativo levanta InvalidParameterError

Retorno

Lista de dicts com descricao e url para cada semana disponivel.


Uso Síncrono

from agrobr import sync

df = sync.conab.progresso_safra(produto="Soja")
semanas = sync.conab.semanas_disponiveis()

Exemplos

Progresso da soja no Mato Grosso

import agrobr

df = await agrobr.conab.progresso_safra(
    produto="Soja",
    uf="MT",
    operacao="Colheita",
)
print(f"Colheita soja MT: {df.iloc[0]['pct_semana_atual']:.1%}")

Buscar semana específica

import agrobr

semanas = await agrobr.conab.semanas_disponiveis(max_pages=1)
url_semana = semanas[0]["url"]

df = await agrobr.conab.progresso_safra(semana_url=url_semana)

Comparar progresso entre estados

import agrobr

df = await agrobr.conab.progresso_safra(
    produto="Soja",
    operacao="Colheita",
)
pivot = df[["uf", "pct_semana_atual"]].sort_values(
    "pct_semana_atual", ascending=False
)
print(pivot.to_string(index=False))

Fonte dos Dados

  • Provedor: CONAB — Companhia Nacional de Abastecimento
  • Frequência: Semanal (publicado as sextas-feiras)
  • Dados: % plantio e colheita por cultura x estado
  • Formato: XLSX
  • Serie: Safra atual + comparativo ano anterior + media 5 anos
  • Licença: CC BY-ND 3.0 (rodapé da ficha da planilha), classificação livre: reprodução comercial com atribuição à CONAB, sem distribuir adaptações protegidas. Veja Licenças
  • Portal: Progresso de Safra