Introduction
This documents an HTTP based API for basic control of PVP.
Requests
Scheme
Requests may be made over HTTP or HTTPS depending on your PVP settings.
Prefix
All request paths are prefixed with /api/0
in addition to the standard URL components for the scheme (https), host, and port.
For an end point with the path /data/playlists
, the full request would be:
GET https://localhost:8080/api/0/data/playlists
Authentication
API Access Request:
// HTTP
GET /api/0/data/playlists HTTP/1.1
Host: localhost:8080
Content-Type: application/json
// HTTPS
GET /api/0/data/playlists HTTP/1.1
Host: localhost:8080
Content-Type: application/json
Authorization: Bearer <your unique key here>
// HTTPS
curl -H "Authorization: Bearer <your unique key here>" -X GET https://localhost:8080/api/0/data/playlists -k
Access to the API is controlled via API keys. Keys can be managed in PVP preferences.
The API expects the API key to be passed with all requests via an Authorization header like the following:
Authorization: <your unique key here>
JSON
POST /api/0/opacity/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
{ "value": 0.5 }spotify
curl -d '{ "value": 0.5 }' -H "Content-Type: application/json" -X POST http://localhost:8080/api/0/opacity/layer/0 -k
Some POST requests can take JSON data as a parameter; these are noted by the sections in the documentation that contain a 'Request Body'. Our API conforms to the JSON 1.0 Specification
HTTP
If JSON is needed for an HTTP request, the folowing should be included in the request:
{ "<requestBodyKey>": <requestBodyValue> }
- NOTE: The above is only an example. Some requests will have more keys/values, but these will be defined in the request body sections of the documentation.
A sample request to assign an opacity of 0.5 to layer 0 is shown on the right:
CURL
If JSON is needed for a cURL request, the following should be included in the request:
-d '{ "<requestBodyKey>":<requestBodyValue> }' -H "Content-Type: application/json"
- NOTE: The correct "requestBodyKey" and "requestBodyValue" can be found in the Request Body section of each request that should/can include JSON.
A sample request to assign an opacity of 0.5 to layer 0 is shown on the right:
Data
Playlists
Example Request:
GET /api/0/data/playlists HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/data/playlists -k
JSON response:
{
"playlist":{
"items":[
],
"name":"Root",
"children":[
{
"items":[
{
"name":"002_JB_HD-H264",
"uuid":"6CD29387-44B8-4D61-94D7-6BE69359D12E"
},
{
"name":"003_JB_HD-H264",
"uuid":"16441A40-3B08-4575-89F2-1A44C9656A14"
},
{
"name":"005_JB_HD-H264",
"uuid":"0244E1A9-04B1-43DE-82C8-7FCA1E36F2CA"
}
],
"name":"Playlist 1",
"children":[
],
"uuid":"9EE5DFC3-7EE2-47F8-B932-765CEBBA8245"
},
{
"items":[
],
"name":"Group A",
"children":[
{
"items":[
{
"name":"037_JB_HD-H264",
"uuid":"D3029DEB-39BB-49EE-9E25-E39525CDB020"
},
{
"name":"042_JB_HD-H264",
"uuid":"4A2EC5DC-22B9-40A3-856D-70878FA89AF8"
}
],
"name":"Playlist 2",
"children":[
],
"uuid":"2F9A1691-B659-4199-8655-AA46729D0C21"
}
],
"uuid":"D62AFD1D-59B5-46FC-A33B-6F7E1AC7C5A0"
},
{
"items":[
],
"name":"Live Video",
"children":[
],
"uuid":"5F34B21B-76F7-4837-A337-92F13CF6F856"
}
],
"uuid":"C0E4E090-F969-4B60-9526-D44EBC5C52ED"
}
}
/data/playlists
GET
Returns a JSON representation of playlists including a brief description of the cues in each playlist.
Specific Playlist
Request:
GET /api/0/data/playlist/playlistName HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/data/playlist/playlistName -k
JSON response:
{
"playlist":{
"items":[
{
"name":"002_JB_HD-H264",
"uuid":"6CD29387-44B8-4D61-94D7-6BE69359D12E"
},
{
"name":"003_JB_HD-H264",
"uuid":"16441A40-3B08-4575-89F2-1A44C9656A14"
},
{
"name":"005_JB_HD-H264",
"uuid":"0244E1A9-04B1-43DE-82C8-7FCA1E36F2CA"
}
],
"name":"Playlist 1",
"children":[
],
"uuid":"9EE5DFC3-7EE2-47F8-B932-765CEBBA8245"
}
}
/data/playlist/{id}
GET
Returns JSON representation of specified playlist
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the playlist |
NOTE: The 'Live Video' playlist can be accessed by -1 (index) or by UUID
Specific Cue
Request:
GET /api/0/data/playlist/0/cue/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/data/playlist/0/cue/0 -k
JSON response:
{
"playlistItem" : {
"name" : "Abstract Cheer Gold Fast-HD 1080",
"uuid" : "0CC37FC9-3784-4599-9088-B06C55ACB1D0"
}
}
/data/playlist/{playlistID}/cue/{cueID}
GET
Returns JSON representation of the specified cue in the specified playlist
Parameters
Parameter | Description |
---|---|
playlistID | Can be a uuid (string), name (string), or index (integer) of the playlist |
cueID | Can be a uuid (string), name (string), or index (integer) of the cue |
Layers
Request:
GET /api/0/data/layers HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/data/layers -k
JSON response:
{
"data" : [
{
"layer" : {
"isHidden" : false,
"name" : "Layer 1",
"isMuted" : false,
"effectPresetUUID" : "null",
"effects" : [
],
"uuid" : "394B7D0F-050E-4590-98B9-B30A8823488D",
"opacity" : 1,
"targetSetUUID" : "AC04BC27-F3C2-429D-BC9B-446D04465EE9",
"transitionDuration" : 0.5
}
},
{
"layer" : {
"isHidden" : false,
"name" : "Layer 2",
"isMuted" : false,
"effectPresetUUID" : "null",
"effects" : [
{
"variables" : [
{
"type" : "Float",
"base" : {
"value" : -2.002185583114624,
"max_value" : 3.1415927410125732,
"min_value" : -3.1415927410125732,
"name" : "Hue"
}
},
{
"type" : "Float",
"base" : {
"value" : 1.328668475151062,
"max_value" : 2,
"min_value" : 0,
"name" : "Saturation"
}
},
{
"type" : "Float",
"base" : {
"value" : 0,
"max_value" : 1,
"min_value" : -1,
"name" : "Brightness"
}
},
{
"type" : "Float",
"base" : {
"value" : 0.84164398908615112,
"max_value" : 2,
"min_value" : 0,
"name" : "Contrast"
}
}
],
"enabled" : true,
"name" : "Adjust Color",
"uuid" : "D4C199A9-64D7-4CCB-8C26-443E7A9C5C03"
},
{
"variables" : [
{
"type" : "Float",
"base" : {
"value" : 0.30066463351249695,
"max_value" : 1,
"min_value" : 0,
"name" : "Blur Amount"
}
}
],
"enabled" : true,
"name" : "Blur",
"uuid" : "D84CE4A3-D1C3-4F7C-AA75-4C645A3621F2"
}
],
"uuid" : "75969169-B4B3-45A1-8B4A-2A037CABDB97",
"opacity" : 0.74831989247311825,
"targetSetUUID" : "95DE9073-DF30-427A-A824-45120205EB29",
"transitionDuration" : 0.5
}
},
{
"layer" : {
"isHidden" : false,
"name" : "Layer 3",
"isMuted" : false,
"effectPresetUUID" : "null",
"effects" : [
{
"variables" : [
{
"type" : "Float",
"base" : {
"value" : 0.5,
"max_value" : 1,
"min_value" : 0.0099999997764825821,
"name" : "Blend Amount"
}
},
{
"type" : "Float",
"base" : {
"value" : 0.5,
"max_value" : 1,
"min_value" : 0.0099999997764825821,
"name" : "Speed"
}
}
],
"enabled" : true,
"name" : "Radial Blur",
"uuid" : "6BC757C8-3F76-4E7E-885A-7A7C944465A5"
}
],
"uuid" : "364A8A26-1DEE-4991-ABE4-2CDE04BB6761",
"opacity" : 1,
"targetSetUUID" : "8B276680-12C8-4990-8F9F-9BFE6489E4C8",
"transitionDuration" : 0.5
}
},
{
"layer" : {
"isHidden" : false,
"name" : "Layer 4",
"isMuted" : false,
"effectPresetUUID" : "null",
"effects" : [
],
"uuid" : "421841A9-3BA4-41DD-9211-5B07FEF76721",
"opacity" : 1,
"targetSetUUID" : "null",
"transitionDuration" : 0.5
}
}
]
}
/data/layers
GET
Returns JSON representation of layers
Specific Layer
Request:
GET /api/0/data/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/data/layer/0 -k
JSON response:
{
"layer" : {
"isHidden" : false,
"name" : "Layer 1",
"isMuted" : false,
"effectPresetUUID" : "null",
"effects" : [
],
"uuid" : "394B7D0F-050E-4590-98B9-B30A8823488D",
"opacity" : 1,
"targetSetUUID" : "AC04BC27-F3C2-429D-BC9B-446D04465EE9",
"transitionDuration" : 0.5
}
}
/data/layer/{id}
GET
Returns JSON representation of specified layer
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer |
Clear
Workspace
Request:
POST /api/0/clear/workspace HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/clear/workspace -k
/clear/workspace
POST
Tells the client application to clear the workspace
Layer
Request:
POST /api/0/clear/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/clear/layer/0 -k
/clear/layer/{id}
POST
Tells the client application to clear a specified layer
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we want to clear. |
Mute
Workspace
Request:
POST /api/0/mute/workspace HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/mute/workspace -k
/mute/workspace
POST
Tells the client application to mute the workspace
Layer
Request:
POST /api/0/mute/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/mute/layer/0 -k
/mute/layer/{id}
POST
Tells the client application to mute a specified layer
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we want to mute |
Unmute
Workspace
Request:
POST /api/0/unmute/workspace HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/unmute/workspace -k
/unmute/workspace
POST
Tells the client application to unmute the workspace
Layer
Request:
POST /api/0/unmute/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/unmute/layer/0 -k
/unmute/layer/{id}
POST
Tells the client application to unmute a specified layer
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we want to mute |
Hide
Workspace
Request:
POST /api/0/hide/workspace HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/hide/workspace -k
/hide/workspace
POST
Tells the client application to hide the workspace
Layer
Request:
POST /api/0/hide/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/hide/layer/0 -k
/hide/layer/{id}
POST
Tells the client application to hide a specified layer
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we want to hide |
Unhide
Workspace
Request:
POST /api/0/unhide/workspace HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/unhide/workspace -k
/unhide/workspace
POST
Tells the client application to unhide the workspace
Layer
Request:
POST /api/0/unhide/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/unhide/layer/0 -k
/unhide/layer/{id}
POST
Tells the client application to unhide a specified layer
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we want to unhide |
Select
Layer
Request:
POST /api/0/select/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/select/layer/0 -k
/select/layer/{id}
POST
Tells the client application to select a layer for the sidebar preview and layer options.
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer |
Playlist
Request:
POST /api/0/select/playlist/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/select/playlist/0 -k
/select/playlist/{id}
POST
Tells the client application to select a playlist.
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the playlist. |
Note The index will correspond with the top level playlists only.
Trigger
Cue in Current Playlist
Request:
POST /api/0/trigger/cue/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/trigger/cue/0 -k
/trigger/cue/{id}
POST
Triggers the specified cue in the current playlist Will also trigger a liveVideoAction if the currentPlaylist is the liveVideoPlaylist
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the cue or liveVideoAction |
First Cue in Playlist
Request:
POST /api/0/trigger/playlist/playlistName HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/trigger/playlist/playlistName -k
/trigger/playlist/{id}
POST
Triggers the first cue in the playlist Will also trigger a liveVideoAction if the currentPlaylist is the liveVideoPlaylist
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the playlist |
NOTE: The 'Live Video' playlist can be accessed by index -1 or by UUID
Cue in Playlist
Request:
POST /api/0/trigger/playlist/playlistName HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/trigger/playlist/playlistName/cue/0 -k
/trigger/playlist/{playlistId}/cue/{cueId}
POST
Finds the playlist with the playlistID & then triggers the cue with the cueID Will also trigger a liveVideoAction if the found playlist is the liveVideoPlaylist
Parameters
Parameter | Description |
---|---|
playlistId | Can be a uuid (string), name (string), or index (integer) of the playlist we need to search through |
cueID | Can be a uuid (string), name (string), or index (integer) of the cue or liveVideoAction |
NOTE: The 'Live Video' playlist can be accessed by -1 (index) or by UUID
Cue in Playlist Targeting Layer
Request:
POST /api/0/trigger/layer/0/playlist/0/cue/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/trigger/layer/0/playlist/0/cue/0 -k
/trigger/layer/{layerId}/playlist/{playlistId}/cue/{cueID}
POST
Triggers a cue or live video action to a specific layer. You can use the playlist end point to search for the cue within a specific playlist
Parameters
Parameter | Description |
---|---|
layerId | Can be a uuid (string), name (string), or index (integer) of the layer we will target and fire the media on. |
playlistId | Can be a uuid (string), name (string), or index (integer) of the playlist we need to search through. |
cueID | Can be a uuid (string), name (string), or index (integer) of the cue or liveVideoAction. |
Opacity
Layer Opacity
Request:
GET /api/0/opacity/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/opacity/layer/0 -k
/opacity/layer/{id}
GET
Gets the opacity value for a specific layer.
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we will target and change the opacity on |
Response: {value}: The representation (double) of the opacity
Request:
POST /api/0/opacity/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/opacity/layer/0 -k
JSON Body:
{
"value" : 0.5
}
POST
Sets the opacity value for a specific layer.
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we will target and change the opacity on |
Request Body JSON
Key | Description |
---|---|
value | The representation is a (double) for the layer opacity |
Blend Mode
Available Blend Modes
Request:
GET /api/0/blendMode HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/blendMode -k
JSON Response:
{
"data" : [
{
"blendMode" : {
"name" : "Normal",
"id" : 0
}
},
{
"blendMode" : {
"name" : "Dissolve",
"id" : 1
}
},
{
"blendMode" : {
"name" : "Darken",
"id" : 2
}
},
{
"blendMode" : {
"name" : "Multiply",
"id" : 3
}
}
]
}
/blendMode
GET
Gets the all the blend modes available
Layer Blend Mode
Request:
GET /api/0/blendMode/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/blendMode/layer/0 -k
JSON Response:
{
"blendMode" : {
"name" : "Normal",
"id" : 0
}
}
/blendMode/layer/{id}
GET
Gets the blendMode of the specified layer.
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we want to get the blendMode from |
Request:
POST /api/0/blendMode/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/blendMode/layer/0 -k
JSON Body:
{
"value" : "Color Burn"
}
POST
Sets the blendMode of the specified layer.
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we will target and change the blendMode on |
Request Body JSON
Key | Description |
---|---|
value | The representation is a (string) for the name of the blend mode |
Layer Preset
Available Layer Presets
Request:
GET /api/0/layerPreset HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/layerPreset -k
JSON Response:
{
"data" : [
{
"id": "example",
"name": "exampleBlendModeName"
}
]
}
/layerPreset
GET
Gets the all the layer presets available
Layer Preset
Request:
GET /api/0/layerPreset/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/layerPreset/layer/0 -k
JSON Response:
{
"data" : [
{
"id": "example",
"name": "exampleBlendModeName"
}
]
}
/layerPreset/layer/{id}
GET
Gets the layer preset for a specific layer
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we want to get the layerPreset from |
Request:
POST /api/0/layerPreset/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/layerPreset/layer/0 -k
JSON Body:
{
"value": "exampleLayerPresetName",
}
POST
Sets the layer preset for a specific layer
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we want to set the layerPreset on |
Request Body JSON
Key | Description |
---|---|
value | The representation is a (string) for the name of the layer preset |
Target Set
Available Target Sets
Request:
GET /api/0/targetSet HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/targetSet -k
JSON Response:
{
"data" : [
{
"targetSet" : {
"name" : "Both",
"uuid" : "95DE9073-DF30-427A-A824-45120205EB29"
}
},
{
"targetSet" : {
"name" : "Right",
"uuid" : "8B276680-12C8-4990-8F9F-9BFE6489E4C8"
}
},
{
"targetSet" : {
"name" : "Left",
"uuid" : "AC04BC27-F3C2-429D-BC9B-446D04465EE9"
}
}
]
}
/targetSet
GET
Gets the all the target sets available
Layer Target Set
Request:
GET /api/0/targetSet/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/targetSet/layer/0 -k
JSON Response:
{
"targetSet" : {
"name" : "Left",
"uuid" : "AC04BC27-F3C2-429D-BC9B-446D04465EE9"
}
}
/targetSet/layer/{id}
GET
Gets the target set thats active on a specific layer which can be nil
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we want to get the targetSet from |
Request:
POST /api/0/targetSet/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/targetSet/layer/0 -k
JSON Body:
{
"value" : "Target Set 1"
}
POST
Sets the targetSet for a specific layer
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we want to set the targetSet on |
Request Body JSON
Key | Description |
---|---|
value | The representation is a (string) for the name of the target set |
NOTE: To set the targetSet to nil, do not send a JSON body.
Effects
Available Effects
Request:
GET /api/0/effects HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/effects -k
JSON Response:
{
"data" : [
{
"effect" : {
"variables" : [
{
"type" : "Float",
"base" : {
"value" : 0,
"max_value" : 3.1415927410125732,
"min_value" : -3.1415927410125732,
"name" : "Hue"
}
},
{
"type" : "Float",
"base" : {
"value" : 1,
"max_value" : 2,
"min_value" : 0,
"name" : "Contrast"
}
}
],
"enabled" : false,
"name" : "Adjust Color",
"uuid" : "D4C199A9-64D7-4CCB-8C26-443E7A9C5C03"
}
}
]
}
/effects
GET
Gets all the available effects in the client application
Workspace Effects
Request:
GET /api/0/effects/workspace HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/effects/workspace -k
JSON Response:
{
"data" : [
{
"effect" : {
"variables" : [
],
"enabled" : true,
"name" : "Color Invert",
"uuid" : "EDF55F11-1A1E-4BF3-9718-FA2D3731626D"
}
}
]
}
/effects/workspace
GET
Gets all the effects currently active on the workspace
Request:
POST /api/0/effects/workspace HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/effects/workspace -k
JSON Body:
{
"effect" : {
"variables" : [
{
"type" : "Float",
"base" : {
"value" : 0.5,
"max_value" : 1,
"min_value" : 0,
"name" : "Outline Amount"
}
},
{
"type" : "Float",
"base" : {
"value" : 0.5,
"max_value" : 1,
"min_value" : 0,
"name" : "Color Level"
}
}
],
"enabled" : true,
"name" : "Edge Outline",
"uuid" : "86BA6E3E-358F-4DA2-93C4-6A2C0EC831DA"
}
}
POST
Sets all the effects on the workspace
Request Body JSON
Key | Description |
---|---|
variables | Optional An (array of JSON Structures) of variables for the effect. See Below |
enabled | Optional The (bool) indicating whether the effect is enabled |
name | Optional The name (string) of the effect |
uuid | Required The UUID (string) of the desired effect |
Variables Array
Key | Description |
---|---|
type | A (string) value representing the type of the effect. Can be Int , Float , Double , Direction , or Color |
base | A (JSON structure) representing the values for the variable. See Below |
Base Structure
Key | Description |
---|---|
value | In the case of type: float, a (double) value representing the desired value of the variable |
max_value | In the case of type: float, a (double) value representing the max value of the variable |
min_value | In the case of type: float, a (double) value representing the min value of the variable |
name | A (string) value representing the name of the variable |
Layer Effects
Request:
GET /api/0/effects/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/effects/layer/0 -k
JSON Response:
{
"data" : [
{
"effect" : {
"variables" : [
],
"enabled" : true,
"name" : "Color Invert",
"uuid" : "EDF55F11-1A1E-4BF3-9718-FA2D3731626D"
}
}
]
}
/effects/layer/{id}
GET
Gets all the effects currently active on a specific layer
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we want to get effects from |
Request:
POST /api/0/effects/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/effects/layer/0 -k
JSON Body:
{ "effect" : {
"variables" : [
{
"type" : "Float",
"base" : {
"value" : 0.5,
"max_value" : 1,
"min_value" : 0,
"name" : "Outline Amount"
}
},
{
"type" : "Float",
"base" : {
"value" : 0.5,
"max_value" : 1,
"min_value" : 0,
"name" : "Color Level"
}
}
],
"enabled" : true,
"name" : "Edge Outline",
"uuid" : "86BA6E3E-358F-4DA2-93C4-6A2C0EC831DA"
}
}
POST
Sets all the effects on a specific layer
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we want to set effects on |
Request Body JSON
Key | Description |
---|---|
variables | Optional An (array of JSON Structures) of variables for the effect. See Below |
enabled | Optional The (bool) indicating whether the effect is enabled |
name | Optional The name (string) of the effect |
uuid | Required The UUID (string) of the desired effect |
Variables Array
Key | Description |
---|---|
type | A (string) value representing the type of the effect. Can be Int , Float , Double , Direction , or Color |
base | A (JSON structure) representing the values for the variable. See Below |
Base Structure
Key | Description |
---|---|
value | In the case of type: float, a (double) value representing the desired value of the variable |
max_value | In the case of type: float, a (double) value representing the max value of the variable |
min_value | In the case of type: float, a (double) value representing the min value of the variable |
name | A (string) value representing the name of the variable |
Effects Preset
Available Effects Presets
Request:
GET /api/0/effectsPreset HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/effectsPreset -k
JSON Response:
{
"data" : [
{
"effectPreset" : {
"name" : "ColorInvert",
"effects" : [
{
"variables" : [
],
"enabled" : true,
"name" : "Color Invert",
"uuid" : "EDF55F11-1A1E-4BF3-9718-FA2D3731626D"
}
],
"uuid" : "3B076957-6D48-45A7-803F-6D1E06B02F54"
}
}
]
}
/effectsPreset
GET
Gets all the available effectPresets in the client application
Workspace Effects Presets
Request:
GET /api/0/effectsPreset/workspace HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/effectsPreset/workspace -k
JSON Response:
{
"effectPreset" : {
"name" : "ColorInvert",
"effects" : [
{
"variables" : [
],
"enabled" : true,
"name" : "Color Invert",
"uuid" : "EDF55F11-1A1E-4BF3-9718-FA2D3731626D"
}
],
"uuid" : "3B076957-6D48-45A7-803F-6D1E06B02F54"
}
}
/effectsPreset/workspace
GET
Gets the effectPreset currently selected on the workspace, this can be Null
Response JSON
Key | Description |
---|---|
uuid | The representation is a (string) for the effectPreset uuid |
name | The name of the effectPreset represented as (string) |
effects | Array of JSON values containing the effects within this preset or null if nothing is selected |
Request:
POST /api/0/effectsPreset/workspace HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/effectsPreset/workspace -k
JSON Body:
{
"value" : null
}
POST
Sets the effectPreset on a the workspace, you can set the value to be Null
Request Body JSON
Key | Description |
---|---|
value | The representation is a (string) for the effectPreset uuid or null if nothing is selected |
Layer Effects Preset
Request:
GET /api/0/effectsPreset/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/effectsPreset/layer/0 -k
JSON Response:
{
"effectPreset" : {
"name" : "ColorInvert",
"effects" : [
{
"variables" : [
],
"enabled" : true,
"name" : "Color Invert",
"uuid" : "EDF55F11-1A1E-4BF3-9718-FA2D3731626D"
}
],
"uuid" : "3B076957-6D48-45A7-803F-6D1E06B02F54"
}
}
/effectsPreset/layer/{id}
GET
Gets the effectPreset currently selected on a specific layer, this can be Null
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we want to get the preset from |
Response JSON
Key | Description |
---|---|
uuid | The representation is a (string) for the effectPreset uuid |
name | The name of the effectPreset represented as (string) |
effects | Array of JSON values containing the effects within this preset or null if nothing is selected |
Request:
POST /api/0/effectsPreset/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/effectsPreset/layer/0 -k
JSON Body:
{
"value" : "NameOfEffectsPreset"
}
POST
Sets an effectPreset on a specific layer, you can set the value to be Null
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or null if we don't want to set an effect Preset |
Request Body JSON
Key | Description |
---|---|
value | The (string) value for the name of the effects preset |
Transitions
Available Transitions
Request:
GET /api/0/transition HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/transition -k
JSON Response:
{
"data" : [
{
"transition" : {
"variables" : [
{
"type" : "Color",
"base" : {
"name" : "Burn Color",
"color" : "#6C6C6C"
}
}
],
"enabled" : false,
"name" : "Color Burn",
"uuid" : "2B855B65-6ABC-4F65-8198-A19A5EF97821"
}
},
{
"transition" : {
"variables" : [
],
"enabled" : false,
"name" : "Color Push",
"uuid" : "E958E7B0-E5C2-4C10-9B22-D1FE4FEA1E49"
}
}
]
}
/transition
GET
Gets all the available transitions in the client application
Response JSON
Key | Description |
---|---|
transitions | (Array) of JSON values containing the transitions |
Workspace Transition
Request:
GET /api/0/transition/workspace HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/transition/workspace -k
JSON Response:
{
"transition" : {
"variables" : [
],
"enabled" : false,
"name" : "Default (Dissolve)",
"uuid" : "EC52A828-AD85-4602-B70C-1DEE7C904DB6"
}
}
/transition/workspace
GET
Gets the transition currently selected on the workspace
Response JSON
Key | Description |
---|---|
uuid | The representation is a (string) for the transition uuid |
name | The name of the transition represented as (string) |
enabled | (Bool) value representing whether the transition is enabled |
Request:
POST /api/0/transition/workspace HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/transition/workspace -k
JSON Body:
{
"transition" : {
"variables" : [
{
"type" : "Color",
"base" : {
"name" : "Burn Color",
"color" : "#6C6C6C"
}
}
],
"enabled" : false,
"name" : "Color Burn",
"uuid" : "2B855B65-6ABC-4F65-8198-A19A5EF97821"
}
}
POST
Sets the transition on a the workspace.
Request Body JSON
Key | Description |
---|---|
value | The representation is a (string) for the transition uuid |
name | The name of the transition represented as (string) |
Layer Transition
Request:
GET /api/0/transition/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/transition/layer/0 -k
JSON Response:
{
"transition" : {
"variables" : [
],
"enabled" : false,
"name" : "Cross Hatch",
"uuid" : "5584E51F-5C92-47B5-9B65-3C2540C1F20C"
}
}
/transition/layer/{id}
GET
Gets the transition currently selected on a layer, this can be Null
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we want to get the transition from |
Paramaters: None
Response JSON
Key | Description |
---|---|
uuid | The representation is a (string) for the transition uuid |
name | The name of the transition represented as (string) or null if nothing is selected |
enabled | (Bool) value representing whether the transition is enabled |
Request:
POST /api/0/transition/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/transition/layer/0 -k
JSON Body:
{
"transition" : {
"variables" : [
{
"type" : "Color",
"base" : {
"name" : "Burn Color",
"color" : "#6C6C6C"
}
}
],
"enabled" : false,
"name" : "Color Burn",
"uuid" : "2B855B65-6ABC-4F65-8198-A19A5EF97821"
}
}
POST
Sets the transition on a layer, you can set the value to be Null if you want to set it to use the master transition
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we want to set the transition on |
Request Body JSON
Key | Description |
---|---|
value | The representation is a (string) for the transition uuid |
name | The name of the transition represented as (string) or null if nothing is selected |
Transition Duration
Workspace Transition Duration
Request:
GET /api/0/transitionDuration/workspace HTTP/1.1
Host: localhost: 8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/transitionDuration/workspace -k
JSON Response:
{
"transitionDuration" : {
"value" : 0.5
}
}
/transitionDuration/workspace
GET
Gets the transition duration for the workspace
Response JSON
Key | Description |
---|---|
value | The representation is a (double) and can be between 0.0 & 5.0 |
Request:
POST /api/0/transitionDuration/workspace HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/transitionDuration/workspace -k
JSON Body:
{
"value" : 1.5
}
POST
Sets the transition duration on the workspace.
Request Body JSON
Key | Description |
---|---|
value | The representation should be a (double) and can be between 0.0 & 5.0 |
Layer Transition Duration
Request:
GET /api/0/transitionDuration/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/transitionDuration/layer/0 -k
JSON Response:
{
"transitionDuration" : {
"value" : 0.5
}
}
/transitionDuration/layer/{id}
GET
Gets the transition duration for a layer
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we want to get the transition duration from |
Response JSON
Key | Description |
---|---|
value | The representation is a (double) and can be between 0.0 & 5.0 |
Request:
POST /api/0/transitionDuration/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X POST http://localhost:8080/api/0/transitionDuration/layer/0 -k
JSON Body:
{
"value" : 1.5
}
POST
Sets the transition duration on a layer.
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we want to set the transition duration on |
Request Body JSON
Key | Description |
---|---|
value | The representation should be a (double) and can be between 0.0 & 5.0 |
Transport State
Workspace Transport State
Request:
GET /api/0/transportState/workspace HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/transportState/workspace -k
JSON Response:
{
"data" : [
{
"transportState" : {
"timeElapsed" : 0,
"playbackRate" : 0,
"layer" : {
"isHidden" : false,
"name" : "Layer 1",
"isMuted" : false,
"effectPresetUUID" : "3B076957-6D48-45A7-803F-6D1E06B02F54",
"effects" : [
{
"variables" : [
],
"enabled" : true,
"name" : "Color Invert",
"uuid" : "EDF55F11-1A1E-4BF3-9718-FA2D3731626D"
}
],
"transition" : {
"variables" : [
{
"type" : "Color",
"base" : {
"name" : "Burn Color",
"color" : "#585858"
}
}
],
"enabled" : false,
"name" : "Color Burn",
"uuid" : "2B855B65-6ABC-4F65-8198-A19A5EF97821"
},
"uuid" : "394B7D0F-050E-4590-98B9-B30A8823488D",
"opacity" : 0.5,
"targetSetUUID" : "95DE9073-DF30-427A-A824-45120205EB29",
"transitionDuration" : 1.5
},
"isScrubbing" : false,
"timeRemaining" : 0,
"isPlaying" : false
}
}
]
}
/transportState/workspace
GET
Gets the transport state for the workspace
Response JSON
Key | Description |
---|---|
data | An (Array) containing information on the transport state of the workspace |
Layer Transport State
Request:
GET /api/0/transportState/layer/0 HTTP/1.1
Host: localhost:8080
Content-Type: application/json
curl -X GET http://localhost:8080/api/0/transportState/layer/0 -k
JSON Response:
{
"transportState" : {
"timeElapsed" : 0,
"playbackRate" : 0,
"layer" : {
"isHidden" : false,
"name" : "Layer 1",
"isMuted" : false,
"effectPresetUUID" : "3B076957-6D48-45A7-803F-6D1E06B02F54",
"effects" : [
{
"variables" : [
],
"enabled" : true,
"name" : "Color Invert",
"uuid" : "EDF55F11-1A1E-4BF3-9718-FA2D3731626D"
}
],
"transition" : {
"variables" : [
{
"type" : "Color",
"base" : {
"name" : "Burn Color",
"color" : "#585858"
}
}
],
"enabled" : false,
"name" : "Color Burn",
"uuid" : "2B855B65-6ABC-4F65-8198-A19A5EF97821"
},
"uuid" : "394B7D0F-050E-4590-98B9-B30A8823488D",
"opacity" : 0.5,
"targetSetUUID" : "95DE9073-DF30-427A-A824-45120205EB29",
"transitionDuration" : 1.5
},
"isScrubbing" : false,
"timeRemaining" : 0,
"isPlaying" : false
}
}
/transportState/layer/{id}
GET
Gets the transport state for a layer
Parameters
Parameter | Description |
---|---|
id | Can be a uuid (string), name (string), or index (integer) of the layer we want to get the transport state on |
Response JSON
Key | Description |
---|---|
data | An (Array) containing information on the transport state of the layer |
Errors
The API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request -- Your request was invalid. |
401 | Unauthorized -- Authorization failed. |
403 | Forbidden -- The endpoint requested is hidden for administrators only. |
404 | Not Found -- The specified endpoint could not be found. |
405 | Method Not Allowed -- You tried to access an endpoint with an invalid method. |
500 | Internal Server Error -- We had a problem with our server. Try again later. |
503 | Service Unavailable -- We're temporarily offline for maintenance. Please try again later. |