About Mutations

All mutations in the OnSign GraphQL API follow the Relay framework specifications.

These mutations accept and emit a identifier string, which allows Relay to track mutations and responses.

Relay uses a common pattern for mutations, where there are root fields on the mutation type with a single argument, input, and where the input and output both contain a client mutation identifier used to reconcile requests and responses.

By convention, mutations are named as verbs, their inputs are the name with "Input" appended at the end, and they return an object that is the name with "Payload" appended.

All mutations may include in their input a clientMutationId string, which is then returned as part of the object returned by the mutation field.

More information about how Relay works can be found on the Relay website:

https://relay.dev/graphql/mutations

https://relay.dev/docs/en/mutations


addPlayerTag

Add a tag to a player. Requires a token with player:write permission.

Input Fields

id (ID!)

The player unique identifier.

tag (String!)

The tag to be added

clientMutationId (String)

Return fields

player (Player)

The updated Player

clientMutationId (String)

addPlayerToGroup

Add a player to a group. Requires a token with player:write permission.

Input Fields

playerId (ID!)

The player unique identifier.

playerGroupId (ID!)

The player group unique identifier.

clientMutationId (String)

Return fields

player (Player)

The updated Player

playerGroup (PlayerGroup)

The player group which the player was added to

clientMutationId (String)

addUserToGroup

Adds a user to a user group. Requires a token with user:write permission.

Input Fields

groupId (ID!)

The user group unique identifier.

userId (ID!)

The user unique identifier.

clientMutationId (String)

Return fields

userGroup (UserGroup)

The user group that was updated.

clientMutationId (String)

appendDataFeedRows

Append a new row to the Data Feed. Requires a token with content:write permission.

Input Fields

dataFeedId (ID!)

The Data Feed unique identifier.

values ([JSON!]!)

A list of row values to be created. Each array item is a JSON with this structure. E.g. { columnId: value, columnId1: value1 }.

pending (Boolean)

The row status is set to pending when requested to be created. Default is false.

clientMutationId (String)

Return fields

dataFeed (DataFeed)

The updated Data Feed.

clientMutationId (String)

appendToPlaylist

Appends an item (campaign, playlist or content) to a playlist or player loop. Requires a token with content:write permission.

Input Fields

playlistId (ID!)

A Playlist ID or Player Loop ID where the playable should be added.

playableId (ID!)

The content to append to the playlist

duration (Int)

Sets the duration, in seconds, of static items like images and apps. Can be used to overwrite the duration of videos.

paused (Boolean)

The pause state for this Playable in the Playlist.

restrictions ([RestrictionInput!])

The content restrictions

clientMutationId (String)

Return fields

playlistItem (PlaylistItem)

The Playlist item appended to the playlist

clientMutationId (String)

approveDataFeedRows

Accept row changes from the data feed. Requires a token with content:write permission.

Input Fields

dataFeedId (ID!)

The Data Feed unique identifier.

rows ([RowOpTarget!]!)

A list of rows to have their status changes approved. Check DataFeedRowStatus for more info.

clientMutationId (String)

Return fields

dataFeed (DataFeed)

The updated Data Feed.

clientMutationId (String)

bulkUpdatePlaylists

Update multiple playlists in a single mutation, update their pause state, restrictions and items inside them. Requires a token with content:write permission.

Input Fields

playlists ([BulkUpdatePlaylistInput!]!)

Array of playlists to be updated. Up to 100 playlists can be updated at once.

clientMutationId (String)

Return fields

wasUpdated (Boolean)

Whether the playlists were updated

clientMutationId (String)

createContentReport

Creates a single report, generated only a single time, that will count content exhibitions. Requires a token with report:write permission.

Input Fields

name (String)

The report name

periodStart (DateTime!)

The start date in the report.

periodEnd (DateTime!)

The end date in the report.

aggregation (ReportAggregation!)

The report aggregation.

outputFormat (ReportFormat!)

The report output format.

filterPlayerIDs ([ID!])

Report only playback data from these players.

filterPlayerGroupIDs ([ID!])

Report only playback data from players belonging to these groups.

filterPlayerTags ([String!])

Report only playback from players that contain these tags.

filterPlayerTagsOperator (TagsOperator)

Whether an individual player needs to have all given tags or just some of them.

filterContentIDs ([ID!])

Report only the playback of these contents.

filterContentTags ([String!])

Report only the playback of content that have these tags.

filterContentTagsOperator (TagsOperator)

Whether an individual content needs to have all given tags or just some of them.

filterContentKinds ([ContentPlayableKind!])

Report only the playback of any of these content kinds. Defaults to all content kinds.

filterPlaybackReasons ([PlaybackLoopReason!])

Report only the playback played any one of these reasons. Defaults to all playback reasons.

filterOnlyInteractions (Boolean)

Only report interactive content touched by an user. Defaults to false.

includeErrors (Boolean)

Include content that failed to play. Defaults to false.

includePartialPlaybacks (Boolean)

Include content that have not played through their end. Defaults to false.

includeContentTags (Boolean)

Include content tags in the report, available for all aggregation types, except for INDIVIDUAL. Defaults to false.

includePlayerTags (Boolean)

Include content tags in the report, available for all aggregation types, except for INDIVIDUAL. Defaults to false.

includePlayerCustomAttrs (Boolean)

