01 Introducción
Este documento describe el uso de tres APIs públicas de BigFrut para la consulta de datos de escaneos.
Quien las utilice debe contar con un usuario y contraseña entregados por BigFrut. Ese usuario solo puede acceder a los campos que le fueron asignados. A cada empresa que integra la API se le entrega además una API key propia, que debe incluirse en cada llamada.
02 Autenticación
Todas las llamadas requieren un header de autenticación con la API key entregada a tu empresa:
Authorization: Bearer <API_KEY_DE_TU_EMPRESA>Además, dentro del body de cada request, los endpoints que consultan datos de usuario piden user y password. La contraseña nunca se envía en texto plano: debe encriptarse con el método md5(sha1('contraseña del usuario')) antes de incluirla en el request.
03 Formato de la petición
La API de BigFrut expone un único endpoint. Todas las operaciones se distinguen por el campo flowName dentro del body:
| Endpoint | https://app.bigfrut.cl/png/gtw/sendMessage/flow |
| Método | POST |
| Content-Type | application/json |
Estructura general del body:
{
"flowName": "<operación>", // Nombre de la operación
"appId": "APP", // Identificador de la app consumidora
"extRequest": "1", // Siempre "1"
"TransactionType": "1", // Siempre "1"
"parameters": { … } // Parámetros propios de cada operación
}Toda respuesta incluye status ("SUCCESS" cuando la operación fue exitosa) y description con el detalle de la operación.
04 getFarms
Recupera los campos (huertos) asociados al usuario autenticado.
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
user | string | Correo del usuario de la aplicación. |
password | string | Contraseña encriptada con md5(sha1(password)). |
Request
{
"flowName": "bigfrut/public/getFarms",
"appId": "APP",
"extRequest": "1",
"TransactionType": "1",
"parameters": {
"user": "<email>",
"password": "<password encriptada>"
}
}Response
{
"farms": [
{
"id": 1,
"name": "<Nombre campo>",
"lat": -34.545877,
"lng": -70.972832
}
],
"status": "SUCCESS",
"description": "OK"
}05 getFarmsStatistics
Recupera las estadísticas de escaneo de un campo, agrupadas por fecha, cultivo y producto.
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
user | string | Correo del usuario de la aplicación. |
password | string | Contraseña encriptada con md5(sha1(password)). |
farmId | number | ID del campo. |
plotId | string | Opcional. ID del lote/cuartel. |
Request
{
"flowName": "bigfrut/public/getFarmsStatistics",
"appId": "APP",
"extRequest": "1",
"TransactionType": "1",
"parameters": {
"user": "<email>",
"password": "<password encriptada>",
"farmId": 1,
"plotId": "1"
}
}Response
La respuesta agrupa estadísticas por fecha de escaneo. Cada fecha incluye el cultivo, los cuarteles escaneados (si no se filtró por plotId) y los productos contratados, cada uno con su segmentación en 5 rangos (equivalente a la leyenda del mapa) y sus estadísticas resumen.
{
"stats": [
{
"date": "2025-02-10",
"cropId": "8",
"crop": "Uva de Mesa",
"plots": ["1", "2"],
"products": [
{
"code": "layer_frutos",
"productId": "162",
"label": "Frutos/Planta",
"attribute": "tct",
"vendorId": 1,
"scanFileId": 1,
"intervals": {
"xMin": 0,
"xMax": 99.46,
"median": 67.63,
"amplitude": 19.89,
"n": 31769,
"data": [
{ "from": 0, "to": 19.89, "q": 116, "hectares": 9.95, "percent": 0.37 }
]
},
"stat": {
"value": 2.82,
"label": "Superficie escaneada 2.82 ha",
"frameLabel": "Marco de plantacion 3.50 x 2.50",
"frameValue": 8.75,
"params": [
{ "label": "Frutos totales", "value": "219863" },
{ "label": "Frutos/planta", "value": "68" },
{ "label": "Frutos/ha", "value": "77965" }
]
}
}
]
}
],
"status": "SUCCESS",
"description": "OK"
}Campos de referencia
| Campo | Descripción |
|---|---|
intervals | División de los resultados en 5 segmentos de zonificación, equivalente a la leyenda del mapa. n es el número equivalente al producto (p. ej., número de racimos). |
stat | Estadísticas resumen del escaneo para ese producto: superficie escaneada, marco de plantación y parámetros calculados. |
vendorId / scanFileId | Identifican el proveedor y el archivo de escaneo; se usan como parámetros de entrada de getPlotDataLayer. |
06 getPlotDataLayer
Recupera el detalle punto a punto (o polígono a polígono) de una capa de datos específica, identificada por los valores obtenidos previamente en getFarmsStatistics.
Parámetros
| Campo | Tipo | Descripción |
|---|---|---|
farmId | number | ID del campo. |
plotId | string | Opcional. ID del lote/cuartel. |
cropId | number | ID del cultivo. |
vendorId | number | ID del vendor, recuperado en getFarmsStatistics. |
scanFileId | number | ID del archivo, recuperado en getFarmsStatistics. |
attribute | string | Atributo, recuperado en getFarmsStatistics. |
code | string | Código de producto, recuperado en getFarmsStatistics. |
date | string | Fecha del escaneo (YYYY-MM-DD). |
Request
{
"flowName": "bigfrut/public/getPlotDataLayer",
"appId": "APP",
"extRequest": "1",
"TransactionType": "1",
"parameters": {
"farmId": 337,
"plotId": "2088",
"cropId": 8,
"vendorId": 1,
"scanFileId": 2,
"attribute": "area",
"code": "layer_arquitectura",
"date": "2025-02-10"
}
}Response
header describe las columnas de cada fila de data: la posición geográfica (WKT) y el valor del atributo consultado en ese punto o polígono.
{
"header": ["position", "value"],
"data": [
["POINT(-70.97168132751291 -34.54831238807667)", 0.552]
],
"status": "SUCCESS",
"description": "OK"
}07 Solicitar acceso
Para obtener tu usuario, contraseña y API key de BigFrut —de prueba o de producción— escríbenos a gcortesr@anasac.cl indicando tu empresa y los campos a los que necesitas acceder.