Download OpenAPI specification:Download
The Fusion Signage API powers the Fusion Signage digital signage platform. Use it to manage folders, media, playlists, schedules, screens and screen groups — and to deploy content to your screens.
All endpoints require authentication with either a Personal Access Token (PAT) issued from your Fusion Signage account, or with an OAuth 2.0 access token. Pass the token in the Authorization header as a Bearer token:
Authorization: Bearer <your-token>
See our support site for details on how to generate a Personal Access Token.
Our OAuth 2.0 implementation supports the OpenID Connect Discovery Endpoint to find the correct OAuth 2.0 / OIDC configuration settings. You can use the oauth2.dev OpenID configuration validator tool to explore the settings further.
A typical workflow is:
List endpoints return a paginated result. Use the offset and limit query parameters to page through results. The total field in the response indicates the total number of matching items.
Some features - such as schedules, screen groups, tagging, and certain media types - require a specific licence level. Use the GET /licences/features endpoint to check which features are available for your account.
Authenticated requests are limited to 20 requests per second per user. Exceeding this limit will result in a 429 Too Many Requests response. If you receive a 429, back off and retry after a short delay.
Folders are used to organise digital signage content, including media, playlists and schedules, for easier management.
Returns an object containing a list of folders and permissions for root folders.
{- "folders": [
- {
- "id": 0,
- "name": "string",
- "type": "STANDARD",
- "parentId": 0,
- "assetCount": 0,
- "sortSequence": 0,
- "permissions": {
- "folder": {
- "create": true,
- "read": true,
- "update": true,
- "delete": true
}, - "asset": {
- "create": { }
}, - "media": {
- "create": { }
}
}
}
], - "rootPermissions": {
- "folder": { }
}
}| name required | string [ 1 .. 250 ] characters |
| parentId | number or null Leave null to create a root folder. |
| sortSequence | number A comparable number representing the sortable sequence of this folder relative to its siblings. Does not need to be in a precise incremental order - e.g. 1, 2, 3 or 1, 10, 100 will be accepted. If this matches the sort sequence of a sibling, then siblings will be shifted to achieve the desired sort order. There is no guarantee that the value you provide will be used exactly as-is. |
{- "name": "string",
- "parentId": 0,
- "sortSequence": 0
}{- "id": 0,
- "name": "string"
}| id required | number |
| name | string [ 1 .. 250 ] characters |
| parentId | number or null Leave null to create a root folder. |
| sortSequence | number A comparable number representing the sortable sequence of this folder relative to its siblings. Does not need to be in a precise incremental order - e.g. 1, 2, 3 or 1, 10, 100 will be accepted. If this matches the sort sequence of a sibling, then siblings will be shifted to achieve the desired sort order. There is no guarantee that the value you provide will be used exactly as-is. |
{- "name": "string",
- "parentId": 0,
- "sortSequence": 0
}{- "id": 0,
- "name": "string"
}Assets provide a unified, high-level representation of all supported digital signage content, such as media, playlists and schedules.
This API is intended to be used to build folder-based views of
signage content. It will return any content that can be assigned
to a folder. You can use the content-specific APIs (such as
/playlists and /media) and aggregate the content yourself if
you prefer.
| folderId required | number |
| type | string Enum: "PLAYLIST" "SCHEDULE" "MEDIA" "SCREEN" "SCREEN_GROUP" |
| offset required | number >= 0 Default: 0 Zero-based index of the first item to return. |
| limit required | number >= 1 Default: 10 Maximum number of items to return per page. |
| sort | string^[A-Za-z0-9_.]+:(asc|desc)$ Examples:
Optional sort in the format |
{- "total": 0,
- "offset": 0,
- "limit": 0,
- "data": [
- {
- "type": "PLAYLIST",
- "status": "CREATED",
- "durationInSeconds": 0,
- "dimensions": {
- "width": 0,
- "height": 0
}, - "thumbnail": {
- "url": "string"
}, - "files": [
- {
- "format": "string",
- "sizeInBytes": 0
}
], - "usageCount": 0,
- "tags": [
- "string"
], - "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}, - "lastUpdated": "2019-08-24T14:15:22Z"
}
]
}This API is a convenience API to move assets between folders.
You can use the content-specific APIs (such as /playlists/:id and
/media/:id) and move the assets directly if you prefer.
Returns the destination folder that the assets were moved into.
| folderId required | number The destination folder id to move the assets to. |
required | Array of objects (AssetKey) non-empty The assets to move. |
{- "folderId": 0,
- "assets": [
- {
- "id": 0,
- "type": "PLAYLIST"
}
]
}{- "id": 0,
- "name": "string"
}This API is a convenience API to delete assets.
You can use the content-specific APIs (such as /playlists/:id and
/media/:id) and delete the assets directly if you prefer.
| folderId | number If provided, performs a recursive delete of the folder and all of its contents — including media, playlists, schedules, and child folders. The assets array is ignored when folderId is set. |
required | Array of objects (AssetKey) non-empty The assets to delete. Required when folderId is not provided. |
{- "folderId": 0,
- "assets": [
- {
- "id": 0,
- "type": "PLAYLIST"
}
]
}Returns the usage graph for a given asset, walking up the hierarchy to show all parents that consume this asset. Each edge contains the child asset, the parent that uses it, and the depth from the starting asset.
| type required | string |
| id required | number |
[- {
- "asset": {
- "lastUpdated": "2019-08-24T14:15:22Z",
- "id": 0,
- "type": "PLAYLIST",
- "name": "string"
}, - "parent": {
- "lastUpdated": "2019-08-24T14:15:22Z",
- "id": 0,
- "type": "PLAYLIST",
- "name": "string"
}, - "depth": 0
}
]Media represents visual content such as images, videos, web pages and dynamic templates that can be added to playlists.
WebsiteOptions (object) or PowerBiOptions (object) or TableauOptions (object) or DesignOptions (object) or WidgetOptions (object) or CanvaOptions (object) or DocumentOptions (object) Specific options related to the media type. | |
required | object The origin of the media item. This includes the type of media and where it is located. |
| name required | string <= 150 characters The publicly visible name of the media item. This could be the file name or a human-readable name. |
| folderId required | number The folder to store the media item in. |
| tags | Array of strings An optional list of tag names to assign to the media item. The tags must have already been created. |
{- "options": {
- "cookie": "cookieName=cookieValue"
}, - "name": "string",
- "folderId": 0,
- "tags": [
- "string"
]
}{- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}
}| folderId | number |
| mediaType | string Enum: "IMAGE" "VIDEO" "WIDGET" "WEBSITE" "CANVA" "POWER_BI" "TABLEAU" "DESIGN" "ZONE" "DOCUMENT" |
| tags | Array of strings non-empty Filter by a list of tags that all media items matching the filter must have. |
| name | string Filter by a partial name match. |
| createdAfter | string <date-time> Filter to media items created after this date (exclusive). |
| offset required | number >= 0 Default: 0 Zero-based index of the first item to return. |
| limit required | number >= 1 Default: 10 Maximum number of items to return per page. |
| sort | string^[A-Za-z0-9_.]+:(asc|desc)$ Examples:
Optional sort in the format |
{- "total": 0,
- "offset": 0,
- "limit": 0,
- "data": [
- {
- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}, - "status": "CREATED",
- "options": { },
- "thumbnail": {
- "url": "string"
}, - "durationInSeconds": 0,
- "dimensions": {
- "width": 0,
- "height": 0
}, - "tags": [
- "string"
], - "created": "2019-08-24T14:15:22Z"
}
]
}Prepares and returns an upload URL that can be used to upload a
file. Only use this for media items that have a PROVIDED source.
Clients must PUT the file against the returned URL.
| id required | number |
{- "uploadUrl": "string"
}| id required | number |
| uploadUrl required | string <uri> The upload URL that was returned by the |
| contentType required | string The MIME type of the uploaded file (e.g. |
{- "contentType": "string"
}| id required | number |
CanvaUpdateOptions (object) or DocumentUpdateOptions (object) | |
| name | string <= 150 characters |
| folderId | number The folder to move the media item to. |
| tags | Array of strings An optional list of tag names to assign to the media item. Replaces all existing tags if provided. The tags must have already been created. |
{- "options": {
- "duration": 1,
- "exportTarget": "VIDEO"
}, - "name": "string",
- "folderId": 0,
- "tags": [
- "string"
]
}{- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}
}{- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}, - "status": "CREATED",
- "options": { },
- "thumbnail": {
- "url": "string"
}, - "durationInSeconds": 0,
- "dimensions": {
- "width": 0,
- "height": 0
}, - "tags": [
- "string"
], - "created": "2019-08-24T14:15:22Z"
}This will return known URL links for the media file. The most common use case is to download the media file, but other links may be available - for example, editing the media file.
| id required | number |
[- {
- "type": "DOWNLOAD",
- "url": "string",
- "sizeInBytes": 0
}
]Playlists are collections of media items with specific playback settings. Playlists are used to deploy content to screens.
required | Array of MediaPlaylistItemRequestDTO (object) or SubPlaylistPlaylistItemRequestDTO (object) The items to play in this playlist. These can be media items or another playlist. The order of items in this list determines the order they will be played. |
| name required | string <= 150 characters The name of the playlist that provides context for the content or details about its purpose. |
| folderId required | number The folder to store playlist in. |
object An optional overlay to apply to the playlist. The configured media will overlay the entire playlist. Use this to display logos, clocks, tickers throughout your entire playlist. |
{- "items": [
- {
- "type": "MEDIA",
- "mediaId": 0,
- "durationInSeconds": 0,
- "enabled": true,
- "options": {
- "rules": {
- "conditions": [
- { }
], - "type": "AND"
}, - "fitSetting": "FIT"
}
}
], - "name": "string",
- "folderId": 0,
- "overlay": {
- "mediaId": 0,
- "fitSetting": "FIT"
}
}{- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}
}| folderId | number |
| offset required | number >= 0 Default: 0 Zero-based index of the first item to return. |
| limit required | number >= 1 Default: 10 Maximum number of items to return per page. |
| sort | string^[A-Za-z0-9_.]+:(asc|desc)$ Examples:
Optional sort in the format |
{- "total": 0,
- "offset": 0,
- "limit": 0,
- "data": [
- {
- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}, - "items": [
- {
- "type": "MEDIA",
- "enabled": true,
- "options": {
- "rules": {
- "conditions": [
- { }
], - "type": "AND"
}, - "fitSetting": "FIT"
}
}
], - "overlay": {
- "mediaId": 0,
- "fitSetting": "FIT"
}, - "permissions": {
- "update": true,
- "delete": true
}
}
]
}Duplicates a playlist, including all of its items. The new
playlist will be created in the same folder as the original and
will have the same name with the suffix (duplicate).
| id required | number |
{- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}
}| id required | number |
Array of MediaPlaylistItemRequestDTO (object) or SubPlaylistPlaylistItemRequestDTO (object) The items to play in this playlist. These can be media items or another playlist. The order of items in this list determines the order they will be played. | |
| name | string <= 150 characters The name of the playlist that provides context for the content or details about its purpose. |
| folderId | number The folder to store playlist in. |
object or null Pass |
{- "items": [
- {
- "type": "MEDIA",
- "mediaId": 0,
- "durationInSeconds": 0,
- "enabled": true,
- "options": {
- "rules": {
- "conditions": [
- { }
], - "type": "AND"
}, - "fitSetting": "FIT"
}
}
], - "name": "string",
- "folderId": 0,
- "overlay": {
- "mediaId": 0,
- "fitSetting": "FIT"
}
}{- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}
}{- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}, - "items": [
- {
- "type": "MEDIA",
- "enabled": true,
- "options": {
- "rules": {
- "conditions": [
- { }
], - "type": "AND"
}, - "fitSetting": "FIT"
}
}
], - "overlay": {
- "mediaId": 0,
- "fitSetting": "FIT"
}, - "permissions": {
- "update": true,
- "delete": true
}
}Publishes the playlist to the targeted screens or screen groups. This process is asynchronous and will return once the targets have been validated. The status of the publishing process can be queried using the returned job id.
| id required | number |
required | object The target screens to publish the playlist to. At least one of
| ||||||
| |||||||
{- "targets": {
- "identities": [
- "string"
], - "tags": [
- "string"
], - "groupIds": [
- 0
]
}
}{- "id": "string",
- "status": "PENDING",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "screens": [
- {
- "identity": "string",
- "status": "PENDING",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}Schedules are collections of playlists with specific timing and recurrence rules. Schedules are used to automate content playback on screens across different dates and times.
| defaultPlaylistId | number The ID of the playlist that will be played when no event is currently active. |
| name required | string <= 250 characters The name of the schedule that provides context for the content or details about its purpose. |
| folderId required | number The folder to store the schedule in. |
required | Array of objects (Event) A list of events associated with the schedule. Each event represents a specific playlist to be displayed at a particular date and time |
{- "defaultPlaylistId": 0,
- "name": "string",
- "folderId": 0,
- "events": [
- {
- "playlistId": 0,
- "startDate": "string",
- "endDate": "string",
- "daysOfWeek": [
- "MONDAY"
], - "fromTime": "string",
- "toTime": "string"
}
]
}{- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}
}| folderId | number Filter schedules to only those stored in the specified folder. |
| offset required | number >= 0 Default: 0 Zero-based index of the first item to return. |
| limit required | number >= 1 Default: 10 Maximum number of items to return per page. |
| sort | string^[A-Za-z0-9_.]+:(asc|desc)$ Examples:
Optional sort in the format |
{- "total": 0,
- "offset": 0,
- "limit": 0,
- "data": [
- {
- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}, - "events": [
- {
- "startDate": "string",
- "endDate": "string",
- "daysOfWeek": [
- "MONDAY"
], - "fromTime": "string",
- "toTime": "string",
- "playlist": {
- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}
}
}
], - "defaultPlaylist": {
- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}
}, - "permissions": {
- "update": true,
- "delete": true
}
}
]
}| id required | number |
| name | string <= 250 characters The name of the schedule that provides context for the content or details about its purpose. |
| folderId | number The folder to store the schedule in. |
Array of objects (Event) A list of events associated with the schedule. Each event represents a specific playlist to be displayed at a particular date and time | |
| defaultPlaylistId | number or null The ID of the playlist that will be played when no event is currently active. Set to null to clear out an existing default playlist. |
{- "name": "string",
- "folderId": 0,
- "events": [
- {
- "playlistId": 0,
- "startDate": "string",
- "endDate": "string",
- "daysOfWeek": [
- "MONDAY"
], - "fromTime": "string",
- "toTime": "string"
}
], - "defaultPlaylistId": 0
}{- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}
}{- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}, - "events": [
- {
- "startDate": "string",
- "endDate": "string",
- "daysOfWeek": [
- "MONDAY"
], - "fromTime": "string",
- "toTime": "string",
- "playlist": {
- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}
}
}
], - "defaultPlaylist": {
- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}
}, - "permissions": {
- "update": true,
- "delete": true
}
}Duplicates a schedule, including all of its events. The new
schedule will be created in the same folder as the original and
will have the same name with the suffix (duplicate).
| id required | number |
{- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}
}Publishes the schedule to the targeted screens or screen groups. This process is asynchronous and will return once the targets have been validated. The status of the publishing process can be queried using the returned job id.
| id required | number |
required | object The target screens to publish the schedule to. At least one of
| ||||||
| |||||||
{- "targets": {
- "identities": [
- "string"
], - "tags": [
- "string"
], - "groupIds": [
- 0
]
}
}{- "id": "string",
- "status": "PENDING",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "screens": [
- {
- "identity": "string",
- "status": "PENDING",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}Screens are the hardware devices running the signage player application to display your content.
| pairingCode required | string The pairing code that is viewable on the screen. |
| licenceNumber | string The licence to assign to the screen. If not provided, then the next available licence will be assigned. |
| displayName required | string The screen name viewable in the CMS. |
| ianaTimezone required | string The IANA timezone to assign to the screen. |
object (Metadata) |
{- "pairingCode": "string",
- "licenceNumber": "string",
- "displayName": "string",
- "ianaTimezone": "string",
- "metadata": {
- "tags": [
- "string"
], - "fields": { }
}
}{- "identity": "string",
- "displayName": "string"
}| identity required | string |
| displayName | string The screen name viewable in the CMS. |
| ianaTimezone | string The IANA timezone to assign to the screen. |
object (Metadata) |
{- "displayName": "string",
- "ianaTimezone": "string",
- "metadata": {
- "tags": [
- "string"
], - "fields": { }
}
}{- "identity": "string",
- "displayName": "string"
}| identity required | string |
{- "identity": "string",
- "configuration": {
- "displayName": "string",
- "ianaTimezone": "string",
- "metadata": {
- "tags": [
- "string"
], - "fields": { }
}, - "licence": {
- "licenceLevel": "BASIC",
- "licenceNumber": "string",
- "term": { },
- "expiresAt": "2019-08-24T14:15:22Z"
}, - "groups": [
- {
- "id": 0,
- "name": "string"
}
]
}, - "deviceReport": {
- "systemInfo": {
- "brand": "string",
- "model": "string",
- "os": {
- "name": "string",
- "version": "string",
- "build": "string"
}, - "serialNumber": "string",
- "memory": {
- "bytesAvailable": 0,
- "bytesTotal": 0
}, - "cpuPercent": 0,
- "temperatureCelsius": { }
}, - "display": {
- "dimensions": {
- "width": 0,
- "height": 0
}, - "orientation": "PORTRAIT"
}, - "application": {
- "runtime": "ANDROID",
- "version": "string"
}, - "capabilities": [
- "DEVICE::MODEL"
], - "health": {
- "lastSeen": "2019-08-24T14:15:22Z",
- "connectivity": "ONLINE"
}
}, - "content": {
- "type": "DIRECT",
- "source": "PLAYLIST",
- "id": 0,
- "name": "string",
- "playingSince": "2019-08-24T14:15:22Z"
}, - "state": {
- "type": "IDLE",
- "reportedAt": "2019-08-24T14:15:22Z"
}, - "permissions": {
- "read": true,
- "update": true,
- "delete": true
}
}| applicationVersion | string Example: applicationVersion=1.0.3 Filter by the application version. |
| runtime | string Enum: "ANDROID" "TIZEN" "BRIGHTSIGN" "WEB" "WEBOS" "WINDOWS" "LINUX" Filter by the application runtime - e.g. |
| name | string Filter by a partial name match. |
| tags | Array of strings non-empty Filter by a list of tags that all screens matching the filter must have. |
| groupId | number Filter by screens in a screen group. |
| offset required | number >= 0 Default: 0 Zero-based index of the first item to return. |
| limit required | number >= 1 Default: 10 Maximum number of items to return per page. |
| sort | string^[A-Za-z0-9_.]+:(asc|desc)$ Examples:
Optional sort in the format |
{- "total": 0,
- "offset": 0,
- "limit": 0,
- "data": [
- {
- "identity": "string",
- "configuration": {
- "displayName": "string",
- "ianaTimezone": "string",
- "metadata": {
- "tags": [
- "string"
], - "fields": { }
}, - "licence": {
- "licenceLevel": "BASIC",
- "licenceNumber": "string",
- "term": { },
- "expiresAt": "2019-08-24T14:15:22Z"
}, - "groups": [
- {
- "id": 0,
- "name": "string"
}
]
}, - "deviceReport": {
- "systemInfo": {
- "brand": "string",
- "model": "string",
- "os": {
- "name": "string",
- "version": "string",
- "build": "string"
}, - "serialNumber": "string",
- "memory": {
- "bytesAvailable": 0,
- "bytesTotal": 0
}, - "cpuPercent": 0,
- "temperatureCelsius": { }
}, - "display": {
- "dimensions": {
- "width": 0,
- "height": 0
}, - "orientation": "PORTRAIT"
}, - "application": {
- "runtime": "ANDROID",
- "version": "string"
}, - "capabilities": [
- "DEVICE::MODEL"
], - "health": {
- "lastSeen": "2019-08-24T14:15:22Z",
- "connectivity": "ONLINE"
}
}, - "content": {
- "type": "DIRECT",
- "source": "PLAYLIST",
- "id": 0,
- "name": "string",
- "playingSince": "2019-08-24T14:15:22Z"
}, - "state": {
- "type": "IDLE",
- "reportedAt": "2019-08-24T14:15:22Z"
}, - "permissions": {
- "read": true,
- "update": true,
- "delete": true
}
}
]
}Dispatches a command to the screen. The screen must be online to receive and process the command. This API response will include the ID of the command, which can be used to query the status of the command.
| identity required | string |
| type required | string Enum: "TAKE_SCREENSHOT" "UPGRADE_APPLICATION" "CLEAR_CACHE" |
| payload | object |
{- "type": "TAKE_SCREENSHOT",
- "payload": { }
}{- "id": "string",
- "targetIdentity": "string",
- "type": "TAKE_SCREENSHOT",
- "payload": { },
- "status": "PENDING"
}| name required | string <= 250 characters The name of the screen group that provides context about its purpose. |
| parentId | number or null The parent screen group ID. Set to null for top-level screen groups. |
| screenIdentities | Array of strings The identities of the screens to assign to this group. |
{- "name": "string",
- "parentId": 0,
- "screenIdentities": [
- "string"
]
}{- "id": 0,
- "name": "string"
}| parentId | number or null |
| offset required | number >= 0 Default: 0 Zero-based index of the first item to return. |
| limit required | number >= 1 Default: 10 Maximum number of items to return per page. |
| sort | string^[A-Za-z0-9_.]+:(asc|desc)$ Examples:
Optional sort in the format |
{- "total": 0,
- "offset": 0,
- "limit": 0,
- "data": [
- {
- "id": 0,
- "name": "string",
- "parentId": 0,
- "content": {
- "source": "PLAYLIST",
- "id": 0,
- "name": "string"
}, - "screens": [
- {
- "identity": "string",
- "displayName": "string"
}
], - "permissions": {
- "read": true,
- "update": true,
- "delete": true
}
}
]
}| id required | number |
| name | string <= 250 characters The name of the screen group that provides context about its purpose. |
| parentId | number or null The parent screen group ID. Set to null for top-level screen groups. |
| screenIdentities | Array of strings The identities of the screens to assign to this group. |
{- "name": "string",
- "parentId": 0,
- "screenIdentities": [
- "string"
]
}{- "id": 0,
- "name": "string"
}| id required | number |
{- "id": 0,
- "name": "string",
- "parentId": 0,
- "content": {
- "source": "PLAYLIST",
- "id": 0,
- "name": "string"
}, - "screens": [
- {
- "identity": "string",
- "displayName": "string"
}
], - "permissions": {
- "read": true,
- "update": true,
- "delete": true
}
}| id required | number |
| identity required | string The identity of the screen to add to the group. |
{- "identity": "string"
}Returns the features available for the current user's account based on their licence level.
{- "licenceLevel": "BASIC",
- "features": [
- {
- "feature": "MEDIA_REPLACE",
- "requiredLevel": "BASIC",
- "available": true
}
]
}Returns the current state of a publish job. Use this to poll for
completion after calling POST /playlists/{id}/publish or
POST /schedules/{id}/publish — the job ID is returned in those responses.
Poll until status reaches COMPLETED or FAILED. The screens array
provides per-screen granularity so you can identify which screens succeeded
or failed individually. Access is permitted if the caller has read access
to at least one screen targeted by the job.
| id required | string |
{- "id": "string",
- "status": "PENDING",
- "createdAt": "2019-08-24T14:15:22Z",
- "updatedAt": "2019-08-24T14:15:22Z",
- "screens": [
- {
- "identity": "string",
- "status": "PENDING",
- "updatedAt": "2019-08-24T14:15:22Z"
}
]
}Tags are custom attributes that can be applied to media and screens to help organise and filter your digital signage content.
| name required | string The name for the new tag. Must be unique within the company. |
{- "name": "string"
}{- "id": 0,
- "name": "string"
}| name | string Filter tags by name. Performs an exact, case-insensitive match. |
| offset required | number >= 0 Default: 0 Zero-based index of the first item to return. |
| limit required | number >= 1 Default: 10 Maximum number of items to return per page. |
| sort | string^[A-Za-z0-9_.]+:(asc|desc)$ Examples:
Optional sort in the format |
{- "total": 0,
- "offset": 0,
- "limit": 0,
- "data": [
- {
- "id": 0,
- "name": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "usageCount": 0
}
]
}| id required | number |
| name required | string The name for the new tag. Must be unique within the company. |
{- "name": "string"
}{- "id": 0,
- "name": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "usageCount": 0
}Coming soon - This API is still in development. Pro licence holders can still use the CMS to export proof of play data.
Proof of Play provides reporting on media playback events across your screens, including aggregated summaries and individual play records. Use it to verify that content was delivered and to analyse playback performance.
Returns aggregated proof of play data grouped by the requested dimensions.
The MEDIA dimension is always present in the output. Additional
dimensions (SCREEN, PLAYLIST, DATE) can be requested via the
groupBy parameter.
The date range must not exceed 90 days. Proof of play data older than 90 days is permanently deleted and cannot be queried.
| startDate required | string Start of the reporting date range (inclusive), as an ISO 8601 datetime string, e.g. |
| endDate required | string End of the reporting date range (inclusive), as an ISO 8601 datetime string, e.g. |
| screenIdentities | Array of strings Restrict results to the specified screen identities.
When omitted, all screens accessible to the current user are included.
Requesting a screen the caller cannot access returns |
| groupBy | Array of strings Items Enum: "MEDIA" "SCREEN" "PLAYLIST" "DATE" Dimensions to group the results by.
Defaults to |
{- "totalPlayCount": 0,
- "totalDurationMs": 0,
- "data": [
- {
- "media": {
- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}
}, - "screen": {
- "identity": "string",
- "displayName": "string"
}, - "playlist": {
- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}
}, - "date": "string",
- "playCount": 0,
- "durationMs": 0
}
]
}Returns a paginated list of individual play events. Each row represents a single play occurrence on a screen.
The date range must not exceed 90 days. Proof of play data older than 90 days is permanently deleted and cannot be queried.
| startDate required | string Start of the reporting date range (inclusive), as an ISO 8601 datetime string, e.g. |
| endDate required | string End of the reporting date range (inclusive), as an ISO 8601 datetime string, e.g. |
| screenIdentities | Array of strings Restrict results to the specified screen identities. When omitted, all screens accessible to the current user are included. |
| mediaIds | Array of numbers Restrict results to plays of the specified media IDs. When omitted, plays of all media are included. |
| playlistIds | Array of numbers Restrict results to plays that occurred within the specified playlist IDs. When omitted, plays from all playlists (and non-playlist plays) are included. |
| offset required | number >= 0 Default: 0 Zero-based index of the first item to return. |
| limit required | number >= 1 Default: 10 Maximum number of items to return per page. |
{- "total": 0,
- "offset": 0,
- "limit": 0,
- "data": [
- {
- "id": 0,
- "media": {
- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}
}, - "screen": {
- "identity": "string",
- "displayName": "string"
}, - "playlist": {
- "id": 0,
- "name": "string",
- "folder": {
- "id": 0,
- "name": "string"
}
}, - "playedAt": "2019-08-24T14:15:22Z",
- "durationMs": 0
}
]
}Streams the full result set for the specified date range and filters as a downloadable CSV file. All matching rows are included.
When no data matches the filters, an empty CSV with headers only is returned.
The date range must not exceed 90 days. Proof of play data older than 90 days is permanently deleted and cannot be exported.
| startDate required | string Start of the reporting date range (inclusive), as an ISO 8601 datetime string, e.g. |
| endDate required | string End of the reporting date range (inclusive), as an ISO 8601 datetime string, e.g. |
| screenIdentities | Array of strings Restrict results to the specified screen identities. When omitted, all screens accessible to the current user are included. |
| mediaIds | Array of numbers Restrict results to plays of the specified media IDs. When omitted, plays of all media are included. |
| playlistIds | Array of numbers Restrict results to plays that occurred within the specified playlist IDs. When omitted, plays from all playlists (and non-playlist plays) are included. |