Some models of door locks have specific requirements and constraints when it comes to setting PIN codes. It's essential to be aware of these to ensure seamless functionality and security. The requirements can be fetched by making a or (or ) request.
Copy {
"device": {
"device_id": "00000000-0000-0000-0000-000000000000",
"capabilities_supported": [
"access_code",
"lock"
],
"properties": {
"supported_code_lengths": [
4,
5,
6,
7,
8
],
"max_active_codes_supported": 250,
"code_constraints": [
{
"constraint_type": "no_zeros"
},
{
"constraint_type": "name_length",
"min_length": 1,
"max_length": 12
}
],
"supports_backup_access_code_pool": true
...
},
...
},
...
}
Python cURL (bash) JavaScript Ruby PHP C# Java
Request:
Copy pprint(seam.locks.get(device="ed4bb795-f29f-43e5-bc0f-35f69f9141b5"))
Response:
Copy Device(device_id='ed4bb795-f29f-43e5-bc0f-35f69f9141b5',
device_type='nuki_lock',
location=None,
properties={'battery': {'level': 0.86, 'status': 'full'},
'battery_level': 0.86,
'code_constraints': [{'constraint_type': 'cannot_start_with_12'},
{'constraint_type': 'no_zeros'},
{'constraint_type': 'name_length',
'max_length': 20}],
'has_native_entry_events': True,
'image_alt_text': 'Nuki Smart Lock 3.0 Pro Black, Front',
'image_url': 'https://connect.getseam.com/assets/images/devices/nuki_smart_lock_3_pro_black.png',
'keypad_battery': {'level': 1},
'locked': False,
'manufacturer': 'nuki',
'model': {'display_name': 'Lock',
'manufacturer_display_name': 'Nuki'},
'name': 'Office Lock',
'nuki_metadata': {'device_id': '3',
'device_name': 'Office Lock',
'keypad_battery_critical': False},
'online': True,
'supported_code_lengths': [6],
'supports_backup_access_code_pool': True},
capabilities_supported=['access_code', 'lock'],
errors=[],
warnings=[],
connected_account_id='cac74c00-443b-440f-820e-e2907277fd9f',
workspace_id='398d80b7-3f96-47c2-b85a-6f8ba21d07be',
created_at='2023-10-19T04:43:40.852Z',
is_managed=True)
Request:
Copy # Use GET or POST.
curl -X 'GET' \
'https://connect.getseam.com/devices/get' \
-H 'accept: application/json' \
-H 'Authorization: Bearer ${API_KEY}' \
-H 'Content-Type: application/json' \
-d '{
"device_id": "ed4bb795-f29f-43e5-bc0f-35f69f9141b5"
}'
Response:
Copy {
"device": {
"device_id": "ed4bb795-f29f-43e5-bc0f-35f69f9141b5",
"device_type": "nuki_lock",
"capabilities_supported": [
"access_code",
"lock"
],
"properties": {
"locked": false,
"online": true,
"manufacturer": "nuki",
"battery_level": 0.86,
"nuki_metadata": {
"device_id": "3",
"device_name": "Office Lock",
"keypad_battery_critical": false
},
"keypad_battery": {
"level": 1
},
"supported_code_lengths": [
6
],
"has_native_entry_events": true,
"name": "Office Lock",
"model": {
"display_name": "Lock",
"manufacturer_display_name": "Nuki"
},
"battery": {
"level": 0.86,
"status": "full"
},
"image_url": "https://connect.getseam.com/assets/images/devices/nuki_smart_lock_3_pro_black.png",
"image_alt_text": "Nuki Smart Lock 3.0 Pro Black, Front",
"code_constraints": [
{
"constraint_type": "cannot_start_with_12"
},
{
"constraint_type": "no_zeros"
},
{
"constraint_type": "name_length",
"max_length": 20
}
],
"supports_backup_access_code_pool": true
},
"location": null,
"connected_account_id": "cac74c00-443b-440f-820e-e2907277fd9f",
"workspace_id": "398d80b7-3f96-47c2-b85a-6f8ba21d07be",
"created_at": "2023-10-19T04:43:40.852Z",
"errors": [],
"warnings": [],
"is_managed": true
},
"ok": true
}
Request:
Copy const device = await seam.devices.get({
device_id: "ed4bb795-f29f-43e5-bc0f-35f69f9141b5"
})
console.log(device)
console.log(device.properties.code_constraints)
Response:
Copy {
device_id: 'ed4bb795-f29f-43e5-bc0f-35f69f9141b5',
device_type: 'nuki_lock',
capabilities_supported: [ 'access_code', 'lock' ],
properties: {
locked: false,
online: true,
manufacturer: 'nuki',
battery_level: 0.86,
nuki_metadata: {
device_id: '3',
device_name: 'Office Lock',
keypad_battery_critical: false
},
keypad_battery: { level: 1 },
supported_code_lengths: [ 6 ],
has_native_entry_events: true,
name: 'Office Lock',
model: { display_name: 'Lock', manufacturer_display_name: 'Nuki' },
battery: { level: 0.86, status: 'full' },
image_url: 'https://connect.getseam.com/assets/images/devices/nuki_smart_lock_3_pro_black.png',
image_alt_text: 'Nuki Smart Lock 3.0 Pro Black, Front',
code_constraints: [ [Object], [Object], [Object] ],
supports_backup_access_code_pool: true
},
location: null,
connected_account_id: 'cac74c00-443b-440f-820e-e2907277fd9f',
workspace_id: '398d80b7-3f96-47c2-b85a-6f8ba21d07be',
created_at: '2023-10-19T04:43:40.852Z',
errors: [],
warnings: [],
is_managed: true
}
[
{ constraint_type: 'cannot_start_with_12' },
{ constraint_type: 'no_zeros' },
{ constraint_type: 'name_length', max_length: 20 }
]
Request:
Copy puts client.devices.get(device_id: "ed4bb795-f29f-43e5-bc0f-35f69f9141b5").inspect
Response:
Copy <Seam::Device:0x00438
device_id="ed4bb795-f29f-43e5-bc0f-35f69f9141b5"
device_type="nuki_lock"
capabilities_supported=["access_code", "lock"]
properties={"locked"=>false, "online"=>true, "manufacturer"=>"nuki", "battery_level"=>0.86, "nuki_metadata"=>{"device_id"=>"3", "device_name"=>"Office Lock", "keypad_battery_critical"=>false}, "keypad_battery"=>{"level"=>1}, "supported_code_lengths"=>[6], "has_native_entry_events"=>true, "name"=>"Office Lock", "model"=>{"display_name"=>"Lock", "manufacturer_display_name"=>"Nuki"}, "battery"=>{"level"=>0.86, "status"=>"full"}, "image_url"=>"https://connect.getseam.com/assets/images/devices/nuki_smart_lock_3_pro_black.png", "image_alt_text"=>"Nuki Smart Lock 3.0 Pro Black, Front", "code_constraints"=>[{"constraint_type"=>"cannot_start_with_12"}, {"constraint_type"=>"no_zeros"}, {"constraint_type"=>"name_length", "max_length"=>20}], "supports_backup_access_code_pool"=>true}
connected_account_id="cac74c00-443b-440f-820e-e2907277fd9f"
workspace_id="398d80b7-3f96-47c2-b85a-6f8ba21d07be"
created_at=2023-10-19 04:43:40.852 UTC
errors=[]
warnings=[]
is_managed=true>
Copy use Seam\SeamClient;
$seam = new SeamClient("YOUR_API_KEY");
$device = $seam->devices->get("0e2e6262-7f91-4970-a58d-47ef30b41e2e");
# Inspect this device to see which capabilities it supports
echo json_encode($device->properties, JSON_PRETTY_PRINT);
// {
// "online": true,
// "locked": false,
// "name": "Office Lock",
// "battery_level": 0.86,
// "battery": {
// "level": 0.86,
// "status": "full"
// },
// "manufacturer": "nuki",
// "supported_code_lengths": [
// 6
// ],
// "code_constraints": [
// {
// "constraint_type": "cannot_start_with_12"
// },
// {
// "constraint_type": "no_zeros"
// },
// {
// "constraint_type": "name_length",
// "max_length": 20
// }
// ],
// "model": {
// "display_name": "Lock",
// "manufacturer_display_name": "Nuki"
// },
// "image_url": "https:\/\/connect.getseam.com\/assets\/images\/devices\/nuki_smart_lock_3_pro_black.png",
// "image_alt_text": "Nuki Smart Lock 3.0 Pro Black, Front",
// "nuki_metadata": {
// "device_id": "545636389",
// "device_name": "Office Lock",
// "keypad_battery_critical": false
// }
// }
Request:
Copy var device = seam.Devices.Get(deviceId: "ed4bb795-f29f-43e5-bc0f-35f69f9141b5");
Console.WriteLine("Device ID: " + device.DeviceId);
Console.WriteLine("Type: " + device.DeviceType);
Console.WriteLine("Capabilities supported:");
foreach (var capability in device.CapabilitiesSupported)
{
Console.WriteLine(capability);
}
Console.WriteLine("Supported code lengths:");
if (device.Properties.SupportedCodeLengths is not null)
{
foreach (var supportedCodeLength in device.Properties.SupportedCodeLengths)
{
Console.WriteLine(supportedCodeLength);
}
}
Console.WriteLine("Code constraints:");
if (device.Properties.CodeConstraints is not null)
{
foreach (var codeConstraint in device.Properties.CodeConstraints)
{
Console.WriteLine(codeConstraint);
}
}
Console.WriteLine("Supports backup access code pool: " + device.Properties.SupportsBackupAccessCodePool);
Response:
Copy Device ID: ed4bb795-f29f-43e5-bc0f-35f69f9141b5
Type: NukiLock
Capabilities supported:
AccessCode
Lock
Supported code lengths:
6
Code constraints:
{
"constraint_type": "cannot_start_with_12"
}
{
"constraint_type": "no_zeros"
}
{
"constraint_type": "name_length",
"max_length": 20
}
Supports backup access code pool: True
Request:
Copy Device lock = seam.locks()
.get(LocksGetRequest.builder()
.deviceId("ed4bb795-f29f-43e5-bc0f-35f69f9141b5")
.build());
System.out.println(lock);
Response:
Copy {
"device_id" : "ed4bb795-f29f-43e5-bc0f-35f69f9141b5",
"device_type" : "nuki_lock",
"capabilities_supported" : [ "access_code", "lock" ],
"properties" : {
"online" : true,
"name" : "Office Lock",
"model" : {
"display_name" : "Lock",
"manufacturer_display_name" : "Nuki"
},
"battery_level" : 0.86,
"image_url" : "https://connect.getseam.com/assets/images/devices/nuki_smart_lock_3_pro_black.png",
"keypad_battery" : {
"level" : 1
},
"battery" : {
"level" : 0.86,
"status" : "full"
},
"code_constraints" : [ {
"constraint_type" : "cannot_start_with_12"
}, {
"constraint_type" : "no_zeros"
}, {
"constraint_type" : "name_length",
"max_length" : 20
} ],
"has_native_entry_events" : true,
"image_alt_text" : "Nuki Smart Lock 3.0 Pro Black, Front",
"manufacturer" : "nuki",
"nuki_metadata" : {
"device_id" : "3",
"device_name" : "Office Lock",
"keypad_battery_critical" : false
},
"supported_code_lengths" : [ 6 ],
"locked" : false,
"supports_offline_access_codes" : false,
"supports_backup_access_code_pool" : true
},
"connected_account_id" : "cac74c00-443b-440f-820e-e2907277fd9f",
"workspace_id" : "398d80b7-3f96-47c2-b85a-6f8ba21d07be",
"created_at" : "2023-10-19T04:43:40.852Z",
"is_managed" : true
}
Copy "supported_code_lengths": [
4,
5,
6,
7,
8
]
Copy "max_active_codes_supported": 250
Copy "code_constraints": [
{
"constraint_type": "no_zeros"
},
{
"constraint_type": "name_length",
"min_length": 1,
"max_length": 12
}
]