Q-Play API Documentation

Introduction

Q-Play API operates over HTTPS and uses the JSON (JavaScript Object Notation) data format.
The API is a RESTful API that uses HTTP methods and HTTP status codes to specify requests and responses.

Rest API URL: https://api.q-play.net


Example
$.ajax({
    type: "GET",
    dataType: "json",
    url: "https://api.q-play.net/accounts",
    headers: {
        'AccountToken': "1234abcd",
        'SecretToken': "4321abcd",
        'Content-Type': "application/json"
    },
    success: function(data) {
        $("#output").text(JSON.stringify(data));
    }
}); 

Authentication

HTTP Basic Authentication. Add these headers to your all requests.

Goto “Account settings” -> “API” (Kontoindstillinger -> API)
Here you can see your “AccountToken” and generate your “SecretToken”

Header Description
AccountToken This is your account token, and is defined by your account
SecretToken This is an secret token for your api, it can always be updated in your account settings.

Basic

This section describes the basics such as sorting, filtering, searching, pagination and HTTP status codes.


Sorting

Sorting is case insensitive.

Sort ascending
Sorting is default ascending and is done by query string parameter ‘sort’.

Example: ?sort=name

Sort descending
Add ‘-’ before proportie

Example: ?sort=-name

Sort by multiple properties
It is possible to sort by multiple properties by separating by commas. It is allowed to have mixed direction.

Example: ?sort=-name,age


Filter

You can filter your results so it only contains items which match a simple logical expression using the query string parameter ‘filter’.

Example: ?filter=name:elvis
Example: ?filter=name%elv
Example: ?filter=id>:20
Example: ?filter=id>:20$and$name:elvis

Comparison operators
Note ":" is used instead of "="

NameSyntax
Equals:
Not equals!
Greater than>
Less than<
Greater than or equal>:
Less than or equal<:
Is Null~
Like%
And$and$
Or$or$


Pagination

Per page
This parameter specify the maximum number of results for at page. The default value is 20 results.

Example: ?perPage=15

Page
This parameter specify the page of results to be returned. If is not set the first page (1) of results will be be returned.

Example: ?page=2&perPage=15

Offset (Not fully implemented yet)
This parameter specify the start position of results.

Example: ?per_page=5&page=4 is equivalent to ?per_page=5&offset=15

Response
If endpoint has pagination, then object pagination will be added to the response.

Example of response
{
    …,
    "pagination": {
        "page": 3,
        "perPage": 15,
        "prevPage": 2,
        "nextPage": 4,
        "lastPage": 8,
        "totalResults": 119
    }
}
Parameter Type Max length Description
pagination object
pagination.page integer Current page
pagination.perPage integer Results per page
pagination.prevPage integer Previous page (NULL is none)
pagination.nextPage integer Next page (NULL is none)
pagination.lastPage integer Last page
pagination.totalResults integer The number of results

HTTP status codes

200 OK
Response to a successful GET, PUT, PATCH or DELETE.

201 Created
Response to a POST that results in a creation.

204 No Content
Response to a successful request that won't be returning anything, like a DELETE request.

400 Bad Request
The request is malformed.

401 Unauthorized
When no or invalid authentication details are provided.

403 Forbidden
When authentication succeeded but authenticated user doesn't have access to the resource.

404 Not Found
When a non-existent resource is requested.

405 Method Not Allowed
When an HTTP method is being requested that isn't allowed for the authenticated user.

415 Unsupported Media Type
If incorrect content type was provided as part of the request.

429 Too Many Requests
When a request is rejected due to rate limiting.

In addition to HTTP status codes, an error object with code, message and description will be returned

