Xyrelis Developers

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.

ÁreaRutasPermisos
Cuaderno completo/cuaderno/esquema, /sync/cambios, /sync/subircuaderno:leer, cuaderno:sincronizar
IoT y riego/iot/cultivo/{id}/…, /instalaciones/…iot:leer, iot:escribir, iot:accionar
Avisos/avisos, /avisos/{id}/descartaravisos:leer, avisos:escribir
Calendario/calendario, /calendario/{id}/completarcalendario:leer, calendario:escribir
Análisis y mapa/analisis/cultivo/{id}, /mapaanalisis:leer
Informes PDF/informes/cuaderno/{temporada}.pdf, /informes/campana/{cultivo}/{temporada}.pdfinformes: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:

  1. GET /cuaderno/esquema: entidades, campos, tipos, valores permitidos y relaciones.
  2. GET /sync/cambios?desde=<cursor>&entidades=a,b: filas cambiadas y borradas desde el cursor (sin desde, todo). Guarde el cursor de la respuesta para la siguiente vez.
  3. POST /sync/subir: lote de operaciones crear, modificar o borrar. Cada una lleva un uid único: si la reenvía, no se aplica dos veces. Al modificar o borrar, version_base evita 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.