Include player custom attributes in the report, available for all aggregation types, except for INDIVIDUAL. Defaults to false.

includeContentCustomAttrs (Boolean)

Include content custom attributes in the report, available for all aggregation types, except for INDIVIDUAL. Defaults to false.

outputCSVColumns ([CSVColumns!])

Add only these columns to CSV output.
Only available for CSV reportFormat and INDIVIDUAL aggregation.

outputLogoID (ID)

An IMAGE Content.ID that can be used as a report logo image.
Only available when reportFormat is HTML or PDF.

outputLogoPosition (ReportLogoPosition)

The report logo position.
Only available when reportFormat is HTML or PDF.

outputDescription (String)

A description text that will appear in the report header.
Only available when reportFormat is HTML or PDF.

outputCompression (ReportCompression)

Save report inside a Zip file to reduce storage use. By default compression is only applied to INDIVIDUAL playback reports.

notificationEmails ([String!])

Send a message to these emails containing a link to download the report.

clientMutationId (String)

Return fields

report (Report)

The created report

clientMutationId (String)

createContentReportSchedule

Creates a periodic report, that will run multiple times and will count content exhibitions for each period. Requires a token with report:write permission.

Input Fields

name (String!)

The periodic report name

schedule (String!)

The recurring report rules and dates. The report will be generated on the
days that match the rules and dates specified.
The string follows the iCal RRULE
property format, more details can be found at:
https://tools.ietf.org/html/rfc2445#section-4.8.5.4

periodAmount (Int!)

Defines how much data will be contained in a RecurringReport.
The amount of data that are present on the report, up to 60 days (or 2 months).

periodType (ReportPeriodType!)

The recurring report amount multiplier when generating reports.

periodOffsetDays (Int!)

Amount of days from the end of the period to the recurring date. For instance, if you want a report every 5th of the month containing data from the previous month set amount to 1, amountType to "MONTH" and "offsetDays" to 5.

aggregation (ReportAggregation!)

The report aggregation.

outputFormat (ReportFormat!)

The report output format.

filterPlayerIDs ([ID!])

Report only playback data from these players.

filterPlayerGroupIDs ([ID!])

Report only playback data from players belonging to these groups.

filterPlayerTags ([String!])

Report only playback from players that contain these tags.

filterPlayerTagsOperator (TagsOperator)

Whether an individual player needs to have all given tags or just some of them.

filterContentIDs ([ID!])

Report only the playback of these contents.

filterContentTags ([String!])

Report only the playback of content that have these tags.

filterContentTagsOperator (TagsOperator)

Whether an individual content needs to have all given tags or just some of them.

filterContentKinds ([ContentPlayableKind!])

Report only the playback of any of these content kinds. Defaults to all content kinds.

filterPlaybackReasons ([PlaybackLoopReason!])

Report only the playback played any one of these reasons. Defaults to all playback reasons.

filterOnlyInteractions (Boolean)

Only report interactive content touched by an user. Defaults to false.

includeContentTags (Boolean)

Include content tags in the report, available for all aggregation types, except for INDIVIDUAL. Defaults to false.

includePlayerTags (Boolean)

Include content tags in the report, available for all aggregation types, except for INDIVIDUAL. Defaults to false.

includePlayerCustomAttrs (Boolean)

Include player custom attributes in the report, available for all aggregation types, except for INDIVIDUAL. Defaults to false.

includeContentCustomAttrs (Boolean)

Include content custom attributes in the report, available for all aggregation types, except for INDIVIDUAL. Defaults to false.

includeErrors (Boolean)

Include content that failed to play. Defaults to false.

includePartialPlaybacks (Boolean)

Include content that have not played through their end. Defaults to false.

outputCSVColumns ([CSVColumns!])

Add only these columns to CSV output.
Only available for CSV reportFormat and INDIVIDUAL aggregation.

outputLogoID (ID)

An IMAGE Content.ID that can be used as a report logo image.
Only available when reportFormat is HTML or PDF.

outputLogoPosition (ReportLogoPosition)

The report logo position.
Only available when reportFormat is HTML or PDF.

outputDescription (String)

A description text that will appear in the report header.
Only available when reportFormat is HTML or PDF.

outputCompression (ReportCompression)

Save report inside a Zip file to reduce storage use. By default compression is only applied to INDIVIDUAL playback reports.

notificationEmails ([String!])

Send a message to these emails containing a link to download the report.

clientMutationId (String)

Return fields

report (Report)

The created report

clientMutationId (String)

createDataFeed

Create a new Data Feed. Requires a token with content:write permission.

Input Fields

name (String!)

The name of the Data Feed.

tags ([String!])

The tags of the Data Feed.

parentId (ID)

The parent folder ID. Default is the Organization root folder.

columns ([ColumnOpCreate!]!)

The create operations to be performed on the columns.

rows ([RowOpInsert!]!)

The insert operations to be performed on the rows.

clientMutationId (String)

Return fields

dataFeed (DataFeed)

The created Data Feed.

clientMutationId (String)

createPlaylist

Creates a new playlist. Requires a token with content:write permission.

Input Fields

name (String!)

The name of the playlist

parentFolderId (ID)

The ID of the folder where you want to place the created playlist. If not specified, the playlist will be placed on the root folder

category (String)

The playlist category.

tags ([String!])

The playlist tags.

