curl --request POST \
--url https://{environment}.{customerId}.ch.locatee.com/public/api/ingress/v2/network/wireless/wps/presence \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"eventID": "<string>",
"measuredAt": "2018-10-07T08:32:03Z",
"clientDevice": {
"macAddress": "00:00:0c:07:ac:fc",
"vlan": {
"id": 977,
"name": "OFFICE-DESKS"
},
"anonymized": false,
"username": "john.doe",
"hostname": "MacBook-Pro-2.local",
"ssid": "CORP-WIFI",
"floorID": 1,
"buildingID": 6
},
"presenceState": "PRESENT",
"presenceCount": 1,
"timeout": 600
}
]
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
eventID: '<string>',
measuredAt: '2018-10-07T08:32:03Z',
clientDevice: {
macAddress: '00:00:0c:07:ac:fc',
vlan: {id: 977, name: 'OFFICE-DESKS'},
anonymized: false,
username: 'john.doe',
hostname: 'MacBook-Pro-2.local',
ssid: 'CORP-WIFI',
floorID: 1,
buildingID: 6
},
presenceState: 'PRESENT',
presenceCount: 1,
timeout: 600
}
])
};
fetch('https://{environment}.{customerId}.ch.locatee.com/public/api/ingress/v2/network/wireless/wps/presence', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{environment}.{customerId}.ch.locatee.com/public/api/ingress/v2/network/wireless/wps/presence"
payload = [
{
"eventID": "<string>",
"measuredAt": "2018-10-07T08:32:03Z",
"clientDevice": {
"macAddress": "00:00:0c:07:ac:fc",
"vlan": {
"id": 977,
"name": "OFFICE-DESKS"
},
"anonymized": False,
"username": "john.doe",
"hostname": "MacBook-Pro-2.local",
"ssid": "CORP-WIFI",
"floorID": 1,
"buildingID": 6
},
"presenceState": "PRESENT",
"presenceCount": 1,
"timeout": 600
}
]
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)Wireless Positioning System Based Presence Events
Send multiple presence events from a wireless positioning system with single x/y coordinate for a client devices connected to a wireless network. Used for measuring network devices such as Cisco DNA Spaces or similar.
It is required that, by device, presence events are in chronological order of measuredAt. Otherwise, events with an older measuredAt than the previously processed event of the same device will be ignored.
The device’s count will be automatically reset to 0 after the specified or default timeout unless the presence event of a client is send again with a newer measuredAt.
curl --request POST \
--url https://{environment}.{customerId}.ch.locatee.com/public/api/ingress/v2/network/wireless/wps/presence \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
[
{
"eventID": "<string>",
"measuredAt": "2018-10-07T08:32:03Z",
"clientDevice": {
"macAddress": "00:00:0c:07:ac:fc",
"vlan": {
"id": 977,
"name": "OFFICE-DESKS"
},
"anonymized": false,
"username": "john.doe",
"hostname": "MacBook-Pro-2.local",
"ssid": "CORP-WIFI",
"floorID": 1,
"buildingID": 6
},
"presenceState": "PRESENT",
"presenceCount": 1,
"timeout": 600
}
]
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
eventID: '<string>',
measuredAt: '2018-10-07T08:32:03Z',
clientDevice: {
macAddress: '00:00:0c:07:ac:fc',
vlan: {id: 977, name: 'OFFICE-DESKS'},
anonymized: false,
username: 'john.doe',
hostname: 'MacBook-Pro-2.local',
ssid: 'CORP-WIFI',
floorID: 1,
buildingID: 6
},
presenceState: 'PRESENT',
presenceCount: 1,
timeout: 600
}
])
};
fetch('https://{environment}.{customerId}.ch.locatee.com/public/api/ingress/v2/network/wireless/wps/presence', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{environment}.{customerId}.ch.locatee.com/public/api/ingress/v2/network/wireless/wps/presence"
payload = [
{
"eventID": "<string>",
"measuredAt": "2018-10-07T08:32:03Z",
"clientDevice": {
"macAddress": "00:00:0c:07:ac:fc",
"vlan": {
"id": 977,
"name": "OFFICE-DESKS"
},
"anonymized": False,
"username": "john.doe",
"hostname": "MacBook-Pro-2.local",
"ssid": "CORP-WIFI",
"floorID": 1,
"buildingID": 6
},
"presenceState": "PRESENT",
"presenceCount": 1,
"timeout": 600
}
]
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
The ID of the event generated by the originating system.
36When this event had occurred.
"2018-10-07T08:32:03Z"
Contains information about the location of a client device, represented by a single latitude and longitude pair along with information about the floor and building. The Locatee building IDs and floor IDs can be retrieved from public static data endpoint. For processing the event either floorID or buildingID need to be present in the request and need to exist in Locatee. Note that events with only buildingID present will be processed only for views in Portfolio Insights. A floorID is needed in order the events to be processed for views in Workplace Operations. Events where both floorID and buildingID are missing or otherwise invalid will not be processed and the request will not return an HTTP error status code so that other valid events in the same request can be processed.
Show child attributes
Show child attributes
Describes the presence of the client device.
PRESENT, ABSENT "PRESENT"
The total number of connected devices (network connectivity) or detected people (sensors).
For wireless presence events, the presenceCount is expected to be 1 if the client device is connected to the network and 0 if the client device is disconnected.
For sensor events, the presenceCount is expected to be 1 if the sensor detects a person's presence. For people-counting sensors, the presenceCount is expected to be the number of detected people by the sensor.
1
Timeout in seconds until the presence count will reset to 0. The default value of timeout is 15min (900s). Ideal value is 2 times the readout frequency if 0 presenceCount events do not exist in the source system.
600
Response
Successful Operation

