Autenticación y límites
Cada petición lleva la clave en la cabecera Authorization: Bearer. Las claves empiezan por xyr_live_ (datos reales) o xyr_test_ (pruebas). Xyrelis solo guarda su huella SHA-256: si la pierde, revóquela y cree otra.
Permisos
parcelas:leer | Ver parcelas (nombre, superficie, SIGPAC, polígono) |
cuaderno:leer | Ver el cuaderno de campo (riegos, tratamientos, abonados, observaciones) |
cuaderno:escribir | Anotar riegos y observaciones en el cuaderno |
sensores:leer | Ver dispositivos y el último valor de cada sensor |
satelite:leer | Ver las series de índices de satélite |
clima:leer | Ver la meteorología diaria de la estación de la parcela |
operativa:leer | Ver almacén, partes, fichajes, siniestros, abonado, recetas, ecorregímenes (con SIGPAC e importes), certificaciones, lonjas, bolsa de precios y futuros, ayudas (BDNS), normativa (UE, BOE, CC. AA.) y dron |
operativa:escribir | Crear partes y fichajes, movimientos de almacén, siniestros y comprobar tratamientos |
cuaderno:sincronizar | Crear, modificar y borrar cualquier entrada del cuaderno (tratamientos, abonados, cosechas...) |
iot:leer | Ver dispositivos, actuadores, instalaciones, series de datos y alarmas |
iot:escribir | Renombrar actuadores, cambiar límites y reconocer alarmas |
iot:accionar | Accionar válvulas y actuadores (abrir, cerrar, regar) |
avisos:leer | Ver los avisos de la cuenta |
avisos:escribir | Descartar avisos |
calendario:leer | Ver las tareas del calendario |
calendario:escribir | Crear, completar y borrar tareas del calendario |
analisis:leer | Ver el análisis de cada parcela y el mapa |
informes:leer | Descargar los informes en PDF (cuaderno y campaña) |
ia:leer | Ver los chats del asistente IA y el resultado de sus trabajos |
ia:usar | Preguntar al asistente IA (también con foto para diagnóstico) y borrar chats |
perfil:leer | Ver los datos básicos de la cuenta (nombre, correo, preferencias) en /yo |
* | Acceso completo: todos los permisos anteriores |
Uso de la clave
Toda la API necesita clave: sin la cabecera se responde 401 (sin_clave). La única excepción es la especificación https://xyrelis.es/api/v1/openapi.json.
# Guarde la clave en una variable de entorno, nunca en el código ni en el repositorio
export XYR="xyr_live_…"
curl -H "Authorization: Bearer $XYR" https://xyrelis.es/api/v1/yo
/yo (con el permiso parcelas:leer) devuelve la clave en uso (nombre, permisos, entorno y límite efectivo): sirve para comprobar que la clave funciona.
import os, requests
r = requests.get("https://xyrelis.es/api/v1/parcelas", headers={"Authorization": f"Bearer {os.environ['XYR']}"}, timeout=30)
r.raise_for_status()
Límite de peticiones
Cada clave tiene un límite de peticiones por minuto. Si al crearla no se indica, se usa el límite por defecto (ahora 60). Ninguna clave puede pasar del máximo (ahora 600 para su cuenta). NorthDelta puede ajustar el límite de una clave o el tope de una cuenta. Si lo hace, el cambio se aplica en menos de un minuto, sin cambiar de clave.
Cada respuesta trae X-RateLimit-Limit (el límite efectivo) y X-RateLimit-Remaining. Al pasarse se responde 429 con Retry-After (segundos de espera). Espere ese tiempo antes de reintentar.
HTTP/1.1 429 Too Many Requests
Retry-After: 12
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
{"error": {"codigo": "limite", "mensaje": "Ha superado el límite de 60 peticiones por minuto."}}
Si necesita más, pídalo a NorthDelta indicando el nombre de la clave.
Errores
{"error": {"codigo": "sin_permiso", "mensaje": "La clave no tiene el permiso «cuaderno:escribir»."}}
| 400 / 422 | Parámetros o datos no válidos |
| 401 | Sin clave, clave revocada o caducada |
| 403 | Falta el permiso o la cuenta no está activa |
| 404 | La parcela no existe o no es suya |
| 429 | Límite superado |