defaultDuration (Int)

The playlist default duration for static files in seconds.

paused (Boolean)

Whether the playlist should be created in a paused state.

restrictions ([RestrictionInput!])

The playlist restrictions

items ([PlaylistItemInput!])

If items is an empty list, null or not specified, creates an empty playlist. If items is list of Playable items, those will be inserted in the same order as the list.

clientMutationId (String)

Return fields

playlist (Playlist)

The created Playlist

clientMutationId (String)

moveContent

Move content to a different FOLDER. Requires a token with content:write permission.

Input Fields

id (ID!)

The content unique identifier.

destinationId (ID!)

The destination FOLDER unique identifier.

clientMutationId (String)

Return fields

content (Content)

The updated content

clientMutationId (String)

playContent

Play content on demand. Requires a token with player:write and content:read permission.

Input Fields

playerId (ID!)

The player unique identifier.

playableId (ID!)

Content that should be played. The player must already have this content published to it, otherwise playback will simply be ignored.

action (PlayContentAction)

By default the playback of content starts as soon as this mutation is called, interrupting whatever is currently playing, be it either scheduled or other on demand campaign.

repeat (Int)

How many times should this content should be played (or enqueued, if the action is not PLAY). Default is 1. Ignored if action is PLAYFOREVER.

expire (Int)

If the player is not online retry command for this many seconds. From 5 seconds to 1 hour. Default is 120 seconds.

params (JSON)

Parameters added to the playback that gets forwarded to the player

clientMutationId (String)

Return fields

wasDelivered (Boolean)

Whether the player was online and command was delivered.

clientMutationId (String)

publishToPlayerLoop

Publishes an item (campaign, playlist or content) to a player loop. Requires a token with content:write permission.

Input Fields

playerLoopId (ID!)

The Player Loop ID

playableId (ID!)

The content to append to the player loop

duration (Int)

Sets the duration, in seconds, of static items like images and apps. Can be used to overwrite the duration of videos.

paused (Boolean)

The pause state for this Playable in the player loop.

restrictions ([RestrictionInput!])

The content restrictions

clientMutationId (String)

Return fields

playerLoopItem (PlaylistItem)

The Player Loop item appended to the player loop

clientMutationId (String)

rebootPlayer

Requests a reboot to the player. Requires a token with player:write permission.

Input Fields

id (ID!)

The player unique identifier.

clientMutationId (String)

Return fields

player (Player)

The updated Player

clientMutationId (String)

rejectDataFeedRows

Reject row chances from the data feed. Requires a token with content:write permission.

Input Fields

dataFeedId (ID!)

The Data Feed unique identifier.

rows ([RowOpTarget!]!)

A list of rows to have their pending changes rejected. Check DataFeedRowStatus for more info.

clientMutationId (String)

Return fields

dataFeed (DataFeed)

The updated Data Feed.

clientMutationId (String)

removeContent

Remove content. If the given content is a FOLDER then all content within it will also be removed. Requires a token with content:write permission.

Input Fields

id (ID!)

The content unique identifier.

clientMutationId (String)

Return fields

isRemoved (Boolean)

The result

clientMutationId (String)

removeContentFromPlaylist

Removes all occurrences of a playlist item by its name. Requires a token with content:write permission.

Input Fields

id (ID!)

The playlist ID

name (String!)

The content name

clientMutationId (String)

Return fields

isRemoved (Boolean)

The result

clientMutationId (String)

removeDataFeedRows

Remove rows from the Data Feed. Requires a token with content:write permission.

Input Fields

dataFeedId (ID!)

The Data Feed unique identifier.

rows ([RowOpTarget!]!)

A list of rows to be deleted. Check DataFeedRowStatus for more info.

pending (Boolean)

The row status is set to pending when requested to be removed. Default is false.

clientMutationId (String)

Return fields

dataFeed (DataFeed)

The updated Data Feed.

clientMutationId (String)

removeFromPlaylist

Removes a playlist item from a playlist. Requires a token with content:write permission.

Input Fields

id (ID!)

The playlist item ID

clientMutationId (String)

Return fields

isRemoved (Boolean)

The result

clientMutationId (String)

removePlayerFromGroup

Removes the player from a group. Requires a token with player:write permission.

Input Fields

playerId (ID!)

The player unique identifier.

playerGroupId (ID!)

The player group unique identifier.

clientMutationId (String)

Return fields

player (Player)

The updated Player

playerGroup (PlayerGroup)

The player group which the player was removed from

clientMutationId (String)

removePlayerTag

Remove a tag from a player. Requires a token with player:write permission.

Input Fields

id (ID!)

The player unique identifier.

tag (String!)

The tag to be removed

clientMutationId (String)

Return fields

player (Player)

The updated Player

clientMutationId (String)

removeUserFromGroup

Removes a user from a user group. Requires a token with user:write permission.

Input Fields

groupId (ID!)

The user group unique identifier.

userId (ID!)

The user unique identifier.

clientMutationId (String)

Return fields

userGroup (UserGroup)

The user group that was updated.

clientMutationId (String)

renameContent

Rename content. The new name cannot start with a leading period (.) or contain any slashes (/). Requires a token with content:write permission.

Input Fields

id (ID!)

The content unique identifier.

name (String!)

The new content name

clientMutationId (String)

Return fields

content (Content)

The updated content

