Skip to main content

Wallboard API - Data Sources (2.0)

API Support: [email protected]

Data source management endpoints for the Wallboard digital signage platform.

Overview

Data sources provide dynamic data for content widgets. They can pull data from external APIs, databases, spreadsheets, calendars, and other integrations.

Key Concepts

Concept Description
Data Source A connection to external or internal data
Source Type How data is obtained (External URL, Internal, System)
Structure Type Data format (Table, Key-Value, Feed, List, Custom)
Refresh Mode How data updates (Poll at intervals, Callback on change)
Global Data Source Shared across all customers (admin-created)

Source Types

Type Description
EXTERNAL Data from external URL (REST API, RSS, etc.)
INTERNAL Manually entered or uploaded data
SYSTEM System-generated data (files, devices, screenshots, AI, calendar merge)

Structure Types

Type Description
TABLE Tabular data with rows and columns
KEY_VALUE Simple key-value pairs
FEED RSS/Atom feed format
LIST Simple list of items
CUSTOM Free-form JSON structure
WAY_FINDING Wayfinding/directory data

Cloud Integrations

  • Google Sheets: Pull data from spreadsheets
  • Google Calendar: Events and schedules
  • Google Drive: Files from folders
  • Microsoft Excel: Online spreadsheets (WorkBook V1 and V2)
  • Microsoft Calendar: Outlook events
  • Microsoft SharePoint: Lists, document libraries, and news
  • JDBC: Direct database queries
  • Weather: Weather data integration
  • Facebook/Instagram: Social media feeds
  • Toast POS: Restaurant point-of-sale integration

Type Configuration Reference

When creating data sources, the type field determines which additional fields are required.

External Types (sourceType=EXTERNAL)

type Required Fields Description
JSON remoteUrl Generic JSON API
XML remoteUrl XML API → JSON
RSS remoteUrl RSS/Atom feeds
ICAL remoteUrl, dateFormat, timeFormat iCalendar
GOOGLESHEET_API credentialId, spreadSheetId, sheetId, driveFolderId Google Sheets
CALENDAR calendarId, credentialId, credentialType Calendars
JDBC remoteUrl, jdbcQuery Database
SHAREPOINT_LISTS credentialId, siteId, listId SharePoint lists
MICROSOFT_WORKBOOK credentialId, workBookId Excel v1
MICROSOFT_WORKBOOK_V2 credentialId Excel v2
WEATHER weatherParameters Weather API
TOAST toastParameters Toast POS
CAP capParameters Emergency alerts (CAP)
SCREENSHOT screenshotParameters Web screenshots
CUSTOM_INTEGRATION functionIdentifier, dynamicParameters Custom plugins
WEBSITE_CONTENT webScraperParameters Web scraping
USER_ACTIVE_DIRECTORY userActiveDirectoryParameters Azure AD
FACEBOOK_PAGE_FEED facebookPageFeedParameters Facebook
INSTAGRAM_PAGE_FEED instagramPageFeedParameters Instagram
SHAREPOINT_NEWS sharepointNewsParameters SharePoint news
FILE_FROM_URL fileFromUrlParameters File download

System Types (sourceType=SYSTEM)

systemDatasourceType Required Fields Description
FILES quickFilterId File metadata via Quick Filter
DEVICES quickFilterId Device info via Quick Filter
SCREENSHOT screenshotParameters System screenshots
AI_DATASOURCE aiParameters AI-powered
CALENDAR_MERGE calendarMergeParameters Merged calendars

API Key Authentication

Data source endpoints also support API Key authentication for simpler M2M integrations. API keys are created via the webhook API key management endpoints.

Available Scopes:

Scope Description
DATASOURCE_DATA_READ Can read data source data
INTERNAL_DATASOURCE_WRITE Can write to internal data sources

Usage:

GET /api/datasource/{id}/data
Authorization: Bearer <api-key>

API keys are HMAC-signed JWTs (HS256/HS384/HS512). See the Webhooks documentation for API key management.

Internal Datasource Data Management

Internal datasources (sourceType: INTERNAL) can be read and updated via dedicated data endpoints. This is commonly used by AI assistants and M2M integrations to manage dynamic display data.

  • Read data: GET /api/datasource/{id}/data?parseData=true — returns data as parsed JSON object
  • Update data: PUT /api/datasource/{id}/data — accepts JSON object directly in the data field
  • The data field in PUT accepts both a JSON object and a stringified JSON string (backward compatible)
  • Only INTERNAL datasources can be updated — external and system types are read-only

Filtering

Use WBQL in the search parameter. Key fields:

Filter Type Field Example
Team teamAssignments.team.id search=teamAssignments.team.id=team1
Source type sourceType search=sourceType=EXTERNAL
Structure type structureType search=structureType=TABLE
Name name search=name:weather

See Getting Started for full WBQL syntax.

datasource

Data source management

List data sources (V2)

Retrieve a paginated list of data sources with flexible field selection.

Minimum role: VIEWER

Authorizations:
bearer
query Parameters
customerId
integer

Customer/tenant ID for multi-tenant filtering.

  • Required for ADMIN users to select tenant context
  • Non-admin users can omit (defaults to their tenant)
  • Set to -1 to query all tenants (ADMIN only)
page
integer >= 0
Default: 0

Page index (0-based)

size
integer [ 1 .. 1000 ]
Default: 20

Number of elements per page (max 1000)

sort
string
Example: sort=name,asc

Sort expression. Format: field,direction

  • Directions: asc, desc
  • Multiple sorts: sort=name,asc&sort=lastActivity,desc
  • Nested fields: sort=content.name,asc
