Skip to content

composicao_defensivos v1.0

Pesticide components and published concentrations from Agrofit/MAPA.

Source: MAPA. Contract registry key: agrofit_composicao.

Schema

Column Type Nullable Unit
tipo str No —
nr_registro str No —
ordem_componente int No —
ingrediente_ativo str Yes —
grupo_quimico str Yes —
componente_texto str No —
concentracao_texto str Yes —
concentracao_valor float Yes —
concentracao_unidade str Yes —

Primary key: tipo, nr_registro, ordem_componente

All stable columns must exist, including nullable columns and empty results. Breaking schema changes require a major contract version.

Semantics and provenance

Position distinguishes repeated ingredients within each family and registration. tipo accepts formulados or tecnicos. Concentration text and units are retained; ambiguous numeric values remain null with diagnostics, without implicit unit conversion.

return_meta=True returns data and MetaInfo, including attempted/selected sources, acquisition time, contract version and source diagnostics. These current publications do not support selecting a historical revision through deterministic.

Parameters

Parameter Type Default
tipo str 'formulados'
nr_registro str \| None None
ingrediente_ativo str \| None None
use_cache bool True
as_polars bool False
return_meta bool False

Example

from agrobr import contracts, datasets

df, meta = await datasets.composicao_defensivos(tipo="tecnicos", nr_registro="00301", return_meta=True)
contracts.validate_dataset(df, "agrofit_composicao")

Use from agrobr.sync import datasets for synchronous calls, without await. as_polars=True requires pip install agrobr[polars].

JSON schema and licence

agrobr/schemas/agrofit_composicao.json · get_contract("agrofit_composicao").

livre — see data licences and the API/source details.

Export of 2026-09-18

The two CSVs of the 2026-09-18 export contain 4,403 formulated products, 279,707 authorization occurrences and 2,992 technical products. Two ambiguous expressions in that export, 1.9 10*10 UFC/g and 200 1x10E10 UFC/g, retain their text and come out with null value and unit and a diagnostic. Numeric interpretation is not guaranteed for the whole component population.

The cache retains non-null values, dtypes, component position and UTC provenance; None and pd.NA are equivalent only in nullable fields. Composition and situation text retain the literal; other fields retain the documented cleanup. Authorizations are not deduplicated.

A suffix published in the concentration fields can include an ambiguous expression and does not by itself certify a measurement unit or numeric interpretation. Catalogue, CSV and cache share an origin: none of them confirms the historical population.