Referencia
Esquemas
Los objetos que la API acepta y devuelve, campo a campo, tal como los define el contrato OpenAPI.
Event
object
idstring (uuid)obligatorioPara deduplicar: la entrega es «al menos una vez».
Valores posibles:
alert.createdalert.acknowledgedalert.resolvedalert.reopenedalert.worker_acknowledgedmuster.startedmuster.kind_changedmuster.phase_changedmuster.targets_changedmuster.updatedmuster.worker_missingmuster.endedapi_versionstringobligatorioValores posibles:
2026-09-24created_atstring (date-time)obligatorioorganization_idstring (uuid) | nullobligatorioLa empresa del centro.
nullen los eventos de prueba.site_idstring (uuid)obligatoriodata{ alert } | { muster }obligatorioEl objeto completo tal como lo devolvería el
GETen ese instante.Una de 2 formas
- variante 1
Campos de Alert22
idstring (uuid)obligatorioValores posibles:
sosfall_detectedrestricted_zone_entryforbidden_zone_entrypermit_expired_insidepermit_closed_insideheat_stressevacuation_helpworker_call_requestdevice_offlinelow_batteryearthquaketsunami_riskValores posibles:
lowmediumhighcriticalValores posibles:
unacknowledgedacknowledgedresolvedtitlestringobligatorioCon
include_worker_names, el título que lee la sala (lleva el nombre de la persona). Sin él, uno compuesto con el tipo, la zona y elexternal_id, sin nombre.date_createdstring (date-time)obligatoriodate_last_modifiedstring (date-time)obligatorioPara ordenar: los webhooks no garantizan el orden, y lo más viejo que lo que ya se tiene se descarta.
Campos de SiteRef2
idstring (uuid)obligatorionamestringobligatorio
Campos de ZoneRef2
idstring (uuid)obligatorionamestringobligatorio
Campos de WorkerRef4
idstring (uuid)obligatorioexternal_idstring | nullobligatorioCódigo del trabajador en la empresa (el de su sistema de personal).
nullsi no se ha dado.namestringNombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.
contractorstring | nullobligatorio
Campos de DeviceRef4
idstring (uuid)obligatorioserialstringobligatoriobatteryinteger | nullobligatoriode 0 a 100
date_last_seenstring (date-time) | nullobligatorio
Campos de Location7
latitudenumberobligatoriode -90 a 90
longitudenumberobligatoriode -180 a 180
uncertainty_mnumber | nullobligatorioRadio de incertidumbre en metros.
nullsi no se conoce: no saberla no es tenerla perfecta.mínimo 0
sourcestringobligatoriozone: la persona estaba en una zona de privacidad y el punto es el de la zona, no el suyo.Valores posibles:
gpsnetworkzonemaskedbooleanobligatorioEl punto es el representativo de una zona de privacidad.
position_date_utcstring (date-time)obligatorioheightobject | nullobligatorioAltura sobre el suelo por barómetro, cuando se puede afirmar;
nullsi no.
location_withheldbooleanobligatorioLa posición existe pero no se entrega: en «Solo en emergencia», una alerta por debajo de la gravedad que destapa no la enseña, tampoco en el panel.
Una de 9 formas
triggerstringobligatorioCómo se pidió: en la pantalla del reloj, con el botón físico, tras una caída sin respuesta o desde la sala.
Valores posibles:
watch_buttonwatch_hardware_buttonafter_fallcontrol_room
escalated_to_sosbooleanobligatorioNo contestó al «¿Estás bien?» del reloj y pasó a SOS.
zone_typestringobligatorioValores posibles:
restrictedforbiddenpermit_referencestring | nullobligatorioEl permiso de trabajo (ATS) que regía, si lo había.
Sin nada que salga del pulso: las constantes vitales no salen por la API, ni agregadas.
actionstringobligatorioLo que se le ha dicho en el reloj: parar, beber y buscar sombra. No hay niveles.
Valores posibles:
stop_and_restheat_index_cnumber | nullobligatorioÍndice de calor de la planta (°C).
sun_exposure_minutesinteger | nullobligatorio
reasonstring | nullobligatorioLo que dijo en el reloj: atrapado, herido o ayudando a otra persona.
Valores posibles:
trappedinjuredhelpingmuster_idstring (uuid)obligatorio
voice_notebooleanobligatorioSin cobertura, el reloj grabó un aviso de voz (se escucha en el panel).
minutes_silentintegerobligatorio
battery_pctintegerobligatoriode 0 a 100
magnitudenumber | nullobligatoriodistance_kmnumber | nullobligatorioofficialbooleanobligatoriofalse: estimación de SafeOnuba sin aviso oficial.true: boletín oficial confirmado por una persona.felt_at_sitebooleanobligatorioetastring (date-time) | nullobligatorioLlegada estimada de la ola (tsunami).
Campos de Nearby5
kindstringobligatorioValores posibles:
personvehicleworkerobjectobligatoriovehicle_typestring | nullobligatoriodistance_mintegerobligatorioreported_atstring (date-time)obligatorio
Campos de VehicleWarning4
atstring (date-time)obligatoriovehicle_typestring | nullobligatoriodistance_mintegerobligatorioworker_acknowledged_atstring (date-time) | nullobligatorio
worker_acknowledged_atstring (date-time) | nullobligatorioEl trabajador pulsó «Entendido» en su reloj (hora del reloj).
Campos de ActionBy2
atstring (date-time)obligatoriobystringobligatorioQuién: una persona del panel, o «Cliente · Operador (vía integración)».
resolvedobject | nullobligatorioCerrada: quién, cuándo y con qué nota.
Campos3
atstring (date-time)obligatoriobystringobligatorioQuién: una persona del panel, o «Cliente · Operador (vía integración)».
notestring | nullobligatorio
assigned_tostring | nullobligatoriosimulatedbooleanobligatorioGenerada en un simulacro o con relojes simulados.
panel_urlstring (uri)obligatorio
- variante 2
Campos de Muster13
idstring (uuid)obligatorioCampos de SiteRef2
idstring (uuid)obligatorionamestringobligatorio
statusstringobligatorioValores posibles:
activecompletedcancelledphasestringobligatorioinspecting: recuento completo y la sala revisa la planta; los relojes dicen «no vuelvas hasta nuevo aviso».Valores posibles:
evacuatinginspectingValores posibles:
generaltsunamiearthquakereasonstring | nullobligatoriostarted_atstring (date-time)obligatorioended_atstring (date-time) | nullobligatoriodeadlineobject | nullobligatorioCampos2
atstring (date-time)obligatoriosourcestringobligatorioTsunami: hora de un aviso oficial, o el techo del plan de la zona. Nunca un cálculo físico.
Valores posibles:
officialplan_estimate
originobject | nullobligatorioDe dónde viene la emergencia.
nullen una evacuación sin origen (un simulacro general).Campos5
latitudenumberobligatoriolongitudenumberobligatorioradius_mintegerobligatoriolabelstring | nullobligatorio
targets_revisionintegerobligatorioSube cada vez que cambian los destinos (descarte, rehabilitación, cambio de tipo).
totalsobjectobligatorioLas mismas cifras que el banner del panel y el cierre: las cuenta el servidor. En una evacuación cerrada queda lo que se registró al cerrar —llegados y total—, y el resto sale
null.Campos7
expectedintegerobligatoriosafeintegerobligatoriohelpinteger | nullobligatoriowrong_pointinteger | nullobligatoriopendinginteger | nullobligatoriono_signalinteger | nullobligatorionot_worninteger | nullobligatorio
Los destinos del tipo, descartados incluidos.
Campos de AssemblyPoint5
idstring (uuid)obligatorionamestringobligatoriostatusstringobligatorioValores posibles:
availableexcludedcountinteger | nullobligatorioPersonas a salvo en este punto.
nullen una evacuación cerrada: al cerrar solo se guarda el total.excludedobject | nullobligatorio
EventType
string
muster.updated: el recuento ha cambiado (se comprueba cada 5 s, solo se emite si cambia). muster.targets_changed: la sala ha descartado o rehabilitado un punto de reunión.
alert.createdalert.acknowledgedalert.resolvedalert.reopenedalert.worker_acknowledgedmuster.startedmuster.kind_changedmuster.phase_changedmuster.targets_changedmuster.updatedmuster.worker_missingmuster.ended
Lo usan: Reproducir eventos
Alert
object
idstring (uuid)obligatorioValores posibles:
sosfall_detectedrestricted_zone_entryforbidden_zone_entrypermit_expired_insidepermit_closed_insideheat_stressevacuation_helpworker_call_requestdevice_offlinelow_batteryearthquaketsunami_riskValores posibles:
lowmediumhighcriticalValores posibles:
unacknowledgedacknowledgedresolvedtitlestringobligatorioCon
include_worker_names, el título que lee la sala (lleva el nombre de la persona). Sin él, uno compuesto con el tipo, la zona y elexternal_id, sin nombre.date_createdstring (date-time)obligatoriodate_last_modifiedstring (date-time)obligatorioPara ordenar: los webhooks no garantizan el orden, y lo más viejo que lo que ya se tiene se descarta.
Campos de SiteRef2
idstring (uuid)obligatorionamestringobligatorio
Campos de ZoneRef2
idstring (uuid)obligatorionamestringobligatorio
Campos de WorkerRef4
idstring (uuid)obligatorioexternal_idstring | nullobligatorioCódigo del trabajador en la empresa (el de su sistema de personal).
nullsi no se ha dado.namestringNombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.
contractorstring | nullobligatorio
Campos de DeviceRef4
idstring (uuid)obligatorioserialstringobligatoriobatteryinteger | nullobligatoriode 0 a 100
date_last_seenstring (date-time) | nullobligatorio
Campos de Location7
latitudenumberobligatoriode -90 a 90
longitudenumberobligatoriode -180 a 180
uncertainty_mnumber | nullobligatorioRadio de incertidumbre en metros.
nullsi no se conoce: no saberla no es tenerla perfecta.mínimo 0
sourcestringobligatoriozone: la persona estaba en una zona de privacidad y el punto es el de la zona, no el suyo.Valores posibles:
gpsnetworkzonemaskedbooleanobligatorioEl punto es el representativo de una zona de privacidad.
position_date_utcstring (date-time)obligatorioheightobject | nullobligatorioAltura sobre el suelo por barómetro, cuando se puede afirmar;
nullsi no.Campos4
height_mnumberobligatoriouncertainty_mnumberobligatoriobuildingstring | nullobligatoriofloorstring | nullobligatorio
location_withheldbooleanobligatorioLa posición existe pero no se entrega: en «Solo en emergencia», una alerta por debajo de la gravedad que destapa no la enseña, tampoco en el panel.
Una de 9 formas
triggerstringobligatorioCómo se pidió: en la pantalla del reloj, con el botón físico, tras una caída sin respuesta o desde la sala.
Valores posibles:
watch_buttonwatch_hardware_buttonafter_fallcontrol_room
escalated_to_sosbooleanobligatorioNo contestó al «¿Estás bien?» del reloj y pasó a SOS.
zone_typestringobligatorioValores posibles:
restrictedforbiddenpermit_referencestring | nullobligatorioEl permiso de trabajo (ATS) que regía, si lo había.
Sin nada que salga del pulso: las constantes vitales no salen por la API, ni agregadas.
actionstringobligatorioLo que se le ha dicho en el reloj: parar, beber y buscar sombra. No hay niveles.
Valores posibles:
stop_and_restheat_index_cnumber | nullobligatorioÍndice de calor de la planta (°C).
sun_exposure_minutesinteger | nullobligatorio
reasonstring | nullobligatorioLo que dijo en el reloj: atrapado, herido o ayudando a otra persona.
Valores posibles:
trappedinjuredhelpingmuster_idstring (uuid)obligatorio
voice_notebooleanobligatorioSin cobertura, el reloj grabó un aviso de voz (se escucha en el panel).
minutes_silentintegerobligatorio
battery_pctintegerobligatoriode 0 a 100
magnitudenumber | nullobligatoriodistance_kmnumber | nullobligatorioofficialbooleanobligatoriofalse: estimación de SafeOnuba sin aviso oficial.true: boletín oficial confirmado por una persona.felt_at_sitebooleanobligatorioetastring (date-time) | nullobligatorioLlegada estimada de la ola (tsunami).
Campos de Nearby5
kindstringobligatorioValores posibles:
personvehicleworkerobjectobligatorioCampos4
idstring (uuid) | nullobligatorionullen alertas anteriores al 24/09/2026, cuando aún no se copiaba.external_idstring | nullobligatorioCódigo del trabajador en la empresa (el de su sistema de personal).
nullsi no se ha dado.namestringNombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.
contractorstring | nullobligatorio
vehicle_typestring | nullobligatoriodistance_mintegerobligatorioreported_atstring (date-time)obligatorio
Campos de VehicleWarning4
atstring (date-time)obligatoriovehicle_typestring | nullobligatoriodistance_mintegerobligatorioworker_acknowledged_atstring (date-time) | nullobligatorio
worker_acknowledged_atstring (date-time) | nullobligatorioEl trabajador pulsó «Entendido» en su reloj (hora del reloj).
Campos de ActionBy2
atstring (date-time)obligatoriobystringobligatorioQuién: una persona del panel, o «Cliente · Operador (vía integración)».
resolvedobject | nullobligatorioCerrada: quién, cuándo y con qué nota.
Campos3
atstring (date-time)obligatoriobystringobligatorioQuién: una persona del panel, o «Cliente · Operador (vía integración)».
notestring | nullobligatorio
assigned_tostring | nullobligatoriosimulatedbooleanobligatorioGenerada en un simulacro o con relojes simulados.
panel_urlstring (uri)obligatorio
Lo usan: Detalle de una alerta, Reconocer o cerrar una alerta
AlertType
string
Qué ha pasado. earthquake y tsunami_risk son de la planta entera: no llevan worker ni device. Un vehículo cerca no es una alerta: sale dentro de la alerta de un incidente (nearby, vehicle_warnings).
sosfall_detectedrestricted_zone_entryforbidden_zone_entrypermit_expired_insidepermit_closed_insideheat_stressevacuation_helpworker_call_requestdevice_offlinelow_batteryearthquaketsunami_risk
Lo usan: Listar alertas
Severity
string
Gravedad: low (información), medium (aviso), high (grave), critical (crítica: SOS, caída, «no puedo evacuar»).
lowmediumhighcritical
Lo usan: Listar alertas
AlertStatus
string
acknowledged: un operador se ha hecho cargo. No es lo mismo que worker_acknowledged_at, que es que el trabajador ha visto el aviso en su reloj.
unacknowledgedacknowledgedresolved
Lo usan: Listar alertas
SiteRef
object
idstring (uuid)obligatorionamestringobligatorio
ZoneRef
object | null
idstring (uuid)obligatorionamestringobligatorio
WorkerRef
object | null
idstring (uuid)obligatorioexternal_idstring | nullobligatorioCódigo del trabajador en la empresa (el de su sistema de personal).
nullsi no se ha dado.namestringNombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.
contractorstring | nullobligatorio
DeviceRef
object | null
idstring (uuid)obligatorioserialstringobligatoriobatteryinteger | nullobligatoriode 0 a 100
date_last_seenstring (date-time) | nullobligatorio
Location
object | null
latitudenumberobligatoriode -90 a 90
longitudenumberobligatoriode -180 a 180
uncertainty_mnumber | nullobligatorioRadio de incertidumbre en metros.
nullsi no se conoce: no saberla no es tenerla perfecta.mínimo 0
sourcestringobligatoriozone: la persona estaba en una zona de privacidad y el punto es el de la zona, no el suyo.Valores posibles:
gpsnetworkzonemaskedbooleanobligatorioEl punto es el representativo de una zona de privacidad.
position_date_utcstring (date-time)obligatorioheightobject | nullobligatorioAltura sobre el suelo por barómetro, cuando se puede afirmar;
nullsi no.Campos4
height_mnumberobligatoriouncertainty_mnumberobligatoriobuildingstring | nullobligatoriofloorstring | nullobligatorio
AlertDetails
SosDetails | FallDetails | ZoneDetails | HeatStressDetails | EvacuationHelpDetails | WorkerCallDetails | DeviceOfflineDetails | LowBatteryDetails | HazardDetails
Depende de type.
Una de: SosDetails | FallDetails | ZoneDetails | HeatStressDetails | EvacuationHelpDetails | WorkerCallDetails | DeviceOfflineDetails | LowBatteryDetails | HazardDetails
SosDetails
object
triggerstringobligatorioCómo se pidió: en la pantalla del reloj, con el botón físico, tras una caída sin respuesta o desde la sala.
Valores posibles:
watch_buttonwatch_hardware_buttonafter_fallcontrol_room
FallDetails
object
escalated_to_sosbooleanobligatorioNo contestó al «¿Estás bien?» del reloj y pasó a SOS.
ZoneDetails
object
zone_typestringobligatorioValores posibles:
restrictedforbiddenpermit_referencestring | nullobligatorioEl permiso de trabajo (ATS) que regía, si lo había.
HeatStressDetails
object
Sin nada que salga del pulso: las constantes vitales no salen por la API, ni agregadas.
actionstringobligatorioLo que se le ha dicho en el reloj: parar, beber y buscar sombra. No hay niveles.
Valores posibles:
stop_and_restheat_index_cnumber | nullobligatorioÍndice de calor de la planta (°C).
sun_exposure_minutesinteger | nullobligatorio
EvacuationHelpDetails
object
reasonstring | nullobligatorioLo que dijo en el reloj: atrapado, herido o ayudando a otra persona.
Valores posibles:
trappedinjuredhelpingmuster_idstring (uuid)obligatorio
WorkerCallDetails
object
voice_notebooleanobligatorioSin cobertura, el reloj grabó un aviso de voz (se escucha en el panel).
DeviceOfflineDetails
object
minutes_silentintegerobligatorio
LowBatteryDetails
object
battery_pctintegerobligatoriode 0 a 100
HazardDetails
object
magnitudenumber | nullobligatoriodistance_kmnumber | nullobligatorioofficialbooleanobligatoriofalse: estimación de SafeOnuba sin aviso oficial.true: boletín oficial confirmado por una persona.felt_at_sitebooleanobligatorioetastring (date-time) | nullobligatorioLlegada estimada de la ola (tsunami).
Nearby
object
Quién había a menos de 100 m cuando saltó una alerta crítica (SOS, caída). Distancia, nunca posición; quien estaba en una zona de privacidad no cuenta.
kindstringobligatorioValores posibles:
personvehicleworkerobjectobligatorioCampos4
idstring (uuid) | nullobligatorionullen alertas anteriores al 24/09/2026, cuando aún no se copiaba.external_idstring | nullobligatorioCódigo del trabajador en la empresa (el de su sistema de personal).
nullsi no se ha dado.namestringNombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.
contractorstring | nullobligatorio
vehicle_typestring | nullobligatoriodistance_mintegerobligatorioreported_atstring (date-time)obligatorio
VehicleWarning
object
Avisos de vehículo cerca que recibió esa persona en la ventana del incidente. Son avisos, no alertas.
atstring (date-time)obligatoriovehicle_typestring | nullobligatoriodistance_mintegerobligatorioworker_acknowledged_atstring (date-time) | nullobligatorio
ActionBy
object | null
atstring (date-time)obligatoriobystringobligatorioQuién: una persona del panel, o «Cliente · Operador (vía integración)».
Muster
object
idstring (uuid)obligatorioCampos de SiteRef2
idstring (uuid)obligatorionamestringobligatorio
statusstringobligatorioValores posibles:
activecompletedcancelledphasestringobligatorioinspecting: recuento completo y la sala revisa la planta; los relojes dicen «no vuelvas hasta nuevo aviso».Valores posibles:
evacuatinginspectingValores posibles:
generaltsunamiearthquakereasonstring | nullobligatoriostarted_atstring (date-time)obligatorioended_atstring (date-time) | nullobligatoriodeadlineobject | nullobligatorioCampos2
atstring (date-time)obligatoriosourcestringobligatorioTsunami: hora de un aviso oficial, o el techo del plan de la zona. Nunca un cálculo físico.
Valores posibles:
officialplan_estimate
originobject | nullobligatorioDe dónde viene la emergencia.
nullen una evacuación sin origen (un simulacro general).Campos5
latitudenumberobligatoriolongitudenumberobligatorioradius_mintegerobligatoriolabelstring | nullobligatorioCampos de ZoneRef2
idstring (uuid)obligatorionamestringobligatorio
targets_revisionintegerobligatorioSube cada vez que cambian los destinos (descarte, rehabilitación, cambio de tipo).
totalsobjectobligatorioLas mismas cifras que el banner del panel y el cierre: las cuenta el servidor. En una evacuación cerrada queda lo que se registró al cerrar —llegados y total—, y el resto sale
null.Campos7
expectedintegerobligatoriosafeintegerobligatoriohelpinteger | nullobligatoriowrong_pointinteger | nullobligatoriopendinginteger | nullobligatoriono_signalinteger | nullobligatorionot_worninteger | nullobligatorio
Los destinos del tipo, descartados incluidos.
Campos de AssemblyPoint5
idstring (uuid)obligatorionamestringobligatoriostatusstringobligatorioValores posibles:
availableexcludedcountinteger | nullobligatorioPersonas a salvo en este punto.
nullen una evacuación cerrada: al cerrar solo se guarda el total.excludedobject | nullobligatorioCampos4
reasonstringobligatoriorecommendedbooleanobligatorioLo había recomendado el sistema (radio o viento). Quien descarta es siempre una persona.
atstring (date-time)obligatoriobystringobligatorio
Lo usan: Estado y recuento de una evacuación
MusterKind
string
generaltsunamiearthquake
AssemblyPoint
object
idstring (uuid)obligatorionamestringobligatoriostatusstringobligatorioValores posibles:
availableexcludedcountinteger | nullobligatorioPersonas a salvo en este punto.
nullen una evacuación cerrada: al cerrar solo se guarda el total.excludedobject | nullobligatorioCampos4
reasonstringobligatoriorecommendedbooleanobligatorioLo había recomendado el sistema (radio o viento). Quien descarta es siempre una persona.
atstring (date-time)obligatoriobystringobligatorio
TokenResponse
object
access_tokenstringobligatoriotoken_typestringobligatorioValores posibles:
Bearerexpires_innumberobligatorioValores posibles:
3600scopestringobligatorio
Lo usan: Pedir un token (client_credentials)
OAuthError
object
Error del token, en el formato de RFC 6749 §5.2.
errorstringobligatorioValores posibles:
invalid_requestinvalid_clientunauthorized_clientunsupported_grant_typeinvalid_scopeerror_descriptionstring
Lo usan: Pedir un token (client_credentials)
TokenRequest
object
grant_typestringobligatorioValores posibles:
client_credentialsclient_idstringobligatorioclient_secretstringobligatorioscopestringSeparados por espacios; subconjunto de los del cliente. Sin él, todos los del cliente.
Lo usan: Pedir un token (client_credentials)
SiteList
object
Campos de Site5
idstring (uuid)obligatorionamestringobligatoriolocationstring | nullobligatorioprivacy_modestringobligatorioon_demand(«Solo en emergencia»): la posición de una persona solo se ve con una alerta abierta desdeunveil_min_severity, en evacuación o con una solicitud aprobada. La API obedece la misma regla que el panel.Valores posibles:
continuouson_demandValores posibles:
lowmediumhighcritical
Lo usan: Centros del cliente
Site
object
idstring (uuid)obligatorionamestringobligatoriolocationstring | nullobligatorioprivacy_modestringobligatorioon_demand(«Solo en emergencia»): la posición de una persona solo se ve con una alerta abierta desdeunveil_min_severity, en evacuación o con una solicitud aprobada. La API obedece la misma regla que el panel.Valores posibles:
continuouson_demandValores posibles:
lowmediumhighcritical
Problem
object
Error en formato RFC 9457 (application/problem+json), con el código HTTP real.
typestringobligatorioURI que identifica el tipo de problema.
titlestringobligatoriostatusintegerobligatoriodetailstringinstancestringcodestringobligatorioCódigo estable del error, para programar contra él. El texto puede cambiar; esto no.
Lo usan: Centros del cliente, Zonas y puntos de reunión de un centro, Listar alertas, Detalle de una alerta, Reconocer o cerrar una alerta, Listar evacuaciones, Estado y recuento de una evacuación, Quién falta, Listar trabajadores, Detalle de un trabajador, Listar relojes, Últimas posiciones visibles, Reproducir eventos, Listar destinos, Crear un destino, Borrar un destino, Rotar el secreto de firma, Enviar un evento de prueba, Lanzar un escenario de prueba
ZoneList
object
Campos de Zone5
idstring (uuid)obligatorionamestringobligatoriotypestringobligatorioValores posibles:
work_arearestrictedforbiddenassembly_pointprivacybuildinggeometryobject | nullobligatorioPolígono GeoJSON (WGS84).
nullen las zonas de privacidad: se da el nombre y el tipo, no dónde están (pendiente de validar con el comité).Campos2
typestringobligatorioValores posibles:
Polygoncoordinatesarray<array<array>>obligatorio
assembly_pointobject | nullobligatorioSolo en los puntos de reunión.
Campos5
servesarray<string>obligatorioValores posibles:
generaltsunamiearthquakeelevation_mnumber | nullobligatorioelevation_sourcestring | nullobligatorioValores posibles:
demverifiedverticalbooleanobligatorioRefugio en altura (un edificio).
capacityinteger | nullobligatorio
Zone
object
idstring (uuid)obligatorionamestringobligatoriotypestringobligatorioValores posibles:
work_arearestrictedforbiddenassembly_pointprivacybuildinggeometryobject | nullobligatorioPolígono GeoJSON (WGS84).
nullen las zonas de privacidad: se da el nombre y el tipo, no dónde están (pendiente de validar con el comité).Campos2
typestringobligatorioValores posibles:
Polygoncoordinatesarray<array<array>>obligatorio
assembly_pointobject | nullobligatorioSolo en los puntos de reunión.
Campos5
servesarray<string>obligatorioValores posibles:
generaltsunamiearthquakeelevation_mnumber | nullobligatorioelevation_sourcestring | nullobligatorioValores posibles:
demverifiedverticalbooleanobligatorioRefugio en altura (un edificio).
capacityinteger | nullobligatorio
AlertPage
object
Campos de Alert22
idstring (uuid)obligatorioValores posibles:
sosfall_detectedrestricted_zone_entryforbidden_zone_entrypermit_expired_insidepermit_closed_insideheat_stressevacuation_helpworker_call_requestdevice_offlinelow_batteryearthquaketsunami_riskValores posibles:
lowmediumhighcriticalValores posibles:
unacknowledgedacknowledgedresolvedtitlestringobligatorioCon
include_worker_names, el título que lee la sala (lleva el nombre de la persona). Sin él, uno compuesto con el tipo, la zona y elexternal_id, sin nombre.date_createdstring (date-time)obligatoriodate_last_modifiedstring (date-time)obligatorioPara ordenar: los webhooks no garantizan el orden, y lo más viejo que lo que ya se tiene se descarta.
Campos de SiteRef2
idstring (uuid)obligatorionamestringobligatorio
Campos de ZoneRef2
idstring (uuid)obligatorionamestringobligatorio
Campos de WorkerRef4
idstring (uuid)obligatorioexternal_idstring | nullobligatorioCódigo del trabajador en la empresa (el de su sistema de personal).
nullsi no se ha dado.namestringNombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.
contractorstring | nullobligatorio
Campos de DeviceRef4
idstring (uuid)obligatorioserialstringobligatoriobatteryinteger | nullobligatoriode 0 a 100
date_last_seenstring (date-time) | nullobligatorio
Campos de Location7
latitudenumberobligatoriode -90 a 90
longitudenumberobligatoriode -180 a 180
uncertainty_mnumber | nullobligatorioRadio de incertidumbre en metros.
nullsi no se conoce: no saberla no es tenerla perfecta.mínimo 0
sourcestringobligatoriozone: la persona estaba en una zona de privacidad y el punto es el de la zona, no el suyo.Valores posibles:
gpsnetworkzonemaskedbooleanobligatorioEl punto es el representativo de una zona de privacidad.
position_date_utcstring (date-time)obligatorioheightobject | nullobligatorioAltura sobre el suelo por barómetro, cuando se puede afirmar;
nullsi no.Campos4
height_mnumberobligatoriouncertainty_mnumberobligatoriobuildingstring | nullobligatoriofloorstring | nullobligatorio
location_withheldbooleanobligatorioLa posición existe pero no se entrega: en «Solo en emergencia», una alerta por debajo de la gravedad que destapa no la enseña, tampoco en el panel.
Una de 9 formas
triggerstringobligatorioCómo se pidió: en la pantalla del reloj, con el botón físico, tras una caída sin respuesta o desde la sala.
Valores posibles:
watch_buttonwatch_hardware_buttonafter_fallcontrol_room
escalated_to_sosbooleanobligatorioNo contestó al «¿Estás bien?» del reloj y pasó a SOS.
zone_typestringobligatorioValores posibles:
restrictedforbiddenpermit_referencestring | nullobligatorioEl permiso de trabajo (ATS) que regía, si lo había.
Sin nada que salga del pulso: las constantes vitales no salen por la API, ni agregadas.
actionstringobligatorioLo que se le ha dicho en el reloj: parar, beber y buscar sombra. No hay niveles.
Valores posibles:
stop_and_restheat_index_cnumber | nullobligatorioÍndice de calor de la planta (°C).
sun_exposure_minutesinteger | nullobligatorio
reasonstring | nullobligatorioLo que dijo en el reloj: atrapado, herido o ayudando a otra persona.
Valores posibles:
trappedinjuredhelpingmuster_idstring (uuid)obligatorio
voice_notebooleanobligatorioSin cobertura, el reloj grabó un aviso de voz (se escucha en el panel).
minutes_silentintegerobligatorio
battery_pctintegerobligatoriode 0 a 100
magnitudenumber | nullobligatoriodistance_kmnumber | nullobligatorioofficialbooleanobligatoriofalse: estimación de SafeOnuba sin aviso oficial.true: boletín oficial confirmado por una persona.felt_at_sitebooleanobligatorioetastring (date-time) | nullobligatorioLlegada estimada de la ola (tsunami).
Campos de Nearby5
kindstringobligatorioValores posibles:
personvehicleworkerobjectobligatorioCampos4
idstring (uuid) | nullobligatorionullen alertas anteriores al 24/09/2026, cuando aún no se copiaba.external_idstring | nullobligatorioCódigo del trabajador en la empresa (el de su sistema de personal).
nullsi no se ha dado.namestringNombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.
contractorstring | nullobligatorio
vehicle_typestring | nullobligatoriodistance_mintegerobligatorioreported_atstring (date-time)obligatorio
Campos de VehicleWarning4
atstring (date-time)obligatoriovehicle_typestring | nullobligatoriodistance_mintegerobligatorioworker_acknowledged_atstring (date-time) | nullobligatorio
worker_acknowledged_atstring (date-time) | nullobligatorioEl trabajador pulsó «Entendido» en su reloj (hora del reloj).
Campos de ActionBy2
atstring (date-time)obligatoriobystringobligatorioQuién: una persona del panel, o «Cliente · Operador (vía integración)».
resolvedobject | nullobligatorioCerrada: quién, cuándo y con qué nota.
Campos3
atstring (date-time)obligatoriobystringobligatorioQuién: una persona del panel, o «Cliente · Operador (vía integración)».
notestring | nullobligatorio
assigned_tostring | nullobligatoriosimulatedbooleanobligatorioGenerada en un simulacro o con relojes simulados.
panel_urlstring (uri)obligatorio
next_cursorstring | nullobligatorioCursor opaco para la página siguiente;
nullsi no hay más.
Lo usan: Listar alertas
AlertUpdate
object
Dos estados, acknowledged y resolved, más el operador. Reconocer autoasigna la alerta si nadie la llevaba, como en el panel.
statusstringobligatorioValores posibles:
acknowledgedresolvedresolution_reasonstringAl cerrar: por qué. Texto libre; va a la cronología de la alerta junto a la nota.
hasta 200 caracteres
notestringhasta 500 caracteres
Campos de Actor2
namestringobligatoriohasta 120 caracteres
external_idstringhasta 64 caracteres
Lo usan: Reconocer o cerrar una alerta
Actor
object
El operador de la sala del cliente que hace la acción. Obligatorio: «reconocida» mide la respuesta de una persona, y sin nombre la cronología diría solo el del cliente.
namestringobligatoriohasta 120 caracteres
external_idstringhasta 64 caracteres
MusterPage
object
Campos de Muster13
idstring (uuid)obligatorioCampos de SiteRef2
idstring (uuid)obligatorionamestringobligatorio
statusstringobligatorioValores posibles:
activecompletedcancelledphasestringobligatorioinspecting: recuento completo y la sala revisa la planta; los relojes dicen «no vuelvas hasta nuevo aviso».Valores posibles:
evacuatinginspectingValores posibles:
generaltsunamiearthquakereasonstring | nullobligatoriostarted_atstring (date-time)obligatorioended_atstring (date-time) | nullobligatoriodeadlineobject | nullobligatorioCampos2
atstring (date-time)obligatoriosourcestringobligatorioTsunami: hora de un aviso oficial, o el techo del plan de la zona. Nunca un cálculo físico.
Valores posibles:
officialplan_estimate
originobject | nullobligatorioDe dónde viene la emergencia.
nullen una evacuación sin origen (un simulacro general).Campos5
latitudenumberobligatoriolongitudenumberobligatorioradius_mintegerobligatoriolabelstring | nullobligatorioCampos de ZoneRef2
idstring (uuid)obligatorionamestringobligatorio
targets_revisionintegerobligatorioSube cada vez que cambian los destinos (descarte, rehabilitación, cambio de tipo).
totalsobjectobligatorioLas mismas cifras que el banner del panel y el cierre: las cuenta el servidor. En una evacuación cerrada queda lo que se registró al cerrar —llegados y total—, y el resto sale
null.Campos7
expectedintegerobligatoriosafeintegerobligatoriohelpinteger | nullobligatoriowrong_pointinteger | nullobligatoriopendinginteger | nullobligatoriono_signalinteger | nullobligatorionot_worninteger | nullobligatorio
Los destinos del tipo, descartados incluidos.
Campos de AssemblyPoint5
idstring (uuid)obligatorionamestringobligatoriostatusstringobligatorioValores posibles:
availableexcludedcountinteger | nullobligatorioPersonas a salvo en este punto.
nullen una evacuación cerrada: al cerrar solo se guarda el total.excludedobject | nullobligatorioCampos4
reasonstringobligatoriorecommendedbooleanobligatorioLo había recomendado el sistema (radio o viento). Quien descarta es siempre una persona.
atstring (date-time)obligatoriobystringobligatorio
next_cursorstring | nullobligatorioCursor opaco para la página siguiente;
nullsi no hay más.
Lo usan: Listar evacuaciones
MissingWorkerList
object
Campos de MissingWorker10
Campos de WorkerRef4
idstring (uuid)obligatorioexternal_idstring | nullobligatorioCódigo del trabajador en la empresa (el de su sistema de personal).
nullsi no se ha dado.namestringNombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.
contractorstring | nullobligatorio
Campos de DeviceRef4
idstring (uuid)obligatorioserialstringobligatoriobatteryinteger | nullobligatoriode 0 a 100
date_last_seenstring (date-time) | nullobligatorio
statusstringobligatorioValores posibles:
helpwrong_pointpendingno_signalnot_wornneeds_rescuebooleanobligatorioTiene un SOS o una caída abierta y no ha llegado: no puede salir por su pie.
help_reasonstring | nullobligatorioValores posibles:
trappedinjuredhelpingassembly_pointobject | nullobligatorioEl punto donde está o dijo estar (con
wrong_point, uno que no sirve).Campos3
idstring (uuid)obligatorionamestringobligatoriovalidbooleanobligatorio
declared_atstring (date-time) | nullobligatoriolast_seen_atstring (date-time) | nullobligatorioCampos de Location7
latitudenumberobligatoriode -90 a 90
longitudenumberobligatoriode -180 a 180
uncertainty_mnumber | nullobligatorioRadio de incertidumbre en metros.
nullsi no se conoce: no saberla no es tenerla perfecta.mínimo 0
sourcestringobligatoriozone: la persona estaba en una zona de privacidad y el punto es el de la zona, no el suyo.Valores posibles:
gpsnetworkzonemaskedbooleanobligatorioEl punto es el representativo de una zona de privacidad.
position_date_utcstring (date-time)obligatorioheightobject | nullobligatorioAltura sobre el suelo por barómetro, cuando se puede afirmar;
nullsi no.Campos4
height_mnumberobligatoriouncertainty_mnumberobligatoriobuildingstring | nullobligatoriofloorstring | nullobligatorio
location_withheldbooleanobligatorio
Lo usan: Quién falta
MissingWorker
object
Campos de WorkerRef4
idstring (uuid)obligatorioexternal_idstring | nullobligatorioCódigo del trabajador en la empresa (el de su sistema de personal).
nullsi no se ha dado.namestringNombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.
contractorstring | nullobligatorio
Campos de DeviceRef4
idstring (uuid)obligatorioserialstringobligatoriobatteryinteger | nullobligatoriode 0 a 100
date_last_seenstring (date-time) | nullobligatorio
statusstringobligatorioValores posibles:
helpwrong_pointpendingno_signalnot_wornneeds_rescuebooleanobligatorioTiene un SOS o una caída abierta y no ha llegado: no puede salir por su pie.
help_reasonstring | nullobligatorioValores posibles:
trappedinjuredhelpingassembly_pointobject | nullobligatorioEl punto donde está o dijo estar (con
wrong_point, uno que no sirve).Campos3
idstring (uuid)obligatorionamestringobligatoriovalidbooleanobligatorio
declared_atstring (date-time) | nullobligatoriolast_seen_atstring (date-time) | nullobligatorioCampos de Location7
latitudenumberobligatoriode -90 a 90
longitudenumberobligatoriode -180 a 180
uncertainty_mnumber | nullobligatorioRadio de incertidumbre en metros.
nullsi no se conoce: no saberla no es tenerla perfecta.mínimo 0
sourcestringobligatoriozone: la persona estaba en una zona de privacidad y el punto es el de la zona, no el suyo.Valores posibles:
gpsnetworkzonemaskedbooleanobligatorioEl punto es el representativo de una zona de privacidad.
position_date_utcstring (date-time)obligatorioheightobject | nullobligatorioAltura sobre el suelo por barómetro, cuando se puede afirmar;
nullsi no.Campos4
height_mnumberobligatoriouncertainty_mnumberobligatoriobuildingstring | nullobligatoriofloorstring | nullobligatorio
location_withheldbooleanobligatorio
WorkerPage
object
Campos de Worker8
idstring (uuid)obligatorioexternal_idstring | nullobligatorioCódigo del trabajador en la empresa (el de su sistema de personal).
nullsi no se ha dado.namestringNombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.
contractorstring | nullobligatoriorolestring | nullobligatoriois_activebooleanobligatorioCampos de DeviceRef4
idstring (uuid)obligatorioserialstringobligatoriobatteryinteger | nullobligatoriode 0 a 100
date_last_seenstring (date-time) | nullobligatorio
date_last_seenstring (date-time) | nullobligatorioLa más reciente entre la última posición y el último contacto del reloj.
next_cursorstring | nullobligatorioCursor opaco para la página siguiente;
nullsi no hay más.
Lo usan: Listar trabajadores
Worker
object
idstring (uuid)obligatorioexternal_idstring | nullobligatorioCódigo del trabajador en la empresa (el de su sistema de personal).
nullsi no se ha dado.namestringNombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.
contractorstring | nullobligatoriorolestring | nullobligatoriois_activebooleanobligatorioCampos de DeviceRef4
idstring (uuid)obligatorioserialstringobligatoriobatteryinteger | nullobligatoriode 0 a 100
date_last_seenstring (date-time) | nullobligatorio
date_last_seenstring (date-time) | nullobligatorioLa más reciente entre la última posición y el último contacto del reloj.
Lo usan: Detalle de un trabajador
DevicePage
object
Campos de Device8
idstring (uuid)obligatorioserialstringobligatoriobatteryinteger | nullobligatoriode 0 a 100
date_last_seenstring (date-time) | nullobligatoriomodelstring | nullobligatoriostatusstringobligatorioValores posibles:
activeinactivemaintenancelostwornboolean | nullobligatorionull: no se sabe (sin sensor de muñeca).Campos de WorkerRef4
idstring (uuid)obligatorioexternal_idstring | nullobligatorioCódigo del trabajador en la empresa (el de su sistema de personal).
nullsi no se ha dado.namestringNombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.
contractorstring | nullobligatorio
next_cursorstring | nullobligatorioCursor opaco para la página siguiente;
nullsi no hay más.
Lo usan: Listar relojes
Device
object
idstring (uuid)obligatorioserialstringobligatoriobatteryinteger | nullobligatoriode 0 a 100
date_last_seenstring (date-time) | nullobligatoriomodelstring | nullobligatoriostatusstringobligatorioValores posibles:
activeinactivemaintenancelostwornboolean | nullobligatorionull: no se sabe (sin sensor de muñeca).Campos de WorkerRef4
idstring (uuid)obligatorioexternal_idstring | nullobligatorioCódigo del trabajador en la empresa (el de su sistema de personal).
nullsi no se ha dado.namestringNombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.
contractorstring | nullobligatorio
PositionList
object
Campos de Position4
device_idstring (uuid)obligatorioCampos de WorkerRef4
idstring (uuid)obligatorioexternal_idstring | nullobligatorioCódigo del trabajador en la empresa (el de su sistema de personal).
nullsi no se ha dado.namestringNombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.
contractorstring | nullobligatorio
Campos de Location7
latitudenumberobligatoriode -90 a 90
longitudenumberobligatoriode -180 a 180
uncertainty_mnumber | nullobligatorioRadio de incertidumbre en metros.
nullsi no se conoce: no saberla no es tenerla perfecta.mínimo 0
sourcestringobligatoriozone: la persona estaba en una zona de privacidad y el punto es el de la zona, no el suyo.Valores posibles:
gpsnetworkzonemaskedbooleanobligatorioEl punto es el representativo de una zona de privacidad.
position_date_utcstring (date-time)obligatorioheightobject | nullobligatorioAltura sobre el suelo por barómetro, cuando se puede afirmar;
nullsi no.Campos4
height_mnumberobligatoriouncertainty_mnumberobligatoriobuildingstring | nullobligatoriofloorstring | nullobligatorio
in_vehiclebooleanobligatorio
Lo usan: Últimas posiciones visibles
Position
object
Solo las posiciones que el velo deja ver en ese instante: en «Solo en emergencia», quien no tiene nada abierto no aparece.
device_idstring (uuid)obligatorioCampos de WorkerRef4
idstring (uuid)obligatorioexternal_idstring | nullobligatorioCódigo del trabajador en la empresa (el de su sistema de personal).
nullsi no se ha dado.namestringNombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.
contractorstring | nullobligatorio
Campos de Location7
latitudenumberobligatoriode -90 a 90
longitudenumberobligatoriode -180 a 180
uncertainty_mnumber | nullobligatorioRadio de incertidumbre en metros.
nullsi no se conoce: no saberla no es tenerla perfecta.mínimo 0
sourcestringobligatoriozone: la persona estaba en una zona de privacidad y el punto es el de la zona, no el suyo.Valores posibles:
gpsnetworkzonemaskedbooleanobligatorioEl punto es el representativo de una zona de privacidad.
position_date_utcstring (date-time)obligatorioheightobject | nullobligatorioAltura sobre el suelo por barómetro, cuando se puede afirmar;
nullsi no.Campos4
height_mnumberobligatoriouncertainty_mnumberobligatoriobuildingstring | nullobligatoriofloorstring | nullobligatorio
in_vehiclebooleanobligatorio
EventPage
object
Campos de Event7
idstring (uuid)obligatorioPara deduplicar: la entrega es «al menos una vez».
Valores posibles:
alert.createdalert.acknowledgedalert.resolvedalert.reopenedalert.worker_acknowledgedmuster.startedmuster.kind_changedmuster.phase_changedmuster.targets_changedmuster.updatedmuster.worker_missingmuster.endedapi_versionstringobligatorioValores posibles:
2026-09-24created_atstring (date-time)obligatorioorganization_idstring (uuid) | nullobligatorioLa empresa del centro.
nullen los eventos de prueba.site_idstring (uuid)obligatoriodata{ alert } | { muster }obligatorioEl objeto completo tal como lo devolvería el
GETen ese instante.Una de 2 formas
- variante 1
Campos de Alert22
idstring (uuid)obligatorioValores posibles:
sosfall_detectedrestricted_zone_entryforbidden_zone_entrypermit_expired_insidepermit_closed_insideheat_stressevacuation_helpworker_call_requestdevice_offlinelow_batteryearthquaketsunami_riskValores posibles:
lowmediumhighcriticalValores posibles:
unacknowledgedacknowledgedresolvedtitlestringobligatorioCon
include_worker_names, el título que lee la sala (lleva el nombre de la persona). Sin él, uno compuesto con el tipo, la zona y elexternal_id, sin nombre.date_createdstring (date-time)obligatoriodate_last_modifiedstring (date-time)obligatorioPara ordenar: los webhooks no garantizan el orden, y lo más viejo que lo que ya se tiene se descarta.
location_withheldbooleanobligatorioLa posición existe pero no se entrega: en «Solo en emergencia», una alerta por debajo de la gravedad que destapa no la enseña, tampoco en el panel.
worker_acknowledged_atstring (date-time) | nullobligatorioEl trabajador pulsó «Entendido» en su reloj (hora del reloj).
resolvedobject | nullobligatorioCerrada: quién, cuándo y con qué nota.
assigned_tostring | nullobligatoriosimulatedbooleanobligatorioGenerada en un simulacro o con relojes simulados.
panel_urlstring (uri)obligatorio
- variante 2
Campos de Muster13
idstring (uuid)obligatoriostatusstringobligatorioValores posibles:
activecompletedcancelledphasestringobligatorioinspecting: recuento completo y la sala revisa la planta; los relojes dicen «no vuelvas hasta nuevo aviso».Valores posibles:
evacuatinginspectingValores posibles:
generaltsunamiearthquakereasonstring | nullobligatoriostarted_atstring (date-time)obligatorioended_atstring (date-time) | nullobligatoriodeadlineobject | nullobligatoriooriginobject | nullobligatorioDe dónde viene la emergencia.
nullen una evacuación sin origen (un simulacro general).targets_revisionintegerobligatorioSube cada vez que cambian los destinos (descarte, rehabilitación, cambio de tipo).
totalsobjectobligatorioLas mismas cifras que el banner del panel y el cierre: las cuenta el servidor. En una evacuación cerrada queda lo que se registró al cerrar —llegados y total—, y el resto sale
null.Los destinos del tipo, descartados incluidos.
next_cursorstring | nullobligatorioCursor opaco para la página siguiente;
nullsi no hay más.
Lo usan: Reproducir eventos
WebhookEndpointList
object
Campos de WebhookEndpoint7
idstring (uuid)obligatoriourlstring (uri)obligatorioevent_typesarray<EventType | "alert.*" | "muster.*">obligatoriofiltersobjectobligatorioCampos3
site_idsarray<string (uuid)>min_severitySeverityValores posibles:
lowmediumhighcriticalcontractorsarray<string>
is_activebooleanobligatoriofailing_sincestring (date-time) | nullobligatorioLleva fallando desde entonces. El destino no se desactiva solo: dejaría de llegar el siguiente SOS sin que nadie lo decida.
created_atstring (date-time)obligatorio
Lo usan: Listar destinos
WebhookEndpoint
object
idstring (uuid)obligatoriourlstring (uri)obligatorioevent_typesarray<EventType | "alert.*" | "muster.*">obligatoriofiltersobjectobligatorioCampos3
site_idsarray<string (uuid)>min_severitySeverityValores posibles:
lowmediumhighcriticalcontractorsarray<string>
is_activebooleanobligatoriofailing_sincestring (date-time) | nullobligatorioLleva fallando desde entonces. El destino no se desactiva solo: dejaría de llegar el siguiente SOS sin que nadie lo decida.
created_atstring (date-time)obligatorio
WebhookEndpointCreated
object
idstring (uuid)obligatoriourlstring (uri)obligatorioevent_typesarray<EventType | "alert.*" | "muster.*">obligatoriofiltersobjectobligatorioCampos3
site_idsarray<string (uuid)>min_severitySeverityValores posibles:
lowmediumhighcriticalcontractorsarray<string>
is_activebooleanobligatoriofailing_sincestring (date-time) | nullobligatorioLleva fallando desde entonces. El destino no se desactiva solo: dejaría de llegar el siguiente SOS sin que nadie lo decida.
created_atstring (date-time)obligatoriosecretstringobligatorioEl secreto de firma. Solo se enseña esta vez.
Lo usan: Crear un destino
WebhookEndpointCreate
object
urlstringobligatorioevent_typesarray<EventType | "alert.*" | "muster.*">obligatoriofiltersobjectCampos3
site_idsarray<string (uuid)>min_severitySeverityValores posibles:
lowmediumhighcriticalcontractorsarray<string>
Lo usan: Crear un destino
WebhookSecretRotated
object
secretstringobligatorioprevious_valid_untilstring (date-time)obligatorio
Lo usan: Rotar el secreto de firma
SandboxScenarioRun
object
run_idstring (uuid)obligatorioValores posibles:
sosfallheat_stressevacuationsite_idstring (uuid)obligatorioresourceobjectobligatorioLo que ha abierto: consultadlo con su
GET, o esperad el webhook.Campos2
typestringobligatorioValores posibles:
alertmusteridstring (uuid)obligatorio
ends_atstring (date-time)obligatorioCuándo se cierra solo.
Lo usan: Lanzar un escenario de prueba
SandboxScenario
string
sos,fall,heat_stress: una persona de prueba pulsa el SOS, se cae o sufre estrés térmico. Sale la alerta (alert.created) y, si nadie la cierra antes conPUT /v1/alerts/{id}, se cierra sola a los 10 min (alert.resolved).evacuation: una evacuación general de 3 min. A los 15 s llegan cuatro personas al punto A; a los 35 s alguien llega al B y la sala lo descarta (muster.targets_changed); a los 55 s una persona pide ayuda (alert.created,evacuation_help); a los 95 s quien estaba en B se va al C; a los 3 min, todo despejado (muster.ended). Entre medias,muster.updatedcada vez que cambia el recuento.
sosfallheat_stressevacuation
SandboxScenarioRequest
object
Valores posibles:
sosfallheat_stressevacuationsite_idstring (uuid)El centro de sandbox. Sin él, el primero de los vuestros que sea de sandbox.
Lo usan: Lanzar un escenario de prueba