search
string

WBQL filter expression. Operators: : (contains), = (equals), , , ^ (starts with), >, , <, , (in set). Logic: , (AND), | (OR). Special: NULL, !NULL. Example: name:lobby,deviceStatus=ONLINE

select
string

Field projection. * = all primitives, field,field = specific, relation(fields) = nested. Example: select=*,customer(id,name)

includeAdHocDatasources
boolean
Default: false

Include ad-hoc (temporary) data sources in results

Responses

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "size": 0,
  • "content": [
    ]
}

List global data sources (V2)

Retrieve global data sources shared across all customers. Global data sources are created by administrators.

Minimum role: VIEWER

Authorizations:
bearer
query Parameters
customerId
integer

Customer/tenant ID for multi-tenant filtering.

  • Required for ADMIN users to select tenant context
  • Non-admin users can omit (defaults to their tenant)
  • Set to -1 to query all tenants (ADMIN only)
page
integer >= 0
Default: 0

Page index (0-based)

size
integer [ 1 .. 1000 ]
Default: 20

Number of elements per page (max 1000)

sort
string
Example: sort=name,asc

Sort expression. Format: field,direction

  • Directions: asc, desc
  • Multiple sorts: sort=name,asc&sort=lastActivity,desc
  • Nested fields: sort=content.name,asc
search
string

WBQL filter expression. Operators: : (contains), = (equals), , , ^ (starts with), >, , <, , (in set). Logic: , (AND), | (OR). Special: NULL, !NULL. Example: name:lobby,deviceStatus=ONLINE

select
string

Field projection. * = all primitives, field,field = specific, relation(fields) = nested. Example: select=*,customer(id,name)

includeAdHocDatasources
boolean
Default: false

Include ad-hoc (temporary) data sources in results

Responses

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "size": 0,
  • "content": [
    ]
}

Create ad-hoc data source

Create a temporary ad-hoc data source. Ad-hoc data sources have a shorter lifespan (15 minutes) and are typically used for temporary data needs.

Minimum role: EDITOR

Authorizations:
bearer
query Parameters
customerId
integer

Customer/tenant ID for multi-tenant filtering.

  • Required for ADMIN users to select tenant context
  • Non-admin users can omit (defaults to their tenant)
  • Set to -1 to query all tenants (ADMIN only)
Request Body schema: application/json
required
name
required
string
comment
string
global
boolean
Default: false
sourceType
string (DatasourceType)
Enum: "EXTERNAL" "INTERNAL" "SYSTEM"

How the data source obtains data

structureType
string (DatasourceStructureType)
Enum: "CUSTOM" "TABLE" "KEY_VALUE" "FEED" "LIST" "WAY_FINDING"

Data structure format

type
string (IncomingDataFormatType)
Enum: "XML" "JSON" "ICAL" "GOOGLESHEET" "GOOGLESHEET_API" "NODEJS" "CALENDAR" "CALENDAR_LEGACY" "RSS" "JDBC" "DATABASE" "SHAREPOINT_LISTS" "CAP" "MICROSOFT_WORKBOOK" "FILE_FROM_URL" "TOAST" "SCREENSHOT" "CUSTOM_INTEGRATION" "USER_ACTIVE_DIRECTORY" "WEATHER" "MICROSOFT_WORKBOOK_V2" "WEBSITE_CONTENT" "FACEBOOK_USER_FEED" "FACEBOOK_PAGE_FEED" "INSTAGRAM_PAGE_FEED" "SHAREPOINT_NEWS" "USER_ACTIVE_DIRECTORY_V2" "POWER_BI_EXPORT"

Format of incoming data

refreshMode
string (RefreshMode)
Enum: "POLL" "CALLBACK"

How data source refreshes

remoteUrl
string

URL for EXTERNAL data sources

refreshFrequency
integer

Refresh interval in seconds

object (CronExpressionParameters)

Cron-based scheduling parameters (JSON)

data
string

Initial data for INTERNAL data sources

cacheResources
boolean
Default: false
removeUrlIfCacheFailed
boolean
Default: false
rotateCacheOnEveryUpdate
boolean
Default: false
exchangeInternalResourceReferences
boolean
Default: false
editableByDisplay
boolean
Default: false
ignoreErrorCounter
boolean
Default: false
deactivated
boolean
Default: false
ignoreAutoDeactivate
boolean
Default: false
respectCacheControl
boolean
Default: true
dateFormat
string
timeFormat
string
timeZone
string
generateCalendarForDays
integer

Days to generate for calendar data

firstDayOfWeek
string (FirstDayOfWeek)
Enum: "Monday" "Sunday" "Saturday"

First day of week for calendar data

credentialId
string
credentialType
string (AuthenticatedCredentialType)
Enum: "GOOGLE" "O365" "CUSTOM"

Type of credential for authenticated data sources

spreadSheetId
string
sheetId
string
sheetRange
string
driveFolderId
string
spreadSheetLegacyFormat
boolean
Default: false
firstRowIsHeader
boolean
Default: true
microsoftCalendarDatasourceType
string (MicrosoftCalendarDatasourceType)
Enum: "USER_CALENDAR" "USER_PRINCIPAL_CALENDAR" "GROUP_CALENDAR"

Microsoft calendar source type

calendarId
string
microsoftUserPrincipalIdOrName
string
sharepointGroupId
string
siteId
string
listId
string
driveId
string
workBookId
string
jdbcUserName
string
jdbcPassword
string
jdbcQuery
string
standardTableFormat
boolean
Default: false
keepLastXDays
integer
keepLastXItem
integer
maxElementCount
integer
quickFilterId
string
systemDatasourceType
string (SystemDatasourceType)
Enum: "FILES" "DEVICES" "SCREENSHOT" "AI_DATASOURCE" "CALENDAR_MERGE"

