Summary
Church presentation software control via HTTP REST API on port 52195. Supports slide navigation, audio/video playback, quick screens, on-air state, and song lyrics. Local requests exempt from auth; remote requests require password + token.
Transport
protocols:
- http
addressing:
port: 52195 # stated: cannot be changed
base_url: "http://<host>:52195" # host = ipaddress; path appended per action
auth:
type: token # password -> auth token; local requests exempt
note: "unauthenticated allowed from same machine; remote requires POST to /appCommand/authenticate"
header: "ProclaimAuthToken" # header carrying the token for /appCommand/perform
exempt_paths:
- /onair/session # explicitly stated: no auth required
Traits
# inferred from command set
- powerable # GoOnAir / GoOffAir present
- queryable # /onair/session returns session id; /appCommand/perform acts as state pusher
# Note: routable and levelable are NOT supported by source evidence (no input/output routing,
# no volume/gain commands) and were removed from the prior draft.
Actions
# All actions are GET requests to /appCommand/perform unless otherwise noted.
# Authenticated remote requests must include header: ProclaimAuthToken: <token>.
# index param applies only to commands annotated with * in the source (1-254).
# --- Authentication ---
- id: authenticate
label: Authenticate
kind: action
method: POST
command: "/appCommand/authenticate"
body:
- name: Password
type: string
description: Network Control Password (default: 'proclaim')
params: []
# --- Slide ---
- id: next_slide
label: NextSlide
kind: action
command: "/appCommand/perform?appCommandName=nextSlide"
params: []
- id: previous_slide
label: PreviousSlide
kind: action
command: "/appCommand/perform?appCommandName=previousSlide"
params: []
- id: next_service_item
label: NextServiceItem
kind: action
command: "/appCommand/perform?appCommandName=nextServiceItem"
params: []
- id: previous_service_item
label: PreviousServiceItem
kind: action
command: "/appCommand/perform?appCommandName=previousServiceItem"
params: []
- id: start_pre_service
label: StartPreService
kind: action
command: "/appCommand/perform?appCommandName=startPreService"
params: []
- id: start_warm_up
label: StartWarmUp
kind: action
command: "/appCommand/perform?appCommandName=startWarmUp"
params: []
- id: start_service
label: StartService
kind: action
command: "/appCommand/perform?appCommandName=startService"
params: []
- id: start_post_service
label: StartPostService
kind: action
command: "/appCommand/perform?appCommandName=startPostService"
params: []
- id: go_to_service_item
label: GoToServiceItem
kind: action
command: "/appCommand/perform?appCommandName=goToServiceItem&index={index}"
params:
- name: index
type: integer
description: Service item index (1-254)
- id: go_to_slide
label: GoToSlide
kind: action
command: "/appCommand/perform?appCommandName=goToSlide&index={index}"
params:
- name: index
type: integer
description: Slide index (1-254)
# --- Audio Video ---
- id: next_audio_item
label: NextAudioItem
kind: action
command: "/appCommand/perform?appCommandName=nextAudioItem"
params: []
- id: previous_audio_item
label: PreviousPreviousAudioItem
kind: action
command: "/appCommand/perform?appCommandName=previousAudioItem"
params: []
- id: video_restart
label: VideoRestart
kind: action
command: "/appCommand/perform?appCommandName=videoRestart"
params: []
- id: video_rewind
label: VideoRewind
kind: action
command: "/appCommand/perform?appCommandName=videoRewind"
params: []
- id: video_fast_forward
label: VideoFastForward
kind: action
command: "/appCommand/perform?appCommandName=videoFastForward"
params: []
- id: video_play
label: VideoPlay
kind: action
command: "/appCommand/perform?appCommandName=videoPlay"
params: []
- id: video_pause
label: VideoPause
kind: action
command: "/appCommand/perform?appCommandName=videoPause"
params: []
# --- QuickScreens ---
- id: show_blank_quick_screen
label: ShowBlankQuickScreen
kind: action
command: "/appCommand/perform?appCommandName=showBlankQuickScreen"
params: []
- id: show_logo_quick_screen
label: ShowLogoQuickScreen
kind: action
command: "/appCommand/perform?appCommandName=showLogoQuickScreen"
params: []
- id: show_no_text_quick_screen
label: ShowNoTextQuickScreen
kind: action
command: "/appCommand/perform?appCommandName=showNoTextQuickScreen"
params: []
- id: show_floating_hearts_quick_screen
label: ShowFloatingHeartsQuickScreen
kind: action
command: "/appCommand/perform?appCommandName=showFloatingHeartsQuickScreen"
params: []
- id: show_floating_amens_quick_screen
label: ShowFloatingAmensQuickScreen
kind: action
command: "/appCommand/perform?appCommandName=showFloatingAmensQuickScreen"
params: []
- id: show_amen_quick_screen
label: ShowAmenQuickScreen
kind: action
command: "/appCommand/perform?appCommandName=showAmenQuickScreen"
params: []
- id: show_hallelujah_quick_screen
label: ShowHallelujahQuickScreen
kind: action
command: "/appCommand/perform?appCommandName=showHallelujahQuickScreen"
params: []
- id: show_praise_the_lord_quick_screen
label: ShowPraiseTheLordQuickScreen
kind: action
command: "/appCommand/perform?appCommandName=showPraiseTheLordQuickScreen"
params: []
- id: show_he_is_risen_quick_screen
label: ShowHeIsRisenQuickScreen
kind: action
command: "/appCommand/perform?appCommandName=showHeIsRisenQuickScreen"
params: []
- id: show_he_is_risen_white_quick_screen
label: ShowHeIsRisenWhiteQuickScreen
kind: action
command: "/appCommand/perform?appCommandName=showHeIsRisenWhiteQuickScreen"
params: []
# --- On/Off Air ---
- id: go_on_air
label: GoOnAir
kind: action
command: "/appCommand/perform?appCommandName=goOnAir"
params: []
- id: go_off_air
label: GoOffAir
kind: action
command: "/appCommand/perform?appCommandName=goOffAir"
params: []
# --- Song Commands ---
- id: show_song_lyrics_verse_by_index
label: ShowSongLyricsVerseByIndex
kind: action
command: "/appCommand/perform?appCommandName=showSongLyricsVerseByIndex&index={index}"
params:
- name: index
type: integer
description: Verse number (1-254)
- id: show_song_lyrics_bridge_by_index
label: ShowSongLyricsBridgeByIndex
kind: action
command: "/appCommand/perform?appCommandName=showSongLyricsBridgeByIndex&index={index}"
params:
- name: index
type: integer
description: Bridge index (1-254)
- id: show_song_lyrics_chorus_by_index
label: ShowSongLyricsChorusByIndex
kind: action
command: "/appCommand/perform?appCommandName=showSongLyricsChorusByIndex&index={index}"
params:
- name: index
type: integer
description: Chorus index (1-254)
- id: show_song_lyrics_pre_chorus_by_index
label: ShowSongLyricsPreChorusByIndex
kind: action
command: "/appCommand/perform?appCommandName=showSongLyricsPreChorusByIndex&index={index}"
params:
- name: index
type: integer
description: Pre-chorus index (1-254)
- id: show_song_lyrics_ending_by_index
label: ShowSongLyricsEndingByIndex
kind: action
command: "/appCommand/perform?appCommandName=showSongLyricsEndingByIndex&index={index}"
params:
- name: index
type: integer
description: Ending index (1-254)
- id: show_song_lyrics_interlude_by_index
label: ShowSongLyricsInterludeByIndex
kind: action
command: "/appCommand/perform?appCommandName=showSongLyricsInterludeByIndex&index={index}"
params:
- name: index
type: integer
description: Interlude index (1-254)
- id: show_song_lyrics_tag_by_index
label: ShowSongLyricsTagByIndex
kind: action
command: "/appCommand/perform?appCommandName=showSongLyricsTagByIndex&index={index}"
params:
- name: index
type: integer
description: Tag index (1-254)
# --- On-Air Session Query ---
- id: onair_session
label: GetOnAirSession
kind: query
command: "/onair/session"
auth_required: false # source: "This route does not require any authentication."
params: []
Feedbacks
# /onair/session -- returns session id if on air, empty if not
- id: onair_session
label: OnAir Session
type: string
description: Returns session id string if Proclaim is On Air, empty body if not. Session id stable for On Air duration; changes on re-on-air.
# Auth token response (from /appCommand/authenticate POST)
- id: auth_response
label: Auth Response
type: object
description: Returns {"proclaimAuthToken":"<token>"} on successful authentication. The token is opaque and used in the ProclaimAuthToken header for subsequent /appCommand/perform requests.
Variables
# No standalone settable parameters found; all control via actions
Events
# UNRESOLVED: no unsolicited notifications documented
Macros
# No explicit multi-step macros documented
Safety
confirmation_required_for: []
interlocks: []
# Note: password sent as plain text over network -- do not use important password
Notes
- Port 52195 fixed; cannot be changed per vendor documentation.
- Password defaults to 'proclaim'; changeable in Proclaim > Settings > Remote > Network Control Password.
- Auth token must be included in
ProclaimAuthTokenheader for all/appCommand/performrequests from remote machines. /appCommand/authenticate(POST) and/onair/session(GET) are exempt from token auth./onair/sessionreturns an empty body when Proclaim is Off Air; non-empty session id when On Air.- App command names are case-insensitive per vendor documentation.
- Index range for annotated commands: 1-254 (per source: "index is expected to be a value between 1 - 254").
- For Chorus/Bridge/etc. with un-indexed values, omit the index parameter.
previousAudioItemcommand name is documented verbatim in source asPreviousPreviousAudioItem(vendor typo); preserved in theprevious_audio_itemaction's label.
Provenance
source_domains:
- support.proclaim.logos.com
source_urls:
- https://support.proclaim.logos.com/hc/en-us/articles/19864456647053-Proclaim-App-Command-API
retrieved_at: 2026-07-24T18:50:14.450Z
last_checked_at: 2026-08-05T08:32:08.534Z
Verification Summary
verdict: verified
checked_at: 2026-08-05T08:32:08.534Z
matched_actions: 38
action_count: 38
confidence: medium
summary: "All 38 spec actions map 1:1 to source appCommandName tokens and the two endpoints; transport values verbatim. (2 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "device power/thermal specs not applicable (software)"
- "no unsolicited notifications documented"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0