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/v1 Production SmartVu API

Authentication

basicAuth HTTP basic

Contact [email protected]

Endpoints

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

NameTypeDescription
app_tokenrequiredstringToken of an App

Responses

200Returns the newly created auth token in the displayed format.

Content type application/json

FieldTypeDescription
successbooleansuccess indicator
tokenstringAPI 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

FieldTypeDescription
[].tokenstringToken of App
[].titlestringTitle of App
[].descriptionstringDescription of App
[].typestringType of App
[].versionstringVersion of App
[].spacestringToken of the space that contains this app.
[].companystringName of the company that contains this app, if it exists.
[].pagesarray of PageAll pages of an app.
[].pages[].tokenstringToken of Page
[].pages[].titlestringTitle of Page
[].pages[].descriptionstringDescription of Page
[].pages[].versionstringVersion of Page
[].pages[].spacestringToken of space that contains the app of this page.
[].pages[].additional_fieldsarray of objectAdditional 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

NameTypeDescription
app_tokenrequiredstringToken of an App

Responses

200successful operation

Content type application/json

FieldTypeDescription
tokenstringToken of App
titlestringTitle of App
descriptionstringDescription of App
typestringType of App
versionstringVersion of App
spacestringToken of the space that contains this app.
companystringName of the company that contains this app, if it exists.
pagesarray of PageAll pages of an app.
pages[].tokenstringToken of Page
pages[].titlestringTitle of Page
pages[].descriptionstringDescription of Page
pages[].versionstringVersion of Page
pages[].spacestringToken of space that contains the app of this page.
pages[].additional_fieldsarray of objectAdditional 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

NameTypeDescription
app_tokenrequiredstringToken of an App
platform_identifierrequiredstringIdentifier of a specific platform (distribution form of an app)

Query parameters

NameTypeDescription
forceboolean

Responses

200successful operation

Content type application/json

FieldTypeDescription
platformPlatformStatusThe status property refers to the current release. 'unpublished_changes' is refering to the upcoming release.
platform.titlestringTitle of Platform
platform.identifierstringIdentifier of Platform
platform.releasestringRelease Number of Platform
platform.statusstringStatus of Publishing
platform.unpublished_changesbooleanAre 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

FieldTypeDescription
errorstringError 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

NameTypeDescription
app_tokenrequiredstringToken of an App

Responses

200successful operation

Content type application/json

FieldTypeDescription
tokenstringToken of App
titlestringTitle of App
statusstringPublishing Status of App
publish_readybooleanIs ready for Publishing and has unpublished changes?
public_versionstringCurrent 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

NameTypeDescription
app_tokenrequiredstringToken of an App

Query parameters

NameTypeDescription
forcerequiredbooleanDefault: true.

Responses

200successful operation

Content type application/json

FieldTypeDescription
platformsarray of PlatformStatus
platforms[].titlestringTitle of Platform
platforms[].identifierstringIdentifier of Platform
platforms[].releasestringRelease Number of Platform
platforms[].statusstringStatus of Publishing
platforms[].unpublished_changesbooleanAre 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

NameTypeDescription
app_tokenrequiredstringToken of an App

Responses

200successful operation

Content type application/json

FieldTypeDescription
[].titlestringTitle of Platform
[].identifierstringIdentifier of Platform
[].releasestringRelease Number of Platform
[].statusstringStatus of Publishing
[].unpublished_changesbooleanAre 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

NameTypeDescription
app_tokenrequiredstringToken of an App

Responses

200successful operation

Content type application/json

FieldTypeDescription
[].tokenstringToken of Page
[].titlestringTitle of Page
[].descriptionstringDescription of Page
[].versionstringVersion of Page
[].spacestringToken of space that contains the app of this page.
[].additional_fieldsarray of objectAdditional 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

NameTypeDescription
app_tokenrequiredstringToken of an App
page_tokenrequiredstringToken of an App

Responses

200successful operation

Content type application/json

FieldTypeDescription
tokenstringToken of Page
titlestringTitle of Page
descriptionstringDescription of Page
versionstringVersion of Page
spacestringToken of space that contains the app of this page.
additional_fieldsarray of objectAdditional 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

NameTypeDescription
app_tokenrequiredstringToken of an App
page_tokenrequiredstringToken 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

FieldTypeDescription
additional_fieldsobject
additional_fields.smartvusarray of stringArray of Share Codes of shared SmartVu's
Example
{
  "additional_fields": {
    "smartvus": [
      "ShareCode"
    ]
  }
}

Responses

200successful operation

Content type application/json

FieldTypeDescription
tokenstringToken of Page
titlestringTitle of Page
versionstringVersion of Page
additional_fieldsarray of objectAdditional 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

NameTypeDescription
app_tokenrequiredstringToken of an App
page_tokenrequiredstringToken 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

FieldTypeDescription
additional_fieldsobject
additional_fields.smartvusarray of stringArray 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"]}}'