Type of system-generated data source

object (DatasourceHttpRequestSettings)

HTTP request configuration for external data sources (JSON)

object (AIParameters)

AI-powered data source parameters

object (CalendarMergeParameters)

Calendar merge parameters for combining multiple calendars

object (WebSiteContentParameters)

Website content scraping parameters

object (WeatherParameters)

Weather API parameters

object (CapParameters)

Common Alerting Protocol (CAP) parameters

object (ToastParameters)

Toast POS integration parameters

object (ScreenshotParameters)

Screenshot capture parameters

object (FileFromUrlParameters)

File from URL download parameters

object (UserActiveDirectoryParameters)

Azure Active Directory user parameters

object (FacebookPageFeedParameters)

Facebook page feed parameters

object (InstagramPageFeedParameters)

Instagram page feed parameters

object (SharepointNewsParameters)

SharePoint news parameters

object (SharepointHeaders)

SharePoint list headers configuration

object (MicrosoftWorkBookParameters)

Microsoft Excel workbook V1 parameters

object (MicrosoftWorkbookV2Parameters)

Microsoft Excel workbook V2 parameters (multi-sheet support)

object (PowerBiExportParameters)

Power BI report export parameters

object (DynamicParameters)

Dynamic parameters for custom integrations

object (FunctionIdentifier)

Custom integration function identifier

object (DatasourceTransformation)

Data transformation pipeline

resourceDetails
object

Resource details (JSON, can be large)

object (ConfigMetadata)

Configuration metadata for the data source (JSON)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "comment": "string",
  • "global": false,
  • "sourceType": "EXTERNAL",
  • "structureType": "CUSTOM",
  • "type": "XML",
  • "refreshMode": "POLL",
  • "remoteUrl": "string",
  • "refreshFrequency": 0,
  • "cronExpressionParameters": {
    },
  • "data": "string",
  • "cacheResources": false,
  • "removeUrlIfCacheFailed": false,
  • "rotateCacheOnEveryUpdate": false,
  • "exchangeInternalResourceReferences": false,
  • "editableByDisplay": false,
  • "ignoreErrorCounter": false,
  • "deactivated": false,
  • "ignoreAutoDeactivate": false,
  • "respectCacheControl": true,
  • "dateFormat": "string",
  • "timeFormat": "string",
  • "timeZone": "string",
  • "generateCalendarForDays": 0,
  • "firstDayOfWeek": "Monday",
  • "credentialId": "string",
  • "credentialType": "GOOGLE",
  • "spreadSheetId": "string",
  • "sheetId": "string",
  • "sheetRange": "string",
  • "driveFolderId": "string",
  • "spreadSheetLegacyFormat": false,
  • "firstRowIsHeader": true,
  • "microsoftCalendarDatasourceType": "USER_CALENDAR",
  • "calendarId": "string",
  • "microsoftUserPrincipalIdOrName": "string",
  • "sharepointGroupId": "string",
  • "siteId": "string",
  • "listId": "string",
  • "driveId": "string",
  • "workBookId": "string",
  • "jdbcUserName": "string",
  • "jdbcPassword": "string",
  • "jdbcQuery": "string",
  • "standardTableFormat": false,
  • "keepLastXDays": 0,
  • "keepLastXItem": 0,
  • "maxElementCount": 0,
  • "quickFilterId": "string",
  • "systemDatasourceType": "FILES",
  • "requestSettings": {
    },
  • "aiParameters": {
    },
  • "calendarMergeParameters": {
    },
  • "webScraperParameters": {
    },
  • "weatherParameters": {
    },
  • "capParameters": {
    },
  • "toastParameters": {
    },
  • "screenshotParameters": {
    },
  • "fileFromUrlParameters": {
    },
  • "userActiveDirectoryParameters": {
    },
  • "facebookPageFeedParameters": {
    },
  • "instagramPageFeedParameters": {
    },
  • "sharepointNewsParameters": {
    },
  • "sharepointHeaders": {
    },
  • "microsoftWorkBookParameters": {
    },
  • "microsoftWorkbookV2Parameters": {
    },
  • "powerBiExportParameters": {
    },
  • "dynamicParameters": {
    },
  • "functionIdentifier": {
    },
  • "datasourceTransformation": {
    },
  • "resourceDetails": { },
  • "configMetadata": { }
}

Response samples

Content type
application/json
{
  • "id": "string"
}

List data sources

Retrieve a paginated list of data sources with usage statistics.

Minimum role: VIEWER

Authorizations:
bearer
query Parameters
customerId
integer

Customer/tenant ID for multi-tenant filtering.

  • Required for ADMIN users to select tenant context
  • Non-admin users can omit (defaults to their tenant)
  • Set to -1 to query all tenants (ADMIN only)
page
integer >= 0
Default: 0

Page index (0-based)

size
integer [ 1 .. 1000 ]
Default: 20

Number of elements per page (max 1000)

sort
string
Example: sort=name,asc

Sort expression. Format: field,direction

  • Directions: asc, desc
  • Multiple sorts: sort=name,asc&sort=lastActivity,desc
  • Nested fields: sort=content.name,asc
search
string

WBQL filter expression. Operators: : (contains), = (equals), , , ^ (starts with), >, , <, , (in set). Logic: , (AND), | (OR). Special: NULL, !NULL. Example: name:lobby,deviceStatus=ONLINE

