v1 · vista previa

Prueba con webhook firma, alert.created, location_withheld o 429.

↑ ↓ moverseIntro abrirEsc cerrar

Referencia

Esquemas

Los objetos que la API acepta y devuelve, campo a campo, tal como los define el contrato OpenAPI.

Event

object

  • idstring (uuid)obligatorio

    Para deduplicar: la entrega es «al menos una vez».

  • typeEventTypeobligatorio

    Valores posibles: alert.createdalert.acknowledgedalert.resolvedalert.reopenedalert.worker_acknowledgedmuster.startedmuster.kind_changedmuster.phase_changedmuster.targets_changedmuster.updatedmuster.worker_missingmuster.ended

  • api_versionstringobligatorio

    Valores posibles: 2026-09-24

  • created_atstring (date-time)obligatorio
  • organization_idstring (uuid) | nullobligatorio

    La empresa del centro. null en los eventos de prueba.

  • site_idstring (uuid)obligatorio
  • data{ alert } | { muster }obligatorio

    El objeto completo tal como lo devolvería el GET en ese instante.

    Una de 2 formas
    • variante 1
      • alertAlertobligatorio
        Campos de Alert22
        • idstring (uuid)obligatorio
        • typeAlertTypeobligatorio

          Valores posibles: sosfall_detectedrestricted_zone_entryforbidden_zone_entrypermit_expired_insidepermit_closed_insideheat_stressevacuation_helpworker_call_requestdevice_offlinelow_batteryearthquaketsunami_risk

        • severitySeverityobligatorio

          Valores posibles: lowmediumhighcritical

        • statusAlertStatusobligatorio

          Valores posibles: unacknowledgedacknowledgedresolved

        • titlestringobligatorio

          Con 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 el external_id, sin nombre.

        • date_createdstring (date-time)obligatorio
        • date_last_modifiedstring (date-time)obligatorio

          Para ordenar: los webhooks no garantizan el orden, y lo más viejo que lo que ya se tiene se descarta.

        • siteSiteRefobligatorio
          Campos de SiteRef2
          • idstring (uuid)obligatorio
          • namestringobligatorio
        • zoneZoneRefobligatorio
          Campos de ZoneRef2
          • idstring (uuid)obligatorio
          • namestringobligatorio
        • workerWorkerRefobligatorio
          Campos de WorkerRef4
          • idstring (uuid)obligatorio
          • external_idstring | nullobligatorio

            Código del trabajador en la empresa (el de su sistema de personal). null si no se ha dado.

          • namestring

            Nombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.

          • contractorstring | nullobligatorio
        • deviceDeviceRefobligatorio
          Campos de DeviceRef4
          • idstring (uuid)obligatorio
          • serialstringobligatorio
          • batteryinteger | nullobligatorio

            de 0 a 100

          • date_last_seenstring (date-time) | nullobligatorio
        • locationLocationobligatorio
          Campos de Location7
          • latitudenumberobligatorio

            de -90 a 90

          • longitudenumberobligatorio

            de -180 a 180

          • uncertainty_mnumber | nullobligatorio

            Radio de incertidumbre en metros. null si no se conoce: no saberla no es tenerla perfecta.

            mínimo 0

          • sourcestringobligatorio

            zone: la persona estaba en una zona de privacidad y el punto es el de la zona, no el suyo.

            Valores posibles: gpsnetworkzone

          • maskedbooleanobligatorio

            El punto es el representativo de una zona de privacidad.

          • position_date_utcstring (date-time)obligatorio
          • heightobject | nullobligatorio

            Altura sobre el suelo por barómetro, cuando se puede afirmar; null si no.

        • location_withheldbooleanobligatorio

          La 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.

        • detailsAlertDetailsobligatorio
          Una de 9 formas
            • triggerstringobligatorio

              Có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_sosbooleanobligatorio

              No contestó al «¿Estás bien?» del reloj y pasó a SOS.

            • zone_typestringobligatorio

              Valores posibles: restrictedforbidden

            • permit_referencestring | nullobligatorio

              El 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.

            • actionstringobligatorio

              Lo que se le ha dicho en el reloj: parar, beber y buscar sombra. No hay niveles.

              Valores posibles: stop_and_rest

            • heat_index_cnumber | nullobligatorio

              Índice de calor de la planta (°C).

            • sun_exposure_minutesinteger | nullobligatorio
            • reasonstring | nullobligatorio

              Lo que dijo en el reloj: atrapado, herido o ayudando a otra persona.

              Valores posibles: trappedinjuredhelping

            • muster_idstring (uuid)obligatorio
            • voice_notebooleanobligatorio

              Sin cobertura, el reloj grabó un aviso de voz (se escucha en el panel).

            • minutes_silentintegerobligatorio
            • battery_pctintegerobligatorio

              de 0 a 100

            • magnitudenumber | nullobligatorio
            • distance_kmnumber | nullobligatorio
            • officialbooleanobligatorio

              false: estimación de SafeOnuba sin aviso oficial. true: boletín oficial confirmado por una persona.

            • felt_at_sitebooleanobligatorio
            • etastring (date-time) | nullobligatorio

              Llegada estimada de la ola (tsunami).

        • nearbyarray<Nearby>obligatorio
          Campos de Nearby5
          • kindstringobligatorio

            Valores posibles: personvehicle

          • workerobjectobligatorio
          • vehicle_typestring | nullobligatorio
          • distance_mintegerobligatorio
          • reported_atstring (date-time)obligatorio
        • vehicle_warningsarray<VehicleWarning>obligatorio
          Campos de VehicleWarning4
          • atstring (date-time)obligatorio
          • vehicle_typestring | nullobligatorio
          • distance_mintegerobligatorio
          • worker_acknowledged_atstring (date-time) | nullobligatorio
        • worker_acknowledged_atstring (date-time) | nullobligatorio

          El trabajador pulsó «Entendido» en su reloj (hora del reloj).

        • acknowledgedActionByobligatorio
          Campos de ActionBy2
          • atstring (date-time)obligatorio
          • bystringobligatorio

            Quién: una persona del panel, o «Cliente · Operador (vía integración)».

        • resolvedobject | nullobligatorio

          Cerrada: quién, cuándo y con qué nota.

          Campos3
          • atstring (date-time)obligatorio
          • bystringobligatorio

            Quién: una persona del panel, o «Cliente · Operador (vía integración)».

          • notestring | nullobligatorio
        • assigned_tostring | nullobligatorio
        • simulatedbooleanobligatorio

          Generada en un simulacro o con relojes simulados.

        • panel_urlstring (uri)obligatorio
    • variante 2
      • musterMusterobligatorio
        Campos de Muster13
        • idstring (uuid)obligatorio
        • siteSiteRefobligatorio
          Campos de SiteRef2
          • idstring (uuid)obligatorio
          • namestringobligatorio
        • statusstringobligatorio

          Valores posibles: activecompletedcancelled

        • phasestringobligatorio

          inspecting: recuento completo y la sala revisa la planta; los relojes dicen «no vuelvas hasta nuevo aviso».

          Valores posibles: evacuatinginspecting

        • kindMusterKindobligatorio

          Valores posibles: generaltsunamiearthquake

        • reasonstring | nullobligatorio
        • started_atstring (date-time)obligatorio
        • ended_atstring (date-time) | nullobligatorio
        • deadlineobject | nullobligatorio
          Campos2
          • atstring (date-time)obligatorio
          • sourcestringobligatorio

            Tsunami: hora de un aviso oficial, o el techo del plan de la zona. Nunca un cálculo físico.

            Valores posibles: officialplan_estimate

        • originobject | nullobligatorio

          De dónde viene la emergencia. null en una evacuación sin origen (un simulacro general).

          Campos5
          • latitudenumberobligatorio
          • longitudenumberobligatorio
          • radius_mintegerobligatorio
          • labelstring | nullobligatorio
          • zoneZoneRefobligatorio
        • targets_revisionintegerobligatorio

          Sube cada vez que cambian los destinos (descarte, rehabilitación, cambio de tipo).

        • totalsobjectobligatorio

          Las 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
          • expectedintegerobligatorio
          • safeintegerobligatorio
          • helpinteger | nullobligatorio
          • wrong_pointinteger | nullobligatorio
          • pendinginteger | nullobligatorio
          • no_signalinteger | nullobligatorio
          • not_worninteger | nullobligatorio
        • assembly_pointsarray<AssemblyPoint>obligatorio

          Los destinos del tipo, descartados incluidos.

          Campos de AssemblyPoint5
          • idstring (uuid)obligatorio
          • namestringobligatorio
          • statusstringobligatorio

            Valores posibles: availableexcluded

          • countinteger | nullobligatorio

            Personas a salvo en este punto. null en una evacuación cerrada: al cerrar solo se guarda el total.

          • excludedobject | nullobligatorio

Lo usan: Cambios en una alerta, Cambios en una evacuación

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)obligatorio
  • typeAlertTypeobligatorio

    Valores posibles: sosfall_detectedrestricted_zone_entryforbidden_zone_entrypermit_expired_insidepermit_closed_insideheat_stressevacuation_helpworker_call_requestdevice_offlinelow_batteryearthquaketsunami_risk

  • severitySeverityobligatorio

    Valores posibles: lowmediumhighcritical

  • statusAlertStatusobligatorio

    Valores posibles: unacknowledgedacknowledgedresolved

  • titlestringobligatorio

    Con 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 el external_id, sin nombre.

  • date_createdstring (date-time)obligatorio
  • date_last_modifiedstring (date-time)obligatorio

    Para ordenar: los webhooks no garantizan el orden, y lo más viejo que lo que ya se tiene se descarta.

  • siteSiteRefobligatorio
    Campos de SiteRef2
    • idstring (uuid)obligatorio
    • namestringobligatorio
  • zoneZoneRefobligatorio
    Campos de ZoneRef2
    • idstring (uuid)obligatorio
    • namestringobligatorio
  • workerWorkerRefobligatorio
    Campos de WorkerRef4
    • idstring (uuid)obligatorio
    • external_idstring | nullobligatorio

      Código del trabajador en la empresa (el de su sistema de personal). null si no se ha dado.

    • namestring

      Nombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.

    • contractorstring | nullobligatorio
  • deviceDeviceRefobligatorio
    Campos de DeviceRef4
    • idstring (uuid)obligatorio
    • serialstringobligatorio
    • batteryinteger | nullobligatorio

      de 0 a 100

    • date_last_seenstring (date-time) | nullobligatorio
  • locationLocationobligatorio
    Campos de Location7
    • latitudenumberobligatorio

      de -90 a 90

    • longitudenumberobligatorio

      de -180 a 180

    • uncertainty_mnumber | nullobligatorio

      Radio de incertidumbre en metros. null si no se conoce: no saberla no es tenerla perfecta.

      mínimo 0

    • sourcestringobligatorio

      zone: la persona estaba en una zona de privacidad y el punto es el de la zona, no el suyo.

      Valores posibles: gpsnetworkzone

    • maskedbooleanobligatorio

      El punto es el representativo de una zona de privacidad.

    • position_date_utcstring (date-time)obligatorio
    • heightobject | nullobligatorio

      Altura sobre el suelo por barómetro, cuando se puede afirmar; null si no.

      Campos4
      • height_mnumberobligatorio
      • uncertainty_mnumberobligatorio
      • buildingstring | nullobligatorio
      • floorstring | nullobligatorio
  • location_withheldbooleanobligatorio

    La 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.

  • detailsAlertDetailsobligatorio
    Una de 9 formas
      • triggerstringobligatorio

        Có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_sosbooleanobligatorio

        No contestó al «¿Estás bien?» del reloj y pasó a SOS.

      • zone_typestringobligatorio

        Valores posibles: restrictedforbidden

      • permit_referencestring | nullobligatorio

        El 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.

      • actionstringobligatorio

        Lo que se le ha dicho en el reloj: parar, beber y buscar sombra. No hay niveles.

        Valores posibles: stop_and_rest

      • heat_index_cnumber | nullobligatorio

        Índice de calor de la planta (°C).

      • sun_exposure_minutesinteger | nullobligatorio
      • reasonstring | nullobligatorio

        Lo que dijo en el reloj: atrapado, herido o ayudando a otra persona.

        Valores posibles: trappedinjuredhelping

      • muster_idstring (uuid)obligatorio
      • voice_notebooleanobligatorio

        Sin cobertura, el reloj grabó un aviso de voz (se escucha en el panel).

      • minutes_silentintegerobligatorio
      • battery_pctintegerobligatorio

        de 0 a 100

      • magnitudenumber | nullobligatorio
      • distance_kmnumber | nullobligatorio
      • officialbooleanobligatorio

        false: estimación de SafeOnuba sin aviso oficial. true: boletín oficial confirmado por una persona.

      • felt_at_sitebooleanobligatorio
      • etastring (date-time) | nullobligatorio

        Llegada estimada de la ola (tsunami).

  • nearbyarray<Nearby>obligatorio
    Campos de Nearby5
    • kindstringobligatorio

      Valores posibles: personvehicle

    • workerobjectobligatorio
      Campos4
      • idstring (uuid) | nullobligatorio

        null en alertas anteriores al 24/09/2026, cuando aún no se copiaba.

      • external_idstring | nullobligatorio

        Código del trabajador en la empresa (el de su sistema de personal). null si no se ha dado.

      • namestring

        Nombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.

      • contractorstring | nullobligatorio
    • vehicle_typestring | nullobligatorio
    • distance_mintegerobligatorio
    • reported_atstring (date-time)obligatorio
  • vehicle_warningsarray<VehicleWarning>obligatorio
    Campos de VehicleWarning4
    • atstring (date-time)obligatorio
    • vehicle_typestring | nullobligatorio
    • distance_mintegerobligatorio
    • worker_acknowledged_atstring (date-time) | nullobligatorio
  • worker_acknowledged_atstring (date-time) | nullobligatorio

    El trabajador pulsó «Entendido» en su reloj (hora del reloj).

  • acknowledgedActionByobligatorio
    Campos de ActionBy2
    • atstring (date-time)obligatorio
    • bystringobligatorio

      Quién: una persona del panel, o «Cliente · Operador (vía integración)».

  • resolvedobject | nullobligatorio

    Cerrada: quién, cuándo y con qué nota.

    Campos3
    • atstring (date-time)obligatorio
    • bystringobligatorio

      Quién: una persona del panel, o «Cliente · Operador (vía integración)».

    • notestring | nullobligatorio
  • assigned_tostring | nullobligatorio
  • simulatedbooleanobligatorio

    Generada 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)obligatorio
  • namestringobligatorio

ZoneRef

object | null

  • idstring (uuid)obligatorio
  • namestringobligatorio

WorkerRef

object | null

  • idstring (uuid)obligatorio
  • external_idstring | nullobligatorio

    Código del trabajador en la empresa (el de su sistema de personal). null si no se ha dado.

  • namestring

    Nombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.

  • contractorstring | nullobligatorio

DeviceRef

object | null

  • idstring (uuid)obligatorio
  • serialstringobligatorio
  • batteryinteger | nullobligatorio

    de 0 a 100

  • date_last_seenstring (date-time) | nullobligatorio

Location

object | null

  • latitudenumberobligatorio

    de -90 a 90

  • longitudenumberobligatorio

    de -180 a 180

  • uncertainty_mnumber | nullobligatorio

    Radio de incertidumbre en metros. null si no se conoce: no saberla no es tenerla perfecta.

    mínimo 0

  • sourcestringobligatorio

    zone: la persona estaba en una zona de privacidad y el punto es el de la zona, no el suyo.

    Valores posibles: gpsnetworkzone

  • maskedbooleanobligatorio

    El punto es el representativo de una zona de privacidad.

  • position_date_utcstring (date-time)obligatorio
  • heightobject | nullobligatorio

    Altura sobre el suelo por barómetro, cuando se puede afirmar; null si no.

    Campos4
    • height_mnumberobligatorio
    • uncertainty_mnumberobligatorio
    • buildingstring | nullobligatorio
    • floorstring | 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

  • triggerstringobligatorio

    Có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_sosbooleanobligatorio

    No contestó al «¿Estás bien?» del reloj y pasó a SOS.

ZoneDetails

object

  • zone_typestringobligatorio

    Valores posibles: restrictedforbidden

  • permit_referencestring | nullobligatorio

    El 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.

  • actionstringobligatorio

    Lo que se le ha dicho en el reloj: parar, beber y buscar sombra. No hay niveles.

    Valores posibles: stop_and_rest

  • heat_index_cnumber | nullobligatorio

    Índice de calor de la planta (°C).

  • sun_exposure_minutesinteger | nullobligatorio

EvacuationHelpDetails

object

  • reasonstring | nullobligatorio

    Lo que dijo en el reloj: atrapado, herido o ayudando a otra persona.

    Valores posibles: trappedinjuredhelping

  • muster_idstring (uuid)obligatorio

WorkerCallDetails

object

  • voice_notebooleanobligatorio

    Sin cobertura, el reloj grabó un aviso de voz (se escucha en el panel).

DeviceOfflineDetails

object

  • minutes_silentintegerobligatorio

LowBatteryDetails

object

  • battery_pctintegerobligatorio

    de 0 a 100

HazardDetails

object

  • magnitudenumber | nullobligatorio
  • distance_kmnumber | nullobligatorio
  • officialbooleanobligatorio

    false: estimación de SafeOnuba sin aviso oficial. true: boletín oficial confirmado por una persona.

  • felt_at_sitebooleanobligatorio
  • etastring (date-time) | nullobligatorio

    Llegada 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.

  • kindstringobligatorio

    Valores posibles: personvehicle

  • workerobjectobligatorio
    Campos4
    • idstring (uuid) | nullobligatorio

      null en alertas anteriores al 24/09/2026, cuando aún no se copiaba.

    • external_idstring | nullobligatorio

      Código del trabajador en la empresa (el de su sistema de personal). null si no se ha dado.

    • namestring

      Nombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.

    • contractorstring | nullobligatorio
  • vehicle_typestring | nullobligatorio
  • distance_mintegerobligatorio
  • reported_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)obligatorio
  • vehicle_typestring | nullobligatorio
  • distance_mintegerobligatorio
  • worker_acknowledged_atstring (date-time) | nullobligatorio

ActionBy

object | null

  • atstring (date-time)obligatorio
  • bystringobligatorio

    Quién: una persona del panel, o «Cliente · Operador (vía integración)».

Muster

object

  • idstring (uuid)obligatorio
  • siteSiteRefobligatorio
    Campos de SiteRef2
    • idstring (uuid)obligatorio
    • namestringobligatorio
  • statusstringobligatorio

    Valores posibles: activecompletedcancelled

  • phasestringobligatorio

    inspecting: recuento completo y la sala revisa la planta; los relojes dicen «no vuelvas hasta nuevo aviso».

    Valores posibles: evacuatinginspecting

  • kindMusterKindobligatorio

    Valores posibles: generaltsunamiearthquake

  • reasonstring | nullobligatorio
  • started_atstring (date-time)obligatorio
  • ended_atstring (date-time) | nullobligatorio
  • deadlineobject | nullobligatorio
    Campos2
    • atstring (date-time)obligatorio
    • sourcestringobligatorio

      Tsunami: hora de un aviso oficial, o el techo del plan de la zona. Nunca un cálculo físico.

      Valores posibles: officialplan_estimate

  • originobject | nullobligatorio

    De dónde viene la emergencia. null en una evacuación sin origen (un simulacro general).

    Campos5
    • latitudenumberobligatorio
    • longitudenumberobligatorio
    • radius_mintegerobligatorio
    • labelstring | nullobligatorio
    • zoneZoneRefobligatorio
      Campos de ZoneRef2
      • idstring (uuid)obligatorio
      • namestringobligatorio
  • targets_revisionintegerobligatorio

    Sube cada vez que cambian los destinos (descarte, rehabilitación, cambio de tipo).

  • totalsobjectobligatorio

    Las 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
    • expectedintegerobligatorio
    • safeintegerobligatorio
    • helpinteger | nullobligatorio
    • wrong_pointinteger | nullobligatorio
    • pendinginteger | nullobligatorio
    • no_signalinteger | nullobligatorio
    • not_worninteger | nullobligatorio
  • assembly_pointsarray<AssemblyPoint>obligatorio

    Los destinos del tipo, descartados incluidos.

    Campos de AssemblyPoint5
    • idstring (uuid)obligatorio
    • namestringobligatorio
    • statusstringobligatorio

      Valores posibles: availableexcluded

    • countinteger | nullobligatorio

      Personas a salvo en este punto. null en una evacuación cerrada: al cerrar solo se guarda el total.

    • excludedobject | nullobligatorio
      Campos4
      • reasonstringobligatorio
      • recommendedbooleanobligatorio

        Lo había recomendado el sistema (radio o viento). Quien descarta es siempre una persona.

      • atstring (date-time)obligatorio
      • bystringobligatorio

Lo usan: Estado y recuento de una evacuación

MusterKind

string

generaltsunamiearthquake

AssemblyPoint

object

  • idstring (uuid)obligatorio
  • namestringobligatorio
  • statusstringobligatorio

    Valores posibles: availableexcluded

  • countinteger | nullobligatorio

    Personas a salvo en este punto. null en una evacuación cerrada: al cerrar solo se guarda el total.

  • excludedobject | nullobligatorio
    Campos4
    • reasonstringobligatorio
    • recommendedbooleanobligatorio

      Lo había recomendado el sistema (radio o viento). Quien descarta es siempre una persona.

    • atstring (date-time)obligatorio
    • bystringobligatorio

TokenResponse

object

  • access_tokenstringobligatorio
  • token_typestringobligatorio

    Valores posibles: Bearer

  • expires_innumberobligatorio

    Valores posibles: 3600

  • scopestringobligatorio

Lo usan: Pedir un token (client_credentials)

OAuthError

object

Error del token, en el formato de RFC 6749 §5.2.

  • errorstringobligatorio

    Valores posibles: invalid_requestinvalid_clientunauthorized_clientunsupported_grant_typeinvalid_scope

  • error_descriptionstring

Lo usan: Pedir un token (client_credentials)

TokenRequest

object

  • grant_typestringobligatorio

    Valores posibles: client_credentials

  • client_idstringobligatorio
  • client_secretstringobligatorio
  • scopestring

    Separados por espacios; subconjunto de los del cliente. Sin él, todos los del cliente.

Lo usan: Pedir un token (client_credentials)

SiteList

object

  • dataarray<Site>obligatorio
    Campos de Site5
    • idstring (uuid)obligatorio
    • namestringobligatorio
    • locationstring | nullobligatorio
    • privacy_modestringobligatorio

      on_demand («Solo en emergencia»): la posición de una persona solo se ve con una alerta abierta desde unveil_min_severity, en evacuación o con una solicitud aprobada. La API obedece la misma regla que el panel.

      Valores posibles: continuouson_demand

    • unveil_min_severitySeverityobligatorio

      Valores posibles: lowmediumhighcritical

Lo usan: Centros del cliente

Site

object

  • idstring (uuid)obligatorio
  • namestringobligatorio
  • locationstring | nullobligatorio
  • privacy_modestringobligatorio

    on_demand («Solo en emergencia»): la posición de una persona solo se ve con una alerta abierta desde unveil_min_severity, en evacuación o con una solicitud aprobada. La API obedece la misma regla que el panel.

    Valores posibles: continuouson_demand

  • unveil_min_severitySeverityobligatorio

    Valores posibles: lowmediumhighcritical

Problem

object

Error en formato RFC 9457 (application/problem+json), con el código HTTP real.

  • typestringobligatorio

    URI que identifica el tipo de problema.

  • titlestringobligatorio
  • statusintegerobligatorio
  • detailstring
  • instancestring
  • codestringobligatorio

    Có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

  • dataarray<Zone>obligatorio
    Campos de Zone5
    • idstring (uuid)obligatorio
    • namestringobligatorio
    • typestringobligatorio

      Valores posibles: work_arearestrictedforbiddenassembly_pointprivacybuilding

    • geometryobject | nullobligatorio

      Polígono GeoJSON (WGS84). null en las zonas de privacidad: se da el nombre y el tipo, no dónde están (pendiente de validar con el comité).

      Campos2
      • typestringobligatorio

        Valores posibles: Polygon

      • coordinatesarray<array<array>>obligatorio
    • assembly_pointobject | nullobligatorio

      Solo en los puntos de reunión.

      Campos5
      • servesarray<string>obligatorio

        Valores posibles: generaltsunamiearthquake

      • elevation_mnumber | nullobligatorio
      • elevation_sourcestring | nullobligatorio

        Valores posibles: demverified

      • verticalbooleanobligatorio

        Refugio en altura (un edificio).

      • capacityinteger | nullobligatorio

Lo usan: Zonas y puntos de reunión de un centro

Zone

object

  • idstring (uuid)obligatorio
  • namestringobligatorio
  • typestringobligatorio

    Valores posibles: work_arearestrictedforbiddenassembly_pointprivacybuilding

  • geometryobject | nullobligatorio

    Polígono GeoJSON (WGS84). null en las zonas de privacidad: se da el nombre y el tipo, no dónde están (pendiente de validar con el comité).

    Campos2
    • typestringobligatorio

      Valores posibles: Polygon

    • coordinatesarray<array<array>>obligatorio
  • assembly_pointobject | nullobligatorio

    Solo en los puntos de reunión.

    Campos5
    • servesarray<string>obligatorio

      Valores posibles: generaltsunamiearthquake

    • elevation_mnumber | nullobligatorio
    • elevation_sourcestring | nullobligatorio

      Valores posibles: demverified

    • verticalbooleanobligatorio

      Refugio en altura (un edificio).

    • capacityinteger | nullobligatorio

AlertPage

object

  • dataarray<Alert>obligatorio
    Campos de Alert22
    • idstring (uuid)obligatorio
    • typeAlertTypeobligatorio

      Valores posibles: sosfall_detectedrestricted_zone_entryforbidden_zone_entrypermit_expired_insidepermit_closed_insideheat_stressevacuation_helpworker_call_requestdevice_offlinelow_batteryearthquaketsunami_risk

    • severitySeverityobligatorio

      Valores posibles: lowmediumhighcritical

    • statusAlertStatusobligatorio

      Valores posibles: unacknowledgedacknowledgedresolved

    • titlestringobligatorio

      Con 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 el external_id, sin nombre.

    • date_createdstring (date-time)obligatorio
    • date_last_modifiedstring (date-time)obligatorio

      Para ordenar: los webhooks no garantizan el orden, y lo más viejo que lo que ya se tiene se descarta.

    • siteSiteRefobligatorio
      Campos de SiteRef2
      • idstring (uuid)obligatorio
      • namestringobligatorio
    • zoneZoneRefobligatorio
      Campos de ZoneRef2
      • idstring (uuid)obligatorio
      • namestringobligatorio
    • workerWorkerRefobligatorio
      Campos de WorkerRef4
      • idstring (uuid)obligatorio
      • external_idstring | nullobligatorio

        Código del trabajador en la empresa (el de su sistema de personal). null si no se ha dado.

      • namestring

        Nombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.

      • contractorstring | nullobligatorio
    • deviceDeviceRefobligatorio
      Campos de DeviceRef4
      • idstring (uuid)obligatorio
      • serialstringobligatorio
      • batteryinteger | nullobligatorio

        de 0 a 100

      • date_last_seenstring (date-time) | nullobligatorio
    • locationLocationobligatorio
      Campos de Location7
      • latitudenumberobligatorio

        de -90 a 90

      • longitudenumberobligatorio

        de -180 a 180

      • uncertainty_mnumber | nullobligatorio

        Radio de incertidumbre en metros. null si no se conoce: no saberla no es tenerla perfecta.

        mínimo 0

      • sourcestringobligatorio

        zone: la persona estaba en una zona de privacidad y el punto es el de la zona, no el suyo.

        Valores posibles: gpsnetworkzone

      • maskedbooleanobligatorio

        El punto es el representativo de una zona de privacidad.

      • position_date_utcstring (date-time)obligatorio
      • heightobject | nullobligatorio

        Altura sobre el suelo por barómetro, cuando se puede afirmar; null si no.

        Campos4
        • height_mnumberobligatorio
        • uncertainty_mnumberobligatorio
        • buildingstring | nullobligatorio
        • floorstring | nullobligatorio
    • location_withheldbooleanobligatorio

      La 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.

    • detailsAlertDetailsobligatorio
      Una de 9 formas
        • triggerstringobligatorio

          Có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_sosbooleanobligatorio

          No contestó al «¿Estás bien?» del reloj y pasó a SOS.

        • zone_typestringobligatorio

          Valores posibles: restrictedforbidden

        • permit_referencestring | nullobligatorio

          El 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.

        • actionstringobligatorio

          Lo que se le ha dicho en el reloj: parar, beber y buscar sombra. No hay niveles.

          Valores posibles: stop_and_rest

        • heat_index_cnumber | nullobligatorio

          Índice de calor de la planta (°C).

        • sun_exposure_minutesinteger | nullobligatorio
        • reasonstring | nullobligatorio

          Lo que dijo en el reloj: atrapado, herido o ayudando a otra persona.

          Valores posibles: trappedinjuredhelping

        • muster_idstring (uuid)obligatorio
        • voice_notebooleanobligatorio

          Sin cobertura, el reloj grabó un aviso de voz (se escucha en el panel).

        • minutes_silentintegerobligatorio
        • battery_pctintegerobligatorio

          de 0 a 100

        • magnitudenumber | nullobligatorio
        • distance_kmnumber | nullobligatorio
        • officialbooleanobligatorio

          false: estimación de SafeOnuba sin aviso oficial. true: boletín oficial confirmado por una persona.

        • felt_at_sitebooleanobligatorio
        • etastring (date-time) | nullobligatorio

          Llegada estimada de la ola (tsunami).

    • nearbyarray<Nearby>obligatorio
      Campos de Nearby5
      • kindstringobligatorio

        Valores posibles: personvehicle

      • workerobjectobligatorio
        Campos4
        • idstring (uuid) | nullobligatorio

          null en alertas anteriores al 24/09/2026, cuando aún no se copiaba.

        • external_idstring | nullobligatorio

          Código del trabajador en la empresa (el de su sistema de personal). null si no se ha dado.

        • namestring

          Nombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.

        • contractorstring | nullobligatorio
      • vehicle_typestring | nullobligatorio
      • distance_mintegerobligatorio
      • reported_atstring (date-time)obligatorio
    • vehicle_warningsarray<VehicleWarning>obligatorio
      Campos de VehicleWarning4
      • atstring (date-time)obligatorio
      • vehicle_typestring | nullobligatorio
      • distance_mintegerobligatorio
      • worker_acknowledged_atstring (date-time) | nullobligatorio
    • worker_acknowledged_atstring (date-time) | nullobligatorio

      El trabajador pulsó «Entendido» en su reloj (hora del reloj).

    • acknowledgedActionByobligatorio
      Campos de ActionBy2
      • atstring (date-time)obligatorio
      • bystringobligatorio

        Quién: una persona del panel, o «Cliente · Operador (vía integración)».

    • resolvedobject | nullobligatorio

      Cerrada: quién, cuándo y con qué nota.

      Campos3
      • atstring (date-time)obligatorio
      • bystringobligatorio

        Quién: una persona del panel, o «Cliente · Operador (vía integración)».

      • notestring | nullobligatorio
    • assigned_tostring | nullobligatorio
    • simulatedbooleanobligatorio

      Generada en un simulacro o con relojes simulados.

    • panel_urlstring (uri)obligatorio
  • next_cursorstring | nullobligatorio

    Cursor opaco para la página siguiente; null si 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.

  • statusstringobligatorio

    Valores posibles: acknowledgedresolved

  • resolution_reasonstring

    Al cerrar: por qué. Texto libre; va a la cronología de la alerta junto a la nota.

    hasta 200 caracteres

  • notestring

    hasta 500 caracteres

  • actorActorobligatorio
    Campos de Actor2
    • namestringobligatorio

      hasta 120 caracteres

    • external_idstring

      hasta 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.

  • namestringobligatorio

    hasta 120 caracteres

  • external_idstring

    hasta 64 caracteres

MusterPage

object

  • dataarray<Muster>obligatorio
    Campos de Muster13
    • idstring (uuid)obligatorio
    • siteSiteRefobligatorio
      Campos de SiteRef2
      • idstring (uuid)obligatorio
      • namestringobligatorio
    • statusstringobligatorio

      Valores posibles: activecompletedcancelled

    • phasestringobligatorio

      inspecting: recuento completo y la sala revisa la planta; los relojes dicen «no vuelvas hasta nuevo aviso».

      Valores posibles: evacuatinginspecting

    • kindMusterKindobligatorio

      Valores posibles: generaltsunamiearthquake

    • reasonstring | nullobligatorio
    • started_atstring (date-time)obligatorio
    • ended_atstring (date-time) | nullobligatorio
    • deadlineobject | nullobligatorio
      Campos2
      • atstring (date-time)obligatorio
      • sourcestringobligatorio

        Tsunami: hora de un aviso oficial, o el techo del plan de la zona. Nunca un cálculo físico.

        Valores posibles: officialplan_estimate

    • originobject | nullobligatorio

      De dónde viene la emergencia. null en una evacuación sin origen (un simulacro general).

      Campos5
      • latitudenumberobligatorio
      • longitudenumberobligatorio
      • radius_mintegerobligatorio
      • labelstring | nullobligatorio
      • zoneZoneRefobligatorio
        Campos de ZoneRef2
        • idstring (uuid)obligatorio
        • namestringobligatorio
    • targets_revisionintegerobligatorio

      Sube cada vez que cambian los destinos (descarte, rehabilitación, cambio de tipo).

    • totalsobjectobligatorio

      Las 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
      • expectedintegerobligatorio
      • safeintegerobligatorio
      • helpinteger | nullobligatorio
      • wrong_pointinteger | nullobligatorio
      • pendinginteger | nullobligatorio
      • no_signalinteger | nullobligatorio
      • not_worninteger | nullobligatorio
    • assembly_pointsarray<AssemblyPoint>obligatorio

      Los destinos del tipo, descartados incluidos.

      Campos de AssemblyPoint5
      • idstring (uuid)obligatorio
      • namestringobligatorio
      • statusstringobligatorio

        Valores posibles: availableexcluded

      • countinteger | nullobligatorio

        Personas a salvo en este punto. null en una evacuación cerrada: al cerrar solo se guarda el total.

      • excludedobject | nullobligatorio
        Campos4
        • reasonstringobligatorio
        • recommendedbooleanobligatorio

          Lo había recomendado el sistema (radio o viento). Quien descarta es siempre una persona.

        • atstring (date-time)obligatorio
        • bystringobligatorio
  • next_cursorstring | nullobligatorio

    Cursor opaco para la página siguiente; null si no hay más.

Lo usan: Listar evacuaciones

MissingWorkerList

object

  • dataarray<MissingWorker>obligatorio
    Campos de MissingWorker10
    • workerWorkerRefobligatorio
      Campos de WorkerRef4
      • idstring (uuid)obligatorio
      • external_idstring | nullobligatorio

        Código del trabajador en la empresa (el de su sistema de personal). null si no se ha dado.

      • namestring

        Nombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.

      • contractorstring | nullobligatorio
    • deviceDeviceRefobligatorio
      Campos de DeviceRef4
      • idstring (uuid)obligatorio
      • serialstringobligatorio
      • batteryinteger | nullobligatorio

        de 0 a 100

      • date_last_seenstring (date-time) | nullobligatorio
    • statusstringobligatorio

      Valores posibles: helpwrong_pointpendingno_signalnot_worn

    • needs_rescuebooleanobligatorio

      Tiene un SOS o una caída abierta y no ha llegado: no puede salir por su pie.

    • help_reasonstring | nullobligatorio

      Valores posibles: trappedinjuredhelping

    • assembly_pointobject | nullobligatorio

      El punto donde está o dijo estar (con wrong_point, uno que no sirve).

      Campos3
      • idstring (uuid)obligatorio
      • namestringobligatorio
      • validbooleanobligatorio
    • declared_atstring (date-time) | nullobligatorio
    • last_seen_atstring (date-time) | nullobligatorio
    • locationLocationobligatorio
      Campos de Location7
      • latitudenumberobligatorio

        de -90 a 90

      • longitudenumberobligatorio

        de -180 a 180

      • uncertainty_mnumber | nullobligatorio

        Radio de incertidumbre en metros. null si no se conoce: no saberla no es tenerla perfecta.

        mínimo 0

      • sourcestringobligatorio

        zone: la persona estaba en una zona de privacidad y el punto es el de la zona, no el suyo.

        Valores posibles: gpsnetworkzone

      • maskedbooleanobligatorio

        El punto es el representativo de una zona de privacidad.

      • position_date_utcstring (date-time)obligatorio
      • heightobject | nullobligatorio

        Altura sobre el suelo por barómetro, cuando se puede afirmar; null si no.

        Campos4
        • height_mnumberobligatorio
        • uncertainty_mnumberobligatorio
        • buildingstring | nullobligatorio
        • floorstring | nullobligatorio
    • location_withheldbooleanobligatorio

Lo usan: Quién falta

MissingWorker

object

  • workerWorkerRefobligatorio
    Campos de WorkerRef4
    • idstring (uuid)obligatorio
    • external_idstring | nullobligatorio

      Código del trabajador en la empresa (el de su sistema de personal). null si no se ha dado.

    • namestring

      Nombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.

    • contractorstring | nullobligatorio
  • deviceDeviceRefobligatorio
    Campos de DeviceRef4
    • idstring (uuid)obligatorio
    • serialstringobligatorio
    • batteryinteger | nullobligatorio

      de 0 a 100

    • date_last_seenstring (date-time) | nullobligatorio
  • statusstringobligatorio

    Valores posibles: helpwrong_pointpendingno_signalnot_worn

  • needs_rescuebooleanobligatorio

    Tiene un SOS o una caída abierta y no ha llegado: no puede salir por su pie.

  • help_reasonstring | nullobligatorio

    Valores posibles: trappedinjuredhelping

  • assembly_pointobject | nullobligatorio

    El punto donde está o dijo estar (con wrong_point, uno que no sirve).

    Campos3
    • idstring (uuid)obligatorio
    • namestringobligatorio
    • validbooleanobligatorio
  • declared_atstring (date-time) | nullobligatorio
  • last_seen_atstring (date-time) | nullobligatorio
  • locationLocationobligatorio
    Campos de Location7
    • latitudenumberobligatorio

      de -90 a 90

    • longitudenumberobligatorio

      de -180 a 180

    • uncertainty_mnumber | nullobligatorio

      Radio de incertidumbre en metros. null si no se conoce: no saberla no es tenerla perfecta.

      mínimo 0

    • sourcestringobligatorio

      zone: la persona estaba en una zona de privacidad y el punto es el de la zona, no el suyo.

      Valores posibles: gpsnetworkzone

    • maskedbooleanobligatorio

      El punto es el representativo de una zona de privacidad.

    • position_date_utcstring (date-time)obligatorio
    • heightobject | nullobligatorio

      Altura sobre el suelo por barómetro, cuando se puede afirmar; null si no.

      Campos4
      • height_mnumberobligatorio
      • uncertainty_mnumberobligatorio
      • buildingstring | nullobligatorio
      • floorstring | nullobligatorio
  • location_withheldbooleanobligatorio

WorkerPage

object

  • dataarray<Worker>obligatorio
    Campos de Worker8
    • idstring (uuid)obligatorio
    • external_idstring | nullobligatorio

      Código del trabajador en la empresa (el de su sistema de personal). null si no se ha dado.

    • namestring

      Nombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.

    • contractorstring | nullobligatorio
    • rolestring | nullobligatorio
    • is_activebooleanobligatorio
    • deviceDeviceRefobligatorio
      Campos de DeviceRef4
      • idstring (uuid)obligatorio
      • serialstringobligatorio
      • batteryinteger | nullobligatorio

        de 0 a 100

      • date_last_seenstring (date-time) | nullobligatorio
    • date_last_seenstring (date-time) | nullobligatorio

      La más reciente entre la última posición y el último contacto del reloj.

  • next_cursorstring | nullobligatorio

    Cursor opaco para la página siguiente; null si no hay más.

Lo usan: Listar trabajadores

Worker

object

  • idstring (uuid)obligatorio
  • external_idstring | nullobligatorio

    Código del trabajador en la empresa (el de su sistema de personal). null si no se ha dado.

  • namestring

    Nombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.

  • contractorstring | nullobligatorio
  • rolestring | nullobligatorio
  • is_activebooleanobligatorio
  • deviceDeviceRefobligatorio
    Campos de DeviceRef4
    • idstring (uuid)obligatorio
    • serialstringobligatorio
    • batteryinteger | nullobligatorio

      de 0 a 100

    • date_last_seenstring (date-time) | nullobligatorio
  • date_last_seenstring (date-time) | nullobligatorio

    La más reciente entre la última posición y el último contacto del reloj.

Lo usan: Detalle de un trabajador

DevicePage

object

  • dataarray<Device>obligatorio
    Campos de Device8
    • idstring (uuid)obligatorio
    • serialstringobligatorio
    • batteryinteger | nullobligatorio

      de 0 a 100

    • date_last_seenstring (date-time) | nullobligatorio
    • modelstring | nullobligatorio
    • statusstringobligatorio

      Valores posibles: activeinactivemaintenancelost

    • wornboolean | nullobligatorio

      null: no se sabe (sin sensor de muñeca).

    • workerWorkerRefobligatorio
      Campos de WorkerRef4
      • idstring (uuid)obligatorio
      • external_idstring | nullobligatorio

        Código del trabajador en la empresa (el de su sistema de personal). null si no se ha dado.

      • namestring

        Nombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.

      • contractorstring | nullobligatorio
  • next_cursorstring | nullobligatorio

    Cursor opaco para la página siguiente; null si no hay más.

Lo usan: Listar relojes

Device

object

  • idstring (uuid)obligatorio
  • serialstringobligatorio
  • batteryinteger | nullobligatorio

    de 0 a 100

  • date_last_seenstring (date-time) | nullobligatorio
  • modelstring | nullobligatorio
  • statusstringobligatorio

    Valores posibles: activeinactivemaintenancelost

  • wornboolean | nullobligatorio

    null: no se sabe (sin sensor de muñeca).

  • workerWorkerRefobligatorio
    Campos de WorkerRef4
    • idstring (uuid)obligatorio
    • external_idstring | nullobligatorio

      Código del trabajador en la empresa (el de su sistema de personal). null si no se ha dado.

    • namestring

      Nombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.

    • contractorstring | nullobligatorio

PositionList

object

  • dataarray<Position>obligatorio
    Campos de Position4
    • device_idstring (uuid)obligatorio
    • workerWorkerRefobligatorio
      Campos de WorkerRef4
      • idstring (uuid)obligatorio
      • external_idstring | nullobligatorio

        Código del trabajador en la empresa (el de su sistema de personal). null si no se ha dado.

      • namestring

        Nombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.

      • contractorstring | nullobligatorio
    • locationLocationobligatorio
      Campos de Location7
      • latitudenumberobligatorio

        de -90 a 90

      • longitudenumberobligatorio

        de -180 a 180

      • uncertainty_mnumber | nullobligatorio

        Radio de incertidumbre en metros. null si no se conoce: no saberla no es tenerla perfecta.

        mínimo 0

      • sourcestringobligatorio

        zone: la persona estaba en una zona de privacidad y el punto es el de la zona, no el suyo.

        Valores posibles: gpsnetworkzone

      • maskedbooleanobligatorio

        El punto es el representativo de una zona de privacidad.

      • position_date_utcstring (date-time)obligatorio
      • heightobject | nullobligatorio

        Altura sobre el suelo por barómetro, cuando se puede afirmar; null si no.

        Campos4
        • height_mnumberobligatorio
        • uncertainty_mnumberobligatorio
        • buildingstring | nullobligatorio
        • floorstring | 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)obligatorio
  • workerWorkerRefobligatorio
    Campos de WorkerRef4
    • idstring (uuid)obligatorio
    • external_idstring | nullobligatorio

      Código del trabajador en la empresa (el de su sistema de personal). null si no se ha dado.

    • namestring

      Nombre y apellidos. Solo si el contrato lo incluye; si no, la propiedad no aparece.

    • contractorstring | nullobligatorio
  • locationLocationobligatorio
    Campos de Location7
    • latitudenumberobligatorio

      de -90 a 90

    • longitudenumberobligatorio

      de -180 a 180

    • uncertainty_mnumber | nullobligatorio

      Radio de incertidumbre en metros. null si no se conoce: no saberla no es tenerla perfecta.

      mínimo 0

    • sourcestringobligatorio

      zone: la persona estaba en una zona de privacidad y el punto es el de la zona, no el suyo.

      Valores posibles: gpsnetworkzone

    • maskedbooleanobligatorio

      El punto es el representativo de una zona de privacidad.

    • position_date_utcstring (date-time)obligatorio
    • heightobject | nullobligatorio

      Altura sobre el suelo por barómetro, cuando se puede afirmar; null si no.

      Campos4
      • height_mnumberobligatorio
      • uncertainty_mnumberobligatorio
      • buildingstring | nullobligatorio
      • floorstring | nullobligatorio
  • in_vehiclebooleanobligatorio

EventPage

