API Docs

Actions

http://localhost:5505

PROJECT

index_select_project

					{"index": number}
					
next_project_item
previous_project_item
index_select_project_item

					{"index": number}
					

SHOWS

name_select_show

					{"value": string}
					
start_show

					{"id": string}
					
change_layout

					{"showId": string, "layoutId": string}
					
set_plain_text

					{"id": string, "value": string}
					
rearrange_groups

					{"showId": string, "from": number, "to": number}
					
add_group

					{"showId": string, "groupId": string}
					
set_template

					{"id": string}
					

PRESENTATION

next_slide
previous_slide
random_slide
index_select_slide

					{"index": number}
					
name_select_slide

					{"value": string}
					
id_select_group

					{"id": string}
					
lock_output

					{"value?": boolean}
					
toggle_output_windows
start_scripture

					{"id": string, "reference": string}
					

STAGE

id_select_stage_layout

					{"id": string}
					

CLEAR

restore_output
clear_all
clear_background
clear_slide
clear_overlays
clear_audio
clear_next_timer

MEDIA

start_camera

					{"name?": string, "id": string, "groupId?": any}
					
play_media

					{"path": string}
					

OVERLAYS

index_select_overlay

					{"index": number}
					
name_select_overlay

					{"value": string}
					

AUDIO

change_volume

					{"volume?": number, "gain?": number}
					
start_audio_stream

					{"id": string}
					
start_playlist

					{"id": string}
					
playlist_next
start_metronome

					{"tempo?": number, "beats?": number, "volume?": number}
					

TIMERS

name_start_timer

					{"value": string}
					
id_start_timer

					{"id": string}
					
start_slide_timers

					{"showId?": string | "active", "slideId?": string}
					
stop_timers
start_slide_recording

VISUAL

id_select_output_style

					{"id": string}
					
change_output_style

					{"outputStyle?": string, "styleOutputs?": any}
					
change_stage_output_layout

					{"outputId?": string, "stageLayoutId": string}
					
change_transition

					{"id?": "text" | "media", "type?": TransitionType, "duration?": number, "easing?": string}
					

OTHER

change_variable

					{"id?": string, "name?": string, "index?": number, "key?": "text" | "number" | "value" | "enabled" | "step" | "name" | "type", "value?": string | number | boolean, "variableAction?": "increment" | "decrement"}
					
start_trigger

					{"id": string}
					
send_midi

					{"input?": string, "output?": string, "type": "noteon" | "noteoff", "values": {"note": number, "velocity": number, "channel": number}}
					
run_action

					{"id": string}
					
toggle_action

					{"id": string, "value?": boolean}
					
send_rest_command

					{"url": string, "method": string, "contentType": string, "payload": string}
					

GET

get_shows
get_show

					{"id": string}
					
get_projects
get_project

					{"id": string}
					
get_plain_text

					{"id": string}
					
get_groups

					{"id": string}
					
get_thumbnail

					{"path": string}
					
get_cleared

Examples

Make sure the WebSocket/REST API is active in the FreeShow "Connections" settings!

HTTP

    fetch(`http://localhost:5506?action=${ACTION_ID}&data=${JSON.stringify(data)}`)
	
REST

    fetch("http://localhost:5506", { method: "POST", body: JSON.stringify({ action: ACTION_ID, ...data }) })
	
WebSocket

    let socket = io.connect("http://localhost:5505", { transports: ["websocket"] })
    socket.emit("data", JSON.stringify({ action: ACTION_ID, ...data }))
    

For Node.js, check out the NPM Helper Package.