includeAdHocDatasources
boolean
Default: false

Include ad-hoc (temporary) data sources in results

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "details": {
    }
}

Create data source

Create a new data source.

Minimum role: TECHNICIAN

Note: Creating global data sources requires ADMIN role and cannot specify a customerId.

Authorizations:
bearer
query Parameters
customerId
integer

Customer/tenant ID for multi-tenant filtering.

  • Required for ADMIN users to select tenant context
  • Non-admin users can omit (defaults to their tenant)
  • Set to -1 to query all tenants (ADMIN only)
teamIds
string
Example: teamIds=000c08d294df48efb1b0f5aa754d7ef9:true,00a22e86602c4a88914614aa9516a481:false

Team assignment filter. Format: {teamId}:{readOnly},{teamId}:{readOnly}

Request Body schema: application/json
required
name
required
string
comment
string
global
boolean
Default: false
sourceType
string (DatasourceType)
Enum: "EXTERNAL" "INTERNAL" "SYSTEM"

How the data source obtains data

structureType
string (DatasourceStructureType)
Enum: "CUSTOM" "TABLE" "KEY_VALUE" "FEED" "LIST" "WAY_FINDING"

Data structure format

type
string (IncomingDataFormatType)
Enum: "XML" "JSON" "ICAL" "GOOGLESHEET" "GOOGLESHEET_API" "NODEJS" "CALENDAR" "CALENDAR_LEGACY" "RSS" "JDBC" "DATABASE" "SHAREPOINT_LISTS" "CAP" "MICROSOFT_WORKBOOK" "FILE_FROM_URL" "TOAST" "SCREENSHOT" "CUSTOM_INTEGRATION" "USER_ACTIVE_DIRECTORY" "WEATHER" "MICROSOFT_WORKBOOK_V2" "WEBSITE_CONTENT" "FACEBOOK_USER_FEED" "FACEBOOK_PAGE_FEED" "INSTAGRAM_PAGE_FEED" "SHAREPOINT_NEWS" "USER_ACTIVE_DIRECTORY_V2" "POWER_BI_EXPORT"

Format of incoming data

refreshMode
string (RefreshMode)
Enum: "POLL" "CALLBACK"

How data source refreshes

remoteUrl
string

URL for EXTERNAL data sources

refreshFrequency
integer

Refresh interval in seconds

object (CronExpressionParameters)

Cron-based scheduling parameters (JSON)

data
string

Initial data for INTERNAL data sources

cacheResources
boolean
Default: false
removeUrlIfCacheFailed
boolean
Default: false
rotateCacheOnEveryUpdate
boolean
Default: false
exchangeInternalResourceReferences
boolean
Default: false
editableByDisplay
boolean
Default: false
ignoreErrorCounter
boolean
Default: false
deactivated
boolean
Default: false
ignoreAutoDeactivate
boolean
Default: false
respectCacheControl
boolean
Default: true
dateFormat
string
timeFormat
string
timeZone
string
generateCalendarForDays
integer

Days to generate for calendar data

firstDayOfWeek
string (FirstDayOfWeek)
Enum: "Monday" "Sunday" "Saturday"

First day of week for calendar data

credentialId
string
credentialType
string (AuthenticatedCredentialType)
Enum: "GOOGLE" "O365" "CUSTOM"

Type of credential for authenticated data sources

spreadSheetId
string
sheetId
string
sheetRange
string
driveFolderId
string
spreadSheetLegacyFormat
boolean
Default: false
firstRowIsHeader
boolean
Default: true
microsoftCalendarDatasourceType
string (MicrosoftCalendarDatasourceType)
Enum: "USER_CALENDAR" "USER_PRINCIPAL_CALENDAR" "GROUP_CALENDAR"

Microsoft calendar source type

calendarId
string
microsoftUserPrincipalIdOrName
string
sharepointGroupId
string
siteId
string
listId
string
driveId
string
workBookId
string
jdbcUserName
string
jdbcPassword
string
jdbcQuery
string
standardTableFormat
boolean
Default: false
keepLastXDays
integer
keepLastXItem
integer
maxElementCount
integer
quickFilterId
string
systemDatasourceType
string (SystemDatasourceType)
Enum: "FILES" "DEVICES" "SCREENSHOT" "AI_DATASOURCE" "CALENDAR_MERGE"

Type of system-generated data source

object (DatasourceHttpRequestSettings)

HTTP request configuration for external data sources (JSON)

object (AIParameters)

AI-powered data source parameters

object (CalendarMergeParameters)

Calendar merge parameters for combining multiple calendars

object (WebSiteContentParameters)

Website content scraping parameters

object (WeatherParameters)

Weather API parameters

object (CapParameters)

Common Alerting Protocol (CAP) parameters

object (ToastParameters)

Toast POS integration parameters

object (ScreenshotParameters)

Screenshot capture parameters

object (FileFromUrlParameters)

File from URL download parameters

object (UserActiveDirectoryParameters)

Azure Active Directory user parameters

object (FacebookPageFeedParameters)

Facebook page feed parameters

object (InstagramPageFeedParameters)

Instagram page feed parameters

object (SharepointNewsParameters)

SharePoint news parameters

object (SharepointHeaders)

SharePoint list headers configuration

object (MicrosoftWorkBookParameters)

Microsoft Excel workbook V1 parameters

object (MicrosoftWorkbookV2Parameters)

Microsoft Excel workbook V2 parameters (multi-sheet support)

object (PowerBiExportParameters)

Power BI report export parameters

object (DynamicParameters)

