Pular para o conteúdo
AGROs OpenAGROs
Navegação menu

REST API

REST API

A superfície para scripts e integrações. JSON puro, paginado, sem OData no caminho — para quando você quer os dados dentro do seu próprio código.

Base
https://service.agrosti.com.br/v1/
Autenticação
Authorization: Bearer oag_...
Coleções
50
Escrita
Não — a superfície é somente leitura

Uma requisição

curl
curl -H "Authorization: Bearer oag_SEU_TOKEN" \
  "https://service.agrosti.com.br/v1/openagros/harvest?pageSize=200&page=1"

Toda coleção responde com o mesmo envelope:

JSON
{
  "items": [ ... ],
  "page": 1,
  "pageSize": 100,
  "total": 1041
}
CampoÉ
items As linhas da página, no schema da coleção
total O total da coleção, não da página. Pagine até alcançá-lo
page / pageSize Repetem os valores que você enviou

Paginação

page começa em 1 e pageSize vai até 200. Sem os dois parâmetros, a coleção vem inteira — o que é conveniente em cadastros pequenos e uma péssima ideia num fato de centenas de milhares de linhas.

O que o REST não faz

Não existe filtro em REST

A querystring aceita apenas page e pageSize. Não há $filter nem $orderby: o recorte é do lado do cliente, depois de baixar a coleção.

A consequência prática é o critério de escolha entre as duas superfícies. Se você vai recortar por safra, fazenda ou período — e num fato agrícola quase sempre vai —, OData dobra esse filtro no servidor e transfere só o que interessa. O REST transferiria a coleção toda.

PestScoutings não é acessível em REST

Aquela coleção exige filtro de data pelo volume, e o REST não tem como expressá-lo. Toda chamada responde 400 FilterRequired. Use a versão OData.

Limite de requisições

60 requisições por minuto por token, no máximo — o valor de cada token é escolhido na criação e nunca passa desse teto. Ao estourar, a resposta é 429: espere a virada do minuto e repita. Como o REST não filtra no servidor, é a superfície que mais gasta requisição em coleção grande; se você está batendo no limite com frequência, o problema provavelmente se resolve em OData.

Erros

Os mais comuns aqui. A lista completa, com o formato do corpo do erro, está em Erros.

CódigoSignifica
401 Token ausente, inválido, revogado ou expirado
403 O token não tem o escopo daquela coleção
400 FilterRequired A coleção exige um filtro que o REST não expressa
429 Limite de requisições por minuto estourado

Coleções

As 50 coleções, campo a campo, estão no menu à esquerda. Os fatos — o que você soma — são o ponto de partida: