Skip to content

Cognitive Systems App Core API

The Core APIs facilitate the creation, configuration, and management of WiFi Motion networks via RESTful APIs. It offers interfaces for accessing topologies, events, motion data, and more.

Download OpenAPI description
Languages
Servers
Mock server
https://docs.cognitivesystems.com/_mock/assets/specs/api/core

Cloud Health

Provides you with the ability to check the health of the Cloud environment.

Operations

Network

A WiFi Motion network is a typical network which would include WiFi connected devices, client devices, and also at least one WiFi Motion enabled device, such as an Access Point, Extender, or WiFi plug.

Operations

Meta

Allows you to store and retrieve meta data related to your WiFi Motion Network and connected devices.

Operations

Application Settings

Provides you with a method to be able to retrieve application or user settings within a WiFi Motion network.

Operations

Sounding

Sounding is the terminology used to describe the process of receiving the Channel State Information (CSI) data from a wireless device, analyzing the data, and evaluating if motion had occurred in the environment.

Operations

Device

A wireless client refers to any device that connects to a network using WiFi technology. For optimal performance with WiFi Sensing, stationary devices such as voice assistants (like Amazon Echo or Google Nest), smart plugs, smart displays, and powered wireless speakers are ideal choices. Wireless clients that are mobile can move around and generally have aggressive sleep modes, less reliable Channel State Information (CSI) data, and are not able to be used to help identify localization, all of which can impact the WiFi Motion performance.

Guardian

Guardian is the name of the application that runs on a device, such as an Access Point, WiFi Extender, or IoT device, within a WiFi Network. It's primary functions are to store configuration settings, communicate with WiFi devices within a network, and communicate with the WiFi Motion infrastructure.

Radar

Radar is the name of the application that runs on every access point within a WiFi Motion network. It provides high-resolution stream of motion intensity that is used by the Guardian application.

Management Actions

Provides the ability to manage the nodes within a WiFi Motion network.

Home Insights

Home Insights is a microservice that provides motion-based activity and sleep insights data.

Operations

Insights (Deprecated)

Provides you with the ability to gain insights into activity and sleep patterns. This has since been replaced by Home Insights.

Motion History

Motion History refers to the motion that was previously detected within a WiFi Motion network.

Operations

Location Data

Provides you the ability to query historical data related to where motion was detected within a WiFi Motion network.

Operations

Network Events

Events are messages that are sent within the WiFi Motion environment, and are often synonymous with notifications or alerts. Some examples of event categories are Device, Link, Motion, Scene, System, and User events.

Operations

Universal Alerts

Operations

Create a single custom rule

Request

Creates a single custom Universal Alert rule.

Security
ApiKey
Query
network_idintegerrequired

Unique identifier of the network whose configuration should be managed

Bodyapplication/jsonrequired
enabledboolean
alert_namestring

Defaults to an empty string if no value is provided.

Default ""
rrulestring

The RRULE string which can be generated here: https://jakubroztocil.github.io/rrule/

Note that new lines must be explicitly escaped with \n. Note that providing the RRULE string without the RRULE will result in a yearly alert. For a single occurrence, COUNT=1 must be provided

Example: DTSTART;TZID=America/New_York:20211201T163000\nRRULE:FREQ=WEEKLY;COUNT=30;INTERVAL=1;WKST=MO

Default ""
monitorobjectrequired

Motion monitor object. monitor_mode Specifies the type of monitoring.

NONE: Ignore motion and triggers actions at specified time.

SIMPLE: Checks period between alert trigger and duration_minutes.

INACTIVITY: checks for inactivity in the given period. inactive_minutes specifies the length of the inactivity. repeat_monitoring specifies if the alert should continue after inactivity was detected

monitor.​monitor_modestring
Enum"NONE""SIMPLE""INACTIVITY"
monitor.​duration_minutesinteger

The length of time in minutes of the monitored duration. The cloud will determine the start time per the timezone in the rrule field by subtracting this from the targeted time of the monitor completion (in which the result is sent).

monitor.​inactive_minutesinteger

Required if the monitor_mode is "INACTIVITY"

monitor.​repeat_monitoringboolean