Dynamic parameters for custom integrations

object (FunctionIdentifier)

Custom integration function identifier

object (DatasourceTransformation)

Data transformation pipeline

resourceDetails
object

Resource details (JSON, can be large)

object (ConfigMetadata)

Configuration metadata for the data source (JSON)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "comment": "string",
  • "global": false,
  • "sourceType": "EXTERNAL",
  • "structureType": "CUSTOM",
  • "type": "XML",
  • "refreshMode": "POLL",
  • "remoteUrl": "string",
  • "refreshFrequency": 0,
  • "cronExpressionParameters": {
    },
  • "data": "string",
  • "cacheResources": false,
  • "removeUrlIfCacheFailed": false,
  • "rotateCacheOnEveryUpdate": false,
  • "exchangeInternalResourceReferences": false,
  • "editableByDisplay": false,
  • "ignoreErrorCounter": false,
  • "deactivated": false,
  • "ignoreAutoDeactivate": false,
  • "respectCacheControl": true,
  • "dateFormat": "string",
  • "timeFormat": "string",
  • "timeZone": "string",
  • "generateCalendarForDays": 0,
  • "firstDayOfWeek": "Monday",
  • "credentialId": "string",
  • "credentialType": "GOOGLE",
  • "spreadSheetId": "string",
  • "sheetId": "string",
  • "sheetRange": "string",
  • "driveFolderId": "string",
  • "spreadSheetLegacyFormat": false,
  • "firstRowIsHeader": true,
  • "microsoftCalendarDatasourceType": "USER_CALENDAR",
  • "calendarId": "string",
  • "microsoftUserPrincipalIdOrName": "string",
  • "sharepointGroupId": "string",
  • "siteId": "string",
  • "listId": "string",
  • "driveId": "string",
  • "workBookId": "string",
  • "jdbcUserName": "string",
  • "jdbcPassword": "string",
  • "jdbcQuery": "string",
  • "standardTableFormat": false,
  • "keepLastXDays": 0,
  • "keepLastXItem": 0,
  • "maxElementCount": 0,
  • "quickFilterId": "string",
  • "systemDatasourceType": "FILES",
  • "requestSettings": {
    },
  • "aiParameters": {
    },
  • "calendarMergeParameters": {
    },
  • "webScraperParameters": {
    },
  • "weatherParameters": {
    },
  • "capParameters": {
    },
  • "toastParameters": {
    },
  • "screenshotParameters": {
    },
  • "fileFromUrlParameters": {
    },
  • "userActiveDirectoryParameters": {
    },
  • "facebookPageFeedParameters": {
    },
  • "instagramPageFeedParameters": {
    },
  • "sharepointNewsParameters": {
    },
  • "sharepointHeaders": {
    },
  • "microsoftWorkBookParameters": {
    },
  • "microsoftWorkbookV2Parameters": {
    },
  • "powerBiExportParameters": {
    },
  • "dynamicParameters": {
    },
  • "functionIdentifier": {
    },
  • "datasourceTransformation": {
    },
  • "resourceDetails": { },
  • "configMetadata": { }
}

Response samples

Content type
application/json
{
  • "id": "string",
  • "name": "string",
  • "comment": "string",
  • "customerId": 0,
  • "global": true,
  • "sourceType": "EXTERNAL",
  • "structureType": "CUSTOM",
  • "refreshMode": "POLL",
  • "type": "XML",
  • "remoteUrl": "string",
  • "refreshFrequency": 0,
  • "cronExpressionParameters": {
    },
  • "data": "string",
  • "hash": "string",
  • "cacheResources": true,
  • "removeUrlIfCacheFailed": true,
  • "rotateCacheOnEveryUpdate": true,
  • "exchangeInternalResourceReferences": true,
  • "downloadResourceOnEveryUpdate": true,
  • "deactivated": true,
  • "autoDeactivated": true,
  • "ignoreAutoDeactivate": true,
  • "editableByDisplay": true,
  • "creationType": "NORMAL",
  • "credentialType": "GOOGLE",
  • "credentialId": "string",
  • "dateFormat": "string",
  • "timeFormat": "string",
  • "timeZone": "string",
  • "generateCalendarForDays": 0,
  • "firstDayOfWeek": "Monday",
  • "microsoftCalendarDatasourceType": "USER_CALENDAR",
  • "calendarId": "string",
  • "microsoftUserPrincipalIdOrName": "string",
  • "sharepointGroupId": "string",
  • "flowId": "string",
  • "siteId": "string",
  • "listId": "string",
  • "driveId": "string",
  • "workBookId": "string",
  • "microsoftWorkBookParameters": {
    },
  • "microsoftWorkbookV2Parameters": {
    },
  • "spreadSheetId": "string",
  • "sheetId": "string",
  • "sheetRange": "string",
  • "driveFolderId": "string",
  • "spreadSheetLegacyFormat": true,
  • "firstRowIsHeader": true,
  • "jdbcUserName": "string",
  • "jdbcPassword": "string",
  • "jdbcQuery": "string",
  • "standardTableFormat": true,
  • "keepLastXDays": 0,
  • "keepLastXItem": 0,
  • "maxElementCount": 0,
  • "quickFilterId": "string",
  • "systemDatasourceType": "FILES",
  • "requestSettings": {
    },
  • "respectCacheControl": true,
  • "aiParameters": {
    },
  • "calendarMergeParameters": {
    },
  • "webScraperParameters": {
    },
  • "weatherParameters": {
    },
  • "capParameters": {
    },
  • "toastParameters": {
    },
  • "toastRestaurantGuid": "string",
  • "screenshotParameters": {
    },
  • "fileFromUrlParameters": {
    },
  • "userActiveDirectoryParameters": {
    },
  • "facebookPageFeedParameters": {
    },
  • "instagramPageFeedParameters": {
    },
  • "sharepointNewsParameters": {
    },
  • "sharepointHeaders": {
    },
  • "powerBiExportParameters": {
    },
  • "dynamicParameters": {
    },
  • "functionIdentifierType": "string",
  • "functionIdentifierVersion": "string",
  • "datasourceTransformation": {
    },
  • "lastAccessed": 0,
  • "lastError": 0,
  • "lastModified": 0,
  • "lastUpdated": 0,
  • "lastChanged": 0,
  • "createdAt": 0,
  • "nextRefreshTime": 0,
  • "lastActiveSubscription": 0,
  • "errorCounter": 0,
  • "refreshCounter": 0,
  • "ignoreErrorCounter": true,
  • "customer": {
    },
  • "readOnly": true,
  • "resourceDetails": { },
  • "usedStorage": 0,
  • "configMetadata": { }
}

