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"}successful operation
bad request
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
123optional: UUID of title/layer to operate on
optional: Name (or UUID) of the title to operate on.
Testchannel 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
animateInoptional A "queue" name used internally
AlertQueueoptional
optional
When should this action fire? Time is specified in seconds since program launch. See command: getTime
successful operation
bad request
POST /api/command/schedule?action=text 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 1You 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 2Any valid JSON object
valuesuccessful operation
bad request
GET /api/command/customMessage?to=text 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 Namechannel 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
autoWhen should this action fire? Time is specified in seconds since program launch. See command: getTime
successful operation
bad request
GET /api/command/macro?event=text HTTP/1.1
Host: 127.0.0.1:9022
Accept: */*
{
"result": {
"command": "macro",
"macroEvent": "auto",
"reply": "macro",
"success": true
}
}Last updated