Example
{
"error": {
"code": 400,
“message”: “Bad Request”,
"description": "property name: is too long"
}


Endpoints

In this section, all public endpoints are described.

All endpoints are using HTTP method on a specific type of call made to the server.
Below-given HTTP method for the action performed.

 GET Read, View
 POST New, insert
 PUT Update
 DELETE Delete, remove


Accounts

All account endpoints are listed below.

If you're a distribute and have access to other accounts, then you have the opportunity to control them. Otherwise you can only see your own account.


Example of response
{
    "success": {
        "code": 200,
        "message": "OK",
        "description": "Successful"
    },
    "accounts": [
        {
            "id": 2,
            "token": "123456789abcdefg",
            "company": {
                "name": "NordicScreen",
                "address1": "Normansvej 1",
                "address2": "",
                "zipcode": "8920",
                "city": "Randers NV",
                "country": "Denmark",
                "telephone": "11223344",
                "mobilePhone": "11223344",
                "homepage": "www.nordicscreen.dk"
            },
            "invoice": {
                "email": "support@nordicscreen.dk"
            },
            "contactPerson": {
                "name": "Daniel San",
                "email": "someone@nordicscreen.dk",
                "telephone": "40119011"
            },
            "deleted": false
        }
    ],
    "pagination": {
        "page": 1,
        "perPage": 1,
        "prevPage": null,
        "nextPage": 2,
        "lastPage": 4,
        "totalResults": 4
    }
}

/accounts

If you're a distribute and have access to other accounts. Otherwise you can only see your own account.

Schema
accounts.get.schema.json

Filterable properties
id, company.name, company.address1, company.zipcode, company.city

Sortable properties
id, company.name, company.address1, company.zipcode, company.city

Response
The response contains a array of accounts objects with structure given-below.

Properties

NameTypeMax lengthSortableFilterableDescription
idinteger XX 
distributorIDinteger    
tokenstring50   
companyobject    
company.namestring150XX 
company.address1string150XX 
company.address2string150   
company.zipcodestring20XX 
company.citystring80XX 
company.countrystring80   
company.telephonestring30   
company.mobilePhonestring30   
company.homepagestring80   
company.cvrstring20   
invoiceobject    
invoice.emailstring150   
contactPersonobject    
contactPerson.namestring150   
contactPerson.emailstring150   
contactPerson.telephonestring30   
deletedbool    

/accounts/{accountID}

If you're a distribute and have access to other accounts. Otherwise you can only access your own account.

Schema
accounts.id.get.schema.json

Response
The response contains a account object with structure given-below.

Properties

NameTypeMax lengthDescription
idinteger  
distributorIDinteger  
tokenstring50 
companyobject  
company.namestring150 
company.address1string150 
company.address2string150 
company.zipcodestring20 
company.citystring80 
company.countrystring80 
company.telephonestring30 
company.mobilePhonestring30 
company.homepagestring80 
company.cvrstring20 
invoiceobject  
invoice.emailstring150 
contactPersonobject  
contactPerson.namestring150 
contactPerson.emailstring150 
contactPerson.telephonestring30 
deletedbool  

/accounts (Not implemented yet)

This allows you to create a new account.

Schema
accounts.post.schema.json

Properties

NameTypeMax lengthReadOnlyDescription
idinteger X 
distributorIDinteger X 
tokenstring50X 
companyobject   
company.namestring150  
company.address1string150  
company.address2string150  
company.zipcodestring20  
company.citystring80  
company.countrystring80  
company.telephonestring30  
company.mobilePhonestring30  
company.homepagestring80  
company.cvrstring20  
invoiceobject   
invoice.emailstring150  
contactPersonobject   
contactPerson.namestring150  
contactPerson.emailstring150  
contactPerson.telephonestring30  

Example of response
{
    "success": {
        "code": 200,
        "message": "OK",
        "description": "Successful"
    },
    "account": {
        "id": 2,
        "token": "123456789abcdefg",
        "distributorID": 1,
        "company":{
            "name": "Nordicscreen ApS",
            "address1": "Normansvej 1",
            "address2": "",
            "zipcode": "8920",
            "city": "Randers NV",
            "country": "Denmark",
            "telephone": "11223344",
            "mobilePhone": "11223344",
            "homepage": "www.nordicscreen.dk"
        },
        "invoice": {
            "email": "support@nordicscreen.dk"
        },
        "contactPerson":{
            "name": "Daniel San",
            "email": "someone@nordicscreen.dk",
            "telephone": "11223344"
        },
        "deleted": false
    }
}

/accounts/{accountID}   OR   /accounts

This give opportunity to update an existing account.
If you're a distribute and have access to other accounts. Then you can set {accountID} to change other accounts.
If you want to change your API account then you can use "/accounts" instead of "/accounts/{yourAccountID}.

Schema
accounts.put.schema.json

Response
The response contains a single account object.

Properties

Properties

NameTypeMax lengthReadOnlyDescription
idinteger X 
distributorIDinteger X 
tokenstring50X 
companyobject   
company.namestring150  
company.address1string150  
company.address2string150  
company.zipcodestring20  
company.citystring80  
company.countrystring80  
company.telephonestring30  
company.mobilePhonestring30  
company.homepagestring80  
company.cvrstring20  
invoiceobject   
invoice.emailstring150  
contactPersonobject   
contactPerson.namestring150  
contactPerson.emailstring150  
contactPerson.telephonestring30  
deletedbool X 

/accounts/{accountID} (Not implemented yet)

If you're a distribute and have access to other accounts.
This will delete an account. This operation will response HTTP Status Code 204 on success.


/accounts/{accountID}/users

If you're a distribute and have access to other accounts. Then this allows you to get all users for the account.

Schema
accounts.id.users.get.schema.json

Filterable properties
id, name, country, language, title, email

Sortable properties
id, name, country, language, title, email

Response
The response contains a array of users objects with structure given-below.

Properties

NameTypeMax lengthSortableFilterableDescription
idinteger XX 
accountIDinteger    
tokenstring50   
namestring150XX 
countrystring2XXISO 3166-1 alfa-2. Eks DK, NO, GB
languagestring3XXISO 639-2. Available is dan, eng, deu
titlestring150XX 
emailstring255XX 
telephonestring30   
mobilePhonestring30   
lastSeendate-time   ISO 8601 - Eks. 2019-03-31T11:58:30+01:00
deletedbool    

/accounts/{accountID}/players

If you're a distribute and have access to other accounts. Then this allows you to get all players for the account.

Schema
accounts.id.players.get.schema.json

Filterable properties
id, title, type

Sortable properties
id, title, type

Response
The response contains a array of players objects with structure given-below.

Properties

NameTypeMax lengthSortableFilterableDescription
idinteger XX 
accountIDinteger    
tokenstring50   
titlestring150XX 
typestring XX3: Chromebit, 4: Windows, 5: Raspberry
settingobject    
setting.rotateinteger   0: 0 degrees, 1: 90 degrees, 2: 180 degrees, 3: 270 degrees
setting.overscaninteger   0: Underscan, 1: Overscan, 2: Custom (use customWidth, customHeight)
setting.customWidthinteger   Custom width in pixel
setting.customHeightinteger   Custom height in pixel
deviceobject    
device.totalMemoryinteger   Total memory in bytes, reported back from the device.
device.availMemoryinteger   Available memory in bytes, reported back from the device.
device.appVersionstring15  Running app version (example 0.28.0), reported back from the device.
onOffobject    
onOff.activebool   Activate on/off schedule (true: on, false: off)
onOff.schedulestring   JSON format [{turnOnTime: 08:00, turnOffTime: 16:00}, {turnOnTime: 07:00,...] starting with monday.
attachedDatedata-time   ISO 8601 - Eks. 2019-03-31T11:58:30+01:00
createdDatedata-time   ISO 8601 - Eks. 2019-03-31T11:58:30+01:00
lastConnectTimedata-time   ISO 8601 - Eks. 2019-03-31T11:58:30+01:00
deletedbool    

/accounts/{accountID}/medialists

If you're a distribute and have access to other accounts. Then this allows you to get all medialists for the account.

Schema
accounts.id.medialists.get.schema.json

Filterable properties
id, groupID, title

Sortable properties
id, groupID, title

Response
The response contains a array of medialists objects with structure given-below.

Properties

NameTypeMax lengthSortableFilterableDescription
idinteger XX 
accountIDinteger    
groupIDinteger XX 
titlestring255XX 
deletedbool    

/accounts/{accountID}/users (Not implemented yet)

If you're a distribute and have access to other accounts. Then this allows you to create a new user on other account.

Schema
accounts.id.users.post.schema.json

Required properties
name, password, language, email

Response
The response contains a user object with structure given-below.

Properties

NameTypeMax lengthReadOnlyRequiredDescription
idinteger X  
accountIDinteger X  
tokenstring50X  
namestring150 X 
passwordstring  XIs encrypted in database. Note: Will not be returned in the response
countrystring2  ISO 3166-1 alfa-2. Eks DK, NO, GB
languagestring3 XISO 639-2. Available is dan, eng, deu
titlestring150   
emailstring255 X 
telephonestring30   
mobilePhonestring30   

/accounts/{accountID}/medialists (Not implemented yet)

If you're a distribute and have access to other accounts. Then this allows you to create a new medialist on other account.

Schema
accounts.id.medialists.post.schema.json

Required properties
title

Response
The response contains a medialist object with structure given-below.

Properties

NameTypeMax lengthReadOnlyRequiredDescription
idinteger X  
accountIDinteger X  
groupIDinteger    
titlestring255 X 

/accounts/{accountID}/files (Not implemented yet)

If you're a distribute and have access to other accounts. Then this allows you to create a new file on other account.

Schema
accounts.id.files.post.schema.json

Required properties
name, extension, fileUrl

Response
The response contains a file object with structure given-below.

Properties

NameTypeMax lengthReadOnlyRequiredDescription
idinteger X  
accountIDinteger X  
folderIDinteger   Parent folder id. -1 is root folder
tokenstring50X  
namestring255 X 
extensionstring10 XExample: jpg, png, avi
sizeinteger X File size in bytes.
fileUrlstring  XFile url for file to upload. Note vil not be return in response.

Users

All user endpoints are listed below.


Example of response
{
    "success": {
        "code": 200,
        "message": "OK",
        "description": "Successful"
    },
    "users": [
        {
            "id": 70,
            "accountID": 2,
            "token": "qwertyuio123456789qwertyuio",
            "name": "Daniel San",
            "country": "DK",
            "language": "dan",
            "title": "Udvikler",
            "email": "someone@nordicscreen.dk",
            "telephone": "40119011",
            "mobilePhone": "40119011",
            "lastSeen": "2019-03-31T11:58:30+01:00",
            "deleted": false
        },
        {
            "id": 497,
            "accountID": 2,
            "token": "asdfghjk12345678asdfghjk",
            "name": "Hugo Nielsen",
            "country": 1,
            "language": "dan",
            "title": "",
            "email": "daniel@tdplay.dk",
            "telephone": "",
            "mobilePhone": "",
            "lastSeen": "2019-03-25T10:50:41+01:00",
            "deleted": false
        }
    ],
    "pagination": {
        "page": 1,
        "perPage": 20,
        "prevPage": null,
        "nextPage": null,
        "lastPage": 1,
        "totalResults": 2
    }
}

/users

This allows you to get all users for the account.
If you're a distribute and have access to other accounts. Then use "GET /accounts/{accountID}/users" to get users from other accounts.

Schema
users.get.schema.json

Filterable properties
id, name, country, language, title, email

Sortable properties
id, name, country, language, title, email

Response
The response contains a array of users objects with structure given-below.

Properties

NameTypeMax lengthSortableFilterableDescription
idinteger XX 
accountIDinteger    
tokenstring50   
namestring150XX 
countrystring2XXISO 3166-1 alfa-2. Eks DK, NO, GB
languagestring3XXISO 639-2. Available is dan, eng, deu
titlestring150XX 
emailstring255XX 
telephonestring30   
mobilePhonestring30   
lastSeendate-time   ISO 8601 - Eks. 2019-03-31T11:58:30+01:00
deletedbool    

/users/{userID}

This allows you to get a user for the account.
if you're a distribute and have access to other accounts. Then use "GET /accounts/{accountID}/users" to get users from other accounts.

Schema
users.id.get.schema.json

Response
The response contains a user object with structure given-below.

Properties

NameTypeMax lengthDescription
idinteger  
accountIDinteger  
tokenstring50 
namestring150 
countrystring2ISO 3166-1 alfa-2. Eks DK, NO, GB
languagestring3ISO 639-2. Available is dan, eng, deu
titlestring150 
emailstring255 
telephonestring30 
mobilePhonestring30 
lastSeendate-time ISO 8601 - Eks. 2019-03-31T11:58:30+01:00
deletedbool  

/users

This allows you to create a new user.
if you're a distribute and have access to other accounts. Then use "POST /accounts/{accountID}/users" to create a new user on other account.

Schema
users.post.schema.json

Required properties
name, password, language, email

Response
The response contains a user object with structure given-below.

Properties

NameTypeMax lengthReadOnlyRequiredDescription
idinteger X  
accountIDinteger X  
tokenstring50X  
namestring150 X 
passwordstring  XIs encrypted in database. Note: Will not be returned in the response
countrystring2  ISO 3166-1 alfa-2. Eks DK, NO, GB
languagestring3 XISO 639-2. Available is dan, eng, deu
titlestring150   
emailstring255 X 
telephonestring30   
mobilePhonestring30   

/users/{userID}

This give opportunity to update an existing user.

Schema
users.id.put.schema.json

Response
The response contains a user object with structure given-below.

Properties

NameTypeMax lengthReadOnlyDescription
idinteger X 
accountIDinteger X 
tokenstring50X 
namestring150  
countrystring2 ISO 3166-1 alfa-2. Eks DK, NO, GB
languagestring3 ISO 639-2. Available is dan, eng, deu
titlestring150  
emailstring255  
telephonestring30  
mobilePhonestring30  
lastSeendate-time XISO 8601 - Eks. 2019-03-31T11:58:30+01:00
deletedbool X 

/users/{userID}

This will delete a user. This operation will response HTTP Status Code 204 on success.


Players

All players endpoints are listed below.


/players

This allows you to get all players for the account.
If you're a distribute and have access to other accounts. Then use "GET /accounts/{accountID}/players" to get players from other accounts.

Schema
players.get.schema.json

Filterable properties
id, title, type

Sortable properties
id, title, type

Response
The response contains a array of players objects with structure given-below.

Properties

NameTypeMax lengthSortableFilterableDescription
idinteger XX 
accountIDinteger    
tokenstring50   
titlestring150XX 
typeinteger XX3: Chromebit, 4: Windows, 5: Raspberry
settingobject    
setting.rotateinteger   0: 0 degrees, 1: 90 degrees, 2: 180 degrees, 3: 270 degrees
setting.overscaninteger   0: Underscan, 1: Overscan, 2: Custom (use customWidth, customHeight)
setting.customWidthinteger   Custom width in pixel
setting.customHeightinteger   Custom height in pixel
deviceobject    
device.totalMemoryinteger   Total memory in bytes, reported back from the device.
device.availMemoryinteger   Available memory in bytes, reported back from the device.
device.appVersionstring15  Running app version (example 0.28.0), reported back from the device.
onOffobject    
onOff.activebool   Activate on/off schedule (true: on, false: off)
onOff.schedulestring   JSON format [{turnOnTime: 08:00, turnOffTime: 16:00}, {turnOnTime: 07:00,...] starting with monday.
attachedDatedata-time   ISO 8601 - Eks. 2019-03-31T11:58:30+01:00
createdDatedata-time   ISO 8601 - Eks. 2019-03-31T11:58:30+01:00
lastConnectTimedata-time   ISO 8601 - Eks. 2019-03-31T11:58:30+01:00
deletedbool    

/players/{playerID}

This allows you to get a player for the account.

Schema
players.id.get.schema.json

Response
The response contains a player object with structure given-below.

Properties

NameTypeMax lengthDescription
idinteger  
accountIDinteger  
tokenstring50 
titlestring150 
typeinteger 3: Chromebit, 4: Windows, 5: Raspberry
settingobject  
setting.rotateinteger 0: 0 degrees, 1: 90 degrees, 2: 180 degrees, 3: 270 degrees
setting.overscaninteger 0: Underscan, 1: Overscan, 2: Custom (use customWidth, customHeight)
setting.customWidthinteger Custom width in pixel
setting.customHeightinteger Custom height in pixel
deviceobject  
device.totalMemoryinteger Total memory in bytes, reported back from the device.
device.availMemoryinteger Available memory in bytes, reported back from the device.
device.appVersionstring15Running app version (example 0.28.0), reported back from the device.
onOffobject  
onOff.activebool Activate on/off schedule (true: on, false: off)
onOff.schedulestring JSON format [{turnOnTime: 08:00, turnOffTime: 16:00}, {turnOnTime: 07:00,...] starting with monday.
attachedDatedata-time ISO 8601 - Eks. 2019-03-31T11:58:30+01:00
createdDatedata-time ISO 8601 - Eks. 2019-03-31T11:58:30+01:00
lastConnectTimedata-time ISO 8601 - Eks. 2019-03-31T11:58:30+01:00
deletedbool  

/players/{authcode} (Not implemented yet)

This allows you to create a new player.

Schema
players.authcode.post.schema.json

Filterable properties
id, title, type

Sortable properties
id, title, type

Response
The response contains a player object with structure given-below.

Properties

NameTypeMax lengthReadOnlySortableFilterableDescription
idinteger XXX 
accountIDinteger X   
tokenstring50X   
titlestring150 XX 
typeinteger  XX3: Chromebit, 4: Windows, 5: Raspberry
settingobject     
setting.rotateinteger    0: 0 degrees, 1: 90 degrees, 2: 180 degrees, 3: 270 degrees
setting.overscaninteger    0: Underscan, 1: Overscan, 2: Custom (use customWidth, customHeight)
setting.customWidthinteger    Custom width in pixel
setting.customHeightinteger    Custom height in pixel
deviceobject     
device.totalMemoryinteger X  Total memory in bytes, reported back from the device.
device.availMemoryinteger X  Available memory in bytes, reported back from the device.
device.appVersionstring15X  Running app version (example 0.28.0), reported back from the device.
onOffobject     
onOff.activebool    Activate on/off schedule (true: on, false: off)
onOff.schedulestring    JSON format [{turnOnTime: 08:00, turnOffTime: 16:00}, {turnOnTime: 07:00,...] starting with monday.
attachedDatedata-time X  ISO 8601 - Eks. 2019-03-31T11:58:30+01:00
createdDatedata-time X  ISO 8601 - Eks. 2019-03-31T11:58:30+01:00
lastConnectTimedata-time X  ISO 8601 - Eks. 2019-03-31T11:58:30+01:00

/players/{playerID}

This give opportunity to update an existing player.

Schema
players.id.put.schema.json

Response
The response contains a player object with structure given-below.

Properties

NameTypeMax lengthReadOnlyDescription
idinteger X 
accountIDinteger X 
tokenstring50X 
titlestring150  
typeinteger X3: Chromebit, 4: Windows, 5: Raspberry
settingobject   
setting.rotateinteger  0: 0 degrees, 1: 90 degrees, 2: 180 degrees, 3: 270 degrees
setting.overscaninteger  0: Underscan, 1: Overscan, 2: Custom (use customWidth, customHeight)
setting.customWidthinteger  Custom width in pixel
setting.customHeightinteger  Custom height in pixel
deviceobject   
device.totalMemoryinteger XTotal memory in bytes, reported back from the device.
device.availMemoryinteger XAvailable memory in bytes, reported back from the device.
device.appVersionstring15XRunning app version (example 0.28.0), reported back from the device.
onOffobject   
onOff.activebool  Activate on/off schedule (true: on, false: off)
onOff.schedulestring  JSON format [{turnOnTime: 08:00, turnOffTime: 16:00}, {turnOnTime: 07:00,...] starting with monday.
attachedDatedata-time XISO 8601 - Eks. 2019-03-31T11:58:30+01:00
createdDatedata-time XISO 8601 - Eks. 2019-03-31T11:58:30+01:00
lastConnectTimedata-time XISO 8601 - Eks. 2019-03-31T11:58:30+01:00

/players/{playerID}

This will delete a player. This operation will response HTTP Status Code 204 on success.


/players/{playerID}/medialist/{medialistID} (Not implemented yet)

This allows you to add a medialist to a player

Response
This operation will response HTTP Status Code 204 on success.


/players/{playerID}/medialist/{medialistID} (Not implemented yet)

This allows you to remove a medialist from a player

Response
This operation will response HTTP Status Code 204 on success.


Medialists

All medialists endpoints are listed below.


/medialists

This allows you to get all medialists for the account
If you're a distribute and have access to other accounts. Then use "GET /accounts/{accountID}/medialists" to get medialists from other accounts.

Schema
medialists.get.schema.json

Filterable properties
id, groupID, title

Sortable properties
id, groupID, title

Response
The response contains a array of medialists objects with structure given-below.

Properties

NameTypeMax lengthSortableFilterableDescription
idinteger XX 
accountIDinteger    
groupIDinteger XX 
titlestring255XX 
deletedbool    

/medialists/{medialistID}

This allows you to get a medialist for the account.

Schema
medialists.id.get.schema.json

Filterable properties
id, groupID, title

Sortable properties
id, groupID, title

Response
The response contains a medialist object with structure given-below.

Properties

NameTypeMax lengthSortableFilterableDescription
idinteger XX 
accountIDinteger    
groupIDinteger XX 
titlestring255XX 
deletedbool    

/medialists

This allows you to create a new medialist.

Schema
medialists.post.schema.json

Required properties
title

Response
The response contains a medialist object with structure given-below.

Properties

NameTypeMax lengthReadOnlyRequiredDescription
idinteger X  
accountIDinteger X  
groupIDinteger    
titlestring255 X 

/medialists/{medialistID}

This give opportunity to update an existing medialist.

Schema
medialists.id.put.schema.json

Response
The response contains a medialist object with structure given-below.

Properties

NameTypeMax lengthReadOnlyDescription
idinteger X 
accountIDinteger X 
groupIDinteger   
titlestring255  

/medialists/{medialistID}

This will delete a medialist. This operation will response HTTP Status Code 204 on success.


/medialists/{medialistID}/clearItems

This will delete all items in a medialist. This operation will response HTTP Status Code 204 on success.


/medialists/{medialistID}/items

This allows you to get all items in a medialist.

Schema
medialists.id.items.get.schema.json

Filterable properties
id, appID, title, startDate, endDate, sortIndex

Sortable properties
id, appID, title, startDate, endDate, sortIndex

Response
The response contains a array of medialists objects with structure given-below.

Properties

NameTypeMax lengthSortableFilterableDescription
idinteger XX 
medialistIDinteger    
appIDinteger XXExample: 50=Image, 52=Video
titlestring255XX 
startDatedate XXISO 8601 - Eks. 2019-03-20, if not set it will return null
endDatedate XXISO 8601 - Eks. 2019-03-31, if not set it will return null
displayTimeinteger   Display time in seconds
effectEnterobject    
effectEnter.typestring20  Type of enter effect.
fadeIn (Default)
fadeInLeft
fadeInRight
fadeInDown
fadeInUp
none
rollIn
rotateIn
bounceIn
bounce
zoomIn
rubberBand
swing
tada
jello
bounceInLeft
bounceInRight
bounceInDown
bounceInUp
slideInLeft
slideInRight
effectEnter.timeinteger   Time of enter effect in seconds
schedulejson65535  JSON array of objects:

[{"starttime":"07:00","endtime":"11:00","days":"112"},{"starttime":"16:00","endtime":"22:00","days":"112"}]

Each day of week represents the power of 2 value

Monday: 1
Tuesday: 2
Wednesday: 4
Thursday: 8
Friday: 16
Saturday: 32
Sunday: 64

Setting days:"112" will be running a Schedule on weekends (Friday, Saturday, Sunday)
result of a sum: 16+32+64=112
sortIndexinteger XX 
lastUpdateddate-time    
deletedbool    

/medialists/{medialistID}/image

This allows you to create a new image app in a medialist.

Schema
medialists.id.image.post.schema.json

Required properties
title

Response
The response contains a image-item object with structure given-below.

Properties

NameTypeMax lengthReadOnlyRequiredDescription
idinteger X  
medialistIDinteger X  
appIDinteger X Example: 50=Image, 52=Video
titlestring255 X 
startDatedate   ISO 8601 - Eks. 2019-03-20, if not set it will return null
endDatedate   ISO 8601 - Eks. 2019-03-31, if not set it will return null
displayTimeinteger   Display time in seconds. Default: 10
effectEnterobject    
effectEnter.typestring20  Type of enter effect.
fadeIn (Default)
fadeInLeft
fadeInRight
fadeInDown
fadeInUp
none
rollIn
rotateIn
bounceIn
bounce
zoomIn
rubberBand
swing
tada
jello
bounceInLeft
bounceInRight
bounceInDown
bounceInUp
slideInLeft
slideInRight
effectEnter.timeinteger   Time of enter effect in seconds. Default: 1
schedulejson65535  JSON array of objects:

[{"starttime":"07:00","endtime":"11:00","days":"112"},{"starttime":"16:00","endtime":"22:00","days":"112"}]

Each day of week represents the power of 2 value

Monday: 1
Tuesday: 2
Wednesday: 4
Thursday: 8
Friday: 16
Saturday: 32
Sunday: 64

Setting days:"112" will be running a Schedule on weekends (Friday, Saturday, Sunday)
result of a sum: 16+32+64=112
sortIndexinteger    
metadataobject    
metadata.backgroundColorstring255  Default: rgba(0, 0, 0, 0)
metadata.opacityinteger   Values 0 to 100, where 0 is transparent.
Default: 100.
metadata.fontTypestring255  Default: Lato
metadata.textFontSizenumber   Values: 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1.
Default: 1
metadata.headerFontSizenumber   Values: 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1.
Default: 1
metadata.headerTextstring255  Tekst on top of image
metadata.vAlignstring   Values: top, bottom, middle. Default: middle
metadata.hAlignstring   Values: left, right, center. Default: center
metadata.adjustinteger   Values: 1=Fill (Crop), 2=Fit, 3=Stretch.
Default: 2
imagesarray   It is possible to attached more images to image app
images.displayTimeinteger   Display time in seconds of the image. If only one image, the it will be ignored. Default: 10
images.textstring255  Tekst on bottom of image
images.fileIDinteger   Set fileID or use extUrl. It is not possible to use both.
images.extUrlstring   This is not implemented yet

/medialists/{medialistID}/video

This allows you to create a new video app in a medialist.

Schema
medialists.id.video.post.schema.json

Required properties
title

Response
The response contains a image-item object with structure given-below.

Properties

NameTypeMax lengthReadOnlyRequiredDescription
idinteger X  
medialistIDinteger X  
appIDinteger X Example: 50=Image, 52=Video
titlestring255 X 
startDatedate   ISO 8601 - Eks. 2019-03-20, if not set it will return null
endDatedate   ISO 8601 - Eks. 2019-03-31, if not set it will return null
displayTimeinteger   Display time in seconds. Default: 10
effectEnterobject    
effectEnter.typestring20  Type of enter effect.
fadeIn (Default)
fadeInLeft
fadeInRight
fadeInDown
fadeInUp
none
rollIn
rotateIn
bounceIn
bounce
zoomIn
rubberBand
swing
tada
jello
bounceInLeft
bounceInRight
bounceInDown
bounceInUp
slideInLeft
slideInRight
effectEnter.timeinteger   Time of enter effect in seconds. Default: 1
schedulejson65535  JSON array of objects:

[{"starttime":"07:00","endtime":"11:00","days":"112"},{"starttime":"16:00","endtime":"22:00","days":"112"}]

Each day of week represents the power of 2 value

Monday: 1
Tuesday: 2
Wednesday: 4
Thursday: 8
Friday: 16
Saturday: 32
Sunday: 64

Setting days:"112" will be running a Schedule on weekends (Friday, Saturday, Sunday)
result of a sum: 16+32+64=112
sortIndexinteger    
metadataobject    
metadata.backgroundColorstring255  Default: rgba(0, 0, 0, 0)
metadata.marginstring255  Margin arround video in procent. Values: 0, 1, 3, 5. Default: 0
metadata.volumeinteger   Values: 0, 25, 50, 75, 100. Default: 75
videoobject    
video.fileIDinteger   Set fileID or use extUrl. It is not possible to use both.
video.extUrlstring   This is not implemented yet

Medialist Groups

All medialist groups endpoints are listed below.


/medialist-groups

This allows you to get all medialist-groups for the account
If you're a distribute and have access to other accounts. Then use "GET /accounts/{accountID}/medialist-groups" to get medialist-groups from other accounts.

Schema
medialist-groups.get.schema.json

Filterable properties
id, title

Sortable properties
id, title

Response
The response contains a array of medialists objects with structure given-below.

Properties

NameTypeMax lengthSortableFilterableDescription
idinteger XX 
accountIDinteger    
titlestring255XX 
deletedbool    

/medialist-groups/{groupID}

This allows you to get a medialist-group for the account.

Schema
medialist-groups.id.get.schema.json

Response
The response contains a medialist object with structure given-below.

Properties

NameTypeMax lengthDescription
idinteger  
accountIDinteger  
titlestring255 
deletedbool  


Medialist Items

All medialist-items endpoints are listed below.


/medialist-items/{itemID}

This allows you to update some of the fields of a specific medialist item.

Schema
medialist-items.put.schema.json

Required properties
title

Response
The response contains a medialist-item object with structure given-below.

Properties

NameTypeMax lengthReadOnlyRequiredDescription
idinteger X  
medialistIDinteger X  
appIDinteger X Example: 50=Image, 52=Video
titlestring255 X 
startDatedate   ISO 8601 - Eks. 2019-03-20, if not set it will return null
endDatedate   ISO 8601 - Eks. 2019-03-31, if not set it will return null
displayTimeinteger   Display time in seconds. Default: 10
effectEnterobject    
effectEnter.typestring20  Type of enter effect.
fadeIn (Default)
fadeInLeft
fadeInRight
fadeInDown
fadeInUp
none
rollIn
rotateIn
bounceIn
bounce
zoomIn
rubberBand
swing
tada
jello
bounceInLeft
bounceInRight
bounceInDown
bounceInUp
slideInLeft
slideInRight
effectEnter.timeinteger   Time of enter effect in seconds. Default: 1
schedulejson65535  JSON array of objects:

[{"starttime":"07:00","endtime":"11:00","days":"112"},{"starttime":"16:00","endtime":"22:00","days":"112"}]

Each day of week represents the power of 2 value

Monday: 1
Tuesday: 2
Wednesday: 4
Thursday: 8
Friday: 16
Saturday: 32
Sunday: 64

Setting days:"112" will be running a Schedule on weekends (Friday, Saturday, Sunday)
result of a sum: 16+32+64=112
sortIndexinteger    

/medialist-items/{itemID}

This will delete a medialist item. This operation will response HTTP Status Code 204 on success.


Files

All files endpoints are listed below.


/files

This allows you to get all files.
If you're a distribute and have access to other accounts. Then use "GET /accounts/{accountID}/files" to get files from other accounts.

Schema
files.get.schema.json

Filterable properties
id, folderID, name, extension

Sortable properties
id, folderID, name, extension

Response
The response contains a array of files objects with structure given-below.

Properties

NameTypeMax lengthSortableFilterableDescription
idinteger XX 
accountIDinteger    
folderIDinteger XXParent folder id. -1 is root folder
namestring255XX 
extensionstring10XXExample: jpg, png, avi
sizeinteger   File size in bytes.
lastUpdateddate-time   ISO 8601 - Eks. 2019-03-31T11:58:30+01:00
deletedbool    

/files/{fileID}

This allows you to get a file.

Schema
files.id.get.schema.json

Response
The response contains a file object with structure given-below.

Properties

NameTypeMax lengthDescription
idinteger  
accountIDinteger  
folderIDinteger Parent folder id. -1 is root folder
namestring255 
extensionstring10Example: jpg, png, avi
sizeinteger File size in bytes.
lastUpdateddate-time ISO 8601 - Eks. 2019-03-31T11:58:30+01:00
deletedbool  
signedUrlstring Signed URL for file. Is valid for 24 hours.

/files

This allows you to create a new file.

Schema
files.post.schema.json

Required properties
name, extension, fileBase64, fileUrl

Response
The response contains a file object with structure given-below.

Properties

NameTypeMax lengthReadOnlyRequiredDescription
idinteger X  
accountIDinteger X  
folderIDinteger   folderID = -1 is root folder.
if folderID = 0 the file is hidden in media library
tokenstring50X  
namestring255 X 
extensionstring10 XExample: jpg, png, avi
sizeinteger X File size in bytes.
fileBase64string  XUpload file with base64 encoded data. Note: Use fileBase64 or fileUrl to upload file, not both. This property vil not be return in the response.
fileUrlstring  XFile url for file to upload. Note: Use fileBase64 or fileUrl to upload file, not both. This property vil not be return the in response.

/files/{fileID}

This allows you to update a existing file.

Schema
files.id.put.schema.json

Response
The response contains a file object with structure given-below.

Properties

NameTypeMax lengthReadOnlyDescription
idinteger X 
accountIDinteger X 
folderIDinteger  Parent folder id. -1 is root folder
tokenstring50X 
namestring255  
extensionstring10XExample: jpg, png, avi
sizeinteger XFile size in bytes.

/files/{fileID}

This will delete a existing file. This operation will response HTTP Status Code 204 on success.


Folders

All folders endpoints are listed below.


/folders

This allows you to get all folders.

Note:
If filter folderID is not set all folders are returned.
To only get back folders in at root level use filter filter=parentFolderID~$or$parentFolderID:-1

Schema
folder.get.schema.json

Filterable properties
id, accountID, parentFolderID, name

Sortable properties
id, accountID, parentFolderID, name

Response
The response contains a folders object with structure given-below.

Properties

NameTypeMax lengthSortableFilterableDescription
idinteger XXfolderID = -1is root folder.
if folderID = 0 the file is hidden in media library.
accountIDinteger XX 
parentFolderIDinteger XXfolderID = -1 is root folder.
if folderID = 0 the file is hidden in media library
namestring50XX 

/folders/{folderID}

This allows you to get a specific folder.

Schema
folder.get.id.schema.json

Response
The response contains a folder object with structure given-below.

Properties

NameTypeMax lengthDescription
idinteger folderID = -1 is root folder.
if folderID = 0 the file is hidden in media library
accountIDinteger  
parentFolderIDinteger folderID = -1 is root folder.
if folderID = 0 the file is hidden in media library
namestring50 

/folders

This allows you to create a new folder.

Schema
folder.post.schema.json

Response
The response contains a folder object with structure given-below.

Properties

NameTypeMax lengthReadOnlyDescription
idinteger XfolderID = -1 is root folder.
if folderID = 0 the file is hidden in media library
accountIDinteger X 
parentFolderIDinteger  If parentFolderID is not present or set to null in request body, the folder is then placed in root folder.
If folderID = 0 the file is hidden in media library
namestring50  

/folders/{folderID}

This allows you to update a existing folder.

Schema
folder.put.schema.json

Required properties
id

Response
The response contains a folder object with structure given-below.

Properties

NameTypeMax lengthReadOnlyRequiredDescription
idinteger XXfolderID = -1 is root folder.
if folderID = 0 the file is hidden in media library
accountIDinteger X  
parentFolderIDinteger   folderID = null is root folder.
if folderID = 0 the file is hidden in media library
namestring50   

/folders/{folderID}

This will delete a existing folder. This operation will response HTTP Status Code 204 on success.

# Series

This endpoint is not documented yet.