Wallboard API - Administration (2.0)
Administrative endpoints for the Wallboard digital signage platform.
Administration endpoints provide customer/tenant management, UI customization, system statistics, activity logs, and tag management.
| Concept | Description |
|---|---|
| Customer | Tenant organization in multi-tenant system |
| Network Owner | Subreseller managing multiple customers |
| UI Profile | User interface customization (hide/show menu items, features) |
| License | Device activation entitlement |
| Statistics | System and network usage metrics |
| Tags | Labels for organizing content, devices, and other resources |
| Profile | Description |
|---|---|
BASIC |
Basic feature set |
ADVANCED |
Advanced features enabled |
PROFESSIONAL |
Professional tier features |
INHERIT |
Inherit from parent (network owner) |
| Type | Description |
|---|---|
BASIC |
Lite tier with basic features |
PROFESSIONAL |
Professional tier |
DBA |
Broadcaster (legacy, not used for new orders) |
ENTERPRISE |
Premium tier with all features |
VIDEO_WALL |
Video wall support |
| Tier | Description |
|---|---|
STARTER |
Entry-level tier |
BUSINESS |
Business tier |
ENTERPRISE |
Enterprise tier |
List customers
Retrieve a paginated list of customers. Regular users see only their customer. Network owners see their network members. ADMINs see all customers.
Minimum role: DEVICE_USER with customer selector
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: |
| select | string Field projection. |
| date | integer <int64> Filter by date timestamp (for billing/reporting calculations) |
Responses
Response samples
- 200
{- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "totalElements": 0,
- "totalPages": 0,
- "size": 0,
- "content": [
- {
- "id": 0,
- "name": "string",
- "comment": "string",
- "country": "string",
- "location": "string",
- "type": "string",
- "profile": "BASIC",
- "vertical": "BANKING_AND_FINANCE",
- "licenseType": "BASIC",
- "licenseTier": "STARTER",
- "freeLicenses": 0,
- "browserSessionLicenses": 0,
- "deviceSessionLimit": 0,
- "expirationDate": "2019-08-24T14:15:22Z",
- "createdDate": "2019-08-24T14:15:22Z",
- "restricted": true,
- "contentDesignerEmail": "string",
- "supportEmail": "string",
- "needsToBeInvoiced": true,
- "storageSize": 0,
- "currentTotalCustomerStorageSize": 0,
- "currentDatasourceStorageSize": 0,
- "currentCustomerFilesStorageSize": 0,
- "hiddenUIElementRules": { },
- "customerMetadata": { },
- "uiVersion": "string",
- "force2FA": true,
- "slaveId": "string",
- "samlIdentifier": "string",
- "enableAutomaticDistributionToDms": true,
- "userFullAccessIfNotInTeam": true,
- "accessResourcesWithoutTeam": true,
- "isDeviceAndGroupCreationEnabledInRootForTeamUsers": true,
- "isContentAndGroupCreationEnabledInRootForTeamUsers": true,
- "isFileAndFolderCreationEnabledInRootForTeamUsers": true,
- "brandingGuideline": { },
- "ownerSubresellerId": 0,
- "activeLicenses": 0,
- "totalLicenses": 0,
- "lastActivity": "2019-08-24T14:15:22Z",
- "lastDeviceActivity": "2019-08-24T14:15:22Z",
- "totalUserLoginCount": 0,
- "totalUserPresenceTime": 0,
- "ownerSubresellerName": "string",
- "subreseller": {
- "id": 0
}, - "owner": {
- "id": 0
}
}
]
}Create customer
Create a new customer/tenant.
Minimum role: OWNER
Authorizations:
Request Body schema: application/jsonrequired
| name required | string |
| comment | string |
| country | string |
| location | string |
| type | string |
| profile | string (CustomerProfile) Enum: "BASIC" "ADVANCED" "PROFESSIONAL" "INHERIT" Customer profile/feature tier |
| vertical | string (CustomerVertical) Enum: "BANKING_AND_FINANCE" "EMPLOYEE_CORPORATE_COMMUNICATION" "CORPORATE_MEETING_ROOMS" "DIGITAL_SIGNAGE" "EDUCATION_COLLAGE_AND_UNIVERSITIES" "CONFERENCE_AND_CONVENTION_CENTERS" "GOVERNMENT" "HEALTHCARE" "HOSPITALITY" "QUICK_SERVICE_RESTAURANT" "RETAIL" "SPORTS" "PETROL_STATIONS" "TRANSPORTATION" "ENTERTAINMENT" "WAYFINDING_AND_DIRECTORIES" "OTHER" "FACTORY_PRODUCEMENT" "BUSINESS_PARTNER" "RESELLER_PARTNER" "TECHNOLOGY_PARTNER" Industry vertical |
| licenseType | string (LicenseType) Enum: "BASIC" "PROFESSIONAL" "DBA" "ENTERPRISE" "VIDEO_WALL" Device license type. Note: DBA (Broadcaster) is legacy and not used for new license orders. |
| licenseTier | string (CustomerLicenseTier) Enum: "STARTER" "BUSINESS" "ENTERPRISE" Customer license tier |
| freeLicenses | integer <int64> Default: 0 |
| browserSessionLicenses | integer <int64> Default: 0 |
| deviceSessionLimit | integer <int64> Default: 0 |
| expirationDate | string <date-time> |
| restricted | boolean Default: false |
| contentDesignerEmail | string |
| supportEmail | string |
| needsToBeInvoiced | boolean Default: true |
| storageSize | integer <int64> |
| hiddenUIElementRules | object |
| customerMetadata | object |
| enableAutomaticDistributionToDms | boolean Default: false |
| userFullAccessIfNotInTeam | boolean Default: true |
| accessResourcesWithoutTeam | boolean Default: true |
| force2FA | boolean Default: false |
| brandingGuideline | object |
| slaveId | string |
| createAsSubreseller | boolean Default: false |
| ownerSubresellerId | integer <int64> |
| uiVersion | string Default: "V1" Enum: "V1" "V2" UI version |
| loopDisplayerVersion | string Enum: "LEGACY_LOOP" "LEGACY_CONTENT" "V2" Default displayer version for playlists |
| contentDisplayerVersion | string Enum: "LEGACY_LOOP" "LEGACY_CONTENT" "V2" Default displayer version for content |
| deviceUpdatePolicy | string Default: "FAST" Enum: "IMMEDIATE" "FAST" "SLOW" "CUSTOM" Device update policy |
| deviceUpdateDelayStartDays | integer Days to delay device updates (start) |
| deviceUpdateDelayEndDays | integer Days to delay device updates (end) |
| vistarNetworkId | string Vistar network ID for programmatic advertising |
| vistarApiKey | string Vistar API key |
Responses
Request samples
- Payload
{- "name": "string",
- "comment": "string",
- "country": "string",
- "location": "string",
- "type": "string",
- "profile": "BASIC",
- "vertical": "BANKING_AND_FINANCE",
- "licenseType": "BASIC",
- "licenseTier": "STARTER",
- "freeLicenses": 0,
- "browserSessionLicenses": 0,
- "deviceSessionLimit": 0,
- "expirationDate": "2019-08-24T14:15:22Z",
- "restricted": false,
- "contentDesignerEmail": "string",
- "supportEmail": "string",
- "needsToBeInvoiced": true,
- "storageSize": 0,
- "hiddenUIElementRules": { },
- "customerMetadata": { },
- "enableAutomaticDistributionToDms": false,
- "userFullAccessIfNotInTeam": true,
- "accessResourcesWithoutTeam": true,
- "force2FA": false,
- "brandingGuideline": { },
- "slaveId": "string",
- "createAsSubreseller": false,
- "ownerSubresellerId": 0,
- "uiVersion": "V1",
- "loopDisplayerVersion": "LEGACY_LOOP",
- "contentDisplayerVersion": "LEGACY_LOOP",
- "deviceUpdatePolicy": "IMMEDIATE",
- "deviceUpdateDelayStartDays": 0,
- "deviceUpdateDelayEndDays": 0,
- "vistarNetworkId": "string",
- "vistarApiKey": "string"
}Response samples
- 200
{- "id": 0,
- "name": "string",
- "comment": "string",
- "country": "string",
- "location": "string",
- "type": "string",
- "profile": "BASIC",
- "vertical": "BANKING_AND_FINANCE",
- "licenseType": "BASIC",
- "licenseTier": "STARTER",
- "freeLicenses": 0,
- "browserSessionLicenses": 0,
- "deviceSessionLimit": 0,
- "expirationDate": "2019-08-24T14:15:22Z",
- "createdDate": "2019-08-24T14:15:22Z",
- "restricted": true,
- "contentDesignerEmail": "string",
- "supportEmail": "string",
- "needsToBeInvoiced": true,
- "storageSize": 0,
- "hiddenUIElementRules": { },
- "enableAutomaticDistributionToDms": true,
- "userFullAccessIfNotInTeam": true,
- "accessResourcesWithoutTeam": true,
- "isDeviceAndGroupCreationEnabledInRootForTeamUsers": true,
- "isContentAndGroupCreationEnabledInRootForTeamUsers": true,
- "isFileAndFolderCreationEnabledInRootForTeamUsers": true,
- "brandingGuideline": { },
- "uiVersion": "string",
- "slaveId": "string",
- "ownerSubresellerId": 0,
- "force2FA": true,
- "onlineLicenses": 0,
- "totalLicenses": 0,
- "usedFree": 0,
- "activeLicenses": 0,
- "subreseller": {
- "id": 0
}
}Update customer
Update customer settings.
Minimum role: OWNER with customer selector
Authorizations:
path Parameters
| customerId required | integer <int64> |
Request Body schema: application/jsonrequired
| name | string |
| comment | string |
| country | string |
| location | string |
| type | string |
| profile | string (CustomerProfile) Enum: "BASIC" "ADVANCED" "PROFESSIONAL" "INHERIT" Customer profile/feature tier |
| vertical | string (CustomerVertical) Enum: "BANKING_AND_FINANCE" "EMPLOYEE_CORPORATE_COMMUNICATION" "CORPORATE_MEETING_ROOMS" "DIGITAL_SIGNAGE" "EDUCATION_COLLAGE_AND_UNIVERSITIES" "CONFERENCE_AND_CONVENTION_CENTERS" "GOVERNMENT" "HEALTHCARE" "HOSPITALITY" "QUICK_SERVICE_RESTAURANT" "RETAIL" "SPORTS" "PETROL_STATIONS" "TRANSPORTATION" "ENTERTAINMENT" "WAYFINDING_AND_DIRECTORIES" "OTHER" "FACTORY_PRODUCEMENT" "BUSINESS_PARTNER" "RESELLER_PARTNER" "TECHNOLOGY_PARTNER" Industry vertical |
| licenseType | string (LicenseType) Enum: "BASIC" "PROFESSIONAL" "DBA" "ENTERPRISE" "VIDEO_WALL" Device license type. Note: DBA (Broadcaster) is legacy and not used for new license orders. |
| licenseTier | string (CustomerLicenseTier) Enum: "STARTER" "BUSINESS" "ENTERPRISE" Customer license tier |
| freeLicenses | integer <int64> |
| browserSessionLicenses | integer <int64> |
| deviceSessionLimit | integer <int64> |
| expirationDate | string <date-time> |
| resetExpirationDate | boolean Set to true to clear expiration date |
| createdDate | string <date-time> |
| restricted | boolean |
| contentDesignerEmail | string |
| supportEmail | string |
| needsToBeInvoiced | boolean |
| storageSize | integer <int64> |
| hiddenUIElementRules | object |
| customerMetadata | object |
| enableAutomaticDistributionToDms | boolean |
| force2FA | boolean |
| brandingGuideline | object |
| uiVersion | string Enum: "V1" "V2" UI version |
| loopDisplayerVersion | string Enum: "LEGACY_LOOP" "LEGACY_CONTENT" "V2" Default displayer version for playlists |
| resetLoopDisplayerVersion | boolean Reset to default displayer version for playlists |
| contentDisplayerVersion | string Enum: "LEGACY_LOOP" "LEGACY_CONTENT" "V2" Default displayer version for content |
| resetContentDisplayerVersion | boolean Reset to default displayer version for content |
| deviceUpdatePolicy | string Enum: "IMMEDIATE" "FAST" "SLOW" "CUSTOM" Device update policy |
| deviceUpdateDelayStartDays | integer Days to delay device updates (start) |
| deviceUpdateDelayEndDays | integer Days to delay device updates (end) |
| vistarNetworkId | string Vistar network ID for programmatic advertising |
| resetVistarNetworkId | boolean Reset Vistar network ID |
| vistarApiKey | string Vistar API key |
| resetVistarApiKey | boolean Reset Vistar API key |
Responses
Request samples
- Payload
{- "name": "string",
- "comment": "string",
- "country": "string",
- "location": "string",
- "type": "string",
- "profile": "BASIC",
- "vertical": "BANKING_AND_FINANCE",
- "licenseType": "BASIC",
- "licenseTier": "STARTER",
- "freeLicenses": 0,
- "browserSessionLicenses": 0,
- "deviceSessionLimit": 0,
- "expirationDate": "2019-08-24T14:15:22Z",
- "resetExpirationDate": true,
- "createdDate": "2019-08-24T14:15:22Z",
- "restricted": true,
- "contentDesignerEmail": "string",
- "supportEmail": "string",
- "needsToBeInvoiced": true,
- "storageSize": 0,
- "hiddenUIElementRules": { },
- "customerMetadata": { },
- "enableAutomaticDistributionToDms": true,
- "force2FA": true,
- "brandingGuideline": { },
- "uiVersion": "V1",
- "loopDisplayerVersion": "LEGACY_LOOP",
- "resetLoopDisplayerVersion": true,
- "contentDisplayerVersion": "LEGACY_LOOP",
- "resetContentDisplayerVersion": true,
- "deviceUpdatePolicy": "IMMEDIATE",
- "deviceUpdateDelayStartDays": 0,
- "deviceUpdateDelayEndDays": 0,
- "vistarNetworkId": "string",
- "resetVistarNetworkId": true,
- "vistarApiKey": "string",
- "resetVistarApiKey": true
}Response samples
- 200
{- "id": 0,
- "name": "string",
- "comment": "string",
- "country": "string",
- "location": "string",
- "type": "string",
- "profile": "BASIC",
- "vertical": "BANKING_AND_FINANCE",
- "licenseType": "BASIC",
- "licenseTier": "STARTER",
- "freeLicenses": 0,
- "browserSessionLicenses": 0,
- "deviceSessionLimit": 0,
- "expirationDate": "2019-08-24T14:15:22Z",
- "createdDate": "2019-08-24T14:15:22Z",
- "restricted": true,
- "contentDesignerEmail": "string",
- "supportEmail": "string",
- "needsToBeInvoiced": true,
- "storageSize": 0,
- "hiddenUIElementRules": { },
- "enableAutomaticDistributionToDms": true,
- "userFullAccessIfNotInTeam": true,
- "accessResourcesWithoutTeam": true,
- "isDeviceAndGroupCreationEnabledInRootForTeamUsers": true,
- "isContentAndGroupCreationEnabledInRootForTeamUsers": true,
- "isFileAndFolderCreationEnabledInRootForTeamUsers": true,
- "brandingGuideline": { },
- "uiVersion": "string",
- "slaveId": "string",
- "ownerSubresellerId": 0,
- "force2FA": true,
- "onlineLicenses": 0,
- "totalLicenses": 0,
- "usedFree": 0,
- "activeLicenses": 0,
- "subreseller": {
- "id": 0
}
}Delete customer
Delete a customer and all associated data. This is a destructive operation.
Minimum role: OWNER with customer selector
Headers:
x-totp: TOTP code for verification (optional)x-captcha: Captcha token (optional)x-captcha-version: Captcha version V2 or V3 (default: V2)
Authorizations:
path Parameters
| customerId required | integer <int64> |
Responses
Select customer context
Get the current customer context including user and subscription info. Used after login to establish session context.
Minimum role: DEVICE_USER with customer selector
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
Responses
Response samples
- 200
{- "user": {
- "email": "string",
- "name": "string",
- "language": "string",
- "role": "ADMIN",
- "editorLevel": "string",
- "lastLogin": "2019-08-24T14:15:22Z",
- "createdDate": "2019-08-24T14:15:22Z",
- "logins": 0,
- "presenceTime": 0,
- "use2FA": true,
- "restricted": true,
- "customerId": 0
}, - "customer": {
- "id": 0,
- "name": "string",
- "comment": "string",
- "country": "string",
- "location": "string",
- "type": "string",
- "profile": "BASIC",
- "vertical": "BANKING_AND_FINANCE",
- "licenseType": "BASIC",
- "licenseTier": "STARTER",
- "freeLicenses": 0,
- "browserSessionLicenses": 0,
- "deviceSessionLimit": 0,
- "expirationDate": "2019-08-24T14:15:22Z",
- "createdDate": "2019-08-24T14:15:22Z",
- "restricted": true,
- "contentDesignerEmail": "string",
- "supportEmail": "string",
- "needsToBeInvoiced": true,
- "storageSize": 0,
- "hiddenUIElementRules": { },
- "enableAutomaticDistributionToDms": true,
- "userFullAccessIfNotInTeam": true,
- "accessResourcesWithoutTeam": true,
- "isDeviceAndGroupCreationEnabledInRootForTeamUsers": true,
- "isContentAndGroupCreationEnabledInRootForTeamUsers": true,
- "isFileAndFolderCreationEnabledInRootForTeamUsers": true,
- "brandingGuideline": { },
- "uiVersion": "string",
- "slaveId": "string",
- "ownerSubresellerId": 0,
- "force2FA": true,
- "onlineLicenses": 0,
- "totalLicenses": 0,
- "usedFree": 0,
- "activeLicenses": 0,
- "subreseller": {
- "id": 0
}
}, - "subscriptionId": "string",
- "subscriptionUrl": "string"
}Get customer info
Get current customer information with license usage details.
Minimum role: TECHNICIAN with customer selector
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
Responses
Response samples
- 200
{- "id": 0,
- "name": "string",
- "comment": "string",
- "country": "string",
- "location": "string",
- "type": "string",
- "profile": "BASIC",
- "vertical": "BANKING_AND_FINANCE",
- "licenseType": "BASIC",
- "licenseTier": "STARTER",
- "freeLicenses": 0,
- "browserSessionLicenses": 0,
- "deviceSessionLimit": 0,
- "expirationDate": "2019-08-24T14:15:22Z",
- "createdDate": "2019-08-24T14:15:22Z",
- "restricted": true,
- "contentDesignerEmail": "string",
- "supportEmail": "string",
- "needsToBeInvoiced": true,
- "storageSize": 0,
- "hiddenUIElementRules": { },
- "enableAutomaticDistributionToDms": true,
- "userFullAccessIfNotInTeam": true,
- "accessResourcesWithoutTeam": true,
- "isDeviceAndGroupCreationEnabledInRootForTeamUsers": true,
- "isContentAndGroupCreationEnabledInRootForTeamUsers": true,
- "isFileAndFolderCreationEnabledInRootForTeamUsers": true,
- "brandingGuideline": { },
- "uiVersion": "string",
- "slaveId": "string",
- "ownerSubresellerId": 0,
- "force2FA": true,
- "onlineLicenses": 0,
- "totalLicenses": 0,
- "usedFree": 0,
- "activeLicenses": 0,
- "subreseller": {
- "id": 0
}
}Get customer statistics
Get detailed statistics for a specific customer including device counts, user activity, content counts, and pie chart data.
Minimum role: OWNER with customer selector
Authorizations:
path Parameters
| customerId required | integer <int64> |
Responses
Response samples
- 200
{- "totalDevices": 0,
- "totalLicenses": 0,
- "lastDeviceActivity": "2019-08-24T14:15:22Z",
- "activeDevicesInLastWeek": 0,
- "totalUsers": 0,
- "totalUserPresenceTime": 0,
- "totalUserLoginCount": 0,
- "activeUsersInLastWeek": 0,
- "totalContents": 0,
- "totalDatasources": 0,
- "ownedCustomerCount": 0,
- "devicesByState": {
- "slices": [
- {
- "name": "string",
- "value": 0.1
}
], - "total": 0.1
}, - "devicesByLicensePayType": {
- "slices": [
- {
- "name": "string",
- "value": 0.1
}
], - "total": 0.1
}, - "devicesByLicenseType": {
- "slices": [
- {
- "name": "string",
- "value": 0.1
}
], - "total": 0.1
}, - "contentsByType": {
- "slices": [
- {
- "name": "string",
- "value": 0.1
}
], - "total": 0.1
}
}Get customer license dashboard
Get license dashboard view for a customer.
Minimum role: OWNER with customer selector
Authorizations:
path Parameters
| customerId required | integer <int64> |
Responses
Response samples
- 200
{- "totalLicenses": 0,
- "usedLicenses": 0,
- "freeLicenses": 0
}Update team settings
Update team-related settings for a customer.
Minimum role: OWNER with customer selector
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
Request Body schema: application/jsonrequired
| userFullAccessIfNotInTeam | boolean |
| accessResourcesWithoutTeam | boolean |
| isDeviceAndGroupCreationEnabledInRootForTeamUsers | boolean |
| isContentAndGroupCreationEnabledInRootForTeamUsers | boolean |
| isFileAndFolderCreationEnabledInRootForTeamUsers | boolean |
Responses
Request samples
- Payload
{- "userFullAccessIfNotInTeam": true,
- "accessResourcesWithoutTeam": true,
- "isDeviceAndGroupCreationEnabledInRootForTeamUsers": true,
- "isContentAndGroupCreationEnabledInRootForTeamUsers": true,
- "isFileAndFolderCreationEnabledInRootForTeamUsers": true
}List UI profiles
Retrieve user interface profiles with optional filtering and pagination.
Minimum role: OWNER
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| search | string WBQL filter expression. Operators: |
| select | string Field projection. |
| 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:
|
Responses
Response samples
- 200
{- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "totalElements": 0,
- "totalPages": 0,
- "size": 0,
- "content": [
- {
- "id": 0,
- "name": "string",
- "comment": "string",
- "hiddenUIElementRules": { },
- "customerId": 0
}
]
}Create UI profile
Create a new user interface profile.
Minimum role: OWNER
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
Request Body schema: application/jsonrequired
| name required | string Profile name |
| comment | string Optional description |
| hiddenUIElementRules required | object JSON rules for hiding UI elements |
Responses
Request samples
- Payload
{- "name": "Limited Editor",
- "comment": "Hide advanced settings and admin features",
- "hiddenUIElementRules": {
- "hiddenMenuItems": [
- "system-settings",
- "user-management"
], - "hiddenButtons": [
- "delete-device"
]
}
}Response samples
- 200
{- "id": 42,
- "name": "Limited Editor",
- "comment": "Hide advanced features",
- "hiddenUIElementRules": {
- "hiddenMenuItems": [
- "system-settings",
- "user-management"
]
}, - "customerId": 123
}Update UI profile
Update an existing user interface profile.
Minimum role: OWNER
Authorizations:
path Parameters
| userInterfaceProfileId required | integer <int64> UI profile ID |
Request Body schema: application/jsonrequired
| name required | string Profile name |
| comment | string Optional description |
| hiddenUIElementRules required | object JSON rules for hiding UI elements |
Responses
Request samples
- Payload
{- "name": "Limited Editor",
- "comment": "Restrict access to sensitive settings",
- "hiddenUIElementRules": {
- "hiddenMenuItems": [
- "system-settings",
- "user-management"
], - "hiddenButtons": [
- "delete-device",
- "factory-reset"
]
}
}Response samples
- 200
{- "id": 42,
- "name": "Limited Editor",
- "comment": "Hide advanced features",
- "hiddenUIElementRules": {
- "hiddenMenuItems": [
- "system-settings",
- "user-management"
]
}, - "customerId": 123
}Assign profile to users
Assign or remove user interface profile to/from users.
Minimum role: OWNER
Authorizations:
path Parameters
| userInterfaceProfileId required | integer <int64> UI profile ID |
Request Body schema: application/jsonrequired
| assignUserIds | Array of strings User IDs to assign profile to |
| removeUserIds | Array of strings User IDs to remove profile from |
Responses
Request samples
- Payload
{- "assignUserIds": [
- "user123",
- "user456"
], - "removeUserIds": [
- "user789"
]
}Get network dashboard statistics
Get statistics for a network owner and their members. Returns the same structure as system dashboard but scoped to the network.
Minimum role: VIEWER with customer selector
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| includeOwnerData | boolean Default: false Include network owner's own data in statistics |
| force | boolean Default: false Force refresh cached data |
Responses
Response samples
- 200
{- "unassignedDeviceStatusCounts": {
- "property1": 0,
- "property2": 0
}, - "assignedDeviceStatusCounts": {
- "property1": 0,
- "property2": 0
}, - "assignedLicenseCount": 0,
- "unAssignedLicenseCount": 0,
- "deviceLicenseTypeCounts": {
- "property1": 0,
- "property2": 0
}, - "deviceLicenseStatusCounts": {
- "property1": 0,
- "property2": 0
}, - "customerCount": 0,
- "activeCustomerCount": 0,
- "customerByVerticalCounts": {
- "property1": 0,
- "property2": 0
}, - "customerLicenseTierCounts": {
- "property1": 0,
- "property2": 0
}, - "userCount": 0,
- "activeUserCount": 0,
- "simpleLoopCount": 0,
- "contentCount": 0,
- "slideCount": 0,
- "scheduleCount": 0,
- "datasourceByTypeCounts": {
- "property1": 0,
- "property2": 0
}, - "datasourceByIncomingDataFormatCounts": {
- "property1": 0,
- "property2": 0
}, - "activeExternalDatasourceCount": 0,
- "brokenExternalDatasourceCount": 0,
- "browserSessionLimit": 0,
- "activeBrowserSessionCount": 0,
- "activeGoogleCredentials": {
- "property1": 0,
- "property2": 0
}, - "activeMicrosoftCredentials": {
- "property1": 0,
- "property2": 0
}, - "licenseValidTo": 0,
- "supportValidTo": 0
}Get session statistics
Get active session statistics for a customer including browser sessions and device content sessions.
Minimum role: VIEWER with customer selector
Authorizations:
query Parameters
| customerId required | integer <int64> Customer ID |
Responses
Response samples
- 200
{- "browserSessions": {
- "current": 0,
- "total": 0
}, - "deviceContentSessions": {
- "current": 0,
- "total": 0
}
}Get activity logs
Retrieve paginated activity logs for a customer. Logs include user actions, device events, and system messages.
Note: This endpoint is served by the wb-log-service microservice.
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| page | integer Default: 0 Page index (0-based) |
| size | integer Default: 20 Page size |
| search | string Search filter expression |
| order | string Default: "DESC" Enum: "ASC" "DESC" Sort order |
| from | integer <int64> Filter logs from this timestamp (Unix milliseconds) |
| to | integer <int64> Filter logs until this timestamp (Unix milliseconds) |
Responses
Response samples
- 200
{- "content": [
- {
- "time": "2019-08-24T14:15:22Z",
- "contentId": "string",
- "customerId": 0,
- "deviceId": "string",
- "logLevel": "INFO",
- "message": "string",
- "userEmail": "string",
- "contentName": "string",
- "customerName": "string",
- "deviceName": "string",
- "datasourceId": "string",
- "datasourceName": "string"
}
], - "totalPages": 0,
- "last": true,
- "totalElements": 0,
- "size": 0,
- "number": 0,
- "first": true,
- "numberOfElements": 0
}Download logs as CSV
Download activity logs as a CSV file.
Note: This endpoint is served by the wb-log-service microservice.
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| search | string Search filter expression |
Responses
Get customer tags
Get all tags organized by entity type for a customer.
Minimum role: VIEWER with customer selector
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| select | string Field projection. |
Responses
Response samples
- 200
{- "id": 0,
- "campaignTags": {
- "property1": {
- "count": 0,
- "comment": "string"
}, - "property2": {
- "count": 0,
- "comment": "string"
}
}, - "messageTags": {
- "property1": {
- "count": 0,
- "comment": "string"
}, - "property2": {
- "count": 0,
- "comment": "string"
}
}, - "deviceContentTags": {
- "property1": {
- "count": 0,
- "comment": "string"
}, - "property2": {
- "count": 0,
- "comment": "string"
}
}, - "deviceTags": {
- "property1": {
- "count": 0,
- "comment": "string"
}, - "property2": {
- "count": 0,
- "comment": "string"
}
}, - "deviceGroupTags": {
- "property1": {
- "count": 0,
- "comment": "string"
}, - "property2": {
- "count": 0,
- "comment": "string"
}
}, - "fileTags": {
- "property1": {
- "count": 0,
- "comment": "string"
}, - "property2": {
- "count": 0,
- "comment": "string"
}
}
}Create tag
Create a new tag for a specific entity type.
Minimum role: EDITOR with customer selector
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| tagType required | string (CustomerTagType) Enum: "CONTENT" "DEVICE" "CAMPAIGN" "MESSAGE" "FILE" Entity type for the tag |
Request Body schema: application/jsonrequired
| tag required | string Tag name |
| comment | string Tag description |
Responses
Request samples
- Payload
{- "tag": "string",
- "comment": "string"
}Response samples
- 200
{- "tag": "string",
- "tagInfo": {
- "count": 0,
- "comment": "string"
}
}Update tag
Update an existing tag's comment.
Minimum role: EDITOR with customer selector
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| tag required | string Tag name to update |
| tagType required | string (CustomerTagType) Enum: "CONTENT" "DEVICE" "CAMPAIGN" "MESSAGE" "FILE" Entity type for the tag |
Request Body schema: application/jsonrequired
| comment | string Updated tag description |
Responses
Request samples
- Payload
{- "comment": "string"
}Delete tag
Delete an existing tag.
Minimum role: EDITOR with customer selector
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| tag required | string Tag name to delete |
| tagType required | string (CustomerTagType) Enum: "CONTENT" "DEVICE" "CAMPAIGN" "MESSAGE" "FILE" Entity type for the tag |
Responses
Get all tags with usage counts
Get all tags merged across entity types with their usage counts.
Minimum role: VIEWER with customer selector
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
Responses
Response samples
- 200
{- "lobby": 5,
- "reception": 3,
- "floor-1": 12
}Suggest tags
Get tag suggestions based on keyword and entity type.
Minimum role: VIEWER with customer selector
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| keyword | string Keyword to filter suggestions |
| entity | string (CustomerTagType) Enum: "CONTENT" "DEVICE" "CAMPAIGN" "MESSAGE" "FILE" Entity type to filter by |
Responses
Response samples
- 200
[- "string"
]Export customers as CSV
Export customer list as CSV file (all customers in the system).
Minimum role: ADMIN
Authorizations:
query Parameters
| search | string WBQL filter expression. Operators: |
Responses
Get system dashboard statistics
Get global platform statistics including device counts, customer counts, user activity, and content statistics across all customers.
Minimum role: ADMIN
Authorizations:
query Parameters
| force | boolean Default: false Force refresh cached data |
Responses
Response samples
- 200
{- "unassignedDeviceStatusCounts": {
- "property1": 0,
- "property2": 0
}, - "assignedDeviceStatusCounts": {
- "property1": 0,
- "property2": 0
}, - "assignedLicenseCount": 0,
- "unAssignedLicenseCount": 0,
- "deviceLicenseTypeCounts": {
- "property1": 0,
- "property2": 0
}, - "deviceLicenseStatusCounts": {
- "property1": 0,
- "property2": 0
}, - "customerCount": 0,
- "activeCustomerCount": 0,
- "customerByVerticalCounts": {
- "property1": 0,
- "property2": 0
}, - "customerLicenseTierCounts": {
- "property1": 0,
- "property2": 0
}, - "userCount": 0,
- "activeUserCount": 0,
- "simpleLoopCount": 0,
- "contentCount": 0,
- "slideCount": 0,
- "scheduleCount": 0,
- "datasourceByTypeCounts": {
- "property1": 0,
- "property2": 0
}, - "datasourceByIncomingDataFormatCounts": {
- "property1": 0,
- "property2": 0
}, - "activeExternalDatasourceCount": 0,
- "brokenExternalDatasourceCount": 0,
- "browserSessionLimit": 0,
- "activeBrowserSessionCount": 0,
- "activeGoogleCredentials": {
- "property1": 0,
- "property2": 0
}, - "activeMicrosoftCredentials": {
- "property1": 0,
- "property2": 0
}, - "licenseValidTo": 0,
- "supportValidTo": 0
}