Devices
The Devices endpoint manages physical access systems at your properties. Register devices, retrieve details, and update configuration.
List
Retrieve all devices for a property or filtered by status.
GET /devices?property_id=prop_123Query Parameters
| Parameter | Type | Description |
|---|---|---|
property_id | string | Filter by property (required) |
status | string | Filter by status: online, offline, error |
device_type | string | Filter by type: smart_lock, door_access, turnstile, barrier |
page | integer | Page number (default: 1) |
limit | integer | Results per page, max 100 (default: 20) |
Request
curl -X GET "https://api.passwave.com/v1/devices?property_id=prop_123&status=online" \
-H "Authorization: Bearer sk_xxxxxxxxxxxxx" \
-H "X-Partner-ID: prtn_xxxxxxxxxxxxx"Response
{
"status": "success",
"data": {
"items": [
{
"id": "dev_456",
"property_id": "prop_123",
"device_type": "smart_lock",
"location": "Room 301",
"capabilities": ["ble", "nfc", "pincode"],
"status": "online",
"battery_level": 85,
"last_sync": "2025-01-20T16:45:00Z"
}
],
"pagination": {
"page": 1,
"total": 42,
"pages": 1
}
}
}Register
Add a new device to a property.
POST /devicesRequest Body
{
"property_id": "prop_123",
"device_type": "smart_lock",
"device_model": "salto_xsls3",
"location": "Room 301",
"oem_device_id": "salto_lock_301",
"capabilities": ["ble", "nfc", "pincode"]
}Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
property_id | string | Yes | Property where device is installed |
device_type | string | Yes | smart_lock, door_access, turnstile, barrier |
device_model | string | Yes | Manufacturer model (e.g., salto_xsls3, yale_nextouch) |
location | string | Yes | Human-readable location (e.g., "Room 301", "Building A Entrance") |
oem_device_id | string | Yes | Device ID in OEM manufacturer's system |
capabilities | array | Yes | Supported capabilities: ble, nfc, pincode, card, mobile |
Request
curl -X POST "https://api.passwave.com/v1/devices" \
-H "Authorization: Bearer sk_xxxxxxxxxxxxx" \
-H "X-Partner-ID: prtn_xxxxxxxxxxxxx" \
-d '{
"property_id": "prop_hotel_xyz",
"device_type": "smart_lock",
"device_model": "salto_xsls3",
"location": "Room 301",
"oem_device_id": "salto_lock_301",
"capabilities": ["ble", "nfc", "pincode"]
}'Response
{
"status": "success",
"data": {
"id": "dev_456",
"property_id": "prop_hotel_xyz",
"device_type": "smart_lock",
"location": "Room 301",
"status": "online",
"created_at": "2025-01-20T10:30:00Z"
}
}Passwave automatically syncs with the OEM manufacturer's system after registration.
Get
Retrieve details of a specific device.
GET /devices/{device_id}Request
curl -X GET "https://api.passwave.com/v1/devices/dev_456" \
-H "Authorization: Bearer sk_xxxxxxxxxxxxx" \
-H "X-Partner-ID: prtn_xxxxxxxxxxxxx"Response
Returns full device object including status, battery level, and last sync timestamp.
Update
Modify device configuration like location or capabilities.
PATCH /devices/{device_id}Parameters
| Field | Type | Description |
|---|---|---|
location | string | Updated location description |
capabilities | array | Updated capability list |
Request
curl -X PATCH "https://api.passwave.com/v1/devices/dev_456" \
-H "Authorization: Bearer sk_xxxxxxxxxxxxx" \
-H "X-Partner-ID: prtn_xxxxxxxxxxxxx" \
-d '{"location": "Room 302"}'Device Status
Devices report their connectivity status periodically. Understanding device status helps you debug credential provisioning issues.
| Status | Meaning | Action |
|---|---|---|
online | Device connected and responsive | Normal operation |
offline | Device not responding | Check power, connectivity, or OEM system |
error | Device in error state | Review error logs or contact support |
Check the last_sync timestamp to see when the device last communicated with Passwave. If last_sync is old, the device may have connectivity issues.