Advanced Control
any api command can be sent as a POST request body to this endpoint
getTime
{"key1":"value1","key2":"value2"}
{"key1":"value1","key2":"value2"}
POST /api HTTP/1.1
Host: 127.0.0.1:9022
Content-Type: application/json
Accept: */*
Content-Length: 114
{
"command": "getTime",
"parameters": {
"key1": "value1",
"key2": "value2"
},
"variables": {
"key1": "value1",
"key2": "value2"
}
}
{
"result": {
"success": true,
"ANY_ADDITIONAL_PROPERTY": "text"
}
}
Internal version of the scheduleAction command.
optional id to track this command, will be returned in the response
123
optional: UUID of title/layer to operate on
optional: Name (or UUID) of the title to operate on.
Test
channel to query or -1 for all; channels are numbered from left to right starting at 0 regardless of their names in the project
-1
(REQUIRED) ONE OF: animateIn, animateOut, alert, cutin, cutout, render, update, still, automatic
animateIn
optional A "queue" name used internally
AlertQueue
optional
optional
When should this action fire? Time is specified in seconds since program launch. See command: getTime
POST /api/command/schedule HTTP/1.1
Host: 127.0.0.1:9022
Content-Type: application/json
Accept: */*
Content-Length: 33
{
"key1": "value1",
"key2": "value2"
}
{
"result": {
"command": "schedule",
"reply": "schedule",
"requestId": "123",
"success": true
}
}
The command doesn't have to be "customMessage". It can be anything you want, just so long as the to
field has been set. If the to
field names a listening controller, this command will result in a success message. Otherwise, the result will be an error. In either case, the message will be sent as a notification to all controllers.
optional id to track this command, will be returned in the response
By convention, is usually the name of another input. When set, this message is passed to all data controllers as a notification (including itself) but will not be handled by Captivate at all. If this is missing, Captivate will treat this like a normal command, and it might cause undesired results.
My Controller: Instance 1
You can specify a "sender" for this message. The sender defaults to the empty string and is internally known as the "default" sender. Controllers that subscribe to notifications can choose which "sender" to listen to. Currently, only some API methods support filtering messages by sender, but making use of sender values in your controllers is good practice.
My Controller: Instance 2
Any valid JSON object
value
GET /api/command/customMessage HTTP/1.1
Host: 127.0.0.1:9022
Accept: */*
{
"result": {
"command": "customMessage",
"error": "No such input",
"reply": "customMessage",
"sender": "",
"success": true,
"to": "Some+Listener"
}
}
High level title playback control.
optional id to track this command, will be returned in the response
optional: UUID of title/layer to operate on
comma-separated list of title names. In direct case, prepend 'name:' to title id, ie 'name:{id...}'
Title Name
channel to query or -1 for all; channels are numbered from left to right starting at 0 regardless of their names in the project
-1
(REQUIRED) ONE OF: auto, in, out, stop, cut, update, still, play, setvars, show, hide, take, takein, link, unlink, activate, deactivate
auto
When should this action fire? Time is specified in seconds since program launch. See command: getTime
GET /api/command/macro HTTP/1.1
Host: 127.0.0.1:9022
Accept: */*
{
"result": {
"command": "macro",
"macroEvent": "auto",
"reply": "macro",
"success": true
}
}
Last updated