clientMutationId (String)

returnToLoop

Causes the player to immediately stop playing content that was played on-demand and return to playing content from its primary loop. Requires a token with player:write permission.

Input Fields

playerId (ID!)

The player unique identifier.

expire (Int)

If the player is not online retry command for this many seconds. From 5 seconds to 1 hour. Default is 120 seconds.

clientMutationId (String)

Return fields

wasDelivered (Boolean)

Whether the player was online and command was delivered.

clientMutationId (String)

updateCampaignPauseState

Toggles the paused state for a campaign. Requires a token with content:write permission.

Input Fields

id (ID!)

The Campaign ID

paused (Boolean!)

The pause state

clientMutationId (String)

Return fields

campaign (Campaign)

The updated Campaign

clientMutationId (String)

updateCampaignRestrictions

Updates a campaign restriction. Requires a token with content:write permission.

Input Fields

id (ID!)

The Campaign ID

restrictions ([RestrictionInput!]!)

The restrictions to be set

clientMutationId (String)

Return fields

campaign (Campaign)

The updated Campaign

clientMutationId (String)

updateContentPermissions

Updates a content permission. Grants or removes permissions to a user or user group on a content. Contents permissions will be replaced by the given list of permissions. At least one target must be provided, userId or groupId. Requires a token with user:write permission.

Input Fields

contentId (ID!)

The content unique identifier.

userId (ID)

The user unique identifier.

groupId (ID)

The user group unique identifier.

permissions ([ContentPerms!]!)

A list of permissions to be granted to the user or group on the content. The list can`t be null, and if the list is empty all permissions will be removed.

clientMutationId (String)

Return fields

content (Content)

The updated Content.

clientMutationId (String)

updateDataFeed

Update a Data Feed. When calling this mutation, you need provide at least one field to be updated, any data provided will overwrite the existing Data Feed field. Requires a token with content:write permission.

Input Fields

dataFeedId (ID!)

The Data Feed Column unique identifier.

name (String)

A new name for the data feed. Omit it to keep the existing name.

tags ([String!])

A new list of tags for the data feed. Omit it to keep the existing tags.

columns (UpdateDataFeedColumnOps)

Any of the desired changes to columns.

rows (UpdateDataFeedRowOps)

Any of the desired changes to rows.

clientMutationId (String)

Return fields

dataFeed (DataFeed)

The updated Data Feed.

clientMutationId (String)

updateDataFeedRows

Update multiples Data Feed rows to same value. Requires a token with content:write permission.

Input Fields

dataFeedId (ID!)

The Data Feed unique identifier.

rows ([RowOpTarget!]!)

A list of rows to have their values updated. Check DataFeedRowStatus for more info.

values (JSON!)

The row values to be updated. Each key is the column ID. E.g. { columnId: value, new1: value1 }

pending (Boolean)

The row status is set to "P_UPDATE" when requested to be updated. Default is false.

clientMutationId (String)

Return fields

dataFeed (DataFeed)

The updated Data Feed.

clientMutationId (String)

updatePlayer

Updates a player to the latest version. Requires a token with player:write permission.

Input Fields

id (ID!)

The player unique identifier.

clientMutationId (String)

Return fields

player (Player)

The updated Player

clientMutationId (String)

updatePlayerCustomAttribute

Updates the player custom attribute. Requires a token with player:write permission.

Input Fields

id (ID!)

The player unique identifier.

attr (CustomAttribute!)

The custom attribute to be updated

clientMutationId (String)

Return fields

player (Player)

The updated Player

clientMutationId (String)

updatePlayerGroupPermissions

Updates a player group permission. Grants or removes permissions to a user or user group. Player Group permissions will be replaced by the given list of permissions. At least one target must be provided, userId or groupId. Requires a token with user:write permission.

Input Fields

playerGroupId (ID!)

The player group unique identifier.

userId (ID)

The user unique identifier.

groupId (ID)

The user group unique identifier.

permissions ([PlayerGroupPerms!]!)

A list of permissions to be granted to the user or group on the player. The list can`t be null, and if the list is empty all permissions will be removed.

clientMutationId (String)

Return fields

playerGroup (PlayerGroup)

The updated Player Group.

clientMutationId (String)

updatePlayerGroupTags

Updates the player group tags. Requires a token with player:write permission.

Input Fields

id (ID!)

The player group unique identifier.

tags ([String!]!)

The tags to be set

clientMutationId (String)

Return fields

playerGroup (PlayerGroup)

The updated Player Group

clientMutationId (String)

updatePlayerPermissions

Updates a player permission. Grants or removes permissions to a user or user group on a content. Player permissions will be replaced by the given list of permissions. At least one target must be provided, userId or groupId. Requires a token with user:write permission.

Input Fields

playerId (ID!)

The player unique identifier.

userId (ID)

The user unique identifier.

groupId (ID)

The user group unique identifier.

permissions ([PlayerPerms!]!)