If the monitor_mode is "INACTIVITY", this boolean determines if the alert should continue monitoring if inactivity is detected. Defaults to true

monitor.​stop_event_filterobject

Not yet supported - 1/1/2022

The keys of the object will compare to keys of MQTT events as they are from core. All key value pairs placed in this object will be expected on the event from core.

Default {}
metaobject

The contents of this object are decided by the client and will not persist if the alert is deleted.

analytics_tagstring

Any string that can be used for analytics tracing. Defaults to "" if the field is not included.

Default ""
no_motion_actionsArray of objects(UniversalAlertActions)

Actions to perform when no motion is detected

motion_actionsArray of objects(UniversalAlertActions)

Actions to perform when motion is detected

unknown_actionsArray of objects(UniversalAlertActions)

Actions to perform when there is no record of past motion on the network

error_actionsArray of objects(UniversalAlertActions)

Actions to perform when an error occurs

curl -i -X POST \
  'https://docs.cognitivesystems.com/_mock/assets/specs/api/core/universal-alert?network_id=0' \
  -H 'Authorization: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "enabled": true,
    "alert_name": "",
    "rrule": "",
    "monitor": {
      "monitor_mode": "NONE",
      "duration_minutes": 0,
      "inactive_minutes": 0,
      "repeat_monitoring": true,
      "stop_event_filter": {}
    },
    "meta": {},
    "analytics_tag": "",
    "no_motion_actions": [
      {
        "action": "string",
        "user_ids": [
          0
        ],
        "payload": {}
      }
    ],
    "motion_actions": [
      {
        "action": "string",
        "user_ids": [
          0
        ],
        "payload": {}
      }
    ],
    "unknown_actions": [
      {
        "action": "string",
        "user_ids": [
          0
        ],
        "payload": {}
      }
    ],
    "error_actions": [
      {
        "action": "string",
        "user_ids": [
          0
        ],
        "payload": {}
      }
    ]
  }'

Responses

201 - Created

Bodyapplication/json
idstring

internal unique identifier of the alert

Example: 2255
enabledbooleanrequired

the active status of the alert

Example: true
targetstring

Date string of next notification

Example: "2021-12-13T16:00:00.000+00:00"
timezonestring
Example: "America/New_York"
alert_namestring
Example: "client decided label"
rrulestring
Example: "DTSTART;TZID=America/New_York:20211201T163000\nRRULE:FREQ=WEEKLY;COUNT=30;INTERVAL=1;WKST=MO"
monitorobject
Example: {"monitor_mode":"INACTIVITY","duration_minutes":10,"inactive_minutes":2,"repeat_monitoring":true}
metaobject
Example: {"anything":"client controlled writable space"}
analytics_tagstring
Example: "caregiver_alert_trace"
no_motion_actionsArray of objects(UniversalAlertActions)
Example: [{"action":"fcm_push","user_ids":[5,9],"payload":{"apns":{"headers":{"apns-push-type":"alert","apns-topic":"com.csc.HaloHome"},"payload":{"aps":{"alert":{"title":"no motion","body":"123"},"sound":"Aura_Push_Final.wav","category":"User"}}}}}]
motion_actionsArray of objects(UniversalAlertActions)
Example: [{"action":"fcm_push","payload":{"data":{"click_action":"CustomAlertEvent","title":"NO Motion Ua","body":"No Motion was detected during Now","sound":"Aura_Push_Final.wav"},"apns":{"headers":{"apns-push-type":"alert","apns-topic":"com.csc.HaloHome"},"payload":{"aps":{"alert":{"title":"motion","body":"123"},"sound":"Aura_Push_Final.wav","category":"User"}}}}}]
unknown_actionsArray of objects(UniversalAlertActions)
Example: []
error_actionsArray of objects(UniversalAlertActions)
Example: []
uuidstring

Unique id

Example: "Unique alert identifier"
external_idstring

External network id

window_endnumber
window_startinteger

Timestamp showing when monitoring will start

created_atinteger

Alert creation timestamp

next_runany

Timestamp of the next alert trigger. Can be used to monitor the execution of alerts inside the inactivity window.

