Filtering Devices by Custom Metadata
When listing devices, you can filter by custom metadata.
When you use List Devices, you can filter the list by one or more custom metadata pairs. Include the custom_metadata_has
parameter with a JSON string that specifies the desired key:value pairs.
You can use the Update Connected Account method with the optional custom_metadata
property to add custom metadata for a device.
Request:
devices = seam.devices.list(
custom_metadata_has = {
"internal_account_id": "user-1"
}
)
pprint(devices)
Response:
[Device(device_id='f7a7fb02-9277-4354-8dd1-28e2d016a7a9',
device_type='schlage_lock',
...
is_managed=True,
custom_metadata={"internal_account_id": "user-1"}),
...]
Request:
curl -X 'POST' \
'https://connect.getseam.com/devices/list' \
-H 'accept: application/json' \
-H 'Authorization: Bearer ${API_KEY}' \
-H 'Content-Type: application/json' \
-d '{
"custom_metadata_has": {
"internal_account_id": "user-1"
},
}'
Response:
{
"devices": [
{
"device_id": "f7a7fb02-9277-4354-8dd1-28e2d016a7a9",
"device_type": "schlage_lock",
...
"is_managed": true,
"custom_metadata": {
"internal_account_id": "user-1"
}
}
],
"ok": true
}
Request:
const devices = await seam.devices.list({
custom_metadata_has: {
"internal_account_id": "user-1"
}
});
console.log(devices);
Response:
[
{
device_id: 'f7a7fb02-9277-4354-8dd1-28e2d016a7a9',
device_type: 'schlage_lock',
...
is_managed: true,
custom_metadata: { internal_account_id: 'user-1' }
},
...
]
Request:
devices = client.devices.list(
custom_metadata_has: {
"internal_account_id": "user-1"
}
)
puts devices.inspect
Response:
[<Seam::Device:0x004d8
device_id="f7a7fb02-9277-4354-8dd1-28e2d016a7a9"
device_type="schlage_lock"
...
is_managed=true
custom_metadata={"internal_account_id"=>"user-1"}>, ...]
Request:
$devices = $seam->devices->list(
custom_metadata_has: array('internal_account_id' => 'user-1')
);
echo json_encode($devices);
Response:
[{"device_id":"f7a7fb02-9277-4354-8dd1-28e2d016a7a9","device_type":"schlage_lock",..."is_managed":true,"custom_metadata":{"internal_account_id":"user-1"}},...]
Request:
var customMetadata = new Dictionary<string, string>()
{
{"internal_account_id", "user-1"}
};
var devices = seam.Devices.List(
customMetadataHas: customMetadata
);
foreach (var device in devices)
{
Console.WriteLine(device);
}
Response:
{
"device_id": "f7a7fb02-9277-4354-8dd1-28e2d016a7a9",
"device_type": "schlage_lock",
...
"is_managed": true,
"custom_metadata": {
"internal_account_id": "user-1"
}
}
...
Request:
Map<String, CustomMetadataValue> customMetadata =
Map.of("internal_account_id", CustomMetadataValue.of(Optional.of("user-1")));
var devices = seam.devices().list(DevicesListRequest.builder()
.customMetadataHas(customMetadata)
.build());
System.out.println(devices);
Response:
[{
"device_id" : "f7a7fb02-9277-4354-8dd1-28e2d016a7a9",
"device_type" : "schlage_lock",
...
"is_managed" : true,
"custom_metadata" : {
"internal_account_id" : "user-1"
}
},...
]
Request:
devices, err := client.Devices.List(
context.Background(),
&api.DevicesListRequest{
CustomMetadataHas: {"internal_account_id":"user-1"},
},
)
if err != nil {
return err
}
fmt.Println(devices)
return nil
Response:
[{
"device_id": "f7a7fb02-9277-4354-8dd1-28e2d016a7a9",
"device_type": "schlage_lock",
...
"is_managed": true,
"custom_metadata": {
"internal_account_id": "user-1"
}
}...
]
Last updated