A list of permissions to be granted to the user or group on the player. The list can`t be null, and if the list is empty all permissions will be removed.

clientMutationId (String)

Return fields

player (Player)

The updated Player.

clientMutationId (String)

updatePlayerTags

Updates the player tags. Requires a token with player:write permission.

Input Fields

id (ID!)

The player unique identifier.

tags ([String!]!)

The tags to be set

clientMutationId (String)

Return fields

player (Player)

The updated Player

clientMutationId (String)

updatePlaylist

Update the playlist state in a single mutation, update its pause state, restrictions and items inside the playlist. Requires a token with content:write permission.

Input Fields

playlistId (ID!)

The Playlist ID

paused (Boolean)

The pause state for this Playable in the Playlist.

restrictions ([RestrictionInput!])

The content restrictions

items ([PlaylistItemInput!])

If items is an empty list, removes all current items from the playlist, making it empty. If items is list of Playable items, it will replace the current list of items in the playlist. If items is null or not specified, the playlist items will be left untouched.

clientMutationId (String)

Return fields

playlist (Playlist)

The Playlist

clientMutationId (String)

updatePlaylistItemPauseState

Toggles the paused state for a playlist item. Requires a token with content:write permission.

Input Fields

id (ID!)

The Playlist Item ID

paused (Boolean!)

The pause state

clientMutationId (String)

Return fields

playlistItem (PlaylistItem)

The updated Playlist Item

clientMutationId (String)

updatePlaylistItemRestrictions

Updates a playlist item restriction. Requires a token with content:write permission.

Input Fields

id (ID!)

The Playlist Item ID

restrictions ([RestrictionInput!]!)

The restrictions to be set

clientMutationId (String)

Return fields

playlistItem (PlaylistItem)

The updated Playlist Item

clientMutationId (String)

updatePlaylistPauseState

Toggles the paused state for a playlist. Requires a token with content:write permission.

Input Fields

id (ID!)

The Playlist ID

paused (Boolean!)

The pause state

clientMutationId (String)

Return fields

playlist (Playlist)

The updated Playlist

clientMutationId (String)

updatePlaylistRestrictions

Updates a playlist restriction. Requires a token with content:write permission.

Input Fields

id (ID!)

The Playlist ID

restrictions ([RestrictionInput!]!)

The restrictions to be set

clientMutationId (String)

Return fields

playlist (Playlist)

The updated Playlist

clientMutationId (String)

updateUserDefaultFolder

Updates the default folder of a user. The user can still access the Home folder regardless of this setting. Requires a token with user:write.

Input Fields

id (ID!)

The user unique identifier.

folderId (ID)

The folder unique identifier. Permissions must be granted to the user on the selected folder before setting it as default. If this field is null, the default folder setting will be removed and the user will use by default the Home folder.

clientMutationId (String)

Return fields

user (User)

The updated User.

clientMutationId (String)

updateUserGroupDefaultFolder

Updates the default folder of all users from a user group. The users can still access the Home folder regardless of the default folder. This will not set the default folder to the user group, but to the current users in the group. Requires a token with user:write.

Input Fields

id (ID!)

The user group unique identifier.

folderId (ID)

The folder unique identifier. Before setting a folder as default, ensure the users from the group have been granted the necessary permissions on the selected folder. If this field is null, the default folder setting will be removed and the users will use by default the Home folder.

clientMutationId (String)

Return fields

userGroup (UserGroup)

The updated User Group.

clientMutationId (String)

updateUserGroupPermissions

Updates a user group permissions. Grants or removes permissions to a user group. Requires a token with user:write permission.

Input Fields

id (ID!)

The user group unique identifier.

addPermissions ([UserPerms!])

A list of permissions to be granted to the user group. The list can`t be null.

removePermissions ([UserPerms!])

A list of permissions to be removed from the user group. The list can`t be null

clientMutationId (String)

Return fields

userGroup (UserGroup)

The updated User Group.

clientMutationId (String)

updateUserPermissions

Updates a user permission. Grants or removes permissions to a user. Requires a token with user:write permission.

Input Fields

id (ID!)

The user unique identifier.

addPermissions ([UserPerms!])

A list of permissions to be granted to the user. The list can`t be null.

removePermissions ([UserPerms!])