Update data source

Update an existing data source.

Minimum role: TECHNICIAN

Authorizations:
bearer
path Parameters
datasourceId
required
string

Data source ID

Request Body schema: application/json
required
name
string
comment
string
refreshFrequency
integer
object (CronExpressionParameters)

Cron-based scheduling parameters (JSON)

refreshMode
string (RefreshMode)
Enum: "POLL" "CALLBACK"

How data source refreshes

remoteUrl
string
cacheResources
boolean
removeUrlIfCacheFailed
boolean
rotateCacheOnEveryUpdate
boolean
exchangeInternalResourceReferences
boolean
editableByDisplay
boolean
deactivated
boolean
ignoreErrorCounter
boolean
ignoreAutoDeactivate
boolean
respectCacheControl
boolean
dateFormat
string
timeFormat
string
timeZone
string
generateCalendarForDays
integer
firstDayOfWeek
string (FirstDayOfWeek)
Enum: "Monday" "Sunday" "Saturday"

First day of week for calendar data

credentialId
string
credentialType
string (AuthenticatedCredentialType)
Enum: "GOOGLE" "O365" "CUSTOM"

Type of credential for authenticated data sources

calendarId
string
microsoftUserPrincipalIdOrName
string
sharepointGroupId
string
flowId
string
jdbcUserName
string
resetJdbcUserName
boolean

Set to true to clear the JDBC username

jdbcPassword
string
resetJdbcPassword
boolean

Set to true to clear the JDBC password

jdbcQuery
string
standardTableFormat
boolean
keepLastXDays
integer
keepLastXItem
integer
maxElementCount
integer
quickFilterId
string
spreadSheetLegacyFormat
boolean
spreadSheetId
string
sheetId
string
sheetRange
string
driveFolderId
string
firstRowIsHeader
boolean
listId
string
siteId
string
workBookId
string
driveId
string
object (DatasourceHttpRequestSettings)

HTTP request configuration for external data sources (JSON)

object (AIParameters)

AI-powered data source parameters

object (CalendarMergeParameters)

Calendar merge parameters for combining multiple calendars

object (WebSiteContentParameters)

Website content scraping parameters

object (WeatherParameters)

Weather API parameters

object (CapParameters)

Common Alerting Protocol (CAP) parameters

object (ToastParameters)

Toast POS integration parameters

object (ScreenshotParameters)

Screenshot capture parameters

object (FileFromUrlParameters)

File from URL download parameters

object (UserActiveDirectoryParameters)

Azure Active Directory user parameters

object (FacebookPageFeedParameters)

Facebook page feed parameters

object (InstagramPageFeedParameters)

Instagram page feed parameters

object (SharepointNewsParameters)

SharePoint news parameters

object (SharepointHeaders)

SharePoint list headers configuration

resetHeaders
boolean

Set to true to clear SharePoint headers

object (MicrosoftWorkBookParameters)

Microsoft Excel workbook V1 parameters

object (MicrosoftWorkbookV2Parameters)

Microsoft Excel workbook V2 parameters (multi-sheet support)

object (PowerBiExportParameters)

Power BI report export parameters

object (DynamicParameters)

Dynamic parameters for custom integrations

object (DatasourceTransformation)

Data transformation pipeline

object (ConfigMetadata)

Configuration metadata for the data source (JSON)

object

