Acceso completo
Además de las rutas sencillas (/parcelas, /parcelas/{id}/cuaderno…), la API da acceso a todo lo que se puede hacer en Xyrelis: son las mismas rutas que usa la app oficial, bajo https://xyrelis.es/api/v1 y con su clave de API. Funcionan solo con claves xyr_live_ (trabajan con datos reales). La lista completa, con parámetros, está en la referencia.
| Área | Rutas | Permisos |
|---|---|---|
| Cuaderno completo | /cuaderno/esquema, /sync/cambios, /sync/subir | cuaderno:leer, cuaderno:sincronizar |
| IoT y riego | /iot/cultivo/{id}/…, /instalaciones/… | iot:leer, iot:escribir, iot:accionar |
| Avisos | /avisos, /avisos/{id}/descartar | avisos:leer, avisos:escribir |
| Calendario | /calendario, /calendario/{id}/completar | calendario:leer, calendario:escribir |
| Análisis y mapa | /analisis/cultivo/{id}, /mapa | analisis:leer |
| Informes PDF | /informes/cuaderno/{temporada}.pdf, /informes/campana/{cultivo}/{temporada}.pdf | informes:leer |
| Operativa | /operativa/… (resumen, abonado, recetas, almacén, partes, fichajes, siniestros, certificaciones, dron, comprobar un tratamiento), /operativa/pac/explotacion, /operativa/pac/punto, /operativa/pac/importes (ecorregímenes con SIGPAC y pago por tramos), /operativa/mercado, /operativa/mercado/bolsa, /operativa/mercado/bolsa/velas, /operativa/mercado/bolsa/tic (lonjas, bolsa y futuros), /operativa/ayudas, /operativa/comparador (ayudas y normativa) | operativa:leer, operativa:escribir |
| Asistente IA | /ia/chats, /ia/mensaje, /ia/foto, /ia/trabajo/{id} | ia:leer, ia:usar |
| Cuenta | /yo (con perfil:leer añade nombre, correo y preferencias de la cuenta) | perfil:leer |
El permiso * da acceso a todo. Úselo solo en integraciones de su confianza: incluye accionar válvulas y borrar entradas del cuaderno.
Cuaderno de campo completo
Todas las entidades del cuaderno (tratamientos, abonados, riegos, cosechas, labores, observaciones, maestros…) se leen y se cambian con tres rutas:
GET /cuaderno/esquema: entidades, campos, tipos, valores permitidos y relaciones.GET /sync/cambios?desde=<cursor>&entidades=a,b: filas cambiadas y borradas desde el cursor (sindesde, todo). Guarde elcursorde la respuesta para la siguiente vez.POST /sync/subir: lote de operacionescrear,modificaroborrar. Cada una lleva unuidúnico: si la reenvía, no se aplica dos veces. Al modificar o borrar,version_baseevita pisar cambios de otro (sin ella, o con"forzar": true, se aplica igualmente).
curl -X POST -H "Authorization: Bearer $XYR" -H "Content-Type: application/json" https://xyrelis.es/api/v1/sync/subir -d '{
"operaciones": [
{"uid": "erp-2026-0001", "op": "crear", "entidad": "<entidad del esquema>", "datos": {"campo": "valor"}},
{"uid": "erp-2026-0002", "op": "modificar", "entidad": "<entidad>", "id": 123, "datos": {"campo": "nuevo"}},
{"uid": "erp-2026-0003", "op": "borrar", "entidad": "<entidad>", "id": 124}
]}'
Una clave foránea puede apuntar a una fila creada en el mismo lote con {"uid": "…"} en lugar del id. La respuesta trae un resultado por operación (aplicada, rechazada con su motivo o en conflicto con la fila actual).
Riego e IoT
# Estado de válvulas y actuadores de una parcela
curl -H "Authorization: Bearer $XYR" https://xyrelis.es/api/v1/iot/cultivo/12/actuadores
# Accionar (permiso iot:accionar). Si el equipo no responde o la orden no es segura, devuelve 409 con el motivo.
curl -X POST -H "Authorization: Bearer $XYR" -H "Content-Type: application/json" -d '{"dispositivo_cultivo_id": 5, "sensor_actuador_id": 31, "accion": "cerrar"}' https://xyrelis.es/api/v1/iot/cultivo/12/actuadores/accionar
Operativa e informes
curl -H "Authorization: Bearer $XYR" https://xyrelis.es/api/v1/operativa/resumen
curl -X POST -H "Authorization: Bearer $XYR" -H "Content-Type: application/json" -d '{"cultivo_id": 12, "nombre": "0302445", "plaga": "Caracoles", "dosis": 10, "fecha": "2026-11-02"}' https://xyrelis.es/api/v1/operativa/fitosanitarios/comprobar
curl -H "Authorization: Bearer $XYR" -o cuaderno.pdf https://xyrelis.es/api/v1/informes/cuaderno/3.pdf
Las rutas de inicio de sesión de la app (/sesion/…) no están en la API: la clave sustituye a la sesión.