A list of permissions to be removed from the user. The list can`t be null

clientMutationId (String)

Return fields

user (User)

The updated User.

clientMutationId (String)

Input objects

RowOpDelete

Information about deleting a data feed row.

Input Fields

id (String!)

The row ID.

version (Int)

Exepcted version of the row. Will fail the mutation if the current version is different from the one given here. Leave it blank to skip conflict detection.

pending (Boolean)

If true the row status is set to "P_DELETE" instead of being deleted immediately. Defaults to false.

RowOpTarget

The row ID to be updated.

Input Fields

id (String!)

The row ID.

version (Int)

Exepcted version of the row. Will fail the mutation if the current version is different from the one given here. Leave it blank to skip conflict detection.

RowOpUpdate

The row to be updated with the new value.

Input Fields

id (String!)

The row ID.

version (Int)

Exepcted version of the row. Will fail the mutation if the current version is different from the one given here. Leave it blank to skip conflict detection.

values (JSON!)

The row values to be updated. Each key is the column ID. E.g. { columnId: value, new1: value1 }

pending (Boolean)

If true the row status is set to "P_UPDATE" instead of being updated immediately. Defaults to false.

RowOpInsert

The row to be inserted with the new values.

Input Fields

values (JSON!)

The row values to be created. Each key is the column ID. E.g. { columnId: value, new1: value1 }

index (Int)

Position where this row should be inserted. Leave it blank for the row to be inserted at the end.

pending (Boolean)

The row status is set to pending for create.

UpdateDataFeedRowOps

Lists of actions to be performed on the Data Feed.

Input Fields

insert ([RowOpInsert!])

A list of insert operations to be performed.

update ([RowOpUpdate!])

A list of update operations to be performed.

delete ([RowOpDelete!])

A list of delete operations to be performed.

approve ([RowOpTarget!])

A list of rows to have their status changes approved. Check DataFeedRowStatus for more info.

reject ([RowOpTarget!])

A list of rows to have their pending changes rejected. Check DataFeedRowStatus for more info.

ColumnOpCreate

The new column to be create with some configurations.

Input Fields

id (String!)

The column ID. New columns must be given a temporary ID prefixed with new, like new1, new2, etc. This temporary ID can be referenced by rows when creating columns and inserting or updating rows on the same mutation.

name (String!)

The column name. Must be unique inside then given data feed.

required (Boolean!)

Makes the column required, so all rows need to have a non-null value for this column.

maxLength (Int)

The column max length, used only when kind == "TEXT"

note (String)

The column note.

ColumnOpUpdate

The column to be updated with the new configurations.

Input Fields

id (String!)

The existing column ID.

name (String)

The column name. Leave null to keep existing name.

note (String)

The column note. Leave null to keep existing note.

ColumnOpDelete

A list of column IDs to be deleted.

Input Fields

id (String!)

The column ID.

UpdateDataFeedColumnOps

Lists of operations to be performed on the Data Feed columns.

Input Fields

create ([ColumnOpCreate!])

A list of create operations to be performed.

update ([ColumnOpUpdate!])

A list of update operations to be performed.

delete ([ColumnOpDelete!])

A list of delete operations to be performed.

RestrictionInput

Input Fields

BulkUpdatePlaylistInput

Input Fields

playlistId (ID!)

The Playlist ID

paused (Boolean)

The pause state for this Playable in the Playlist.

restrictions ([RestrictionInput!])

The content restrictions

items ([PlaylistItemInput!])

If items is an empty list, removes all current items from the playlist, making it empty. If items is list of Playable items, it will replace the current list of items in the playlist. If items is null or not specified, the playlist items will be left untouched.

PlaylistItemInput

Represents a Playable and how it should be inserted into the Playlist ID or PlayerLoop ID.

Input Fields

playableId (ID!)

The content to added to the Playlist

duration (Float)

Sets the duration, in seconds, of static items like images and apps. Can be used to overwrite the duration of videos.

paused (Boolean)

The pause state for this Playable in this position of the Playlist.

restrictions ([RestrictionInput!])

The restrictions on this Playable in this position of the Playlist.


Enums

TagRestrictionActions

Values

ALLOW
DISALLOW

ContentKind

Content kind, used to discern between media, composition or apps.

Values

FOLDER

The content is a folder. It can have children.

AUDIO

The content is an audio file.

AUDIO_APP

The content is an app, with configurable behavior, playable on audio tracks

AUTOMATION_APP

The content is an app, with configurable behavior, playable on automation tracks

PLUGIN_APP

The content is an app, with configurable behavior, configured as a plugin

DATAFEED

The content is a data feed.

JS

The content is a JavaScript file.

CSS

The content is a CSS file.

ZIP

The content is a ZIP file.

FONT

The content is a Font file.

XML

The content is XML Data.

GLB

The content is Binary GL Transmission Format.

GLTF

The content is GL Transmission Format.

HDR

The content is Radiance HDR Image.

PDF

The content is PDF.

CSV

The content is a CSV file.

XLSX

The content is an Excel Spreadsheet.

JSON

The content is a JSON file.

APP

The content is an app, with configurable behavior.

CAMPAIGN

The content is a campaign.

COMPOSITION

The content is a composition of images and text.

HTML

The content is an HTML file.

IMAGE

The content is an image, like JPEG or PNG.

MHTML

The content is an MHTML file.

PLAYLIST

The content is a playlist.

VIDEO

The content is a video, like MP4 or AVI.

SVG

The content is a SVG file.

SWF

The content is a SWF file.

ContentPlayableKind

Used to discern between the kind of content played in a player.

Values

APP

The content is an app, with configurable behavior.

CAMPAIGN

The content is a campaign.

COMPOSITION

The content is a composition of images and text.

HTML

The content is an HTML file.

IMAGE

The content is an image, like JPEG or PNG.

MHTML

The content is an MHTML file.

PLAYLIST

The content is a playlist.

VIDEO

The content is a video, like MP4 or AVI.

SVG

The content is a SVG file.

SWF

The content is a SWF file.

PlayerFamily

Player family where the player is installed.

Values

ANDROID

Android player.

BRIGHTSIGN

BrightSign player.

CHROME_OS

Chrome OS player.

LINUX

Linux player.

MAC_OS

macOS player.

RASPBERRY_PI

Raspberry Pi player.

SAMSUNG_SSP

Samsung SSP player.

SAMSUNG_TIZEN

Samsung Tizen player.

WEB_OS

webOS player.

WINDOWS

Windows player.

QT

QT player.

SOC

SOC player.

WorkingHoursStatus

Player working schedule status.

Values

IN

The player is currently in its working schedule.

OUT

The player is currently out of its working schedule.

NO_SCHEDULE_CONFIGURED

The player does not have working schedule configured.

PlayerLoopType

How the player will play this content.

Values

PRIMARY

Content in the primary loop is what the player plays on a schedule.

FALLBACK

Fallback loop content is only played when no content from primary can be played.

WELCOME

Played only once immediately after the player application starts.

DYNAMIC

Content in this loop is played when something is triggered by the player.

SECONDARY

Plays this content only on the secondary screen

AUDIO

Content in the audio loop is played only the audio from a Campaign audio timeline

AUTOMATION

Content in the automation loop is the Campaign automation modules.

LocationSource

The source of the location.

Values

GPS

The location was provided by the player GPS.

NetworkStatus

The status of a network interface of the player.

Values

DISABLED

This network interface is disabled in this player.

ENABLED

This network interface is enabled in this player.

ACTIVE

This network is enabled and is the primary network in this player.

PlayContentAction

How the player should play an on-demand content.

Values

PLAY
QUEUE
PLAY_QUEUE
PLAY_FOREVER

PlaybackLoopReason

Show only content that has been played for a specific reason.

Values

PRIMARY

Content in the primary loop is what the player plays on a schedule.

FALLBACK

Fallback loop content is only played when no content from primary can be played.

DYNAMIC

The content is played dynamically.

ON_DEMAND

On Demand loop content is only played when the play button is pressed.

API

The content is played when an interactivity by local API occurs.

GEOFENCE

The content is played when crossing the geofence defined.

ATTRIBUTE

The content is played when due to an attribute change.

KEY

The content is played when an interactivity by key occurs.

TIME

The content is played at the specified time.

TOUCH

The content is played when an interactivity by click or touch occurs.

TIMEOUT

The content is played when another content is timeout.

CSVColumns

Columns that will be reported in the CSV file.

Values

DATE_TIME
PLAYER_NAME
PLAYER_ID
PLAYER_TAGS
CONTENT_NAME
CONTENT_ID
CONTENT_TAGS
CONTENT_TYPE
DURATION
PLAYBACK_REASON
PARTIAL_PLAYBACK
TOUCH
LATITUDE
LONGITUDE
EVENT_ID
RECEIVED_AT

TagsOperator

Operator to filter tags

Values

AND

Filter has all tags.

OR

Filter has any tags.

ReportAggregation

How each report counts the exhibitions of playback content.

Values

PERIOD

Reports of this kind count the exhibitions of each campaign or media during the entire report period.

DAILY

Reports of this kind count the daily exhibitions of each campaign campaign or media for each individual day in the report period.

PLAYER

Reports of this kind count the exhibitions of each campaign or media for each individual player during the report period.

PLAYER_DAILY

Reports of this kind count the daily exhibitions of each campaign or media for each individual player and for each individual day during the report period.

INDIVIDUAL

Reports of this kind show the date and time of individual exhibitions of each campaign or media. It can result in a very large amount of data.

ReportLogoPosition

How the logo is aligned on the report.

Values

FULL_WIDTH
LEFT
RIGHT

ReportCompression

Save the report inside a Zip file.

Values

ALWAYS
NEVER
WHEN_NECESSARY

ReportContentType

What kind of content is being reported.

Values

CAMPAIGN

Reports with this type of content will count campaign exhibitions.

MEDIA

Reports with this type of content will count individual media exhibitions, regardless of the campaign it was in.

CONTENT

Content reports can count exhibitions of any kind of content playable on a player.

ReportFormat

The report file format.
All reports are exported inside a ZIP file with a single entry. That entry will be in one of the formats below.

Values

HTML

Report is in HTML. For displaying in a web browser.

CSV

Report is in CSV. Easily parseable by a script.

PDF

Report is in PDF. Might generate a very large file.
Not available for INDIVIDUAL reports.

EXCEL

Report is in XLSX. Easy to manipulate using Excel or compatible apps.
Not available for INDIVIDUAL reports.

JSON

Report is in JSON.
Only available for INDIVIDUAL aggregation of the CONTENT reports.

ReportPeriodType

Recurring report period, used to determine how many days, weeks or months are in the report.

Values

DAY

The amount is in days.

WEEK

The amount is in weeks.

MONTH

The amount is in months.

ReportPeriodicity

Report periodicity, used to discern between single and recurring reports.

Values

SINGLE

A single report. Runs at the moment it is created.

RECURRING

A recurring report, that will run multiple times.

UserRoleType

The user roles inside organization.

Values

OWNER
ADMIN
USER

ContentPerms

The permissions a user has on a content.

Values

USE

Allows users to use campaigns, playlists, apps and files from this folder on their campaigns and playlists.

INSPECT

Allows users to download files, view the contents of campaigns and playlists.

MODIFY

Allows users to create new folders, upload files and duplicate existing content. Users will be able to modify existing campaigns, playlists and apps.

DELETE

When given to a folder this permission allows users to remove files inside the folder, but they will not be able to remove the folder itself. When given to a campaign or playlist this permission allows the user to remove the campaign or playlist itself.

APPROVAL

Allow restricted users to approve content changes.

PlayerPerms

The permissions a user has on a player.

Values

PUBLISH

Allows users to publish and un-publish campaigns to a specific player, provided they also have publish permission on the campaigns themselves.

INSPECT

Allows users to view all information about a specific player, including all content published to it.

SETTINGS

Allows users to view all events, change settings, reboot and update the player.

REMOVE

Allows users to remove a specific player.

PlayerGroupPerms

The permissions a user has on a player group.

Values

PUBLISH

Allows users to publish and un-publish campaigns to a specific player group, provided they also have publish permission on the campaigns themselves.

INSPECT

Allows users to view all information about a specific player group, including all content published to it.

EDIT

Allows users to add and remove players from this player group, as long as the user has publish or change permission on the player itself.

REMOVE

Allows users to remove a specific player group.

UserPerms

Define the permissions a user can have. Multiple permissions can be assigned to a user.

Values

CREATE_PLAYER

Allow user to add players

CREATE_PLAYER_GROUP

Allow user to create player groups

VIEW_DASHBOARD

Allow user to view the dashboard

UPLOAD_FILE

Allow user to upload files

CREATE_COMPOSITION

Allow user to create compositions

CREATE_APP

Allow user to create apps

CREATE_PLAYLIST

Allow user to create playlists

CREATE_AUDIO_PLAYLIST

Allow user to create audio playlists

CREATE_CAMPAIGN

Allow user to create campaigns

PREVIEW_CAMPAIGN

Allow user to preview campaigns they have edit access

CREATE_CUSTOM_LAYOUT

Allow user to create custom layouts

CREATE_DATA_FEED

Allow user to create data feeds

VIEW_HEALTH_CHECK

Allow user to view health check

CREATE_GEO_REGION

Allow user to create geographic regions

CREATE_REPORT

Allow user to create reports

CONNECT_INTEGRATION_ACCOUNT

Allow user to connect integration accounts (Facebook, Instagram...)

CHANGE_USER

Allow administrator to create and modify restricted users.

CHANGE_PAYMENT

Allow administrator to view and change plans and payment.

CHANGE_API_TOKEN

Allow administrator to view and change API access tokens.

UserGroupPerms

Define the permissions a user group can have. Multiple permissions can be assigned to a user group.

Values

CREATE_PLAYER

Allow user to add players

CREATE_PLAYER_GROUP

Allow user to create player groups

VIEW_DASHBOARD

Allow user to view the dashboard

UPLOAD_FILE

Allow user to upload files

CREATE_COMPOSITION

Allow user to create compositions

CREATE_APP

Allow user to create apps

CREATE_PLAYLIST

Allow user to create playlists

CREATE_AUDIO_PLAYLIST

Allow user to create audio playlists

CREATE_CAMPAIGN

Allow user to create campaigns

PREVIEW_CAMPAIGN

Allow user to preview campaigns they have edit access

CREATE_CUSTOM_LAYOUT

Allow user to create custom layouts

CREATE_DATA_FEED

Allow user to create data feeds

VIEW_HEALTH_CHECK

Allow user to view health check

CREATE_GEO_REGION

Allow user to create geographic regions

CREATE_REPORT

Allow user to create reports

CONNECT_INTEGRATION_ACCOUNT

Allow user to connect integration accounts (Facebook, Instagram...)

DataFeedColumnKinds

Values

TEXT

Text column kind. E.g. 'Hello World'.

URL

URL column kind. E.g. 'https://example.com'.

DATETIME

Date and Time column kind. Expected format is 'YYYY-MM-DDTHH:MM:SSZ'. E.g. '2024-04-28T14:30:00Z'.

DATE

Date column kind. Expected format is 'YYYY-MM-DD'. E.g. '2024-04-28'.

TIME

Time column kind. Expected format is 'HH:MM:SS'. E.g. '12:34:58'.

BOOLEAN

Boolean column kind. E.g. true or false.

NUMBER

Number column kind. E.g. 23.05.

INTEGER

Integer column kind. E.g. 23.

IMAGE

Image column kind.

VIDEO

Video column kind.

MEDIA

Image or Video column kind.

TEXTARRAY

List of texts column kind. E.g. ['Hello', 'World'].

DataFeedRowStatus

The status of the row. Only approved values can be used in apps and compositions.

Values

APPROVED

The row's value was approved for usage.

P_INSERT

The row has a value pending insertion, with no value approved. Rows in this status won't be displayed in apps or compositions until they are approved. Once approved rows in this status become "APPROVED".

P_UPDATE

The row has some value pending editing, with a different value approved. Only the approved value will be displayed in apps and compositions until the pending edit is approved. Once approved rows in this status become "APPROVED".

P_DELETE

The row is pending to be deleted. The approved value will be displayed in apps and compositions until the deletion is approved. Rows approved in this status are deleted.


Scalars

Date

A date string, such as 2007-12-03, compliant with the full-date format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.

Time

A time string at UTC, such as 10:15:30, compliant with the full-time format outlined in section 5.6 of the RFC 3339profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.

DateTime

A date-time string at UTC, such as 2007-12-03T10:15:30Z, compliant with the date-time format outlined in section 5.6 of the RFC 3339 profile of the ISO 8601 standard for representation of dates and times using the Gregorian calendar.

DateTimeWithOffset

A date-time string with an offset from UTC, such as 2007-12-03T10:15:30+01:00 or 2007-12-03T10:15:30Z

JSON

The JSON scalar type represents JSON values as specified by ECMA-404.

ID

The ID scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as "4") or integer (such as 4) input value will be accepted as an ID.

Int

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Boolean

The Boolean scalar type represents true or false.

String

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Float

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Overview