Customer to transfer the data source to

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "comment": "string",
  • "refreshFrequency": 0,
  • "cronExpressionParameters": {
    },
  • "refreshMode": "POLL",
  • "remoteUrl": "string",
  • "cacheResources": true,
  • "removeUrlIfCacheFailed": true,
  • "rotateCacheOnEveryUpdate": true,
  • "exchangeInternalResourceReferences": true,
  • "editableByDisplay": true,
  • "deactivated": true,
  • "ignoreErrorCounter": true,
  • "ignoreAutoDeactivate": true,
  • "respectCacheControl": true,
  • "dateFormat": "string",
  • "timeFormat": "string",
  • "timeZone": "string",
  • "generateCalendarForDays": 0,
  • "firstDayOfWeek": "Monday",
  • "credentialId": "string",
  • "credentialType": "GOOGLE",
  • "calendarId": "string",
  • "microsoftUserPrincipalIdOrName": "string",
  • "sharepointGroupId": "string",
  • "flowId": "string",
  • "jdbcUserName": "string",
  • "resetJdbcUserName": true,
  • "jdbcPassword": "string",
  • "resetJdbcPassword": true,
  • "jdbcQuery": "string",
  • "standardTableFormat": true,
  • "keepLastXDays": 0,
  • "keepLastXItem": 0,
  • "maxElementCount": 0,
  • "quickFilterId": "string",
  • "spreadSheetLegacyFormat": true,
  • "spreadSheetId": "string",
  • "sheetId": "string",
  • "sheetRange": "string",
  • "driveFolderId": "string",
  • "firstRowIsHeader": true,
  • "listId": "string",
  • "siteId": "string",
  • "workBookId": "string",
  • "driveId": "string",
  • "requestSettings": {
    },
  • "aiParameters": {
    },
  • "calendarMergeParameters": {
    },
  • "webScraperParameters": {
    },
  • "weatherParameters": {
    },
  • "capParameters": {
    },
  • "toastParameters": {
    },
  • "screenshotParameters": {
    },
  • "fileFromUrlParameters": {
    },
  • "userActiveDirectoryParameters": {
    },
  • "facebookPageFeedParameters": {
    },
  • "instagramPageFeedParameters": {
    },
  • "sharepointNewsParameters": {
    },
  • "sharepointHeaders": {
    },
  • "resetHeaders": true,
  • "microsoftWorkBookParameters": {
    },
  • "microsoftWorkbookV2Parameters": {
    },
  • "powerBiExportParameters": {
    },
  • "dynamicParameters": {
    },
  • "datasourceTransformation": {
    },
  • "configMetadata": { },
  • "customer": {
    }
}

Delete data source

Delete a data source.

Minimum role: TECHNICIAN

Authorizations:
bearer
path Parameters
datasourceId
required
string

Data source ID

Responses

Get data source data

Retrieve the current data content of a data source.

Use parseData=true to get the data field as a parsed JSON object instead of a stringified JSON string.

Authentication options:

  • OAuth 2.0 Bearer token (minimum role: VIEWER)
  • API Key with DATASOURCE_DATA_READ scope
Authorizations:
bearerwebhookApiKey
path Parameters
datasourceId
required
string

Data source ID (UUID)

query Parameters
parseData
boolean
Default: false

When true, returns the data field as a parsed JSON object instead of a string

Responses

Request samples

curl -X GET \
  'https://{server}/api/datasource/ds-uuid-123/data?parseData=true' \
  -H 'Authorization: Bearer <oauth-token>'

Response samples

Content type
application/json
{
  • "name": "string",
  • "data": null,
  • "configMetadata": { }
}

Update internal data source data

Update the data content of an INTERNAL data source. Only works for data sources with sourceType: INTERNAL.

The data field accepts both a JSON object (preferred) and a stringified JSON string (backward compatible).

Authentication options:

  • OAuth 2.0 Bearer token (minimum role: EDITOR)
  • API Key with INTERNAL_DATASOURCE_WRITE scope
Authorizations:
bearerwebhookApiKey
path Parameters
datasourceId
required
string

Data source ID (UUID)

Request Body schema: application/json
required
required
object or string

Data content. Accepts JSON object directly (preferred) or stringified JSON string.

One of
object

JSON data object (preferred)

Responses

Request samples

Content type
application/json
{
  • "data": {
    }
}

Response samples

Content type
application/json
{
  • "timestamp": 0,
  • "status": 0,
  • "error": "string",
  • "message": "string",
  • "path": "string",
  • "exception": "string",
  • "details": { },
  • "key": "string"
}

Trigger data source refresh

Force an immediate refresh of the data source data.

Minimum role: TECHNICIAN

Authorizations:
bearer
path Parameters
datasourceId
required
string

Data source ID

query Parameters
sync
boolean
Default: false

Wait for refresh to complete before returning

Responses

Clear data source cache

Clear the cached data and resources for a data source.

Minimum role: TECHNICIAN

Authorizations:
bearer
path Parameters
datasourceId
required
string

Data source ID

Responses

List global data sources

Retrieve global data sources shared across all customers. Global data sources are created by administrators.

Minimum role: VIEWER

Authorizations:
bearer
query Parameters
page
integer >= 0
Default: 0

Page index (0-based)

size
integer [ 1 .. 1000 ]
Default: 20

Number of elements per page (max 1000)

sort
string
Example: sort=name,asc

Sort expression. Format: field,direction

  • Directions: asc, desc
  • Multiple sorts: sort=name,asc&sort=lastActivity,desc
  • Nested fields: sort=content.name,asc
search
string

WBQL filter expression. Operators: : (contains), = (equals), , , ^ (starts with), >, , <, , (in set). Logic: , (AND), | (OR). Special: NULL, !NULL. Example: name:lobby,deviceStatus=ONLINE

includeAdHocDatasources
boolean
Default: false

Include ad-hoc (temporary) data sources in results

Responses

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "size": 0,
  • "content": [
    ]
}

Get data source usage details

Retrieve usage information showing which content uses each data source.

Minimum role: VIEWER

Authorizations:
bearer
query Parameters
customerId
integer

Customer/tenant ID for multi-tenant filtering.

  • Required for ADMIN users to select tenant context
  • Non-admin users can omit (defaults to their tenant)
  • Set to -1 to query all tenants (ADMIN only)
page
integer >= 0
Default: 0

Page index (0-based)

size
integer [ 1 .. 1000 ]
Default: 20

Number of elements per page (max 1000)

sort
string
Example: sort=name,asc

Sort expression. Format: field,direction

  • Directions: asc, desc
  • Multiple sorts: sort=name,asc&sort=lastActivity,desc
  • Nested fields: sort=content.name,asc
search
string

