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
$.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 "="
Name | Syntax |
---|---|
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.
{ …, "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.
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.
{ "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
Name | Type | Max length | Sortable | Filterable | Description |
---|---|---|---|---|---|
id | integer |   | X | X |   |
distributorID | integer |   |   | ||
token | string | 50 |   | ||
company | object |   |   | ||
company.name | string | 150 | X | X |   |
company.address1 | string | 150 | X | X |   |
company.address2 | string | 150 |   | ||
company.zipcode | string | 20 | X | X |   |
company.city | string | 80 | X | X |   |
company.country | string | 80 |   | ||
company.telephone | string | 30 |   | ||
company.mobilePhone | string | 30 |   | ||
company.homepage | string | 80 |   | ||
company.cvr | string | 20 |   | ||
invoice | object |   |   | ||
invoice.email | string | 150 |   | ||
contactPerson | object |   |   | ||
contactPerson.name | string | 150 |   | ||
contactPerson.email | string | 150 |   | ||
contactPerson.telephone | string | 30 |   | ||
deleted | bool |   |   |
/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
Name | Type | Max length | Description |
---|---|---|---|
id | integer |   |   |
distributorID | integer |   |   |
token | string | 50 |   |
company | object |   |   |
company.name | string | 150 |   |
company.address1 | string | 150 |   |
company.address2 | string | 150 |   |
company.zipcode | string | 20 |   |
company.city | string | 80 |   |
company.country | string | 80 |   |
company.telephone | string | 30 |   |
company.mobilePhone | string | 30 |   |
company.homepage | string | 80 |   |
company.cvr | string | 20 |   |
invoice | object |   |   |
invoice.email | string | 150 |   |
contactPerson | object |   |   |
contactPerson.name | string | 150 |   |
contactPerson.email | string | 150 |   |
contactPerson.telephone | string | 30 |   |
deleted | bool |   |   |
/accounts (Not implemented yet)
This allows you to create a new account.
Schema
accounts.post.schema.json
Properties
Name | Type | Max length | ReadOnly | Description |
---|---|---|---|---|
id | integer |   | X |   |
distributorID | integer |   | X |   |
token | string | 50 | X |   |
company | object |   |   | |
company.name | string | 150 |   | |
company.address1 | string | 150 |   | |
company.address2 | string | 150 |   | |
company.zipcode | string | 20 |   | |
company.city | string | 80 |   | |
company.country | string | 80 |   | |
company.telephone | string | 30 |   | |
company.mobilePhone | string | 30 |   | |
company.homepage | string | 80 |   | |
company.cvr | string | 20 |   | |
invoice | object |   |   | |
invoice.email | string | 150 |   | |
contactPerson | object |   |   | |
contactPerson.name | string | 150 |   | |
contactPerson.email | string | 150 |   | |
contactPerson.telephone | string | 30 |   |
{ "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
The response contains a single account object.
Properties
Properties
Name | Type | Max length | ReadOnly | Description |
---|---|---|---|---|
id | integer |   | X |   |
distributorID | integer |   | X |   |
token | string | 50 | X |   |
company | object |   |   | |
company.name | string | 150 |   | |
company.address1 | string | 150 |   | |
company.address2 | string | 150 |   | |
company.zipcode | string | 20 |   | |
company.city | string | 80 |   | |
company.country | string | 80 |   | |
company.telephone | string | 30 |   | |
company.mobilePhone | string | 30 |   | |
company.homepage | string | 80 |   | |
company.cvr | string | 20 |   | |
invoice | object |   |   | |
invoice.email | string | 150 |   | |
contactPerson | object |   |   | |
contactPerson.name | string | 150 |   | |
contactPerson.email | string | 150 |   | |
contactPerson.telephone | string | 30 |   | |
deleted | bool |   | 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
Name | Type | Max length | Sortable | Filterable | Description |
---|---|---|---|---|---|
id | integer |   | X | X |   |
accountID | integer |   |   | ||
token | string | 50 |   | ||
name | string | 150 | X | X |   |
country | string | 2 | X | X | ISO 3166-1 alfa-2. Eks DK, NO, GB |
language | string | 3 | X | X | ISO 639-2. Available is dan, eng, deu |
title | string | 150 | X | X |   |
string | 255 | X | X |   | |
telephone | string | 30 |   | ||
mobilePhone | string | 30 |   | ||
lastSeen | date-time |   | ISO 8601 - Eks. 2019-03-31T11:58:30+01:00 | ||
deleted | bool |   |   |
/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
Name | Type | Max length | Sortable | Filterable | Description |
---|---|---|---|---|---|
id | integer |   | X | X |   |
accountID | integer |   |   | ||
token | string | 50 |   | ||
title | string | 150 | X | X |   |
type | string |   | X | X | 3: Chromebit, 4: Windows, 5: Raspberry |
setting | object |   |   | ||
setting.rotate | integer |   | 0: 0 degrees, 1: 90 degrees, 2: 180 degrees, 3: 270 degrees | ||
setting.overscan | integer |   | 0: Underscan, 1: Overscan, 2: Custom (use customWidth, customHeight) | ||
setting.customWidth | integer |   | Custom width in pixel | ||
setting.customHeight | integer |   | Custom height in pixel | ||
device | object |   |   | ||
device.totalMemory | integer |   | Total memory in bytes, reported back from the device. | ||
device.availMemory | integer |   | Available memory in bytes, reported back from the device. | ||
device.appVersion | string | 15 | Running app version (example 0.28.0), reported back from the device. | ||
onOff | object |   |   | ||
onOff.active | bool |   | Activate on/off schedule (true: on, false: off) | ||
onOff.schedule | string |   | JSON format [{turnOnTime: 08:00, turnOffTime: 16:00}, {turnOnTime: 07:00,...] starting with monday. | ||
attachedDate | data-time |   | ISO 8601 - Eks. 2019-03-31T11:58:30+01:00 | ||
createdDate | data-time |   | ISO 8601 - Eks. 2019-03-31T11:58:30+01:00 | ||
lastConnectTime | data-time |   | ISO 8601 - Eks. 2019-03-31T11:58:30+01:00 | ||
deleted | bool |   |   |
/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
Name | Type | Max length | Sortable | Filterable | Description |
---|---|---|---|---|---|
id | integer |   | X | X |   |
accountID | integer |   |   | ||
groupID | integer |   | X | X |   |
title | string | 255 | X | X |   |
deleted | bool |   |   |
/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
Name | Type | Max length | ReadOnly | Required | Description |
---|---|---|---|---|---|
id | integer |   | X |   | |
accountID | integer |   | X |   | |
token | string | 50 | X |   | |
name | string | 150 | X |   | |
password | string |   | X | Is encrypted in database. Note: Will not be returned in the response | |
country | string | 2 | ISO 3166-1 alfa-2. Eks DK, NO, GB | ||
language | string | 3 | X | ISO 639-2. Available is dan, eng, deu | |
title | string | 150 |   | ||
string | 255 | X |   | ||
telephone | string | 30 |   | ||
mobilePhone | string | 30 |   |
/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
Name | Type | Max length | ReadOnly | Required | Description |
---|---|---|---|---|---|
id | integer |   | X |   | |
accountID | integer |   | X |   | |
groupID | integer |   |   | ||
title | string | 255 | 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
Name | Type | Max length | ReadOnly | Required | Description |
---|---|---|---|---|---|
id | integer |   | X |   | |
accountID | integer |   | X |   | |
folderID | integer |   | Parent folder id. -1 is root folder | ||
token | string | 50 | X |   | |
name | string | 255 | X |   | |
extension | string | 10 | X | Example: jpg, png, avi | |
size | integer |   | X | File size in bytes. | |
fileUrl | string |   | X | File url for file to upload. Note vil not be return in response. |
Users
All user endpoints are listed below.
{ "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
Name | Type | Max length | Sortable | Filterable | Description |
---|---|---|---|---|---|
id | integer |   | X | X |   |
accountID | integer |   |   | ||
token | string | 50 |   | ||
name | string | 150 | X | X |   |
country | string | 2 | X | X | ISO 3166-1 alfa-2. Eks DK, NO, GB |
language | string | 3 | X | X | ISO 639-2. Available is dan, eng, deu |
title | string | 150 | X | X |   |
string | 255 | X | X |   | |
telephone | string | 30 |   | ||
mobilePhone | string | 30 |   | ||
lastSeen | date-time |   | ISO 8601 - Eks. 2019-03-31T11:58:30+01:00 | ||
deleted | bool |   |   |
/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
Name | Type | Max length | Description |
---|---|---|---|
id | integer |   |   |
accountID | integer |   |   |
token | string | 50 |   |
name | string | 150 |   |
country | string | 2 | ISO 3166-1 alfa-2. Eks DK, NO, GB |
language | string | 3 | ISO 639-2. Available is dan, eng, deu |
title | string | 150 |   |
string | 255 |   | |
telephone | string | 30 |   |
mobilePhone | string | 30 |   |
lastSeen | date-time |   | ISO 8601 - Eks. 2019-03-31T11:58:30+01:00 |
deleted | bool |   |   |
/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
Name | Type | Max length | ReadOnly | Required | Description |
---|---|---|---|---|---|
id | integer |   | X |   | |
accountID | integer |   | X |   | |
token | string | 50 | X |   | |
name | string | 150 | X |   | |
password | string |   | X | Is encrypted in database. Note: Will not be returned in the response | |
country | string | 2 | ISO 3166-1 alfa-2. Eks DK, NO, GB | ||
language | string | 3 | X | ISO 639-2. Available is dan, eng, deu | |
title | string | 150 |   | ||
string | 255 | X |   | ||
telephone | string | 30 |   | ||
mobilePhone | string | 30 |   |
/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
Name | Type | Max length | ReadOnly | Description |
---|---|---|---|---|
id | integer |   | X |   |
accountID | integer |   | X |   |
token | string | 50 | X |   |
name | string | 150 |   | |
country | string | 2 | ISO 3166-1 alfa-2. Eks DK, NO, GB | |
language | string | 3 | ISO 639-2. Available is dan, eng, deu | |
title | string | 150 |   | |
string | 255 |   | ||
telephone | string | 30 |   | |
mobilePhone | string | 30 |   | |
lastSeen | date-time |   | X | ISO 8601 - Eks. 2019-03-31T11:58:30+01:00 |
deleted | bool |   | 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
Name | Type | Max length | Sortable | Filterable | Description |
---|---|---|---|---|---|
id | integer |   | X | X |   |
accountID | integer |   |   | ||
token | string | 50 |   | ||
title | string | 150 | X | X |   |
type | integer |   | X | X | 3: Chromebit, 4: Windows, 5: Raspberry |
setting | object |   |   | ||
setting.rotate | integer |   | 0: 0 degrees, 1: 90 degrees, 2: 180 degrees, 3: 270 degrees | ||
setting.overscan | integer |   | 0: Underscan, 1: Overscan, 2: Custom (use customWidth, customHeight) | ||
setting.customWidth | integer |   | Custom width in pixel | ||
setting.customHeight | integer |   | Custom height in pixel | ||
device | object |   |   | ||
device.totalMemory | integer |   | Total memory in bytes, reported back from the device. | ||
device.availMemory | integer |   | Available memory in bytes, reported back from the device. | ||
device.appVersion | string | 15 | Running app version (example 0.28.0), reported back from the device. | ||
onOff | object |   |   | ||
onOff.active | bool |   | Activate on/off schedule (true: on, false: off) | ||
onOff.schedule | string |   | JSON format [{turnOnTime: 08:00, turnOffTime: 16:00}, {turnOnTime: 07:00,...] starting with monday. | ||
attachedDate | data-time |   | ISO 8601 - Eks. 2019-03-31T11:58:30+01:00 | ||
createdDate | data-time |   | ISO 8601 - Eks. 2019-03-31T11:58:30+01:00 | ||
lastConnectTime | data-time |   | ISO 8601 - Eks. 2019-03-31T11:58:30+01:00 | ||
deleted | bool |   |   |
/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
Name | Type | Max length | Description |
---|---|---|---|
id | integer |   |   |
accountID | integer |   |   |
token | string | 50 |   |
title | string | 150 |   |
type | integer |   | 3: Chromebit, 4: Windows, 5: Raspberry |
setting | object |   |   |
setting.rotate | integer |   | 0: 0 degrees, 1: 90 degrees, 2: 180 degrees, 3: 270 degrees |
setting.overscan | integer |   | 0: Underscan, 1: Overscan, 2: Custom (use customWidth, customHeight) |
setting.customWidth | integer |   | Custom width in pixel |
setting.customHeight | integer |   | Custom height in pixel |
device | object |   |   |
device.totalMemory | integer |   | Total memory in bytes, reported back from the device. |
device.availMemory | integer |   | Available memory in bytes, reported back from the device. |
device.appVersion | string | 15 | Running app version (example 0.28.0), reported back from the device. |
onOff | object |   |   |
onOff.active | bool |   | Activate on/off schedule (true: on, false: off) |
onOff.schedule | string |   | JSON format [{turnOnTime: 08:00, turnOffTime: 16:00}, {turnOnTime: 07:00,...] starting with monday. |
attachedDate | data-time |   | ISO 8601 - Eks. 2019-03-31T11:58:30+01:00 |
createdDate | data-time |   | ISO 8601 - Eks. 2019-03-31T11:58:30+01:00 |
lastConnectTime | data-time |   | ISO 8601 - Eks. 2019-03-31T11:58:30+01:00 |
deleted | bool |   |   |
/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
Name | Type | Max length | ReadOnly | Sortable | Filterable | Description |
---|---|---|---|---|---|---|
id | integer |   | X | X | X |   |
accountID | integer |   | X |   | ||
token | string | 50 | X |   | ||
title | string | 150 | X | X |   | |
type | integer |   | X | X | 3: Chromebit, 4: Windows, 5: Raspberry | |
setting | object |   |   | |||
setting.rotate | integer |   | 0: 0 degrees, 1: 90 degrees, 2: 180 degrees, 3: 270 degrees | |||
setting.overscan | integer |   | 0: Underscan, 1: Overscan, 2: Custom (use customWidth, customHeight) | |||
setting.customWidth | integer |   | Custom width in pixel | |||
setting.customHeight | integer |   | Custom height in pixel | |||
device | object |   |   | |||
device.totalMemory | integer |   | X | Total memory in bytes, reported back from the device. | ||
device.availMemory | integer |   | X | Available memory in bytes, reported back from the device. | ||
device.appVersion | string | 15 | X | Running app version (example 0.28.0), reported back from the device. | ||
onOff | object |   |   | |||
onOff.active | bool |   | Activate on/off schedule (true: on, false: off) | |||
onOff.schedule | string |   | JSON format [{turnOnTime: 08:00, turnOffTime: 16:00}, {turnOnTime: 07:00,...] starting with monday. | |||
attachedDate | data-time |   | X | ISO 8601 - Eks. 2019-03-31T11:58:30+01:00 | ||
createdDate | data-time |   | X | ISO 8601 - Eks. 2019-03-31T11:58:30+01:00 | ||
lastConnectTime | data-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
Name | Type | Max length | ReadOnly | Description |
---|---|---|---|---|
id | integer |   | X |   |
accountID | integer |   | X |   |
token | string | 50 | X |   |
title | string | 150 |   | |
type | integer |   | X | 3: Chromebit, 4: Windows, 5: Raspberry |
setting | object |   |   | |
setting.rotate | integer |   | 0: 0 degrees, 1: 90 degrees, 2: 180 degrees, 3: 270 degrees | |
setting.overscan | integer |   | 0: Underscan, 1: Overscan, 2: Custom (use customWidth, customHeight) | |
setting.customWidth | integer |   | Custom width in pixel | |
setting.customHeight | integer |   | Custom height in pixel | |
device | object |   |   | |
device.totalMemory | integer |   | X | Total memory in bytes, reported back from the device. |
device.availMemory | integer |   | X | Available memory in bytes, reported back from the device. |
device.appVersion | string | 15 | X | Running app version (example 0.28.0), reported back from the device. |
onOff | object |   |   | |
onOff.active | bool |   | Activate on/off schedule (true: on, false: off) | |
onOff.schedule | string |   | JSON format [{turnOnTime: 08:00, turnOffTime: 16:00}, {turnOnTime: 07:00,...] starting with monday. | |
attachedDate | data-time |   | X | ISO 8601 - Eks. 2019-03-31T11:58:30+01:00 |
createdDate | data-time |   | X | ISO 8601 - Eks. 2019-03-31T11:58:30+01:00 |
lastConnectTime | data-time |   | X | ISO 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
Name | Type | Max length | Sortable | Filterable | Description |
---|---|---|---|---|---|
id | integer |   | X | X |   |
accountID | integer |   |   | ||
groupID | integer |   | X | X |   |
title | string | 255 | X | X |   |
deleted | bool |   |   |
/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
Name | Type | Max length | Sortable | Filterable | Description |
---|---|---|---|---|---|
id | integer |   | X | X |   |
accountID | integer |   |   | ||
groupID | integer |   | X | X |   |
title | string | 255 | X | X |   |
deleted | bool |   |   |
/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
Name | Type | Max length | ReadOnly | Required | Description |
---|---|---|---|---|---|
id | integer |   | X |   | |
accountID | integer |   | X |   | |
groupID | integer |   |   | ||
title | string | 255 | 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
Name | Type | Max length | ReadOnly | Description |
---|---|---|---|---|
id | integer |   | X |   |
accountID | integer |   | X |   |
groupID | integer |   |   | |
title | string | 255 |   |
/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
Name | Type | Max length | Sortable | Filterable | Description |
---|---|---|---|---|---|
id | integer |   | X | X |   |
medialistID | integer |   |   | ||
appID | integer |   | X | X | Example: 50=Image, 52=Video |
title | string | 255 | X | X |   |
startDate | date |   | X | X | ISO 8601 - Eks. 2019-03-20, if not set it will return null |
endDate | date |   | X | X | ISO 8601 - Eks. 2019-03-31, if not set it will return null |
displayTime | integer |   | Display time in seconds | ||
effectEnter | object |   |   | ||
effectEnter.type | string | 20 | 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.time | integer |   | Time of enter effect in seconds | ||
schedule | json | 65535 | 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 | ||
sortIndex | integer |   | X | X |   |
lastUpdated | date-time |   |   | ||
deleted | bool |   |   |
/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
Name | Type | Max length | ReadOnly | Required | Description |
---|---|---|---|---|---|
id | integer |   | X |   | |
medialistID | integer |   | X |   | |
appID | integer |   | X | Example: 50=Image, 52=Video | |
title | string | 255 | X |   | |
startDate | date |   | ISO 8601 - Eks. 2019-03-20, if not set it will return null | ||
endDate | date |   | ISO 8601 - Eks. 2019-03-31, if not set it will return null | ||
displayTime | integer |   | Display time in seconds. Default: 10 | ||
effectEnter | object |   |   | ||
effectEnter.type | string | 20 | 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.time | integer |   | Time of enter effect in seconds. Default: 1 | ||
schedule | json | 65535 | 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 | ||
sortIndex | integer |   |   | ||
metadata | object |   |   | ||
metadata.backgroundColor | string | 255 | Default: rgba(0, 0, 0, 0) | ||
metadata.opacity | integer |   | Values 0 to 100, where 0 is transparent. Default: 100. | ||
metadata.fontType | string | 255 | Default: Lato | ||
metadata.textFontSize | number |   | Values: 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1. Default: 1 | ||
metadata.headerFontSize | number |   | Values: 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1. Default: 1 | ||
metadata.headerText | string | 255 | Tekst on top of image | ||
metadata.vAlign | string |   | Values: top, bottom, middle. Default: middle | ||
metadata.hAlign | string |   | Values: left, right, center. Default: center | ||
metadata.adjust | integer |   | Values: 1=Fill (Crop), 2=Fit, 3=Stretch. Default: 2 | ||
images | array |   | It is possible to attached more images to image app | ||
images.displayTime | integer |   | Display time in seconds of the image. If only one image, the it will be ignored. Default: 10 | ||
images.text | string | 255 | Tekst on bottom of image | ||
images.fileID | integer |   | Set fileID or use extUrl. It is not possible to use both. | ||
images.extUrl | string |   | 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
Name | Type | Max length | ReadOnly | Required | Description |
---|---|---|---|---|---|
id | integer |   | X |   | |
medialistID | integer |   | X |   | |
appID | integer |   | X | Example: 50=Image, 52=Video | |
title | string | 255 | X |   | |
startDate | date |   | ISO 8601 - Eks. 2019-03-20, if not set it will return null | ||
endDate | date |   | ISO 8601 - Eks. 2019-03-31, if not set it will return null | ||
displayTime | integer |   | Display time in seconds. Default: 10 | ||
effectEnter | object |   |   | ||
effectEnter.type | string | 20 | 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.time | integer |   | Time of enter effect in seconds. Default: 1 | ||
schedule | json | 65535 | 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 | ||
sortIndex | integer |   |   | ||
metadata | object |   |   | ||
metadata.backgroundColor | string | 255 | Default: rgba(0, 0, 0, 0) | ||
metadata.margin | string | 255 | Margin arround video in procent. Values: 0, 1, 3, 5. Default: 0 | ||
metadata.volume | integer |   | Values: 0, 25, 50, 75, 100. Default: 75 | ||
video | object |   |   | ||
video.fileID | integer |   | Set fileID or use extUrl. It is not possible to use both. | ||
video.extUrl | string |   | 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
Name | Type | Max length | Sortable | Filterable | Description |
---|---|---|---|---|---|
id | integer |   | X | X |   |
accountID | integer |   |   | ||
title | string | 255 | X | X |   |
deleted | bool |   |   |
/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
Name | Type | Max length | Description |
---|---|---|---|
id | integer |   |   |
accountID | integer |   |   |
title | string | 255 |   |
deleted | bool |   |   |
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
Name | Type | Max length | ReadOnly | Required | Description |
---|---|---|---|---|---|
id | integer |   | X |   | |
medialistID | integer |   | X |   | |
appID | integer |   | X | Example: 50=Image, 52=Video | |
title | string | 255 | X |   | |
startDate | date |   | ISO 8601 - Eks. 2019-03-20, if not set it will return null | ||
endDate | date |   | ISO 8601 - Eks. 2019-03-31, if not set it will return null | ||
displayTime | integer |   | Display time in seconds. Default: 10 | ||
effectEnter | object |   |   | ||
effectEnter.type | string | 20 | 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.time | integer |   | Time of enter effect in seconds. Default: 1 | ||
schedule | json | 65535 | 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 | ||
sortIndex | integer |   |   |
/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
Name | Type | Max length | Sortable | Filterable | Description |
---|---|---|---|---|---|
id | integer |   | X | X |   |
accountID | integer |   |   | ||
folderID | integer |   | X | X | Parent folder id. -1 is root folder |
name | string | 255 | X | X |   |
extension | string | 10 | X | X | Example: jpg, png, avi |
size | integer |   | File size in bytes. | ||
lastUpdated | date-time |   | ISO 8601 - Eks. 2019-03-31T11:58:30+01:00 | ||
deleted | bool |   |   |
/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
Name | Type | Max length | Description |
---|---|---|---|
id | integer |   |   |
accountID | integer |   |   |
folderID | integer |   | Parent folder id. -1 is root folder |
name | string | 255 |   |
extension | string | 10 | Example: jpg, png, avi |
size | integer |   | File size in bytes. |
lastUpdated | date-time |   | ISO 8601 - Eks. 2019-03-31T11:58:30+01:00 |
deleted | bool |   |   |
signedUrl | string |   | 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
Name | Type | Max length | ReadOnly | Required | Description |
---|---|---|---|---|---|
id | integer |   | X |   | |
accountID | integer |   | X |   | |
folderID | integer |   | folderID = -1 is root folder. if folderID = 0 the file is hidden in media library | ||
token | string | 50 | X |   | |
name | string | 255 | X |   | |
extension | string | 10 | X | Example: jpg, png, avi | |
size | integer |   | X | File size in bytes. | |
fileBase64 | string |   | X | Upload file with base64 encoded data. Note: Use fileBase64 or fileUrl to upload file, not both. This property vil not be return in the response. | |
fileUrl | string |   | X | File 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
Name | Type | Max length | ReadOnly | Description |
---|---|---|---|---|
id | integer |   | X |   |
accountID | integer |   | X |   |
folderID | integer |   | Parent folder id. -1 is root folder | |
token | string | 50 | X |   |
name | string | 255 |   | |
extension | string | 10 | X | Example: jpg, png, avi |
size | integer |   | X | File 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.
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
Name | Type | Max length | Sortable | Filterable | Description |
---|---|---|---|---|---|
id | integer |   | X | X | folderID = -1is root folder. if folderID = 0 the file is hidden in media library. |
accountID | integer |   | X | X |   |
parentFolderID | integer |   | X | X | folderID = -1 is root folder. if folderID = 0 the file is hidden in media library |
name | string | 50 | X | X |   |
/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
Name | Type | Max length | Description |
---|---|---|---|
id | integer |   | folderID = -1 is root folder. if folderID = 0 the file is hidden in media library |
accountID | integer |   |   |
parentFolderID | integer |   | folderID = -1 is root folder. if folderID = 0 the file is hidden in media library |
name | string | 50 |   |
/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
Name | Type | Max length | ReadOnly | Description |
---|---|---|---|---|
id | integer |   | X | folderID = -1 is root folder. if folderID = 0 the file is hidden in media library |
accountID | integer |   | X |   |
parentFolderID | integer |   | 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 | |
name | string | 50 |   |
/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
Name | Type | Max length | ReadOnly | Required | Description |
---|---|---|---|---|---|
id | integer |   | X | X | folderID = -1 is root folder. if folderID = 0 the file is hidden in media library |
accountID | integer |   | X |   | |
parentFolderID | integer |   | folderID = null is root folder. if folderID = 0 the file is hidden in media library | ||
name | string | 50 |   |
/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.