Download OpenAPI specification:
Beta — This API is currently in beta. If you encounter any issues or have feedback, please get in touch.
The AbleSign API allows you to manage your digital signage screens, content, and playlists programmatically. New to the API? See the Getting Started guide.
All requests require an API key passed as a Bearer token in the Authorization header:
Authorization: Bearer ak_your_api_key_here
API keys can be created in the AbleSign CMS under Account > API Keys.
If your account has multiple workspaces, include a Workspace-Id header to specify which workspace to operate on:
Workspace-Id: 123
If omitted, the default workspace is used.
List endpoints return paginated results. Use limit and offset query parameters to control pagination.
The response includes totalItems, limit, and offset metadata.
Default limit is 25. Maximum limit is 200.
Error responses follow a consistent format:
{
"status": "error",
"code": "ERROR_CODE",
"message": "Human-readable description"
}
| Code | HTTP Status | Description |
|---|---|---|
VALIDATION_ERROR |
400 | Invalid request parameters or body |
NOT_FOUND |
404 | Resource not found |
UNSUPPORTED_FILE_TYPE |
400 | File type is not supported |
FILE_TYPE_MISMATCH |
400 | Replacement file must match the original type |
FILE_SIZE_TOO_LARGE |
400 | File exceeds the maximum allowed size |
STORAGE_LIMIT_EXCEEDED |
413 | Organization storage limit reached |
UPLOAD_RATE_LIMIT_EXCEEDED |
429 | Too many uploads in a short period |
UNABLE_TO_PROCESS_FILE |
500 | Server failed to process the uploaded file |
PLAYLIST_LIMIT_EXCEEDED |
400 | Playlist has too many items |
BATCH_LIMIT_EXCEEDED |
400 | Too many items in a batch operation |
ALREADY_REGISTERED |
409 | Screen registration code already in use |
RESOURCE_LIMIT_REACHED |
400 | Maximum number of resources reached for your organization |
RATE_LIMIT_EXCEEDED |
429 | Too many requests — try again shortly |
The API applies rate limits to protect the platform:
| Operation | Limits | Scope |
|---|---|---|
| Save playlist | 5/min, 20/hr | Per screen or screen group |
| Replace file | 5/min, 20/hr | Per media file |
| Update web app | 5/min, 20/hr | Per web app |
| Set screen group members | 5/min, 20/hr | Per screen group |
| File uploads | 200/day | Per organization |
When a rate limit is exceeded, the API returns a 429 status code with a RATE_LIMIT_EXCEEDED error code. Wait for the window to pass before retrying.
Returns a paginated list of screens in the active workspace.
| limit | integer [ 1 .. 200 ] Default: 25 Number of items to return (max 200) |
| offset | integer >= 0 Default: 0 Number of items to skip |
| title | string <= 255 characters Filter by title (partial match) |
| sortBy | string Enum: "title_asc" "title_desc" "creation_date_asc" "creation_date_desc" "heartbeat_date_asc" "heartbeat_date_desc" Sort order |
| orientations | string Comma-separated orientation filter (landscape, portrait, reverse_landscape, reverse_portrait) |
| onlineStatus | string Comma-separated status filter (online, offline) |
| screenTags | string Comma-separated tag filter |
{- "status": "success",
- "totalItems": 0,
- "limit": 0,
- "offset": 0,
- "data": [
- {
- "id": 0,
- "title": "string",
- "description": "string",
- "orientation": "landscape",
- "thumbnailURL": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "heartbeatTime": "2019-08-24T14:15:22Z",
- "softwareVersionCode": 0,
- "screenGroupId": 0,
- "popEnabled": true,
- "demo": true,
- "screenTags": [
- {
- "name": "string"
}
]
}
]
}Register a new screen using a pairing code displayed on the device.
| registrationCode required | string = 6 characters The 6-character code displayed on the device |
| title required | string <= 255 characters |
| description | string <= 255 characters |
| orientation required | string Enum: "landscape" "portrait" "reverse_portrait" "reverse_landscape" |
{- "registrationCode": "string",
- "title": "string",
- "description": "string",
- "orientation": "landscape"
}{- "status": "success",
- "data": {
- "id": 0,
- "title": "string",
- "description": "string",
- "orientation": "landscape",
- "thumbnailURL": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "heartbeatTime": "2019-08-24T14:15:22Z",
- "softwareVersionCode": 0,
- "screenGroupId": 0,
- "popEnabled": true,
- "demo": true,
- "screenTags": [
- {
- "name": "string"
}
], - "fitItem": "CenterCrop",
- "timezone": "string",
- "model": "string",
- "manufacturer": "string",
- "softwareVersionName": "string",
- "syncEnabled": true,
- "syncRole": "leader",
- "syncLeaderScreenId": 0,
- "screenOperatingHour": {
- "enabled": true,
- "cecControl": true,
- "workingMode": "on_hours",
- "monStart": "09:00:00",
- "monEnd": "17:00:00",
- "tueStart": "09:00:00",
- "tueEnd": "17:00:00",
- "wedStart": "09:00:00",
- "wedEnd": "17:00:00",
- "thuStart": "09:00:00",
- "thuEnd": "17:00:00",
- "friStart": "09:00:00",
- "friEnd": "17:00:00",
- "satStart": "09:00:00",
- "satEnd": "17:00:00",
- "sunStart": "09:00:00",
- "sunEnd": "17:00:00"
}
}
}{- "status": "success",
- "data": {
- "id": 0,
- "title": "string",
- "description": "string",
- "orientation": "landscape",
- "thumbnailURL": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "heartbeatTime": "2019-08-24T14:15:22Z",
- "softwareVersionCode": 0,
- "screenGroupId": 0,
- "popEnabled": true,
- "demo": true,
- "screenTags": [
- {
- "name": "string"
}
], - "fitItem": "CenterCrop",
- "timezone": "string",
- "model": "string",
- "manufacturer": "string",
- "softwareVersionName": "string",
- "syncEnabled": true,
- "syncRole": "leader",
- "syncLeaderScreenId": 0,
- "screenOperatingHour": {
- "enabled": true,
- "cecControl": true,
- "workingMode": "on_hours",
- "monStart": "09:00:00",
- "monEnd": "17:00:00",
- "tueStart": "09:00:00",
- "tueEnd": "17:00:00",
- "wedStart": "09:00:00",
- "wedEnd": "17:00:00",
- "thuStart": "09:00:00",
- "thuEnd": "17:00:00",
- "friStart": "09:00:00",
- "friEnd": "17:00:00",
- "satStart": "09:00:00",
- "satEnd": "17:00:00",
- "sunStart": "09:00:00",
- "sunEnd": "17:00:00"
}
}
}Partial update — only include the fields you want to change.
| id required | integer |
| title | string [ 1 .. 255 ] characters |
| description | string <= 255 characters |
| orientation | string Enum: "landscape" "portrait" "reverse_portrait" "reverse_landscape" Display orientation of the screen |
| fitItem | string Enum: "CenterCrop" "FitXY" How content is scaled to fit the screen (CenterCrop = fill and crop, FitXY = scale to fit with letterboxing) |
| timezone | string <= 255 characters IANA timezone for the screen (e.g. Europe/London) |
| screenTags | Array of strings Tags to assign to this screen (replaces existing tags) |
| syncEnabled | boolean Whether playlist synchronization with another screen is enabled |
| syncRole | string Enum: "leader" "follower" Role in playlist sync — leader controls playback timing, follower mirrors it |
| syncLeaderScreenId | integer or null ID of the leader screen (required when syncRole is follower) |
{- "title": "string",
- "description": "string",
- "orientation": "landscape",
- "fitItem": "CenterCrop",
- "timezone": "string",
- "screenTags": [
- "string"
], - "syncEnabled": true,
- "syncRole": "leader",
- "syncLeaderScreenId": 0
}{- "status": "success"
}{- "status": "success",
- "data": {
- "shufflePlay": true,
- "defaultTransition": "string",
- "defaultTransitionSpeedLabel": "very_slow",
- "enableImageTransitions": true,
- "enableWebappTransitions": true,
- "items": [
- {
- "id": 0,
- "mediafileId": 0,
- "webAppId": 0,
- "sequenceNumber": 0,
- "displayDuration": 0,
- "transition": "string",
- "transitionSpeedLabel": "string",
- "title": "string",
- "thumbnailURL": "string",
- "fileType": "string",
- "orientation": "string",
- "scheduleEnabled": true,
- "scheduleStartDate": "2019-08-24T14:15:22Z",
- "scheduleEndDate": "2019-08-24T14:15:22Z",
- "scheduleRrule": "string",
- "periodicScheduleEnabled": true,
- "monStart": "09:00:00",
- "monEnd": "17:00:00",
- "tueStart": "09:00:00",
- "tueEnd": "17:00:00",
- "wedStart": "09:00:00",
- "wedEnd": "17:00:00",
- "thuStart": "09:00:00",
- "thuEnd": "17:00:00",
- "friStart": "09:00:00",
- "friEnd": "17:00:00",
- "satStart": "09:00:00",
- "satEnd": "17:00:00",
- "sunStart": "09:00:00",
- "sunEnd": "17:00:00"
}
]
}
}Replaces the entire playlist. Send all items — existing items not included will be removed.
| id required | integer |
| defaultTransition | string or null |
| defaultTransitionSpeedLabel | string or null Enum: "very_slow" "slow" "medium" "fast" "very_fast" |
| enableImageTransitions | boolean |
| enableWebappTransitions | boolean |
| shufflePlay | boolean |
Array of objects <= 100 items |
{- "defaultTransition": "string",
- "defaultTransitionSpeedLabel": "very_slow",
- "enableImageTransitions": true,
- "enableWebappTransitions": true,
- "shufflePlay": true,
- "items": [
- {
- "mediafileId": 0,
- "webAppId": 0,
- "displayDuration": 9999999,
- "sequenceNumber": 0,
- "transition": "string",
- "transitionSpeedLabel": "very_slow",
- "scheduleEnabled": true,
- "scheduleStartDate": "2019-08-24T14:15:22Z",
- "scheduleEndDate": "2019-08-24T14:15:22Z",
- "scheduleRrule": "string",
- "periodicScheduleEnabled": true,
- "monStart": "09:00:00",
- "monEnd": "17:00:00",
- "tueStart": "09:00:00",
- "tueEnd": "17:00:00",
- "wedStart": "09:00:00",
- "wedEnd": "17:00:00",
- "thuStart": "09:00:00",
- "thuEnd": "17:00:00",
- "friStart": "09:00:00",
- "friEnd": "17:00:00",
- "satStart": "09:00:00",
- "satEnd": "17:00:00",
- "sunStart": "09:00:00",
- "sunEnd": "17:00:00"
}
]
}{- "status": "success"
}Adds one or more items to a screen's existing playlist without replacing it.
| id required | integer |
required | Array of objects [ 1 .. 50 ] items |
| position required | string Enum: "start" "end" Where to insert the items in the playlist |
{- "items": [
- {
- "mediafileId": 0,
- "webAppId": 0,
- "displayDuration": 9999999
}
], - "position": "start"
}{- "status": "success"
}| limit | integer [ 1 .. 200 ] Default: 25 Number of items to return (max 200) |
| offset | integer >= 0 Default: 0 Number of items to skip |
| title | string <= 255 characters Filter by title (partial match) |
| sortBy | string Enum: "title_asc" "title_desc" "creation_date_asc" "creation_date_desc" Sort order |
{- "status": "success",
- "totalItems": 0,
- "limit": 0,
- "offset": 0,
- "data": [
- {
- "id": 0,
- "title": "string",
- "thumbnailURL": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "screens": [
- {
- "id": 0
}
]
}
]
}| title required | string <= 255 characters |
| description | string <= 255 characters |
{- "title": "string",
- "description": "string"
}{- "status": "success",
- "data": {
- "id": 0,
- "title": "string",
- "thumbnailURL": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "screens": [
- {
- "id": 0
}
], - "description": "string",
- "orientation": "landscape"
}
}{- "status": "success",
- "data": {
- "id": 0,
- "title": "string",
- "thumbnailURL": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "screens": [
- {
- "id": 0
}
], - "description": "string",
- "orientation": "landscape"
}
}Partial update — only include the fields you want to change.
| id required | integer |
| title | string [ 1 .. 255 ] characters |
| description | string <= 255 characters |
{- "title": "string",
- "description": "string"
}{- "status": "success"
}{- "status": "success",
- "data": {
- "shufflePlay": true,
- "defaultTransition": "string",
- "defaultTransitionSpeedLabel": "very_slow",
- "enableImageTransitions": true,
- "enableWebappTransitions": true,
- "items": [
- {
- "id": 0,
- "mediafileId": 0,
- "webAppId": 0,
- "sequenceNumber": 0,
- "displayDuration": 0,
- "transition": "string",
- "transitionSpeedLabel": "string",
- "title": "string",
- "thumbnailURL": "string",
- "fileType": "string",
- "orientation": "string",
- "scheduleEnabled": true,
- "scheduleStartDate": "2019-08-24T14:15:22Z",
- "scheduleEndDate": "2019-08-24T14:15:22Z",
- "scheduleRrule": "string",
- "periodicScheduleEnabled": true,
- "monStart": "09:00:00",
- "monEnd": "17:00:00",
- "tueStart": "09:00:00",
- "tueEnd": "17:00:00",
- "wedStart": "09:00:00",
- "wedEnd": "17:00:00",
- "thuStart": "09:00:00",
- "thuEnd": "17:00:00",
- "friStart": "09:00:00",
- "friEnd": "17:00:00",
- "satStart": "09:00:00",
- "satEnd": "17:00:00",
- "sunStart": "09:00:00",
- "sunEnd": "17:00:00"
}
]
}
}Replaces the entire playlist. All member screens will receive the updated playlist.
| id required | integer |
| defaultTransition | string or null |
| defaultTransitionSpeedLabel | string or null Enum: "very_slow" "slow" "medium" "fast" "very_fast" |
| enableImageTransitions | boolean |
| enableWebappTransitions | boolean |
| shufflePlay | boolean |
Array of objects <= 100 items |
{- "defaultTransition": "string",
- "defaultTransitionSpeedLabel": "very_slow",
- "enableImageTransitions": true,
- "enableWebappTransitions": true,
- "shufflePlay": true,
- "items": [
- {
- "mediafileId": 0,
- "webAppId": 0,
- "displayDuration": 9999999,
- "sequenceNumber": 0,
- "transition": "string",
- "transitionSpeedLabel": "very_slow",
- "scheduleEnabled": true,
- "scheduleStartDate": "2019-08-24T14:15:22Z",
- "scheduleEndDate": "2019-08-24T14:15:22Z",
- "scheduleRrule": "string",
- "periodicScheduleEnabled": true,
- "monStart": "09:00:00",
- "monEnd": "17:00:00",
- "tueStart": "09:00:00",
- "tueEnd": "17:00:00",
- "wedStart": "09:00:00",
- "wedEnd": "17:00:00",
- "thuStart": "09:00:00",
- "thuEnd": "17:00:00",
- "friStart": "09:00:00",
- "friEnd": "17:00:00",
- "satStart": "09:00:00",
- "satEnd": "17:00:00",
- "sunStart": "09:00:00",
- "sunEnd": "17:00:00"
}
]
}{- "status": "success"
}Returns the screens that belong to this screen group.
| id required | integer |
{- "status": "success",
- "data": [
- {
- "id": 0,
- "title": "string",
- "description": "string",
- "orientation": "landscape",
- "thumbnailURL": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "heartbeatTime": "2019-08-24T14:15:22Z",
- "softwareVersionCode": 0,
- "screenGroupId": 0,
- "popEnabled": true,
- "demo": true,
- "screenTags": [
- {
- "name": "string"
}
]
}
]
}Sets which screens belong to this group. Pass an array of screen IDs. Screens not in the array will be removed from the group.
| id required | integer |
| screens required | Array of integers <= 100 items Array of screen IDs to assign to this group |
{- "screens": [
- 0
]
}{- "status": "success"
}| limit | integer [ 1 .. 200 ] Default: 25 Number of items to return (max 200) |
| offset | integer >= 0 Default: 0 Number of items to skip |
| title | string <= 255 characters Filter by title (partial match) |
| sortBy | string Enum: "title_asc" "title_desc" "creation_date_asc" "creation_date_desc" "start_date_asc" "start_date_desc" "expiry_date_asc" "expiry_date_desc" Sort order |
| folderId | integer Filter by folder ID |
| formats | string Comma-separated format filter (image, video). Case-insensitive. |
| orientations | string Comma-separated orientation filter (landscape, portrait) |
| tags | string <= 255 characters Comma-separated tag filter |
| fromDate | string <date-time> Filter to files created on or after this date |
{- "status": "success",
- "totalItems": 0,
- "limit": 0,
- "offset": 0,
- "data": [
- {
- "id": 0,
- "title": "string",
- "originalFilename": "string",
- "fileType": "image",
- "fileSize": 0,
- "orientation": "landscape",
- "duration": 0,
- "width": 0,
- "height": 0,
- "thumbnailURL": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "startDate": "2019-08-24T14:15:22Z",
- "expirationDate": "2019-08-24T14:15:22Z",
- "demo": true,
- "folderId": 0,
- "tags": [
- {
- "name": "string"
}
]
}
]
}Returns file details including a signed access URL for downloading the file.
| id required | integer |
{- "status": "success",
- "data": {
- "id": 0,
- "title": "string",
- "originalFilename": "string",
- "fileType": "image",
- "fileSize": 0,
- "orientation": "landscape",
- "duration": 0,
- "width": 0,
- "height": 0,
- "thumbnailURL": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "startDate": "2019-08-24T14:15:22Z",
- "expirationDate": "2019-08-24T14:15:22Z",
- "demo": true,
- "folderId": 0,
- "tags": [
- {
- "name": "string"
}
], - "description": "string",
- "fileBitrate": 0,
- "accessUrl": "string"
}
}Partial update — only include the fields you want to change.
| id required | integer |
| title | string [ 1 .. 255 ] characters |
| description | string <= 255 characters |
| startDate | string or null <date-time> Schedule start date (file won't appear in playlists before this date) |
| expirationDate | string or null <date-time> Expiration date (file will be removed from playlists after this date) |
| tags | Array of strings <= 20 items Tags to assign to this file (replaces existing tags) |
{- "title": "string",
- "description": "string",
- "startDate": "2019-08-24T14:15:22Z",
- "expirationDate": "2019-08-24T14:15:22Z",
- "tags": [
- "string"
]
}{- "status": "success"
}Step 1 of the upload flow. Returns a signed S3 URL to upload the file to.
Upload flow:
init_upload with the filename, MIME type, and file sizeurl using an HTTP PUT requestfinish_upload with the uploadId to complete the process| filename required | string Original filename (e.g. "photo.jpg") |
| mimeType required | string MIME type (e.g. "image/jpeg", "video/mp4") |
| size required | integer File size in bytes |
| folderId | integer Optional folder ID to upload into |
{- "filename": "string",
- "mimeType": "string",
- "size": 0,
- "folderId": 0
}{- "status": "success",
- "data": {
- "url": "string",
- "uploadId": 0
}
}Step 3 of the upload flow. Call this after uploading the file to S3. The server will process the file (generate thumbnail, extract metadata) and create the media file record.
| uploadId required | integer The uploadId returned from init_upload |
{- "uploadId": 0
}{- "status": "success",
- "data": {
- "id": 0,
- "title": "string",
- "originalFilename": "string",
- "fileType": "image",
- "fileSize": 0,
- "orientation": "landscape",
- "duration": 0,
- "width": 0,
- "height": 0,
- "thumbnailURL": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "startDate": "2019-08-24T14:15:22Z",
- "expirationDate": "2019-08-24T14:15:22Z",
- "demo": true,
- "folderId": 0,
- "tags": [
- {
- "name": "string"
}
], - "description": "string",
- "fileBitrate": 0,
- "accessUrl": "string"
}
}Step 1 of the replace flow. Replaces the content of an existing media file while keeping the same ID. The replacement file must be the same type (e.g. image for image, video for video).
Replace flow:
init_replace_upload with the filename, MIME type, size, and the ID of the file to replaceurl using an HTTP PUT requestfinish_replace_upload with the uploadId to complete the process| filename required | string Original filename of the replacement file |
| mimeType required | string MIME type (must match the existing file's type) |
| size required | integer File size in bytes |
| mediafileId required | integer ID of the existing media file to replace |
{- "filename": "string",
- "mimeType": "string",
- "size": 0,
- "mediafileId": 0
}{- "status": "success",
- "data": {
- "url": "string",
- "uploadId": 0
}
}Step 3 of the replace flow. Call this after uploading the replacement file to S3. The server will process the new file and update the existing media file record.
| uploadId required | integer The uploadId returned from init_replace_upload |
{- "uploadId": 0
}{- "status": "success",
- "data": {
- "id": 0,
- "title": "string",
- "originalFilename": "string",
- "fileType": "image",
- "fileSize": 0,
- "orientation": "landscape",
- "duration": 0,
- "width": 0,
- "height": 0,
- "thumbnailURL": "string",
- "createdAt": "2019-08-24T14:15:22Z",
- "startDate": "2019-08-24T14:15:22Z",
- "expirationDate": "2019-08-24T14:15:22Z",
- "demo": true,
- "folderId": 0,
- "tags": [
- {
- "name": "string"
}
], - "description": "string",
- "fileBitrate": 0,
- "accessUrl": "string"
}
}| limit | integer [ 1 .. 200 ] Default: 25 Number of items to return (max 200) |
| offset | integer >= 0 Default: 0 Number of items to skip |
| title | string <= 255 characters Filter by title (partial match) |
| sortBy | string Enum: "title_asc" "title_desc" "creation_date_asc" "creation_date_desc" Sort order |
| folderId | integer Filter by parent folder ID |
{- "status": "success",
- "totalItems": 0,
- "limit": 0,
- "offset": 0,
- "data": [
- {
- "id": 0,
- "title": "string",
- "parentFolderId": 0,
- "createdAt": "2019-08-24T14:15:22Z"
}
]
}| title required | string <= 255 characters |
| parentFolderId | integer or null ID of the parent folder (null for root level) |
{- "title": "string",
- "parentFolderId": 0
}{- "status": "success",
- "data": {
- "id": 0,
- "title": "string",
- "parentFolderId": 0,
- "createdAt": "2019-08-24T14:15:22Z"
}
}| id required | integer |
| title | string [ 1 .. 255 ] characters |
{- "title": "string"
}{- "status": "success"
}| limit | integer [ 1 .. 200 ] Default: 25 Number of items to return (max 200) |
| offset | integer >= 0 Default: 0 Number of items to skip |
| title | string <= 255 characters Filter by title (partial match) |
| sortBy | string Enum: "title_asc" "title_desc" "creation_date_asc" "creation_date_desc" "start_date_asc" "start_date_desc" "expiry_date_asc" "expiry_date_desc" Sort order |
| tags | string <= 255 characters Comma-separated tag filter |
| fromDate | string <date-time> Filter to web apps created on or after this date |
{- "status": "success",
- "totalItems": 0,
- "limit": 0,
- "offset": 0,
- "data": [
- {
- "id": 0,
- "title": "string",
- "thumbnailURL": "string",
- "thumbnailPending": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "startDate": "2019-08-24T14:15:22Z",
- "expirationDate": "2019-08-24T14:15:22Z",
- "tags": [
- {
- "name": "string"
}
]
}
]
}Create a web app from a URL or HTML content. You must provide either url or html.
| title required | string <= 255 characters |
| description | string <= 255 characters |
| url | string <uri> <= 2048 characters URL of the website to display. Required if html is not provided. |
| html | string <= 5000000 characters Raw HTML content. Required if url is not provided. |
{- "title": "string",
- "description": "string",
- "html": "string"
}{- "status": "success",
- "data": {
- "id": 0,
- "title": "string",
- "thumbnailURL": "string",
- "thumbnailPending": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "startDate": "2019-08-24T14:15:22Z",
- "expirationDate": "2019-08-24T14:15:22Z",
- "tags": [
- {
- "name": "string"
}
], - "description": "string",
- "url": "string",
- "zoom": 75,
- "accessUrl": "string"
}
}{- "status": "success",
- "data": {
- "id": 0,
- "title": "string",
- "thumbnailURL": "string",
- "thumbnailPending": true,
- "createdAt": "2019-08-24T14:15:22Z",
- "startDate": "2019-08-24T14:15:22Z",
- "expirationDate": "2019-08-24T14:15:22Z",
- "tags": [
- {
- "name": "string"
}
], - "description": "string",
- "url": "string",
- "zoom": 75,
- "accessUrl": "string"
}
}Partial update — only include the fields you want to change.
| id required | integer |
| title | string [ 1 .. 255 ] characters |
| description | string <= 255 characters |
| url | string <uri> <= 2048 characters URL of the website |
| startDate | string or null <date-time> Schedule start date (web app won't appear in playlists before this date) |
| expirationDate | string or null <date-time> Expiration date (web app will be removed from playlists after this date) |
| zoom | integer Enum: 75 80 90 100 125 150 175 200 225 Zoom level applied when rendering the web page (default: 100) |
| tags | Array of strings <= 20 items Tags to assign to this web app (replaces existing tags) |
{- "title": "string",
- "description": "string",
- "startDate": "2019-08-24T14:15:22Z",
- "expirationDate": "2019-08-24T14:15:22Z",
- "zoom": 75,
- "tags": [
- "string"
]
}{- "status": "success"
}