WBQL filter expression. Operators: : (contains), = (equals), , , ^ (starts with), >, , <, , (in set). Logic: , (AND), | (OR). Special: NULL, !NULL. Example: name:lobby,deviceStatus=ONLINE

Responses

Response samples

Content type
application/json
{
  • "first": true,
  • "last": true,
  • "number": 0,
  • "numberOfElements": 0,
  • "totalElements": 0,
  • "totalPages": 0,
  • "size": 0,
  • "content": [
    ]
}

Export data sources as CSV

Export data source list as CSV file.

Minimum role: VIEWER

Authorizations:
bearer
query Parameters
customerId
integer

Customer/tenant ID for multi-tenant filtering.

  • Required for ADMIN users to select tenant context
  • Non-admin users can omit (defaults to their tenant)
  • Set to -1 to query all tenants (ADMIN only)
search
string

WBQL filter expression. Operators: : (contains), = (equals), , , ^ (starts with), >, , <, , (in set). Logic: , (AND), | (OR). Special: NULL, !NULL. Example: name:lobby,deviceStatus=ONLINE

Responses

Update team assignments

Update team assignments for a data source.

Minimum role: OWNER

Authorizations:
bearer
query Parameters
customerId
integer

Customer/tenant ID for multi-tenant filtering.

  • Required for ADMIN users to select tenant context
  • Non-admin users can omit (defaults to their tenant)
  • Set to -1 to query all tenants (ADMIN only)
datasourceId
required
string

Data source ID

Request Body schema: application/json
required
Array of objects

Teams to assign the resource to

removeFromTeamIds
Array of strings

Team IDs to remove the resource from

Responses

Request samples

Content type
application/json
{
  • "assignToTeams": [
    ],
  • "removeFromTeamIds": [
    ]
}

Apply minimum refresh time

Update all data sources to use the minimum refresh time if their current refresh time is below the threshold.

Minimum role: ADMIN

Authorizations:
bearer

Responses

datasource display

Display-side data source operations for interactive displays

Set data from display

Set data source data from a display device. Used for interactive displays that can update data sources. Only works for INTERNAL data sources with editableByDisplay: true.

Authorizations:
bearer
path Parameters
datasourceId
required
string

Data source ID

Request Body schema: application/json
required
object

JSON data to set

Responses

Request samples

Content type
application/json
{ }

Merge data from display

Merge data into a data source from a display device. Preserves existing data while adding/updating specific keys.

Authorizations:
bearer
path Parameters
datasourceId
required
string

Data source ID

Request Body schema: application/json
required
object

JSON data to merge

Responses

Request samples

Content type
application/json
{ }

Delete key by selector

Delete a key from the data source using a JSON path selector.

Authorizations:
bearer
path Parameters
datasourceId
required
string

Data source ID

query Parameters
selector
required
string

JSON path selector for the key to delete

Responses

Increase numeric value

Increase a numeric value in the data source by 1. Optionally specify a maximum value to cap the increase.

Authorizations:
bearer
path Parameters
datasourceId
required
string

Data source ID

query Parameters
selector
required
string

JSON path selector for the numeric value

maximumValue
integer <int64>

Maximum allowed value (will not increase beyond this)

Responses

Decrease numeric value

Decrease a numeric value in the data source by 1. Optionally specify a minimum value to cap the decrease.

Authorizations:
bearer
path Parameters
datasourceId
required
string

Data source ID

query Parameters
selector
required
string

JSON path selector for the numeric value

minimumValue
integer <int64>

Minimum allowed value (will not decrease below this)

Responses

Insert element to array

Insert an element into an array in the data source. Can specify position, max elements, and rotation behavior.

Authorizations:
bearer
path Parameters
datasourceId
required
string

Data source ID

query Parameters
selector
required
string

JSON path selector for the array

index
integer <int64>

Index to insert at (appends if not specified)

maxElementCount
integer <int64>

Maximum number of elements to keep in array

rotateEnabled
boolean

Enable rotation when max elements reached

Request Body schema: application/json
required
object

Element to insert

Responses

Request samples

Content type
application/json
{ }

Remove element from array

Remove an element from an array in the data source by index.

Authorizations:
bearer
path Parameters
datasourceId
required
string

Data source ID

query Parameters
selector
required
string

JSON path selector for the array

index
integer <int64>

Index of element to remove (removes last if not specified)

Responses

Empty array

Remove all elements from an array in the data source.

Authorizations:
bearer
path Parameters
datasourceId
required
string

Data source ID

query Parameters
selector
required
string

JSON path selector for the array

Responses

Rotate array elements

Rotate elements in an array, optionally removing elements older than a specified threshold based on a date attribute.

Authorizations:
bearer
path Parameters
datasourceId
required
string

Data source ID

query Parameters
arraySelector
required
string

JSON path selector for the array

dateAttributeSelector
string

JSON path selector for date attribute within array elements

keepThresholdMilliseconds
integer <int64>

Keep elements newer than this threshold (milliseconds)

Responses

Merge or replace array element

Find an element in an array and either merge data into it or replace it entirely. Elements can be found by index or by matching a selector value.

Authorizations:
bearer
path Parameters
datasourceId
required
string

Data source ID

query Parameters
keySelector
required
string

JSON path selector for the array

itemSelectorIndex
integer

Find element by array index

itemSelector
string

JSON path selector for matching attribute within elements

itemSelectorValue
string

Value to match against itemSelector

replace
boolean
Default: true

If true, replace element entirely; if false, merge data

Request Body schema: application/json
required
object

Data to merge or replace with

Responses

Request samples

Content type
application/json
{ }