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
Todas las rutas son relativas a /api/v1/hydroflux. La disponibilidad y los límites de la vista previa se confirman durante el onboarding.