object

  • dataarray<Event>obligatorio
    Campos de Event7
    • idstring (uuid)obligatorio

      Para deduplicar: la entrega es «al menos una vez».

    • typeEventTypeobligatorio

      Valores posibles: alert.createdalert.acknowledgedalert.resolvedalert.reopenedalert.worker_acknowledgedmuster.startedmuster.kind_changedmuster.phase_changedmuster.targets_changedmuster.updatedmuster.worker_missingmuster.ended

    • api_versionstringobligatorio

      Valores posibles: 2026-09-24

    • created_atstring (date-time)obligatorio
    • organization_idstring (uuid) | nullobligatorio

      La empresa del centro. null en los eventos de prueba.

    • site_idstring (uuid)obligatorio
    • data{ alert } | { muster }obligatorio

      El objeto completo tal como lo devolvería el GET en ese instante.

      Una de 2 formas
      • variante 1
        • alertAlertobligatorio
          Campos de Alert22
          • idstring (uuid)obligatorio
          • typeAlertTypeobligatorio

            Valores posibles: sosfall_detectedrestricted_zone_entryforbidden_zone_entrypermit_expired_insidepermit_closed_insideheat_stressevacuation_helpworker_call_requestdevice_offlinelow_batteryearthquaketsunami_risk

          • severitySeverityobligatorio

            Valores posibles: lowmediumhighcritical

          • statusAlertStatusobligatorio

            Valores posibles: unacknowledgedacknowledgedresolved

          • titlestringobligatorio

            Con 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 el external_id, sin nombre.

          • date_createdstring (date-time)obligatorio
          • date_last_modifiedstring (date-time)obligatorio

            Para ordenar: los webhooks no garantizan el orden, y lo más viejo que lo que ya se tiene se descarta.

          • siteSiteRefobligatorio
          • zoneZoneRefobligatorio
          • workerWorkerRefobligatorio
          • deviceDeviceRefobligatorio
          • locationLocationobligatorio
          • location_withheldbooleanobligatorio

            La 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.

          • detailsAlertDetailsobligatorio
          • nearbyarray<Nearby>obligatorio
          • vehicle_warningsarray<VehicleWarning>obligatorio
          • worker_acknowledged_atstring (date-time) | nullobligatorio

            El trabajador pulsó «Entendido» en su reloj (hora del reloj).

          • acknowledgedActionByobligatorio
          • resolvedobject | nullobligatorio

            Cerrada: quién, cuándo y con qué nota.

          • assigned_tostring | nullobligatorio
          • simulatedbooleanobligatorio

            Generada en un simulacro o con relojes simulados.

          • panel_urlstring (uri)obligatorio
      • variante 2
        • musterMusterobligatorio
          Campos de Muster13
          • idstring (uuid)obligatorio
          • siteSiteRefobligatorio
          • statusstringobligatorio

            Valores posibles: activecompletedcancelled

          • phasestringobligatorio

            inspecting: recuento completo y la sala revisa la planta; los relojes dicen «no vuelvas hasta nuevo aviso».

            Valores posibles: evacuatinginspecting

          • kindMusterKindobligatorio

            Valores posibles: generaltsunamiearthquake

          • reasonstring | nullobligatorio
          • started_atstring (date-time)obligatorio
          • ended_atstring (date-time) | nullobligatorio
          • deadlineobject | nullobligatorio
          • originobject | nullobligatorio

            De dónde viene la emergencia. null en una evacuación sin origen (un simulacro general).

          • targets_revisionintegerobligatorio

            Sube cada vez que cambian los destinos (descarte, rehabilitación, cambio de tipo).

          • totalsobjectobligatorio

            Las 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.

          • assembly_pointsarray<AssemblyPoint>obligatorio

            Los destinos del tipo, descartados incluidos.

  • next_cursorstring | nullobligatorio

    Cursor opaco para la página siguiente; null si no hay más.

Lo usan: Reproducir eventos

WebhookEndpointList

object

  • dataarray<WebhookEndpoint>obligatorio
    Campos de WebhookEndpoint7
    • idstring (uuid)obligatorio
    • urlstring (uri)obligatorio
    • event_typesarray<EventType | "alert.*" | "muster.*">obligatorio
    • filtersobjectobligatorio
      Campos3
      • site_idsarray<string (uuid)>
      • min_severitySeverity

        Valores posibles: lowmediumhighcritical

      • contractorsarray<string>
    • is_activebooleanobligatorio
    • failing_sincestring (date-time) | nullobligatorio

      Lleva 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)obligatorio
  • urlstring (uri)obligatorio
  • event_typesarray<EventType | "alert.*" | "muster.*">obligatorio
  • filtersobjectobligatorio
    Campos3
    • site_idsarray<string (uuid)>
    • min_severitySeverity

      Valores posibles: lowmediumhighcritical

    • contractorsarray<string>
  • is_activebooleanobligatorio
  • failing_sincestring (date-time) | nullobligatorio

    Lleva 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)obligatorio
  • urlstring (uri)obligatorio
  • event_typesarray<EventType | "alert.*" | "muster.*">obligatorio
  • filtersobjectobligatorio
    Campos3
    • site_idsarray<string (uuid)>
    • min_severitySeverity

      Valores posibles: lowmediumhighcritical

    • contractorsarray<string>
  • is_activebooleanobligatorio
  • failing_sincestring (date-time) | nullobligatorio

    Lleva 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
  • secretstringobligatorio

    El secreto de firma. Solo se enseña esta vez.

Lo usan: Crear un destino

WebhookEndpointCreate

object

  • urlstringobligatorio
  • event_typesarray<EventType | "alert.*" | "muster.*">obligatorio
  • filtersobject
    Campos3
    • site_idsarray<string (uuid)>
    • min_severitySeverity

      Valores posibles: lowmediumhighcritical

    • contractorsarray<string>

Lo usan: Crear un destino

WebhookSecretRotated

object

  • secretstringobligatorio
  • previous_valid_untilstring (date-time)obligatorio

Lo usan: Rotar el secreto de firma

SandboxScenarioRun

object

  • run_idstring (uuid)obligatorio
  • scenarioSandboxScenarioobligatorio

    Valores posibles: sosfallheat_stressevacuation

  • site_idstring (uuid)obligatorio
  • resourceobjectobligatorio

    Lo que ha abierto: consultadlo con su GET, o esperad el webhook.

    Campos2
    • typestringobligatorio

      Valores posibles: alertmuster

    • idstring (uuid)obligatorio
  • ends_atstring (date-time)obligatorio

    Cuá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 con PUT /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.updated cada vez que cambia el recuento.

sosfallheat_stressevacuation

SandboxScenarioRequest

object

  • scenarioSandboxScenarioobligatorio

    Valores posibles: sosfallheat_stressevacuation

  • site_idstring (uuid)

    El centro de sandbox. Sin él, el primero de los vuestros que sea de sandbox.

Lo usan: Lanzar un escenario de prueba