Response
application/json
{ "uuid": "Unique alert identifier", "enabled": true, "target": "2021-12-13T16:00:00.000+00:00", "timezone": "America/New_York", "alert_name": "client decided label", "rrule": "DTSTART;TZID=America/New_York:20211201T163000\nRRULE:FREQ=WEEKLY;COUNT=30;INTERVAL=1;WKST=MO", "monitor": { "monitor_mode": "INACTIVITY", "duration_minutes": 10, "inactive_minutes": 2, "repeat_monitoring": true }, "meta": { "anything": "client controlled writable space" }, "analytics_tag": "caregiver_alert_trace", "no_motion_actions": [ { … } ], "motion_actions": [ { … } ], "unknown_actions": [], "error_actions": [], "id": 2255 }

Get Universal Alert Status

Request

Returns an array of all alerts associated with the network, but from the view of the job queue, including all the internal state of the job.

The data field of this response contains the client facing alert alert model. This endpoint is to assist with seeing the internals of the job queue.

Security
ApiKey
Query
network_idintegerrequired

Unique identifier of the network whose configuration should be managed

curl -i -X GET \
  'https://docs.cognitivesystems.com/_mock/assets/specs/api/core/universal-alert/status?network_id=0' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

200 - OK

Bodyapplication/json
alertsArray of objects
Example: [{"id":"14","data":{"uuid":"eecc4727-707d-48f2-b5e4-3c6aa6745aec","enabled":true,"alert_name":"Preset Rise and Shine","external_id":14,"rrule":"DTSTART;TZID=Europe/London:20220101T080000\r\nRRULE:FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU\r\n","monitor":{"monitor_mode":"SIMPLE","duration_minutes":120},"meta":{"alert_type":"RISE_AND_SHINE_PRESET"},"analytics_tag":"riseAndShinePreset","no_motion_actions":[{"action":"fcm_push","payload":{"data":{"title":"Rise and Shine","body":"Your loved one has not begun their day","click_action":"CustomAlertEvent","sound":"Aura_Push_Final.wav"},"apns":{"headers":{"apns-push-type":"alert","apns-topic":"com.csc.HaloHome"},"payload":{"aps":{"alert":{"title":"Rise and Shine","body":"Your loved one has not begun their day"},"sound":"Aura_Push_Final.wav","category":"CustomAlertEvent"}}}},"user_ids":[]},{"action":"custom_event","payload":{"data":{"title":"Rise and Shine","body":"Your loved one has not begun their day"}},"user_ids":[]}],"motion_actions":[{"action":"fcm_push","payload":{"data":{"title":"Rise and Shine","body":"Your loved one has begun their day","click_action":"CustomAlertEvent","sound":"Aura_Push_Final.wav"},"apns":{"headers":{"apns-push-type":"alert","apns-topic":"com.csc.HaloHome"},"payload":{"aps":{"alert":{"title":"Rise and Shine","body":"Your loved one has begun their day"},"sound":"Aura_Push_Final.wav","category":"CustomAlertEvent"}}}},"user_ids":[]},{"action":"custom_event","payload":{"data":{"title":"Rise and Shine","body":"Your loved one has begun their day"}},"user_ids":[]}],"unknown_actions":[{"action":"fcm_push","payload":{"data":{"title":"Rise and Shine","body":"Caregiver Aware could not determine motion in your home","click_action":"CustomAlertEvent","sound":"Aura_Push_Final.wav"},"apns":{"headers":{"apns-push-type":"alert","apns-topic":"com.csc.HaloHome"},"payload":{"aps":{"alert":{"title":"Rise and Shine","body":"Caregiver Aware could not determine motion in your home"},"sound":"Aura_Push_Final.wav","category":"CustomAlertEvent"}}}},"user_ids":[]},{"action":"custom_event","payload":{"data":{"title":"Rise and Shine","body":"Caregiver Aware could not determine motion in your home"}},"user_ids":[]}],"error_actions":[],"timezone":"Europe/London","target":"3/10/2022, 8:00:00 AM - Europe/London","window_end":1646899200000},"progress":0,"attemptsMade":0,"status":"delayed","stacktrace":[],"timestamp":1646861001684,"processingTime":0,"name":"__default__","opts":{"timeout":3000,"attempts":3,"removeOnComplete":true,"delay":38198317,"timestamp":1646861001684},"delay":38198317}]
Response
application/json
{ "alerts": [ { … } ] }

