Wallboard API - Data Sources (2.0)
Data source management endpoints for the Wallboard digital signage platform.
Data sources provide dynamic data for content widgets. They can pull data from external APIs, databases, spreadsheets, calendars, and other integrations.
| 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) |
| 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) |
| 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 |
- 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
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 | |
INSTAGRAM_PAGE_FEED |
instagramPageFeedParameters | |
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 |
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 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 thedatafield - The
datafield in PUT accepts both a JSON object and a stringified JSON string (backward compatible) - Only
INTERNALdatasources can be updated — external and system types are read-only
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.
List data sources (V2)
Retrieve a paginated list of data sources with flexible field selection.
Minimum role: VIEWER
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| 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:
|
| search | string WBQL filter expression. Operators: |
| select | string Field projection. |
| includeAdHocDatasources | boolean Default: false Include ad-hoc (temporary) data sources in results |
Responses
Response samples
- 200
{- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "totalElements": 0,
- "totalPages": 0,
- "size": 0,
- "content": [
- {
- "id": "string",
- "name": "string",
- "comment": "string",
- "customerId": 0,
- "global": true,
- "sourceType": "EXTERNAL",
- "structureType": "CUSTOM",
- "refreshMode": "POLL",
- "type": "XML",
- "remoteUrl": "string",
- "refreshFrequency": 0,
- "cronExpressionParameters": {
- "cronExpression": "string",
- "timeZone": "string"
}, - "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": {
- "workSheetId": "string",
- "range": "string",
- "fetchCharts": true,
- "firstRowIsHeader": true
}, - "microsoftWorkbookV2Parameters": {
- "options": [
- {
- "siteId": "string",
- "driveId": "string",
- "workBookId": "string",
- "workSheetId": "string",
- "range": "string",
- "fetchCharts": true,
- "firstRowIsHeader": true,
- "allSheet": true,
- "sameWorkbookParams": true
}
]
}, - "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": {
- "httpMethod": "GET",
- "customHeaders": {
- "property1": "string",
- "property2": "string"
}, - "basicAuth": {
- "username": "string",
- "password": "string"
}, - "body": "string",
- "jsonBody": true
}, - "respectCacheControl": true,
- "aiParameters": {
- "prompt": "string",
- "jsonSchemaOutput": { },
- "exampleJson": { },
- "sourceDatasourceIds": [
- "string"
]
}, - "calendarMergeParameters": {
- "calendarDatasourceIds": [
- "string"
]
}, - "webScraperParameters": {
- "prompt": "string",
- "url": "string",
- "waitTime": 0,
- "jsonSchemaOutput": { },
- "exampleJson": { }
}, - "weatherParameters": {
- "locations": [
- {
- "location": "string",
- "displayName": "string"
}
], - "geoPositions": [
- {
- "lat": 0.1,
- "lon": 0.1,
- "displayName": "string"
}
]
}, - "capParameters": {
- "capFeedURL": "string",
- "parserRule": {
- "capItemURLSelector": "string"
}, - "cacheRule": {
- "capFeedUpdatedSelector": "string",
- "capItemLastModifiedSelector": "string"
}, - "deviceIdentificationRule": {
- "tagBasedRule": {
- "deviceTagSelector": "ADDRESSES",
- "deviceTagSeparator": "string",
- "deviceTagOperator": "AND"
}, - "locationBasedRule": {
- "resolveLocation": true
}
}, - "emergencyStatusAutoUpdaterRule": {
- "includeDevicesByTag": "string"
}, - "mapperRule": {
- "defaultExpire": 0
}
}, - "toastParameters": {
- "externalGroupRef": "string",
- "externalRestaurantRef": "string",
- "method": "MENU",
- "filterMenuGuids": [
- "string"
]
}, - "toastRestaurantGuid": "string",
- "screenshotParameters": {
- "screenshotConfigs": [
- { }
]
}, - "fileFromUrlParameters": {
- "urls": [
- {
- "url": "string"
}
]
}, - "userActiveDirectoryParameters": {
- "fetchProfilePictures": true,
- "profilePictureSize": "SIZE_48x48",
- "members": "ONLY_INTERNAL",
- "filter": "string",
- "filterBy": "NAME",
- "format": "LIST"
}, - "facebookPageFeedParameters": {
- "pageId": "string"
}, - "instagramPageFeedParameters": {
- "pageId": "string"
}, - "sharepointNewsParameters": {
- "siteId": "string"
}, - "sharepointHeaders": {
- "headers": [
- "string"
]
}, - "powerBiExportParameters": {
- "groupId": "string",
- "reportId": "string",
- "pageNames": [
- "string"
], - "width": 1920,
- "height": 1080
}, - "dynamicParameters": {
- "parameters": { }
}, - "functionIdentifierType": "string",
- "functionIdentifierVersion": "string",
- "datasourceTransformation": {
- "transformations": [
- { }
]
}, - "lastAccessed": 0,
- "lastError": 0,
- "lastModified": 0,
- "lastUpdated": 0,
- "lastChanged": 0,
- "createdAt": 0,
- "nextRefreshTime": 0,
- "lastActiveSubscription": 0,
- "errorCounter": 0,
- "refreshCounter": 0,
- "ignoreErrorCounter": true,
- "customer": {
- "id": 0,
- "name": "string"
}, - "readOnly": true,
- "resourceDetails": { },
- "usedStorage": 0,
- "configMetadata": { }
}
]
}List global data sources (V2)
Retrieve global data sources shared across all customers. Global data sources are created by administrators.
Minimum role: VIEWER
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| 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:
|
| search | string WBQL filter expression. Operators: |
| select | string Field projection. |
| includeAdHocDatasources | boolean Default: false Include ad-hoc (temporary) data sources in results |
Responses
Response samples
- 200
{- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "totalElements": 0,
- "totalPages": 0,
- "size": 0,
- "content": [
- {
- "id": "string",
- "name": "string",
- "comment": "string",
- "customerId": 0,
- "global": true,
- "sourceType": "EXTERNAL",
- "structureType": "CUSTOM",
- "refreshMode": "POLL",
- "type": "XML",
- "remoteUrl": "string",
- "refreshFrequency": 0,
- "cronExpressionParameters": {
- "cronExpression": "string",
- "timeZone": "string"
}, - "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": {
- "workSheetId": "string",
- "range": "string",
- "fetchCharts": true,
- "firstRowIsHeader": true
}, - "microsoftWorkbookV2Parameters": {
- "options": [
- {
- "siteId": "string",
- "driveId": "string",
- "workBookId": "string",
- "workSheetId": "string",
- "range": "string",
- "fetchCharts": true,
- "firstRowIsHeader": true,
- "allSheet": true,
- "sameWorkbookParams": true
}
]
}, - "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": {
- "httpMethod": "GET",
- "customHeaders": {
- "property1": "string",
- "property2": "string"
}, - "basicAuth": {
- "username": "string",
- "password": "string"
}, - "body": "string",
- "jsonBody": true
}, - "respectCacheControl": true,
- "aiParameters": {
- "prompt": "string",
- "jsonSchemaOutput": { },
- "exampleJson": { },
- "sourceDatasourceIds": [
- "string"
]
}, - "calendarMergeParameters": {
- "calendarDatasourceIds": [
- "string"
]
}, - "webScraperParameters": {
- "prompt": "string",
- "url": "string",
- "waitTime": 0,
- "jsonSchemaOutput": { },
- "exampleJson": { }
}, - "weatherParameters": {
- "locations": [
- {
- "location": "string",
- "displayName": "string"
}
], - "geoPositions": [
- {
- "lat": 0.1,
- "lon": 0.1,
- "displayName": "string"
}
]
}, - "capParameters": {
- "capFeedURL": "string",
- "parserRule": {
- "capItemURLSelector": "string"
}, - "cacheRule": {
- "capFeedUpdatedSelector": "string",
- "capItemLastModifiedSelector": "string"
}, - "deviceIdentificationRule": {
- "tagBasedRule": {
- "deviceTagSelector": "ADDRESSES",
- "deviceTagSeparator": "string",
- "deviceTagOperator": "AND"
}, - "locationBasedRule": {
- "resolveLocation": true
}
}, - "emergencyStatusAutoUpdaterRule": {
- "includeDevicesByTag": "string"
}, - "mapperRule": {
- "defaultExpire": 0
}
}, - "toastParameters": {
- "externalGroupRef": "string",
- "externalRestaurantRef": "string",
- "method": "MENU",
- "filterMenuGuids": [
- "string"
]
}, - "toastRestaurantGuid": "string",
- "screenshotParameters": {
- "screenshotConfigs": [
- { }
]
}, - "fileFromUrlParameters": {
- "urls": [
- {
- "url": "string"
}
]
}, - "userActiveDirectoryParameters": {
- "fetchProfilePictures": true,
- "profilePictureSize": "SIZE_48x48",
- "members": "ONLY_INTERNAL",
- "filter": "string",
- "filterBy": "NAME",
- "format": "LIST"
}, - "facebookPageFeedParameters": {
- "pageId": "string"
}, - "instagramPageFeedParameters": {
- "pageId": "string"
}, - "sharepointNewsParameters": {
- "siteId": "string"
}, - "sharepointHeaders": {
- "headers": [
- "string"
]
}, - "powerBiExportParameters": {
- "groupId": "string",
- "reportId": "string",
- "pageNames": [
- "string"
], - "width": 1920,
- "height": 1080
}, - "dynamicParameters": {
- "parameters": { }
}, - "functionIdentifierType": "string",
- "functionIdentifierVersion": "string",
- "datasourceTransformation": {
- "transformations": [
- { }
]
}, - "lastAccessed": 0,
- "lastError": 0,
- "lastModified": 0,
- "lastUpdated": 0,
- "lastChanged": 0,
- "createdAt": 0,
- "nextRefreshTime": 0,
- "lastActiveSubscription": 0,
- "errorCounter": 0,
- "refreshCounter": 0,
- "ignoreErrorCounter": true,
- "customer": {
- "id": 0,
- "name": "string"
}, - "readOnly": true,
- "resourceDetails": { },
- "usedStorage": 0,
- "configMetadata": { }
}
]
}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:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
Request Body schema: application/jsonrequired
| 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
- Payload
{- "name": "string",
- "comment": "string",
- "global": false,
- "sourceType": "EXTERNAL",
- "structureType": "CUSTOM",
- "type": "XML",
- "refreshMode": "POLL",
- "remoteUrl": "string",
- "refreshFrequency": 0,
- "cronExpressionParameters": {
- "cronExpression": "string",
- "timeZone": "string"
}, - "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": {
- "httpMethod": "GET",
- "customHeaders": {
- "property1": "string",
- "property2": "string"
}, - "basicAuth": {
- "username": "string",
- "password": "string"
}, - "body": "string",
- "jsonBody": true
}, - "aiParameters": {
- "prompt": "string",
- "jsonSchemaOutput": { },
- "exampleJson": { },
- "sourceDatasourceIds": [
- "string"
]
}, - "calendarMergeParameters": {
- "calendarDatasourceIds": [
- "string"
]
}, - "webScraperParameters": {
- "prompt": "string",
- "url": "string",
- "waitTime": 0,
- "jsonSchemaOutput": { },
- "exampleJson": { }
}, - "weatherParameters": {
- "locations": [
- {
- "location": "string",
- "displayName": "string"
}
], - "geoPositions": [
- {
- "lat": 0.1,
- "lon": 0.1,
- "displayName": "string"
}
]
}, - "capParameters": {
- "capFeedURL": "string",
- "parserRule": {
- "capItemURLSelector": "string"
}, - "cacheRule": {
- "capFeedUpdatedSelector": "string",
- "capItemLastModifiedSelector": "string"
}, - "deviceIdentificationRule": {
- "tagBasedRule": {
- "deviceTagSelector": "ADDRESSES",
- "deviceTagSeparator": "string",
- "deviceTagOperator": "AND"
}, - "locationBasedRule": {
- "resolveLocation": true
}
}, - "emergencyStatusAutoUpdaterRule": {
- "includeDevicesByTag": "string"
}, - "mapperRule": {
- "defaultExpire": 0
}
}, - "toastParameters": {
- "externalGroupRef": "string",
- "externalRestaurantRef": "string",
- "method": "MENU",
- "filterMenuGuids": [
- "string"
]
}, - "screenshotParameters": {
- "screenshotConfigs": [
- { }
]
}, - "fileFromUrlParameters": {
- "urls": [
- {
- "url": "string"
}
]
}, - "userActiveDirectoryParameters": {
- "fetchProfilePictures": true,
- "profilePictureSize": "SIZE_48x48",
- "members": "ONLY_INTERNAL",
- "filter": "string",
- "filterBy": "NAME",
- "format": "LIST"
}, - "facebookPageFeedParameters": {
- "pageId": "string"
}, - "instagramPageFeedParameters": {
- "pageId": "string"
}, - "sharepointNewsParameters": {
- "siteId": "string"
}, - "sharepointHeaders": {
- "headers": [
- "string"
]
}, - "microsoftWorkBookParameters": {
- "workSheetId": "string",
- "range": "string",
- "fetchCharts": true,
- "firstRowIsHeader": true
}, - "microsoftWorkbookV2Parameters": {
- "options": [
- {
- "siteId": "string",
- "driveId": "string",
- "workBookId": "string",
- "workSheetId": "string",
- "range": "string",
- "fetchCharts": true,
- "firstRowIsHeader": true,
- "allSheet": true,
- "sameWorkbookParams": true
}
]
}, - "powerBiExportParameters": {
- "groupId": "string",
- "reportId": "string",
- "pageNames": [
- "string"
], - "width": 1920,
- "height": 1080
}, - "dynamicParameters": {
- "parameters": { }
}, - "functionIdentifier": {
- "type": "string",
- "version": "string"
}, - "datasourceTransformation": {
- "transformations": [
- { }
]
}, - "resourceDetails": { },
- "configMetadata": { }
}Response samples
- 200
{- "id": "string"
}List data sources
Retrieve a paginated list of data sources with usage statistics.
Minimum role: VIEWER
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| 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:
|
| search | string WBQL filter expression. Operators: |
| includeAdHocDatasources | boolean Default: false Include ad-hoc (temporary) data sources in results |
Responses
Response samples
- 200
{- "data": {
- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "totalElements": 0,
- "totalPages": 0,
- "size": 0,
- "content": [
- {
- "id": "string",
- "name": "string",
- "comment": "string",
- "customerId": 0,
- "global": true,
- "sourceType": "EXTERNAL",
- "structureType": "CUSTOM",
- "refreshMode": "POLL",
- "type": "XML",
- "remoteUrl": "string",
- "refreshFrequency": 0,
- "cronExpressionParameters": {
- "cronExpression": "string",
- "timeZone": "string"
}, - "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": {
- "workSheetId": "string",
- "range": "string",
- "fetchCharts": true,
- "firstRowIsHeader": true
}, - "microsoftWorkbookV2Parameters": {
- "options": [
- {
- "siteId": "string",
- "driveId": "string",
- "workBookId": "string",
- "workSheetId": "string",
- "range": "string",
- "fetchCharts": true,
- "firstRowIsHeader": true,
- "allSheet": true,
- "sameWorkbookParams": true
}
]
}, - "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": {
- "httpMethod": "GET",
- "customHeaders": {
- "property1": "string",
- "property2": "string"
}, - "basicAuth": {
- "username": "string",
- "password": "string"
}, - "body": "string",
- "jsonBody": true
}, - "respectCacheControl": true,
- "aiParameters": {
- "prompt": "string",
- "jsonSchemaOutput": { },
- "exampleJson": { },
- "sourceDatasourceIds": [
- "string"
]
}, - "calendarMergeParameters": {
- "calendarDatasourceIds": [
- "string"
]
}, - "webScraperParameters": {
- "prompt": "string",
- "url": "string",
- "waitTime": 0,
- "jsonSchemaOutput": { },
- "exampleJson": { }
}, - "weatherParameters": {
- "locations": [
- {
- "location": "string",
- "displayName": "string"
}
], - "geoPositions": [
- {
- "lat": 0.1,
- "lon": 0.1,
- "displayName": "string"
}
]
}, - "capParameters": {
- "capFeedURL": "string",
- "parserRule": {
- "capItemURLSelector": "string"
}, - "cacheRule": {
- "capFeedUpdatedSelector": "string",
- "capItemLastModifiedSelector": "string"
}, - "deviceIdentificationRule": {
- "tagBasedRule": {
- "deviceTagSelector": "ADDRESSES",
- "deviceTagSeparator": "string",
- "deviceTagOperator": "AND"
}, - "locationBasedRule": {
- "resolveLocation": true
}
}, - "emergencyStatusAutoUpdaterRule": {
- "includeDevicesByTag": "string"
}, - "mapperRule": {
- "defaultExpire": 0
}
}, - "toastParameters": {
- "externalGroupRef": "string",
- "externalRestaurantRef": "string",
- "method": "MENU",
- "filterMenuGuids": [
- "string"
]
}, - "toastRestaurantGuid": "string",
- "screenshotParameters": {
- "screenshotConfigs": [
- { }
]
}, - "fileFromUrlParameters": {
- "urls": [
- {
- "url": "string"
}
]
}, - "userActiveDirectoryParameters": {
- "fetchProfilePictures": true,
- "profilePictureSize": "SIZE_48x48",
- "members": "ONLY_INTERNAL",
- "filter": "string",
- "filterBy": "NAME",
- "format": "LIST"
}, - "facebookPageFeedParameters": {
- "pageId": "string"
}, - "instagramPageFeedParameters": {
- "pageId": "string"
}, - "sharepointNewsParameters": {
- "siteId": "string"
}, - "sharepointHeaders": {
- "headers": [
- "string"
]
}, - "powerBiExportParameters": {
- "groupId": "string",
- "reportId": "string",
- "pageNames": [
- "string"
], - "width": 1920,
- "height": 1080
}, - "dynamicParameters": {
- "parameters": { }
}, - "functionIdentifierType": "string",
- "functionIdentifierVersion": "string",
- "datasourceTransformation": {
- "transformations": [
- { }
]
}, - "lastAccessed": 0,
- "lastError": 0,
- "lastModified": 0,
- "lastUpdated": 0,
- "lastChanged": 0,
- "createdAt": 0,
- "nextRefreshTime": 0,
- "lastActiveSubscription": 0,
- "errorCounter": 0,
- "refreshCounter": 0,
- "ignoreErrorCounter": true,
- "customer": {
- "id": 0,
- "name": "string"
}, - "readOnly": true,
- "resourceDetails": { },
- "usedStorage": 0,
- "configMetadata": { }
}
]
}, - "details": {
- "accessedLastWeek": 0,
- "modifiedLastWeek": 0
}
}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:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| teamIds | string Example: teamIds=000c08d294df48efb1b0f5aa754d7ef9:true,00a22e86602c4a88914614aa9516a481:false Team assignment filter. Format: |
Request Body schema: application/jsonrequired
| 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
- Payload
{- "name": "string",
- "comment": "string",
- "global": false,
- "sourceType": "EXTERNAL",
- "structureType": "CUSTOM",
- "type": "XML",
- "refreshMode": "POLL",
- "remoteUrl": "string",
- "refreshFrequency": 0,
- "cronExpressionParameters": {
- "cronExpression": "string",
- "timeZone": "string"
}, - "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": {
- "httpMethod": "GET",
- "customHeaders": {
- "property1": "string",
- "property2": "string"
}, - "basicAuth": {
- "username": "string",
- "password": "string"
}, - "body": "string",
- "jsonBody": true
}, - "aiParameters": {
- "prompt": "string",
- "jsonSchemaOutput": { },
- "exampleJson": { },
- "sourceDatasourceIds": [
- "string"
]
}, - "calendarMergeParameters": {
- "calendarDatasourceIds": [
- "string"
]
}, - "webScraperParameters": {
- "prompt": "string",
- "url": "string",
- "waitTime": 0,
- "jsonSchemaOutput": { },
- "exampleJson": { }
}, - "weatherParameters": {
- "locations": [
- {
- "location": "string",
- "displayName": "string"
}
], - "geoPositions": [
- {
- "lat": 0.1,
- "lon": 0.1,
- "displayName": "string"
}
]
}, - "capParameters": {
- "capFeedURL": "string",
- "parserRule": {
- "capItemURLSelector": "string"
}, - "cacheRule": {
- "capFeedUpdatedSelector": "string",
- "capItemLastModifiedSelector": "string"
}, - "deviceIdentificationRule": {
- "tagBasedRule": {
- "deviceTagSelector": "ADDRESSES",
- "deviceTagSeparator": "string",
- "deviceTagOperator": "AND"
}, - "locationBasedRule": {
- "resolveLocation": true
}
}, - "emergencyStatusAutoUpdaterRule": {
- "includeDevicesByTag": "string"
}, - "mapperRule": {
- "defaultExpire": 0
}
}, - "toastParameters": {
- "externalGroupRef": "string",
- "externalRestaurantRef": "string",
- "method": "MENU",
- "filterMenuGuids": [
- "string"
]
}, - "screenshotParameters": {
- "screenshotConfigs": [
- { }
]
}, - "fileFromUrlParameters": {
- "urls": [
- {
- "url": "string"
}
]
}, - "userActiveDirectoryParameters": {
- "fetchProfilePictures": true,
- "profilePictureSize": "SIZE_48x48",
- "members": "ONLY_INTERNAL",
- "filter": "string",
- "filterBy": "NAME",
- "format": "LIST"
}, - "facebookPageFeedParameters": {
- "pageId": "string"
}, - "instagramPageFeedParameters": {
- "pageId": "string"
}, - "sharepointNewsParameters": {
- "siteId": "string"
}, - "sharepointHeaders": {
- "headers": [
- "string"
]
}, - "microsoftWorkBookParameters": {
- "workSheetId": "string",
- "range": "string",
- "fetchCharts": true,
- "firstRowIsHeader": true
}, - "microsoftWorkbookV2Parameters": {
- "options": [
- {
- "siteId": "string",
- "driveId": "string",
- "workBookId": "string",
- "workSheetId": "string",
- "range": "string",
- "fetchCharts": true,
- "firstRowIsHeader": true,
- "allSheet": true,
- "sameWorkbookParams": true
}
]
}, - "powerBiExportParameters": {
- "groupId": "string",
- "reportId": "string",
- "pageNames": [
- "string"
], - "width": 1920,
- "height": 1080
}, - "dynamicParameters": {
- "parameters": { }
}, - "functionIdentifier": {
- "type": "string",
- "version": "string"
}, - "datasourceTransformation": {
- "transformations": [
- { }
]
}, - "resourceDetails": { },
- "configMetadata": { }
}Response samples
- 200
{- "id": "string",
- "name": "string",
- "comment": "string",
- "customerId": 0,
- "global": true,
- "sourceType": "EXTERNAL",
- "structureType": "CUSTOM",
- "refreshMode": "POLL",
- "type": "XML",
- "remoteUrl": "string",
- "refreshFrequency": 0,
- "cronExpressionParameters": {
- "cronExpression": "string",
- "timeZone": "string"
}, - "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": {
- "workSheetId": "string",
- "range": "string",
- "fetchCharts": true,
- "firstRowIsHeader": true
}, - "microsoftWorkbookV2Parameters": {
- "options": [
- {
- "siteId": "string",
- "driveId": "string",
- "workBookId": "string",
- "workSheetId": "string",
- "range": "string",
- "fetchCharts": true,
- "firstRowIsHeader": true,
- "allSheet": true,
- "sameWorkbookParams": true
}
]
}, - "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": {
- "httpMethod": "GET",
- "customHeaders": {
- "property1": "string",
- "property2": "string"
}, - "basicAuth": {
- "username": "string",
- "password": "string"
}, - "body": "string",
- "jsonBody": true
}, - "respectCacheControl": true,
- "aiParameters": {
- "prompt": "string",
- "jsonSchemaOutput": { },
- "exampleJson": { },
- "sourceDatasourceIds": [
- "string"
]
}, - "calendarMergeParameters": {
- "calendarDatasourceIds": [
- "string"
]
}, - "webScraperParameters": {
- "prompt": "string",
- "url": "string",
- "waitTime": 0,
- "jsonSchemaOutput": { },
- "exampleJson": { }
}, - "weatherParameters": {
- "locations": [
- {
- "location": "string",
- "displayName": "string"
}
], - "geoPositions": [
- {
- "lat": 0.1,
- "lon": 0.1,
- "displayName": "string"
}
]
}, - "capParameters": {
- "capFeedURL": "string",
- "parserRule": {
- "capItemURLSelector": "string"
}, - "cacheRule": {
- "capFeedUpdatedSelector": "string",
- "capItemLastModifiedSelector": "string"
}, - "deviceIdentificationRule": {
- "tagBasedRule": {
- "deviceTagSelector": "ADDRESSES",
- "deviceTagSeparator": "string",
- "deviceTagOperator": "AND"
}, - "locationBasedRule": {
- "resolveLocation": true
}
}, - "emergencyStatusAutoUpdaterRule": {
- "includeDevicesByTag": "string"
}, - "mapperRule": {
- "defaultExpire": 0
}
}, - "toastParameters": {
- "externalGroupRef": "string",
- "externalRestaurantRef": "string",
- "method": "MENU",
- "filterMenuGuids": [
- "string"
]
}, - "toastRestaurantGuid": "string",
- "screenshotParameters": {
- "screenshotConfigs": [
- { }
]
}, - "fileFromUrlParameters": {
- "urls": [
- {
- "url": "string"
}
]
}, - "userActiveDirectoryParameters": {
- "fetchProfilePictures": true,
- "profilePictureSize": "SIZE_48x48",
- "members": "ONLY_INTERNAL",
- "filter": "string",
- "filterBy": "NAME",
- "format": "LIST"
}, - "facebookPageFeedParameters": {
- "pageId": "string"
}, - "instagramPageFeedParameters": {
- "pageId": "string"
}, - "sharepointNewsParameters": {
- "siteId": "string"
}, - "sharepointHeaders": {
- "headers": [
- "string"
]
}, - "powerBiExportParameters": {
- "groupId": "string",
- "reportId": "string",
- "pageNames": [
- "string"
], - "width": 1920,
- "height": 1080
}, - "dynamicParameters": {
- "parameters": { }
}, - "functionIdentifierType": "string",
- "functionIdentifierVersion": "string",
- "datasourceTransformation": {
- "transformations": [
- { }
]
}, - "lastAccessed": 0,
- "lastError": 0,
- "lastModified": 0,
- "lastUpdated": 0,
- "lastChanged": 0,
- "createdAt": 0,
- "nextRefreshTime": 0,
- "lastActiveSubscription": 0,
- "errorCounter": 0,
- "refreshCounter": 0,
- "ignoreErrorCounter": true,
- "customer": {
- "id": 0,
- "name": "string"
}, - "readOnly": true,
- "resourceDetails": { },
- "usedStorage": 0,
- "configMetadata": { }
}Update data source
Update an existing data source.
Minimum role: TECHNICIAN
Authorizations:
path Parameters
| datasourceId required | string Data source ID |
Request Body schema: application/jsonrequired
| 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
- Payload
{- "name": "string",
- "comment": "string",
- "refreshFrequency": 0,
- "cronExpressionParameters": {
- "cronExpression": "string",
- "timeZone": "string"
}, - "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": {
- "httpMethod": "GET",
- "customHeaders": {
- "property1": "string",
- "property2": "string"
}, - "basicAuth": {
- "username": "string",
- "password": "string"
}, - "body": "string",
- "jsonBody": true
}, - "aiParameters": {
- "prompt": "string",
- "jsonSchemaOutput": { },
- "exampleJson": { },
- "sourceDatasourceIds": [
- "string"
]
}, - "calendarMergeParameters": {
- "calendarDatasourceIds": [
- "string"
]
}, - "webScraperParameters": {
- "prompt": "string",
- "url": "string",
- "waitTime": 0,
- "jsonSchemaOutput": { },
- "exampleJson": { }
}, - "weatherParameters": {
- "locations": [
- {
- "location": "string",
- "displayName": "string"
}
], - "geoPositions": [
- {
- "lat": 0.1,
- "lon": 0.1,
- "displayName": "string"
}
]
}, - "capParameters": {
- "capFeedURL": "string",
- "parserRule": {
- "capItemURLSelector": "string"
}, - "cacheRule": {
- "capFeedUpdatedSelector": "string",
- "capItemLastModifiedSelector": "string"
}, - "deviceIdentificationRule": {
- "tagBasedRule": {
- "deviceTagSelector": "ADDRESSES",
- "deviceTagSeparator": "string",
- "deviceTagOperator": "AND"
}, - "locationBasedRule": {
- "resolveLocation": true
}
}, - "emergencyStatusAutoUpdaterRule": {
- "includeDevicesByTag": "string"
}, - "mapperRule": {
- "defaultExpire": 0
}
}, - "toastParameters": {
- "externalGroupRef": "string",
- "externalRestaurantRef": "string",
- "method": "MENU",
- "filterMenuGuids": [
- "string"
]
}, - "screenshotParameters": {
- "screenshotConfigs": [
- { }
]
}, - "fileFromUrlParameters": {
- "urls": [
- {
- "url": "string"
}
]
}, - "userActiveDirectoryParameters": {
- "fetchProfilePictures": true,
- "profilePictureSize": "SIZE_48x48",
- "members": "ONLY_INTERNAL",
- "filter": "string",
- "filterBy": "NAME",
- "format": "LIST"
}, - "facebookPageFeedParameters": {
- "pageId": "string"
}, - "instagramPageFeedParameters": {
- "pageId": "string"
}, - "sharepointNewsParameters": {
- "siteId": "string"
}, - "sharepointHeaders": {
- "headers": [
- "string"
]
}, - "resetHeaders": true,
- "microsoftWorkBookParameters": {
- "workSheetId": "string",
- "range": "string",
- "fetchCharts": true,
- "firstRowIsHeader": true
}, - "microsoftWorkbookV2Parameters": {
- "options": [
- {
- "siteId": "string",
- "driveId": "string",
- "workBookId": "string",
- "workSheetId": "string",
- "range": "string",
- "fetchCharts": true,
- "firstRowIsHeader": true,
- "allSheet": true,
- "sameWorkbookParams": true
}
]
}, - "powerBiExportParameters": {
- "groupId": "string",
- "reportId": "string",
- "pageNames": [
- "string"
], - "width": 1920,
- "height": 1080
}, - "dynamicParameters": {
- "parameters": { }
}, - "datasourceTransformation": {
- "transformations": [
- { }
]
}, - "configMetadata": { },
- "customer": {
- "id": 0
}
}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_READscope
Authorizations:
path Parameters
| datasourceId required | string Data source ID (UUID) |
query Parameters
| parseData | boolean Default: false When true, returns the |
Responses
Request samples
- cURL - Parsed JSON
- cURL - API Key
curl -X GET \ 'https://{server}/api/datasource/ds-uuid-123/data?parseData=true' \ -H 'Authorization: Bearer <oauth-token>'
Response samples
- 200
{- "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_WRITEscope
Authorizations:
path Parameters
| datasourceId required | string Data source ID (UUID) |
Request Body schema: application/jsonrequired
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
- Payload
- cURL - JSON object
- cURL - API Key
{- "data": {
- "visitors": 150,
- "lastUpdate": "2026-01-26"
}
}Response samples
- 400
{- "timestamp": 0,
- "status": 0,
- "error": "string",
- "message": "string",
- "path": "string",
- "exception": "string",
- "details": { },
- "key": "string"
}List global data sources
Retrieve global data sources shared across all customers. Global data sources are created by administrators.
Minimum role: VIEWER
Authorizations:
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:
|
| search | string WBQL filter expression. Operators: |
| includeAdHocDatasources | boolean Default: false Include ad-hoc (temporary) data sources in results |
Responses
Response samples
- 200
{- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "totalElements": 0,
- "totalPages": 0,
- "size": 0,
- "content": [
- {
- "id": "string",
- "name": "string",
- "comment": "string",
- "customerId": 0,
- "global": true,
- "sourceType": "EXTERNAL",
- "structureType": "CUSTOM",
- "refreshMode": "POLL",
- "type": "XML",
- "remoteUrl": "string",
- "refreshFrequency": 0,
- "cronExpressionParameters": {
- "cronExpression": "string",
- "timeZone": "string"
}, - "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": {
- "workSheetId": "string",
- "range": "string",
- "fetchCharts": true,
- "firstRowIsHeader": true
}, - "microsoftWorkbookV2Parameters": {
- "options": [
- {
- "siteId": "string",
- "driveId": "string",
- "workBookId": "string",
- "workSheetId": "string",
- "range": "string",
- "fetchCharts": true,
- "firstRowIsHeader": true,
- "allSheet": true,
- "sameWorkbookParams": true
}
]
}, - "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": {
- "httpMethod": "GET",
- "customHeaders": {
- "property1": "string",
- "property2": "string"
}, - "basicAuth": {
- "username": "string",
- "password": "string"
}, - "body": "string",
- "jsonBody": true
}, - "respectCacheControl": true,
- "aiParameters": {
- "prompt": "string",
- "jsonSchemaOutput": { },
- "exampleJson": { },
- "sourceDatasourceIds": [
- "string"
]
}, - "calendarMergeParameters": {
- "calendarDatasourceIds": [
- "string"
]
}, - "webScraperParameters": {
- "prompt": "string",
- "url": "string",
- "waitTime": 0,
- "jsonSchemaOutput": { },
- "exampleJson": { }
}, - "weatherParameters": {
- "locations": [
- {
- "location": "string",
- "displayName": "string"
}
], - "geoPositions": [
- {
- "lat": 0.1,
- "lon": 0.1,
- "displayName": "string"
}
]
}, - "capParameters": {
- "capFeedURL": "string",
- "parserRule": {
- "capItemURLSelector": "string"
}, - "cacheRule": {
- "capFeedUpdatedSelector": "string",
- "capItemLastModifiedSelector": "string"
}, - "deviceIdentificationRule": {
- "tagBasedRule": {
- "deviceTagSelector": "ADDRESSES",
- "deviceTagSeparator": "string",
- "deviceTagOperator": "AND"
}, - "locationBasedRule": {
- "resolveLocation": true
}
}, - "emergencyStatusAutoUpdaterRule": {
- "includeDevicesByTag": "string"
}, - "mapperRule": {
- "defaultExpire": 0
}
}, - "toastParameters": {
- "externalGroupRef": "string",
- "externalRestaurantRef": "string",
- "method": "MENU",
- "filterMenuGuids": [
- "string"
]
}, - "toastRestaurantGuid": "string",
- "screenshotParameters": {
- "screenshotConfigs": [
- { }
]
}, - "fileFromUrlParameters": {
- "urls": [
- {
- "url": "string"
}
]
}, - "userActiveDirectoryParameters": {
- "fetchProfilePictures": true,
- "profilePictureSize": "SIZE_48x48",
- "members": "ONLY_INTERNAL",
- "filter": "string",
- "filterBy": "NAME",
- "format": "LIST"
}, - "facebookPageFeedParameters": {
- "pageId": "string"
}, - "instagramPageFeedParameters": {
- "pageId": "string"
}, - "sharepointNewsParameters": {
- "siteId": "string"
}, - "sharepointHeaders": {
- "headers": [
- "string"
]
}, - "powerBiExportParameters": {
- "groupId": "string",
- "reportId": "string",
- "pageNames": [
- "string"
], - "width": 1920,
- "height": 1080
}, - "dynamicParameters": {
- "parameters": { }
}, - "functionIdentifierType": "string",
- "functionIdentifierVersion": "string",
- "datasourceTransformation": {
- "transformations": [
- { }
]
}, - "lastAccessed": 0,
- "lastError": 0,
- "lastModified": 0,
- "lastUpdated": 0,
- "lastChanged": 0,
- "createdAt": 0,
- "nextRefreshTime": 0,
- "lastActiveSubscription": 0,
- "errorCounter": 0,
- "refreshCounter": 0,
- "ignoreErrorCounter": true,
- "customer": {
- "id": 0,
- "name": "string"
}, - "readOnly": true,
- "resourceDetails": { },
- "usedStorage": 0,
- "configMetadata": { }
}
]
}Get data source usage details
Retrieve usage information showing which content uses each data source.
Minimum role: VIEWER
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| 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:
|
| search | string WBQL filter expression. Operators: |
Responses
Response samples
- 200
{- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "totalElements": 0,
- "totalPages": 0,
- "size": 0,
- "content": [
- {
- "datasourceId": "string",
- "contentUsage": [
- {
- "id": "string",
- "name": "string",
- "deviceContentType": "string"
}
]
}
]
}Export data sources as CSV
Export data source list as CSV file.
Minimum role: VIEWER
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| search | string WBQL filter expression. Operators: |
Responses
Update team assignments
Update team assignments for a data source.
Minimum role: OWNER
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| datasourceId required | string Data source ID |
Request Body schema: application/jsonrequired
Array of objects Teams to assign the resource to | |
| removeFromTeamIds | Array of strings Team IDs to remove the resource from |
Responses
Request samples
- Payload
{- "assignToTeams": [
- {
- "teamId": "string",
- "readOnly": true
}
], - "removeFromTeamIds": [
- "string"
]
}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:
path Parameters
| datasourceId required | string Data source ID |
Request Body schema: application/jsonrequired
JSON data to set
Responses
Request samples
- Payload
{ }Merge data from display
Merge data into a data source from a display device. Preserves existing data while adding/updating specific keys.
Authorizations:
path Parameters
| datasourceId required | string Data source ID |
Request Body schema: application/jsonrequired
JSON data to merge
Responses
Request samples
- Payload
{ }Increase numeric value
Increase a numeric value in the data source by 1. Optionally specify a maximum value to cap the increase.
Authorizations:
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:
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:
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/jsonrequired
Element to insert
Responses
Request samples
- Payload
{ }Remove element from array
Remove an element from an array in the data source by index.
Authorizations:
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
Rotate array elements
Rotate elements in an array, optionally removing elements older than a specified threshold based on a date attribute.
Authorizations:
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:
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/jsonrequired
Data to merge or replace with
Responses
Request samples
- Payload
{ }