Wallboard API - Quick Filters (2.0)
Quick filters (saved searches) for the Wallboard digital signage platform.
Quick filters are saved search/filter criteria that can be applied to different resource types. They enable users to quickly filter and find resources based on predefined criteria.
| Type | Description | Use Case |
|---|---|---|
FILE |
Media files (images, videos, audio) | Filter files by name, tags, validity |
CONTENT |
Content designs | Filter content by name, tags, type |
DEVICE |
Display devices | Filter devices by status, group, location |
| Concept | Description |
|---|---|
| Quick Filter | Saved search criteria for fast resource filtering |
| Filtered Entity Type | Resource type the filter applies to (FILE, CONTENT, DEVICE) |
| Criteria | WBQL search expression and additional filter parameters |
| Listed | Whether the filter appears in the quick filter dropdown |
Quick filters can be used in:
- File browser - Filter files in the media library
- Content list - Filter content in the content management view
- Device list - Filter devices in the device management view
- Filtered folders - Dynamic folders that show files matching a quick filter
List quick filters (V2)
Retrieve saved quick filters with enhanced response.
Minimum role: VIEWER with customer selector
Supports field selection via select parameter.
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. |
Responses
Request samples
- cURL
curl -X GET 'https://{server}/api/v2/quickFilter/?page=0&size=20' \ -H 'Authorization: Bearer <token>'
Response samples
- 200
{- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "totalElements": 0,
- "totalPages": 0,
- "size": 0,
- "content": [
- {
- "id": "string",
- "name": "string",
- "filteredEntityType": "FILE",
- "listed": true,
- "custom": true,
- "criteria": {
- "type": "FILE",
- "search": "string",
- "searchRecursively": true,
- "name": "string",
- "tags": [
- "string"
], - "folderId": "string",
- "validFileOnly": false,
- "undefinedValidityValid": true,
- "groupId": "string",
- "deviceGroupId": "string"
}, - "customerId": 0,
- "readOnly": true,
- "teamAccessList": {
- "teams": [
- {
- "id": "string",
- "readOnly": true
}
]
}, - "campaignUsageDetails": {
- "count": 0,
- "campaigns": [
- {
- "id": "string",
- "name": "string"
}
]
}, - "messageUsageDetails": {
- "count": 0,
- "messages": [
- {
- "id": "string",
- "name": "string"
}
]
}
}
]
}List quick filters
Retrieve paginated quick filters.
Minimum role: VIEWER with customer selector
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": [
- {
- "id": "string",
- "name": "string",
- "filteredEntityType": "FILE",
- "listed": true,
- "custom": true,
- "criteria": {
- "type": "FILE",
- "search": "string",
- "searchRecursively": true,
- "name": "string",
- "tags": [
- "string"
], - "folderId": "string",
- "validFileOnly": false,
- "undefinedValidityValid": true,
- "groupId": "string",
- "deviceGroupId": "string"
}, - "customerId": 0,
- "readOnly": true,
- "teamAccessList": {
- "teams": [
- {
- "id": "string",
- "readOnly": true
}
]
}, - "campaignUsageDetails": {
- "count": 0,
- "campaigns": [
- {
- "id": "string",
- "name": "string"
}
]
}, - "messageUsageDetails": {
- "count": 0,
- "messages": [
- {
- "id": "string",
- "name": "string"
}
]
}
}
]
}Create quick filter
Create a new saved filter.
Minimum role: EDITOR with customer selector
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 Display name | ||||||||||||
| filteredEntityType required | string (FilteredEntityType) Enum: "FILE" "CONTENT" "DEVICE" Entity type that the quick filter applies to.
| ||||||||||||
| listed | boolean Default: false Show in filter dropdown | ||||||||||||
| custom | boolean Default: false Mark as custom filter | ||||||||||||
object (QuickFilterCriteria) Filter criteria. Structure depends on The
| |||||||||||||
object (TeamAccessList) |
Responses
Request samples
- Payload
- cURL
{- "name": "Online Devices",
- "filteredEntityType": "DEVICE",
- "listed": true,
- "criteria": {
- "type": "DEVICE",
- "search": "deviceStatus=ONLINE"
}
}Response samples
- 200
{- "id": "string",
- "name": "string",
- "filteredEntityType": "FILE",
- "listed": true,
- "custom": true,
- "criteria": {
- "type": "FILE",
- "search": "string",
- "searchRecursively": true,
- "name": "string",
- "tags": [
- "string"
], - "folderId": "string",
- "validFileOnly": false,
- "undefinedValidityValid": true,
- "groupId": "string",
- "deviceGroupId": "string"
}, - "customerId": 0,
- "readOnly": true,
- "teamAccessList": {
- "teams": [
- {
- "id": "string",
- "readOnly": true
}
]
}, - "campaignUsageDetails": {
- "count": 0,
- "campaigns": [
- {
- "id": "string",
- "name": "string"
}
]
}, - "messageUsageDetails": {
- "count": 0,
- "messages": [
- {
- "id": "string",
- "name": "string"
}
]
}
}Update quick filter
Update an existing quick filter.
Minimum role: EDITOR
Authorizations:
query Parameters
| quickFilterId required | string Quick filter ID to update |
Request Body schema: application/jsonrequired
| name | string | ||||||||||||
| listed | boolean | ||||||||||||
| custom | boolean | ||||||||||||
object (QuickFilterCriteria) Filter criteria. Structure depends on The
| |||||||||||||
object (TeamAccessList) |
Responses
Request samples
- Payload
{- "name": "string",
- "listed": true,
- "custom": true,
- "criteria": {
- "type": "FILE",
- "search": "string",
- "searchRecursively": true,
- "name": "string",
- "tags": [
- "string"
], - "folderId": "string",
- "validFileOnly": false,
- "undefinedValidityValid": true,
- "groupId": "string",
- "deviceGroupId": "string"
}, - "teamAccessList": {
- "teams": [
- {
- "id": "string",
- "readOnly": true
}
]
}
}Response samples
- 200
{- "id": "string",
- "name": "string",
- "filteredEntityType": "FILE",
- "listed": true,
- "custom": true,
- "criteria": {
- "type": "FILE",
- "search": "string",
- "searchRecursively": true,
- "name": "string",
- "tags": [
- "string"
], - "folderId": "string",
- "validFileOnly": false,
- "undefinedValidityValid": true,
- "groupId": "string",
- "deviceGroupId": "string"
}, - "customerId": 0,
- "readOnly": true,
- "teamAccessList": {
- "teams": [
- {
- "id": "string",
- "readOnly": true
}
]
}, - "campaignUsageDetails": {
- "count": 0,
- "campaigns": [
- {
- "id": "string",
- "name": "string"
}
]
}, - "messageUsageDetails": {
- "count": 0,
- "messages": [
- {
- "id": "string",
- "name": "string"
}
]
}
}Get all quick filters
Retrieve all quick filters (non-paginated).
Minimum role: VIEWER with customer selector
Note: Use paginated endpoints for large datasets.
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| search | string WBQL filter expression. Operators: |
Responses
Response samples
- 200
[- {
- "id": "string",
- "name": "string",
- "filteredEntityType": "FILE",
- "listed": true,
- "custom": true,
- "criteria": {
- "type": "FILE",
- "search": "string",
- "searchRecursively": true,
- "name": "string",
- "tags": [
- "string"
], - "folderId": "string",
- "validFileOnly": false,
- "undefinedValidityValid": true,
- "groupId": "string",
- "deviceGroupId": "string"
}, - "customerId": 0,
- "readOnly": true,
- "teamAccessList": {
- "teams": [
- {
- "id": "string",
- "readOnly": true
}
]
}, - "campaignUsageDetails": {
- "count": 0,
- "campaigns": [
- {
- "id": "string",
- "name": "string"
}
]
}, - "messageUsageDetails": {
- "count": 0,
- "messages": [
- {
- "id": "string",
- "name": "string"
}
]
}
}
]Update team assignments
Update team assignments for a quick filter.
Minimum role: OWNER with customer selector
Authorizations:
query Parameters
| customerId | integer Customer/tenant ID for multi-tenant filtering.
|
| quickFilterId required | string Quick filter 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"
]
}