How to retrieve camera parent hardware (with microphones/speakers) using Config REST API without oneOf filter?

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

  1. 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 id query 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.

Allow me to take one step back.
To find a cameras related by using the hardware object is incorrect.
Per default the devices on the same hardware are related, but the administrator can change this.
You can observe this yourself if you in the Management Client picks a camera and on the Properties pane picks the Client tab. You can observe how the related microphone can be replaced by another microphone in the system.
In order to get the related devices do a
GET /api/rest/v1/cameras/{Id}/clientSettings

There might or might not be follow-up questions on query mechanisms, let us know.

Using

GET /api/rest/v1/cameras?includeChildren=clientSettings

appears to be a viable way to determine whether a camera can record and/or output audio.
However, in our use case we also need to enrich the camera list with hardware-level information, such as:

  • IP address

  • camera model

  • etc.

What would be the recommended approach to retrieve such hardware-related properties together with the camera list, while still respecting the fact that device relationships (e.g. microphones/speakers) are defined via client settings rather than hardware topology?
Is there:

  • a supported way to include relevant hardware fields when listing cameras, or

  • a best-practice pattern for combining camera data with hardware metadata via the REST API?

Thanks in advance for any guidance.

Correct — the Config REST API does not support a oneOf‑style filter.

However, retrieving all hardware is relatively fast. I recommend using:

/hardware?includeChildren=cameras,microphones,speakers

Even in large installations, the response should arrive within a few seconds.