Visão geral
A API foi pensada para ser somente leitura para aplicações clientes. O painel administrativo cria empresas e app-keys, e a aplicação cliente usa a chave para consultar culturas, pragas/alvos, agrotóxicos e recomendações.
Base URL de producao: https://agrobase-api.sp1.br.saveincloud.net.br
Para conferência manual, veja a página de fontes de dados por estado e fontes complementares.
Autenticação
Envie a app-key no header x-api-key. O valor completo da chave aparece no painel da empresa.
GET /v1/culturas HTTP/1.1
Host: agrobase-api.sp1.br.saveincloud.net.br
x-api-key: agb_sua_chave_aqui
Se a empresa estiver inativa ou a chave estiver revogada, a API deve retornar 401 ou 403.
Mostra como a empresa e a app-key estao configuradas. Use para conferir UF, plano, validade da chave e permissoes antes de carregar dados locais.
GET /v1/configuracoes
x-api-key: agb_sua_chave_aqui
{
"api": { "nome": "AgroBase API", "versao": "0.1.0", "ambiente": "production" },
"empresa": {
"id": 1,
"nome": "Freeline Informatica Ltda",
"cnpj": "00000000000000",
"email": "admin@freeline.inf.br",
"uf": "SC",
"plano": "plus",
"permite_curadoria": true,
"todas_fontes": true,
"culturas_preferidas": ["CUL000337", "CUL000208", "CUL000249"]
},
"appKey": {
"id": 7,
"nome": "agrobase-api1",
"status": "ativo",
"expira_em": "2099-12-31T23:59:59.000Z"
}
}
Padrões da v1
| Formato | JSON em UTF-8 |
|---|---|
| Datas | ISO-8601, exemplo 2026-07-02T12:00:00.000Z |
| Paginação | ?pagina=1&limite=100, quando o endpoint retornar listas grandes |
| Status | Registros ativos por padrão. Quando existir filtro, use ?status=ativo|inativo|todos |
| UF | A app-key pode ter uma UF associada; endpoints de recomendação devem respeitar esse escopo. |
Endpoints disponíveis agora
Verifica se a aplicação esta online.
{
"status": "ok",
"ambiente": "production",
"agora": "2026-07-02T12:00:00.000Z"
}
Verifica a conexão com PostgreSQL.
{
"status": "ok",
"database": "agrobase",
"agora": "2026-07-02T12:00:00.000Z"
}
Endpoints de dados da AgroBase
Estes são os contratos previstos para a v1. A implementação sera feita em cima das tabelas finais do schema agrobase.
Culturas
Lista culturas ativas. Para empresas com UF PR, SC ou RS, retorna apenas culturas que tenham fonte naquela UF. Para outras UFs, retorna a lista geral. O campo id e o identificador inteiro persistente; codigo e o código técnico rastreável.
| Parâmetro | Uso |
|---|---|
busca | Busca parcial por nome, código interno, nome científico ou código/nome da fonte. |
pagina | Página da lista. Padrão: 1. |
limite | Itens por pagina. Padrão: 100, máximo: 200. |
atualizadoDesde | Opcional. Filtra registros atualizados a partir da data informada. |
preferidos=1 | Retorna apenas as culturas preferidas configuradas para a empresa da app-key. |
GET /v1/culturas?busca=soja&pagina=1&limite=5
GET /v1/culturas?preferidos=1
{
"dados": [
{
"id": 4447,
"codigo": "CUL000170",
"nome": "Farelo de Soja",
"status": "ativo",
"icone_chave": "openfarm-soy-bean",
"fontes": [
{ "fonte": "agrolink", "uf": null, "codigo": "945", "nome": "Farelo de soja" },
{ "fonte": "celepar_pr", "uf": "PR", "codigo": "731", "nome": "Farelo de Soja" },
{ "fonte": "cidasc_sc", "uf": "SC", "codigo": "66", "nome": "Farelo de Soja" },
{ "fonte": "embrapa", "uf": null, "codigo": "farelo de soja armazenado", "nome": "Farelo de soja - Armazenado" },
{ "fonte": "gedave_sp", "uf": "SP", "codigo": "739", "nome": "FARELO DE SOJA" },
{ "fonte": "seapi_rs", "uf": "RS", "codigo": "226", "nome": "Farelo de soja" }
],
"icone_download_url": "/v1/icones/openfarm-soy-bean"
},
{
"id": 4711,
"codigo": "CUL000467",
"nome": "Farinha de Soja",
"metodo_plantio": "Semente (Direto)",
"sazonalidade": "Outono / Primavera (Safra)",
"ciclo_maturacao": "100 a 140 dias",
"fontes": [
{ "fonte": "seapi_rs", "uf": "RS", "codigo": "295", "nome": "Farinha de Soja" }
],
"icone_download_url": "/v1/icones/openfarm-soy-bean"
},
{
"id": 4599,
"codigo": "CUL000337",
"nome": "Soja",
"metodo_plantio": "Semente (Direto)",
"sazonalidade": "Outono / Primavera (Safra)",
"ciclo_maturacao": "100 a 140 dias",
"status": "ativo",
"fontes": [
{ "fonte": "agrolink", "uf": null, "codigo": "1", "nome": "Soja" },
{ "fonte": "celepar_pr", "uf": "PR", "codigo": "531", "nome": "Soja" },
{ "fonte": "cidasc_sc", "uf": "SC", "codigo": "129", "nome": "Soja", "status": null },
{ "fonte": "embrapa", "uf": null, "codigo": "soja", "nome": "Soja" },
{ "fonte": "gedave_sp", "uf": "SP", "codigo": "921", "nome": "SOJA" },
{ "fonte": "seapi_rs", "uf": "RS", "codigo": "193", "nome": "Soja" }
],
"icone_download_url": "/v1/icones/openfarm-soy-bean"
},
{
"id": 4759,
"codigo": "CUL000542",
"nome": "Soja BT",
"fontes": [
{ "fonte": "embrapa", "uf": null, "codigo": "soja bt", "nome": "Soja BT" }
],
"icone_download_url": "/v1/icones/openfarm-soy-bean"
},
{
"id": 4600,
"codigo": "CUL000338",
"nome": "Soja Cultivance",
"fontes": [
{ "fonte": "celepar_pr", "uf": "PR", "codigo": "751", "nome": "Soja Cultivance" }
],
"icone_download_url": "/v1/icones/openfarm-soy-bean"
}
],
"paginacao": { "pagina": 1, "limite": 5, "total": 14 },
"escopo": { "uf": "SC", "filtroFonteUf": false, "todasFontes": true }
}
Consulta uma cultura por id inteiro ou código interno CUL..., respeitando o mesmo filtro de UF da app-key.
GET /v1/culturas/337
GET /v1/culturas/CUL000337
{
"cultura": {
"id": 337,
"codigo": "CUL000337",
"nome": "Soja",
"nome_normalizado": "soja",
"status": "ativo",
"icone_chave": "openfarm-soy-bean",
"icone_download_url": "/v1/icones/openfarm-soy-bean",
"fontes": [
{ "fonte": "cidasc_sc", "uf": "SC", "codigo": "129", "nome": "Soja", "status": null }
]
}
}
Retorna os codigos das culturas preferidas da empresa dona da app-key.
GET /v1/preferidos/culturas
{
"culturas": ["CUL000337", "CUL000208", "CUL000249"]
}
Substitui a lista inteira de culturas preferidas. Aceita codigos CUL... ou ids inteiros. PUT tambem funciona no mesmo endpoint.
POST /v1/preferidos/culturas
Content-Type: application/json
x-api-key: agb_sua_chave_aqui
{
"culturas": ["CUL000337", "CUL000208", 249]
}
{
"culturas": ["CUL000337", "CUL000208", "CUL000249"]
}
Adiciona uma cultura na lista sem apagar as demais.
POST /v1/preferidos/culturas/CUL000337
Remove uma cultura da lista de preferidas.
DELETE /v1/preferidos/culturas/337
Lista combinada de cultura + variante. Quando a cultura não possui variante, ela também aparece com campos de variante vazios. Usa o mesmo critério de UF da lista de culturas. A busca parcial filtra a cultura; a variante e apenas a forma de exibição. Também aceita preferidos=1.
GET /v1/culturas-variantes?busca=soja&pagina=1&limite=50
GET /v1/culturas-variantes?preferidos=1
{
"dados": [
{
"cultura_codigo": "CUL000001",
"cultura_nome": "Soja",
"variante_id": 15,
"variante_nome": "Soja geneticamente modificada",
"variante_tipo": "variedade",
"variante_codigo_fonte": "SOJA-GM"
}
],
"paginacao": { "pagina": 1, "limite": 50, "total": 1 },
"escopo": { "uf": "SC", "filtroFonteUf": true }
}
Consulta uma variante pelo id inteiro da variante, usando o variante_id retornado em /v1/culturas-variantes. Nao busca pelo id da cultura.
O variante_id pode ser um número grande. Ele é calculado pelo exportador a partir da cultura, fonte, código da fonte e nome normalizado para permanecer estável entre importações.
GET /v1/culturas-variantes/{variante_id}
{
"variante": {
"id": 15,
"cultura_id": 337,
"cultura_codigo": "CUL000337",
"cultura_nome": "Soja",
"nome": "Soja geneticamente modificada",
"tipo": "variedade",
"codigo_fonte": "SOJA-GM",
"status": "ativo"
}
}
Agrotóxicos
Lista agrotóxicos autorizados conforme a base e escopo da app-key. Para empresas com UF PR, SC ou RS, exige fonte da própria UF.
GET /v1/agrotoxicos?busca=quallis
GET /v1/agrotoxicos?cultura=CUL000337&praga=PRG000010
{
"dados": [
{
"id": 943,
"codigo": "PRO000943",
"nome": "QUALLIS",
"registro_mapa": "26818",
"fabricante": { "nome": "OURO FINO QUÍMICA S.A." },
"classe": "Herbicida",
"fontes": [
{ "fonte": "cidasc_sc", "uf": "SC", "codigo": "1363", "nome": "QUALLIS", "registro_mapa": "26818" },
{ "fonte": "agrolink", "uf": null, "codigo": "10736", "nome": "Quallis", "registro_mapa": "26818" }
],
"bula_download_url": "/v1/agrotoxicos/PRO000943/documentos/bula"
}
],
"paginacao": { "pagina": 1, "limite": 100, "total": 1 }
}
Consulta agrotóxico por id inteiro ou código interno PRO.... Use completa=1 para retornar recomendações e textos. Os filtros cultura, praga e método limitam os detalhes retornados.
GET /v1/agrotoxicos/PRO000943
GET /v1/agrotoxicos/943?completa=1
GET /v1/agrotoxicos/PRO000943?completa=1&cultura=CUL000337&praga=PRG000010&metodo=aerea
{
"agrotoxico": {
"id": 943,
"codigo": "PRO000943",
"nome": "QUALLIS",
"registro_mapa": "26818",
"fabricante": { "nome": "OURO FINO QUÍMICA S.A." },
"classe": "Herbicida",
"fontes": [
{ "fonte": "cidasc_sc", "uf": "SC", "codigo": "1363", "nome": "QUALLIS" }
],
"bula_download_url": "/v1/agrotoxicos/PRO000943/documentos/bula"
}
}
Atalho para documentos de agrotóxico. tipo aceita bula, ficha_emergencia ou fds.
GET /v1/agrotoxicos/PRO000061/documentos/bula
GET /v1/agrotoxicos/PRO000061/documentos/ficha_emergencia
GET /v1/agrotoxicos/61/documentos/fds
Consulta recomendações de um agrotóxico. O agrotóxico é sempre obrigatório na rota. Pode filtrar por cultura e praga/alvo.
GET /v1/agrotoxicos/PRO000943/recomendacoes
GET /v1/agrotoxicos/943/recomendacoes?cultura=CUL000337&praga=PRG000010
{
"agrotoxico": { "id": 943, "codigo": "PRO000943", "nome": "QUALLIS" },
"dados": [
{
"dosagem_texto": "4 l/ha",
"calda_texto": "100 l/ha",
"intervalo_seguranca_texto": "NÃO DETERMINADO",
"epoca_aplicacao_texto": "Realizar a aplicação em qualquer época do ano.",
"cultura": { "codigo": "CUL000293", "nome": "Pastagem" },
"praga": { "codigo": "PRG002010", "nome": "Serra-goela, Unha-de-gato, Barbadinho, Sessenta-feridas" }
}
]
}
Retorna textos base de precaução, EPI, manejo e devolução, além dos textos condicionais por cultura e método de aplicação. O texto base sempre volta, mesmo quando o filtro não encontra textos condicionais.
GET /v1/agrotoxicos/PRO000943/textos
GET /v1/agrotoxicos/PRO000943/textos?tipo=precaucoes_uso&cultura=CUL000337&metodo=aerea
{
"textos": {
"agrotoxico": { "id": 943, "codigo": "PRO000943", "nome": "QUALLIS" },
"base": {
"precaucoes_uso": "Consulte as precauções de uso constantes na bula do produto.",
"manejo_integrado_resistencia": "Sempre que houver disponibilidade de informações, incluir práticas de manejo integrado."
},
"condicionais": []
}
}
Pragas / alvos
Lista pragas/alvos ativos. A busca parcial consulta nome comum e nome científico ao mesmo tempo. Para empresas com UF PR, SC ou RS, respeita a fonte da UF quando existir.
| Parâmetro | Descrição |
|---|---|
busca | Busca por id, código PRG..., nome comum, nome científico ou nomes das fontes. |
cultura | Opcional. Filtra pragas com recomendação para uma cultura. Aceita id inteiro ou código CUL.... |
agrotoxico | Opcional. Filtra pragas com recomendação para um agrotóxico. Aceita id inteiro ou código PRO.... |
pagina | Página. Padrão: 1. |
limite | Quantidade por página. Máximo: 200. |
GET /v1/pragas?busca=broca&pagina=1&limite=5
GET /v1/pragas?cultura=CUL000337
GET /v1/pragas?agrotoxico=PRO000943
GET /v1/pragas?cultura=337&agrotoxico=943
{
"dados": [
{
"id": 32592,
"codigo": "PRG000157",
"nome": "Arlequim-pequeno, Broca-do-tronco",
"nome_cientifico": "Macropophora accentifer",
"categoria": "inseto",
"fontes": [
{ "fonte": "agrolink", "uf": null, "codigo": "2982", "nome": "Besouro do tronco" },
{ "fonte": "celepar_pr", "uf": "PR", "codigo": "320", "nome": "Arlequim-pequeno, Broca-do-tronco" },
{ "fonte": "cidasc_sc", "uf": "SC", "codigo": "1006", "nome_cientifico": "Macropophora accentifer" },
{ "fonte": "embrapa", "uf": null, "codigo": "macropophora accentifer", "nome": "Arlequim-pequeno" },
{ "fonte": "gedave_sp", "uf": "SP", "codigo": "2104", "nome_cientifico": "Macropophora accentifer" },
{ "fonte": "seapi_rs", "uf": "RS", "codigo": "2317", "nome": "Broca-do-tronco, Arlequim-pequeno" }
],
"icone_download_url": "/v1/icones/praga-inseto"
},
{
"id": 32662,
"codigo": "PRG000228",
"nome": "Besouro, Broca-do-colmo",
"nome_cientifico": "Migdolus fonsecai",
"categoria": "inseto",
"fontes": [
{ "fonte": "celepar_pr", "uf": "PR", "codigo": "312", "nome": "Besouro, Broca-do-colmo" },
{ "fonte": "cidasc_sc", "uf": "SC", "codigo": "1054", "nome_cientifico": "Migdolus fonsecai" }
],
"icone_download_url": "/v1/icones/praga-inseto"
},
{
"id": 32676,
"codigo": "PRG000242",
"nome": "Bicho-tromba, Broca-da-batatinha",
"nome_cientifico": "Phyrdenus muriceus",
"categoria": "inseto",
"fontes": [
{ "fonte": "celepar_pr", "uf": "PR", "codigo": "291", "nome": "Bicho-tromba, Broca-da-batatinha" },
{ "fonte": "cidasc_sc", "uf": "SC", "codigo": "1217", "nome_cientifico": "Phyrdenus muriceus" },
{ "fonte": "embrapa", "uf": null, "codigo": "phyrdenus muriceus", "nome": "Bicho-tromba" },
{ "fonte": "gedave_sp", "uf": "SP", "codigo": "2257", "nome_cientifico": "Phyrdenus muriceus" },
{ "fonte": "seapi_rs", "uf": "RS", "codigo": "1185", "nome_cientifico": "Phyrdenus muriceus" }
],
"icone_download_url": "/v1/icones/praga-inseto"
},
{
"id": 32701,
"codigo": "PRG000267",
"nome": "Broca-da-amendoa",
"nome_cientifico": "Cryptophlebia illepida",
"categoria": "inseto",
"fontes": [
{ "fonte": "agrolink", "uf": null, "codigo": "3451", "nome": "Broca-da-amendoa" },
{ "fonte": "celepar_pr", "uf": "PR", "codigo": "3120", "nome": "Broca-da-amendoa" },
{ "fonte": "cidasc_sc", "uf": "SC", "codigo": "1932", "nome_cientifico": "Cryptophlebia illepida" },
{ "fonte": "embrapa", "uf": null, "codigo": "cryptophlebia illepida", "nome": "Broca-da-amendoa" },
{ "fonte": "seapi_rs", "uf": "RS", "codigo": "2731", "nome_cientifico": "Cryptophlebia illepida" }
],
"icone_download_url": "/v1/icones/praga-inseto"
},
{
"id": 35160,
"codigo": "PRG002772",
"nome": "Broca da cana",
"nome_cientifico": "Diatraea saccharilis",
"categoria": "inseto",
"fontes": [
{ "fonte": "seapi_rs", "uf": "RS", "codigo": "873", "nome": "Broca da cana" }
],
"icone_download_url": "/v1/icones/praga-inseto"
}
],
"paginacao": { "pagina": 1, "limite": 5, "total": 69 },
"escopo": { "uf": "SC", "filtroFonteUf": false, "todasFontes": true }
}
Consulta uma praga/alvo por id inteiro ou código interno PRG.... Quando usar id, retorna mesmo se estiver inativo; ainda respeita a UF da app-key.
GET /v1/pragas/10
GET /v1/pragas/PRG000010
{
"praga": {
"id": 10,
"codigo": "PRG000010",
"nome": "Ácaro",
"nome_cientifico": "Brevipalpus chilensis",
"categoria": "acaro",
"status": "ativo"
}
}
Metodos de aplicação
Lista os métodos estáveis usados nos textos condicionais: costal, tratoral, irrigacao e aerea.
GET /v1/metodos-aplicacao?busca=aerea
{
"dados": [
{ "id": 4, "codigo": "MET000004", "nome": "Aérea", "nome_normalizado": "aerea", "status": "ativo" }
],
"paginacao": { "pagina": 1, "limite": 100, "total": 1 }
}
Consulta por id inteiro ou código interno MET....
GET /v1/metodos-aplicacao/4
GET /v1/metodos-aplicacao/MET000004
{
"metodo": { "id": 4, "codigo": "MET000004", "nome": "Aérea", "nome_normalizado": "aerea", "status": "ativo" }
}
Cadastros auxiliares
Lista cadastros pequenos vindos da CIDASC e do RS. Use busca, pagina e limite. Quando pesquisar por id inteiro, a API retorna mesmo registros inativos.
| Chave | Cadastro |
|---|---|
cidasc-unidades-medida | Unidades de medida CIDASC |
cidasc-unidades-derivadas | Unidades derivadas CIDASC |
cidasc-agrotoxico-medidas | Medidas de agrotóxico CIDASC |
cidasc-localidades | Localidades CIDASC |
cidasc-tipos-logradouro | Tipos de logradouro CIDASC |
seapi-rs-unidades | Unidades SEAPI/RS |
seapi-rs-tipos-logradouro | Tipos de logradouro SEAPI/RS |
GET /v1/cadastros/cidasc-unidades-medida?busca=litro
GET /v1/cadastros/cidasc-localidades?busca=joinville
GET /v1/cadastros/seapi-rs-unidades/12
{
"dados": [
{ "id": 1, "codigo_cidasc": 1, "descricao": "Litro", "sigla": "L", "status": "ativo" }
],
"paginacao": { "pagina": 1, "limite": 100, "total": 1 }
}
Consulta um item por id inteiro ou pelo código da fonte.
{
"cadastro": { "id": 1, "codigo_cidasc": 1, "descricao": "Litro", "sigla": "L", "status": "ativo" }
}
Fornecedores
Lista fornecedores/fabricantes. A busca consulta nome, código interno, CNPJ, UF, grupo e nome curto.
GET /v1/fornecedores?busca=bayer
GET /v1/fornecedores?busca=12345678000199
{
"dados": [
{
"id": 9,
"codigo": "FAB000009",
"nome": "BAYER S.A.",
"nome_curto": "Bayer",
"site": "https://www.bayer.com.br",
"status": "ativo"
}
],
"paginacao": { "pagina": 1, "limite": 100, "total": 1 }
}
Consulta fornecedor por id inteiro ou código interno FAB.... Quando usar id, retorna mesmo se estiver inativo.
GET /v1/fornecedores/9
GET /v1/fornecedores/FAB000009
{
"fornecedor": {
"id": 9,
"codigo": "FAB000009",
"nome": "BAYER S.A.",
"nome_curto": "Bayer",
"site": "https://www.bayer.com.br",
"status": "ativo"
}
}
Arquivos, imagens e PDFs
Consulta arquivos de uma entidade específica. Este endpoint não faz lista grande: informe sempre a entidade, o tipo e o id/codigo. A resposta não expõe a URL real de armazenamento; use download_url.
| Parâmetro | Descrição |
|---|---|
entidade | cultura, praga_alvo ou agrotoxico. Também aceita atalhos como praga e agrotoxico. |
tipo | imagem, bula, ficha_emergencia, fds ou documento. |
id | Id inteiro persistente da entidade. |
codigo | Código interno, como CUL..., PRG... ou PRO.... |
item | Alternativa genérica para enviar id ou codigo. |
GET /v1/arquivos?entidade=cultura&tipo=imagem&codigo=CUL000337
GET /v1/arquivos?entidade=praga_alvo&tipo=imagem&id=17
GET /v1/arquivos?entidade=agrotoxico&tipo=bula&codigo=PRO000061
GET /v1/arquivos?entidade=agrotoxico&tipo=ficha_emergencia&item=61
{
"arquivos": [
{
"id": 10081,
"entidade_tipo": "agrotoxico",
"agrotoxico_id": 61,
"tipo": "bula",
"titulo": "PRO000061-BULA.pdf",
"download_url": "/v1/arquivos/10081/download"
}
]
}
O id do arquivo é gerado na importação da base. O exemplo acima usa um produto com bula, ficha de emergência e FDS publicados: PRO000061.
Baixa ou abre o arquivo pelo proxy da API.
Gera um PDF complementar para ficha de emergência com dados enviados pelo aplicativo cliente. O modelo aceita verso, envelope-frente e envelope-verso.
POST /v1/ficha-emergencia/verso.pdf
Content-Type: application/json
x-api-key: agb_sua_chave_aqui
{
"empresa": {
"razaoSocial": "Teste Agrícola Ltda",
"cnpj": "00.000.000/0001-00",
"endereco": "Rua Exemplo, 123",
"telefone": "(47) 3473-0001",
"contato": "Responsável técnico",
"email": "contato@empresa.com.br"
},
"transportador": {
"nome": "Motorista Exemplo",
"cpf": "000.000.000-00",
"telefone": "(47) 99999-0000",
"placa": "ABC1D23"
}
}
HTTP/1.1 200 OK
Content-Type: application/pdf
Content-Disposition: inline; filename="ficha-emergencia-verso.pdf"
%PDF-1.3 ...
Ícones
Lista as chaves de icone usadas na base e o endpoint de download de cada uma.
GET /v1/icones
{
"pacote_download_url": "/v1/icones/pacote.zip",
"icones": [
{ "chave": "openfarm-soy-bean", "download_url": "/v1/icones/openfarm-soy-bean" },
{ "chave": "agrotoxico-herbicida", "download_url": "/v1/icones/agrotoxico-herbicida" }
]
}
Retorna o SVG de um icone, por exemplo cultura-soja, praga-inseto ou agrotoxico-fungicida.
GET /v1/icones/cultura-soja
Baixa um pacote ZIP com todos os icones para cache local/offline do aplicativo cliente.
Notificações e curadoria
Registra erro, reclamação ou pedido de atualização enviado pelo aplicativo cliente. Qualquer app-key ativa pode usar.
POST /v1/notificacoes
Content-Type: application/json
x-api-key: agb_sua_chave_aqui
{
"tipo": "recomendacao_errada",
"entidade": "agrotoxico",
"entidadeCodigo": "PRO000943",
"titulo": "Dose divergente para pastagem",
"mensagem": "O agrônomo conferiu a bula e acredita que a dose exibida para pastagem está incorreta.",
"contato": "tecnico@cliente.com.br",
"payload": {
"cultura": "CUL000293",
"praga": "PRG002010",
"tela": "receita/recomendacoes"
}
}
{
"notificacao": {
"id": 42,
"tipo": "recomendacao_errada",
"entidade_tipo": "agrotoxico",
"entidade_codigo": "PRO000943",
"titulo": "Dose divergente para pastagem",
"status": "novo",
"criado_em": "2026-07-04T12:00:00.000Z"
}
}
Registra uma alteração sugerida por empresa parceira autorizada. A API salva a proposta em fila; a aplicação/exportador ainda não aplica automaticamente essa curadoria na AgroBase final.
POST /v1/acertos
Content-Type: application/json
x-api-key: agb_sua_chave_aqui
{
"operacao": "corrigir",
"entidade": "cultura",
"entidadeCodigo": "CUL000337",
"campo": "nome",
"valorAnterior": "Soja",
"valorNovo": "Soja comum",
"justificativa": "Padronização interna do parceiro.",
"dados": {
"fonte": "curadoria_cliente",
"observacao": "Validado pelo responsável técnico."
}
}
{
"acerto": {
"id": 18,
"operacao": "corrigir",
"entidade_tipo": "cultura",
"entidade_codigo": "CUL000337",
"campo": "nome",
"status": "pendente",
"criado_em": "2026-07-04T12:05:00.000Z"
}
}
Provisionamento interno Freeline
Cria empresa, usuario inicial e app-key. Este endpoint nao usa x-api-key; ele exige a chave interna x-provision-key configurada em FREELINE_PROVISION_KEY.
POST /v1/provisionamento/empresas
Content-Type: application/json
x-provision-key: chave-interna-da-freeline
{
"empresa": {
"nome": "Cliente Exemplo Ltda",
"cnpj": "00000000000000",
"email": "tecnico@cliente.com.br",
"uf": "SC",
"plano": "plus",
"permiteCuradoria": false
},
"usuario": {
"nome": "Responsavel Tecnico",
"email": "tecnico@cliente.com.br",
"senhaInicial": "senha-temporaria",
"papel": "gerencial"
},
"appKey": {
"nome": "cliente-receituario",
"descricao": "Integracao inicial"
}
}
{
"empresa": { "id": 12, "nome": "Cliente Exemplo Ltda", "uf": "SC", "plano": "plus" },
"usuario": { "id": 5, "email": "tecnico@cliente.com.br", "papel": "gerencial" },
"appKey": {
"id": 18,
"nome": "cliente-receituario",
"status": "ativo",
"expira_em": "2099-12-31T23:59:59.000Z",
"chave": "agb_chave_completa_aparece_uma_vez"
}
}
Erros
| HTTP | Quando ocorre | Exemplo |
|---|---|---|
| 400 | Parâmetro inválido | {"erro":"parametro_invalido","mensagem":"..."} |
| 401 | App-key ausente ou inválida | {"erro":"nao_autenticado","mensagem":"..."} |
| 403 | Empresa sem permissão para o escopo | {"erro":"sem_permissao","mensagem":"..."} |
| 404 | Registro não encontrado | {"erro":"nao_encontrado","mensagem":"..."} |
| 500 | Erro inesperado | {"erro":"erro_interno","mensagem":"..."} |
Exemplos
cURL
curl -H "x-api-key: agb_sua_chave_aqui" \
"https://agrobase-api.sp1.br.saveincloud.net.br/v1/agrotoxicos?busca=quallis"
JavaScript
const resposta = await fetch("https://agrobase-api.sp1.br.saveincloud.net.br/v1/culturas", {
headers: {
"x-api-key": "agb_sua_chave_aqui"
}
});
const dados = await resposta.json();
POST previsto
A v1 ja aceita notificacoes e acertos. Se criarmos simulacoes de montagem de texto no futuro, o formato sera semelhante a este:
POST /v1/receita/textos
Content-Type: application/json
x-api-key: agb_sua_chave_aqui
{
"agrotoxico": "PRO000943",
"cultura": "CUL000001",
"praga": "PRG000001",
"metodoAplicacao": "aerea"
}