App Editor API
REST API of the App Editor (api.vuframe.com/public/v1) for apps, pages and their content.
v1.0.3Download vuframe-app-editor-api.yml
The VUFRAME® Public API offers a number of endpoint to view, create and edit different types of content within the VUFRAME® platform. The public API can be accessed by any VUFRAME® Studio user. This specific API controls the AppEditor, where you create standalone, white-label apps for any operating system & for VR headsets and manage its content.
The base URL for all the endpoints listed below is
https://api.vuframe.com/public/v1
Authentication
In order to integrate the VUFRAME® Public API into your own application, you will first need to register an SSO app by contacting us directly. After your app is set up, you will receive a unique SSO app token that allows you to communicate with the VUFRAME® Public API.
In addition to the SSO app token, all requests to the VUFRAME® Public API need to be authenticated with an authentication token that is bound to an active VUFRAME® Studio account. The required authentication mechanism is Basic Auth with the following credentials:
Username: SSO_APP_TOKEN Password: USER_AUTH_TOKEN
Servers
https://api.vuframe.com/public/v1Production SmartVu API
Authentication
basicAuthHTTP basic
Contact [email protected]
Endpoints
- Authentication
- Apps
- GET
/appsGet a list of all apps - GET
/apps/{app_token}Get a single App - POST
/apps/{app_token}/publish/{platform_identifier}Publish single platform of app - GET
/apps/{app_token}/publishStatus of publishing status of App - POST
/apps/{app_token}/publishPublish all platforms of single app - POST
/apps/{app_token}/platformsList of platforms of an App
- GET
- Pages
Authentication
Create an SSO Auth Token for a VUFRAME® Studio User
POST/sso/{app_token}/create_token
Authentication basicAuth
Creates an authentication token for a VUFRAME® Studio user. This token can then be used to access the various endpoints of the VUFRAME® Public API. If the user already has a valid auth token for the given SSO app, the existing token will be returned instead of creating a new one.
This endpoint uses Basic Auth with the following Credentials:
Username: STUDIO_EMAIL Password: STUDIO_PASSWORD
Replace STUDIO_EMAIL with the e-mail address of a valid VUFRAME® Studio user and STUDIO_PASSWORD with the password associated with that account.
Path parameters
| Name | Type | Description |
|---|---|---|
app_tokenrequired | string | Token of an App |
Responses
200Returns the newly created auth token in the displayed format.
Content type application/json
| Field | Type | Description |
|---|---|---|
success | boolean | success indicator |
token | string | API Token |
Example
{
"success": true,
"token": "string"
}405Invalid input
No body.
Example request
curl -X POST "https://api.vuframe.com/public/v1/sso/{app_token}/create_token" \
-u "USER:PASSWORD"Apps
Get a list of all apps
GET/apps
Authentication basicAuth
Returns a list of all apps the current user has access to.
Responses
200successful operation
Content type application/json
| Field | Type | Description |
|---|---|---|
[].token | string | Token of App |
[].title | string | Title of App |
[].description | string | Description of App |
[].type | string | Type of App |
[].version | string | Version of App |
[].space | string | Token of the space that contains this app. |
[].company | string | Name of the company that contains this app, if it exists. |
[].pages | array of Page | All pages of an app. |
[].pages[].token | string | Token of Page |
[].pages[].title | string | Title of Page |
[].pages[].description | string | Description of Page |
[].pages[].version | string | Version of Page |
[].pages[].space | string | Token of space that contains the app of this page. |
[].pages[].additional_fields | array of object | Additional fields that are specific to a type of page. |
Example
[
{
"token": "string",
"title": "string",
"description": "string",
"type": "string",
"version": "string",
"space": "string",
"company": "string",
"pages": [
{
"token": "string",
"title": "string",
"description": "string",
"version": "string",
"space": "string",
"additional_fields": [
{}
]
}
]
}
]400Invalid value
No body.
Example request
curl -X GET "https://api.vuframe.com/public/v1/apps" \
-u "USER:PASSWORD"Get a single App
GET/apps/{app_token}
Authentication basicAuth
Get an existing app by its token with all top-level pages.
Path parameters
| Name | Type | Description |
|---|---|---|
app_tokenrequired | string | Token of an App |
Responses
200successful operation
Content type application/json
| Field | Type | Description |
|---|---|---|
token | string | Token of App |
title | string | Title of App |
description | string | Description of App |
type | string | Type of App |
version | string | Version of App |
space | string | Token of the space that contains this app. |
company | string | Name of the company that contains this app, if it exists. |
pages | array of Page | All pages of an app. |
pages[].token | string | Token of Page |
pages[].title | string | Title of Page |
pages[].description | string | Description of Page |
pages[].version | string | Version of Page |
pages[].space | string | Token of space that contains the app of this page. |
pages[].additional_fields | array of object | Additional fields that are specific to a type of page. |
Example
{
"token": "string",
"title": "string",
"description": "string",
"type": "string",
"version": "string",
"space": "string",
"company": "string",
"pages": [
{
"token": "string",
"title": "string",
"description": "string",
"version": "string",
"space": "string",
"additional_fields": [
{}
]
}
]
}405Invalid input
No body.
Example request
curl -X GET "https://api.vuframe.com/public/v1/apps/{app_token}" \
-u "USER:PASSWORD"Publish single platform of app
POST/apps/{app_token}/publish/{platform_identifier}
Authentication basicAuth
Publishes a single platfrom by its identifier. Be careful with this request, as it publishes a new version for each call, when the platfrom is not already in the publishing process.
Path parameters
| Name | Type | Description |
|---|---|---|
app_tokenrequired | string | Token of an App |
platform_identifierrequired | string | Identifier of a specific platform (distribution form of an app) |
Query parameters
| Name | Type | Description |
|---|---|---|
force | boolean |
Responses
200successful operation
Content type application/json
| Field | Type | Description |
|---|---|---|
platform | PlatformStatus | The status property refers to the current release. 'unpublished_changes' is refering to the upcoming release. |
platform.title | string | Title of Platform |
platform.identifier | string | Identifier of Platform |
platform.release | string | Release Number of Platform |
platform.status | string | Status of Publishing |
platform.unpublished_changes | boolean | Are there unpublished changes for this platform? |
Example
{
"platform": {
"title": "string",
"identifier": "string",
"release": "string",
"status": "string",
"unpublished_changes": true
}
}406Invalid Operation, when Platform is already in publishing.
Content type application/json
| Field | Type | Description |
|---|---|---|
error | string | Error Message |
Example
{
"error": "string"
}Example request
curl -X POST "https://api.vuframe.com/public/v1/apps/{app_token}/publish/{platform_identifier}" \
-u "USER:PASSWORD"Status of publishing status of App
GET/apps/{app_token}/publish
Authentication basicAuth
This request will return the current status of the publishing process for all platfroms initiated by a POST /publish beforehand.
Path parameters
| Name | Type | Description |
|---|---|---|
app_tokenrequired | string | Token of an App |
Responses
200successful operation
Content type application/json
| Field | Type | Description |
|---|---|---|
token | string | Token of App |
title | string | Title of App |
status | string | Publishing Status of App |
publish_ready | boolean | Is ready for Publishing and has unpublished changes? |
public_version | string | Current public version |
Example
{
"token": "string",
"title": "string",
"status": "string",
"publish_ready": true,
"public_version": "string"
}405Invalid input
No body.
Example request
curl -X GET "https://api.vuframe.com/public/v1/apps/{app_token}/publish" \
-u "USER:PASSWORD"Publish all platforms of single app
POST/apps/{app_token}/publish
Authentication basicAuth
Publishes all platforms of a single app by its token. Be careful with this request, as it publishes a new version for each call. This request only works by setting the force query parameter to true.
Path parameters
| Name | Type | Description |
|---|---|---|
app_tokenrequired | string | Token of an App |
Query parameters
| Name | Type | Description |
|---|---|---|
forcerequired | boolean | Default: true. |
Responses
200successful operation
Content type application/json
| Field | Type | Description |
|---|---|---|
platforms | array of PlatformStatus | |
platforms[].title | string | Title of Platform |
platforms[].identifier | string | Identifier of Platform |
platforms[].release | string | Release Number of Platform |
platforms[].status | string | Status of Publishing |
platforms[].unpublished_changes | boolean | Are there unpublished changes for this platform? |
Example
{
"platforms": [
{
"title": "string",
"identifier": "string",
"release": "string",
"status": "string",
"unpublished_changes": true
}
]
}405Invalid input
No body.
Example request
curl -X POST "https://api.vuframe.com/public/v1/apps/{app_token}/publish" \
-u "USER:PASSWORD"List of platforms of an App
POST/apps/{app_token}/platforms
Authentication basicAuth
List of platforms that are used by this app.
Path parameters
| Name | Type | Description |
|---|---|---|
app_tokenrequired | string | Token of an App |
Responses
200successful operation
Content type application/json
| Field | Type | Description |
|---|---|---|
[].title | string | Title of Platform |
[].identifier | string | Identifier of Platform |
[].release | string | Release Number of Platform |
[].status | string | Status of Publishing |
[].unpublished_changes | boolean | Are there unpublished changes for this platform? |
Example
[
{
"title": "string",
"identifier": "string",
"release": "string",
"status": "string",
"unpublished_changes": true
}
]405Invalid input
No body.
Example request
curl -X POST "https://api.vuframe.com/public/v1/apps/{app_token}/platforms" \
-u "USER:PASSWORD"Pages
Get all Pages of an App
GET/apps/{app_token}/pages
Authentication basicAuth
Get all pages of an existing app by its token.
Path parameters
| Name | Type | Description |
|---|---|---|
app_tokenrequired | string | Token of an App |
Responses
200successful operation
Content type application/json
| Field | Type | Description |
|---|---|---|
[].token | string | Token of Page |
[].title | string | Title of Page |
[].description | string | Description of Page |
[].version | string | Version of Page |
[].space | string | Token of space that contains the app of this page. |
[].additional_fields | array of object | Additional fields that are specific to a type of page. |
Example
[
{
"token": "string",
"title": "string",
"description": "string",
"version": "string",
"space": "string",
"additional_fields": [
{}
]
}
]405Invalid input
No body.
Example request
curl -X GET "https://api.vuframe.com/public/v1/apps/{app_token}/pages" \
-u "USER:PASSWORD"Get single Page of a specific App
GET/apps/{app_token}/pages/{page_token}
Authentication basicAuth
Get all pages of an existing app by its token.
Path parameters
| Name | Type | Description |
|---|---|---|
app_tokenrequired | string | Token of an App |
page_tokenrequired | string | Token of an App |
Responses
200successful operation
Content type application/json
| Field | Type | Description |
|---|---|---|
token | string | Token of Page |
title | string | Title of Page |
description | string | Description of Page |
version | string | Version of Page |
space | string | Token of space that contains the app of this page. |
additional_fields | array of object | Additional fields that are specific to a type of page. |
Example
{
"token": "string",
"title": "string",
"description": "string",
"version": "string",
"space": "string",
"additional_fields": [
{}
]
}405Invalid input
No body.
Example request
curl -X GET "https://api.vuframe.com/public/v1/apps/{app_token}/pages/{page_token}" \
-u "USER:PASSWORD"Put values to single Page of a specific App
PUT/apps/{app_token}/pages/{page_token}
Authentication basicAuth
Replace values of a specific page of an existing app by its token.
Path parameters
| Name | Type | Description |
|---|---|---|
app_tokenrequired | string | Token of an App |
page_tokenrequired | string | Token of an App |
Request body required
Example request body for replacing the SmartVu Share Code list of a collection page. It will replace the existing Share Codes with the given ones. Find more about Share Codes at Vuframe Wiki - Shared SmartVu
Content type application/json
| Field | Type | Description |
|---|---|---|
additional_fields | object | |
additional_fields.smartvus | array of string | Array of Share Codes of shared SmartVu's |
Example
{
"additional_fields": {
"smartvus": [
"ShareCode"
]
}
}Responses
200successful operation
Content type application/json
| Field | Type | Description |
|---|---|---|
token | string | Token of Page |
title | string | Title of Page |
version | string | Version of Page |
additional_fields | array of object | Additional fields that are specific to a type of page. |
Example
{
"token": "string",
"title": "string",
"version": "string",
"additional_fields": [
{}
]
}405Invalid input
No body.
Example request
curl -X PUT "https://api.vuframe.com/public/v1/apps/{app_token}/pages/{page_token}" \
-u "USER:PASSWORD" \
-H "Content-Type: application/json" \
-d '{"additional_fields":{"smartvus":["ShareCode"]}}'Patch single Page of a specific App
PATCH/apps/{app_token}/pages/{page_token}
Authentication basicAuth
Patch specific page of an existing app by its token.
Path parameters
| Name | Type | Description |
|---|---|---|
app_tokenrequired | string | Token of an App |
page_tokenrequired | string | Token of an App |
Request body required
Example request body for updating the SmartVu Share Code list of a collection page. It will add the given ShareCodes to the Page. If one of these ShareCodes is already added, the api won't attach it to this page. Currently it is not possible to delete or overwrite the list of share codes. This will be implemented in a next version.
Find more about Share Codes at Vuframe Wiki - Shared SmartVu
Content type application/json
| Field | Type | Description |
|---|---|---|
additional_fields | object | |
additional_fields.smartvus | array of string | Array of Share Codes of shared SmartVu's |
Example
{
"additional_fields": {
"smartvus": [
"ShareCode"
]
}
}Responses
204successful operation
No body.
405Invalid input
No body.
Example request
curl -X PATCH "https://api.vuframe.com/public/v1/apps/{app_token}/pages/{page_token}" \
-u "USER:PASSWORD" \
-H "Content-Type: application/json" \
-d '{"additional_fields":{"smartvus":["ShareCode"]}}'