15.09.2026-2
A new endpoint for content partners: read the devices configured to serve your content.
POST /v1alpha/inventory/devices:listByContentSourceWhat it does
Section titled “What it does”You do not register inventory — the operators who own those screens do. What you hold is an entitlement: one or more content sources, issued at onboarding. The endpoint returns every device in the tenant configured to serve from one of them, across every project and every other organization.
Only a static allocation target counts. A source named on a non-static target is bidding for the remaining share rather than serving curated content, so it does not make the device yours.
Requires X-Verve-Namespace: organization:<ORGANIZATION_ID>. Holding no content source is not an error — you receive an empty page.
Filters
Section titled “Filters”All filters combine with AND; omit them all to list everything you are entitled to.
| Filter | Matches |
|---|---|
contentSources |
Narrows to a subset of the sources you hold. Multiple ids combine with OR. |
externalId |
Case-insensitive substring on the device’s externalId. |
name |
Case-insensitive substring on metadata.name. |
locationId |
Exact match on the location’s externalId. |
modifiedSince |
Devices modified strictly after this instant, for incremental sync. |
Ids you do not hold are silently ignored — not rejected, and they cannot pull in devices you are not entitled to. Your entitlement applies whether or not you send the filter.
Sorting
Section titled “Sorting”Sort by externalId (the default) or firstCreatedAt. Both are immutable, so paging through a result stays stable while devices are being edited. Sorting on lastUpdatedAt is deliberately not offered — it is the one field an edit moves, and paging through it is how a walk silently skips a device.
For incremental sync, pair modifiedSince with DEVICE_SORT_FIELD_FIRST_CREATED_AT rather than with the timestamp you are filtering on.
Read more
Section titled “Read more”CMS integration covers the entitlement model, every filter, worked examples and the error responses. The full request and response schemas are in the API reference.