Proclaim has many built-in commands that can be executed from third-party devices. To control these with midi, look here. To control Proclaim, you will be making HTTP requests against Proclaim’s internal HTTP server.
Connecting
First, ensure Proclaim’s local server is enabled. To do so, open Proclaim and Go to Settings > Remote and hit Enable. If on Windows, you may be prompted to allow Proclaim to make a firewall exception for the port it needs to expose.
Proclaim exposes the API on port 52195. Currently, this port cannot be changed.
Authentication
Proclaim will allow requests unauthenticated if they originate from the same computer. This allows for easy integration with our official Stream Deck plugin.
For calls originating outside your local machine, you will need to authenticate with Proclaim first. To do so, you will make a POST request to the authenticate route with the network password supplied in the BODY. This password defaults to ‘proclaim’ and can be changed in Proclaim > Settings > Remote > Network Control Password.
Note: This password will be passed as plain text over your network, so do not use a password that is important to you.
Path: /appCommand/authenticate
Method: POST
Port: 52195
Body: JSON object with the following shape:
{
"Password": "proclaim or your own password"
}
Example:
POST http://[ipaddress]:52195/appCommand/authenticate
Body:
{
"Password": "proclaim"
}
On return, if the correct password was sent, Proclaim will respond with JSON containing the Proclaim Auth Token like:
{
"proclaimAuthToken":"oxdBKO0NkEyMGj4-UqYVGQ"
}
In all future requests, include this auth token in a header called ProclaimAuthToken.
Perform App Commands
To perform an app command, you will need to hit the /appCommand route along with 1 or 2 parameters. The first is `appCommandName` and is required. The second, is `index` and is optional and only needed for a few App Commands. You can see which ones in the list toward the bottom of this article.
Path: /appCommand/perform
Query Params:
appCommandName: A valid, case-insensitive app command name.
index: optional index to provide along with the app command.
Method: GET
Port: 52195
Headers: ProclaimAuthToken={proclaim auth token}
Example:
GET http://[ipaddress]:52195/appCommand/perform?appCommandName=nextSlide
Example with index
GET http://[ipaddress]:52195/appCommand/perform?appCommandName=goToServiceItem&index=4
Example authenticated CURL request
curl -H "ProclaimAuthToken: oxdBKO0NkEyMGj4-UqYVGQ" http://192.168.1.15:52195/appCommand/perform?appCommandName=nextSlide
Example authenticated CURL request with index
curl -H "ProclaimAuthToken: oxdBKO0NkEyMGj4-UqYVGQ" http://192.168.1.15:52195/appCommand/perform?appCommandName=goToServiceItem&index=4
List of App Commands
The following are the support app commands today. You can see a similar list in Proclaim when setting up MIDI Input.
For commands that require an index, the index is expected to be a value between 1 - 254 and will be annotated with a *
Slide
NextSlide
PreviousSlide
NextServiceItem
PreviousServiceItem
StartPreService
StartWarmUp
StartService
StartPostService
GoToServiceItem*
GoToSlide*
Audio Video
NextAudioItem
PreviousPreviousAudioItem
VideoRestart
VideoRewind
VideoFastForward
VideoPlay
VideoPause
QuickScreens
ShowBlankQuickScreen
ShowLogoQuickScreen
ShowNoTextQuickScreen
ShowFloatingHeartsQuickScreen
ShowFloatingAmensQuickScreen
ShowAmenQuickScreen
ShowHallelujahQuickScreen
ShowPraiseTheLordQuickScreen
ShowHeIsRisenQuickScreen
ShowHeIsRisenWhiteQuickScreen
On/Off Air
GoOnAir
GoOffAir
Song Commands
For songs, the index is which part of the song it is. So Verse 1 would be 1. Chorus would be 1, Chorus 2 would be 2, etc. For Chorus, Bridge or other un-index values you can ignore the index parameter.
ShowSongLyricsVerseByIndex*
ShowSongLyricsBridgeByIndex*
ShowSongLyricsChorusByIndex*
ShowSongLyricsPreChorusByIndex*
ShowSongLyricsEndingByIndex*
ShowSongLyricsInterludeByIndex*
ShowSongLyricsTagByIndex*
Additional API
The OnAir session route returns a unique on air session id if Proclaim is On Air and returns nothing if Proclaim is not On Air. The session id is stable for the duration of the On Air session. If Proclaim is taken off air and goes back On Air, it will return a new session id.
This route does not require any authentication.
Path: /onair/session
Method: GET
Port: 52195
Example:
GET http://[ipaddress]:52195/onair/session