Filtering Devices by Custom Metadata
When listing devices, you can filter by custom metadata.
PreviousAdding Custom Metadata to a DeviceNextTesting Your App Against Device Disconnection and Removal
Last updated
Was this helpful?
When listing devices, you can filter by custom metadata.
Last updated
Was this helpful?
When you use , you can filter the list by one or more pairs. Include the custom_metadata_has
parameter with a JSON string that specifies the desired key:value pairs.
You can use the method with the optional to .
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"
}
}...
]