DesarrolladoresVISTA PREVIA PARA DESARROLLADORES

La API de HydroFlux

Envía el límite de un campo y una fecha. Recibe un mapa de evapotranspiración a 30 m donde cada píxel lleva incertidumbre, antigüedad de observación, estado de soporte y las razones detrás.

Ruta base: /api/v1/hydroflux

El host y las credenciales asignadas se entregan de forma segura durante el onboarding.

Inicio rápido

Una llamada devuelve el mapa diario del campo. Sin infraestructura satelital de tu lado.

curl -X POST "$HYDROFLUX_API_BASE_URL/api/v1/hydroflux/daily-field-et" \
  -H "X-HydroFlux-API-Key: hf1.${KEY_ID}.${KEY_SECRET}" \
  -H "Content-Type: application/json" \
  -d '{
    "field_id": "north-pivot-12",
    "target_date": "2026-07-22",
    "geometry": { "type": "Polygon", "coordinates": [[[-100.24,40.10],[-100.23,40.10],[-100.23,40.11],[-100.24,40.11],[-100.24,40.10]]] },
    "crop_type": "corn",
    "is_irrigated": true
  }'

Reemplaza la geometría por tu propio anillo poligonal cerrado en WGS84: una unidad de manejo por solicitud.

Autenticación

El acceso queda limitado a la organización aprobada durante el onboarding.

X-HydroFlux-API-Key

Las integraciones usan una API key emitida para la organización y el ambiente aprobados.

hf1.<key_id>.<secret>

Trata las API keys como secretos. Nunca las incluyas en código del navegador, repositorios públicos o formularios de soporte; llama a HydroFlux desde un entorno de servidor.

Cómo leer la respuesta

et_mm_day es nullable por contrato. Respeta estimate_status y nunca reemplaces una abstención con un candidato de diagnostics.

{
  "target_date": "2026-07-22",
  "temporal_status": "PROVISIONAL",
  "model": { "name": "HydroFlux", "version": "<assigned-model-version>" },
  "spatial_contract": { "grid_m": 30, "coverage_status": "COMPLETE" },
  "paging": { "has_more": false, "next_pixel_offset": null },
  "pixels": [
    {
      "lat": 40.1032,
      "lon": -100.2411,
      "et_mm_day": 4.21,
      "estimate_status": "ESTIMATED",
      "uncertainty": { "lower": 3.83, "upper": 4.59 },
      "support_status": "SUPPORTED",
      "observation": { "last_clear_date": "2026-07-19", "age_days": 3 },
      "reasons": ["recent_clear_observation", "crop_group_resolved"],
      "context_provenance": {
        "era5_land": "coarse_grid_sample_at_field_centroid"
      }
    },
    {
      "lat": 40.1032,
      "lon": -100.2408,
      "et_mm_day": null,
      "estimate_status": "ABSTAINED",
      "support_status": "UNSUPPORTED",
      "observation": { "last_clear_date": "2026-06-14", "age_days": 38 },
      "reasons": ["clear_observation_older_than_32_days"]
    }
  ]
}

Recortado por legibilidad. coverage_status es COMPLETE o TRUNCATED — una página TRUNCATED nunca debe mostrarse como cobertura completa del campo.

Llamadas síncronas y jobs asíncronos

Las páginas síncronas se limitan a 4.500 píxeles devueltos. Las cargas mayores u operacionales usan jobs idempotentes con revisiones inmutables.

# Set HYDROFLUX_API_BASE_URL to the host assigned during onboarding.
# 1. submit — the idempotency key makes retries safe
curl -X POST "$HYDROFLUX_API_BASE_URL/api/v1/hydroflux/daily-field-et/jobs" \
  -H "X-HydroFlux-API-Key: hf1.${KEY_ID}.${KEY_SECRET}" \
  -H "Idempotency-Key: north-pivot-12:2026-07-22:v1" \
  -H "Content-Type: application/json" \
  -d @request.json

# 2. poll the job
curl "$HYDROFLUX_API_BASE_URL/api/v1/hydroflux/daily-field-et/jobs/${JOB_ID}" \
  -H "X-HydroFlux-API-Key: hf1.${KEY_ID}.${KEY_SECRET}"

# 3. read an immutable stored revision
curl "$HYDROFLUX_API_BASE_URL/api/v1/hydroflux/daily-field-et/results/north-pivot-12/2026-07-22?revision=2" \
  -H "X-HydroFlux-API-Key: hf1.${KEY_ID}.${KEY_SECRET}"

La misma clave de idempotencia con bytes distintos se rechaza; la misma clave y bytes devuelven el job existente.

Referencia de endpoints

POST/field-etGrilla determinista de 16 días sobre un polígono, paginada.
POST/daily-field-etUn mapa diario a 30 m derivado del ancla enrutada y la ET0 diaria.
POST/daily-field-et/jobsEnvía un mapa diario como job asíncrono idempotente.
GET/daily-field-et/results/{field_id}/{target_date}Lee una revisión inmutable de resultado almacenado.

Todas las rutas son relativas a /api/v1/hydroflux. La disponibilidad y los límites de la vista previa se confirman durante el onboarding.