I’m working with the Milestone Config REST API and I’m trying to retrieve hardware information associated with cameras, including attached microphones and speakers, in a payload-efficient way.
What I’m trying to achieve
My goal is to:
-
list cameras,
-
determine their parent hardware,
-
and retrieve only those hardware objects with their related microphones/speakers
(not all hardware in the system).
My initial approach
- Retrieve cameras via:
GET /rest/v1/cameras
2. Extract the parent hardwareId from each camera.
3. Retrieve the related hardware in bulk using:
GET /rest/v1/hardware?id=oneOf:(...)
However, this is where I’m stuck.
Problem
The oneOf filter is not supported on the Config API (/rest/v1/hardware), even though it is available on the Events and Alarms APIs.
-
Using multiple
idquery parameters results in an empty list (IDs appear to be AND-ed). -
Only single-ID queries work:
GET /rest/v1/hardware?id='GUID'
Because of this, there doesn’t seem to be a supported way to retrieve a set of hardware resources by ID using the Config REST API.
Question
What is the recommended or supported approach to retrieve:
-
camera parent hardware,
-
including related microphones and speakers,
-
without retrieving all hardware objects?
Is there:
-
an alternative bulk query mechanism?
-
a different traversal direction (hardware → cameras)?
-
or a best practice pattern recommended by Milestone for this use case?
Any guidance would be greatly appreciated.