Get Universal Alert

Request

Get a single alert by its uuid.

Security
ApiKey
Path
uuidstring>= 1required
Query
network_idintegerrequired

Unique identifier of the network whose configuration should be managed

curl -i -X GET \
  'https://docs.cognitivesystems.com/_mock/assets/specs/api/core/universal-alert/{uuid}?network_id=0' \
  -H 'Authorization: YOUR_API_KEY_HERE'

Responses

200 OK

Bodyapplication/json
idstring

internal unique identifier of the alert

Example: 2255
enabledbooleanrequired

the active status of the alert

Example: true
targetstring

Date string of next notification

Example: "2021-12-13T16:00:00.000+00:00"
timezonestring
Example: "America/New_York"
alert_namestring
Example: "client decided label"
rrulestring
Example: "DTSTART;TZID=America/New_York:20211201T163000\nRRULE:FREQ=WEEKLY;COUNT=30;INTERVAL=1;WKST=MO"
monitorobject
Example: {"monitor_mode":"INACTIVITY","duration_minutes":10,"inactive_minutes":2,"repeat_monitoring":true}
metaobject
Example: {"anything":"client controlled writable space"}
analytics_tagstring
Example: "caregiver_alert_trace"
no_motion_actionsArray of objects(UniversalAlertActions)
Example: [{"action":"fcm_push","user_ids":[5,9],"payload":{"apns":{"headers":{"apns-push-type":"alert","apns-topic":"com.csc.HaloHome"},"payload":{"aps":{"alert":{"title":"no motion","body":"123"},"sound":"Aura_Push_Final.wav","category":"User"}}}}}]
motion_actionsArray of objects(UniversalAlertActions)
Example: [{"action":"fcm_push","payload":{"data":{"click_action":"CustomAlertEvent","title":"NO Motion Ua","body":"No Motion was detected during Now","sound":"Aura_Push_Final.wav"},"apns":{"headers":{"apns-push-type":"alert","apns-topic":"com.csc.HaloHome"},"payload":{"aps":{"alert":{"title":"motion","body":"123"},"sound":"Aura_Push_Final.wav","category":"User"}}}}}]
unknown_actionsArray of objects(UniversalAlertActions)
Example: []
error_actionsArray of objects(UniversalAlertActions)
Example: []
uuidstring

Unique id

Example: "Unique alert identifier"
external_idstring

External network id

window_endnumber
window_startinteger

Timestamp showing when monitoring will start

created_atinteger

Alert creation timestamp

next_runany

Timestamp of the next alert trigger. Can be used to monitor the execution of alerts inside the inactivity window.

Response
application/json
{ "uuid": "Unique alert identifier", "enabled": true, "target": "2021-12-13T16:00:00.000+00:00", "timezone": "America/New_York", "alert_name": "client decided label", "rrule": "DTSTART;TZID=America/New_York:20211201T163000\nRRULE:FREQ=WEEKLY;COUNT=30;INTERVAL=1;WKST=MO", "monitor": { "monitor_mode": "INACTIVITY", "duration_minutes": 10, "inactive_minutes": 2, "repeat_monitoring": true }, "meta": { "anything": "client controlled writable space" }, "analytics_tag": "caregiver_alert_trace", "no_motion_actions": [ { … } ], "motion_actions": [ { … } ], "unknown_actions": [], "error_actions": [], "id": 2255 }

Generic

A webhook is an automated message sent from one app to another when a specific event occurs, like a payment or a code commit. It works by sending an HTTP request containing data (a "payload") to a unique URL provided by the receiving application. This allows for real-time data sharing and communication between applications without constant polling.

Live Motion

Live Motion refers to the ability to collect multiple signals in near real-time from within a WiFi Motion network, which can then be used for visualizing movement, identifying where the motion occurred, and more.

Operations

Management

Provides you the ability to monitor management actions in near real-time.