Summary
Dataton Watchout is a multi-display production and playback system. This spec covers its HTTP REST API for show control, including timeline playback, input management, cue sequencing, and event streams. Default API port is 3019.
Transport
protocols:
- http
addressing:
base_url: http://localhost:3019
auth:
type: none # inferred: no auth procedure in source
Traits
- powerable # UNRESOLVED: no explicit power commands in source
- routable # inferred: input routing commands present
- queryable # inferred: state query endpoints present
Actions
- id: play_all_timelines
label: Play All Timelines
kind: action
params: []
- id: play_timeline
label: Play Timeline by ID
kind: action
params:
- name: timeline_id
type: integer
description: Timeline ID
- id: pause_timeline
label: Pause Timeline by ID
kind: action
params:
- name: timeline_id
type: integer
description: Timeline ID
- id: stop_timeline
label: Stop Timeline by ID
kind: action
params:
- name: timeline_id
type: integer
description: Timeline ID
- id: jump_to_time
label: Jump to Time
kind: action
params:
- name: timeline_id
type: integer
description: Timeline ID
- name: time
type: integer
description: Time in milliseconds
- name: state
type: string
description: "play or pause"
- id: jump_to_cue
label: Jump to Cue
kind: action
params:
- name: timeline_id
type: integer
description: Timeline ID
- name: cue_id
type: integer
description: Cue ID
- name: state
type: string
description: "play or pause"
- id: send_msc
label: Send MSC (MIDI Show Control)
kind: action
params:
- name: command
type: object
description: MSC command object e.g. {"go": {}}
- id: set_inputs
label: Set Multiple Inputs
kind: action
params:
- name: inputs
type: array
description: Array of input objects with key, value, and optional duration
- id: set_single_input
label: Set Single Input by Name
kind: action
params:
- name: key
type: string
description: Input key name
- name: value
type: number
description: Input value (0.0 to 1.0)
- id: load_show_json
label: Load Show from JSON
kind: action
params:
- name: show_data
type: object
description: Show JSON data
- id: load_show_file
label: Load Show from .watch File
kind: action
params:
- name: show_file
type: string
description: Path to .watch file (sent as binary)
- id: switch_cue_variant_by_id
label: Switch Cue Variant by ID
kind: action
params:
- name: group_id
type: string
description: Cue group ID
- name: variant_id
type: string
description: Variant ID
- id: switch_cue_variant_by_name
label: Switch Cue Variant by Name
kind: action
params:
- name: group_name
type: string
description: Cue group name
- name: variant_name
type: string
description: Variant name
- id: switch_multiple_variants_by_id
label: Switch Multiple Variants by ID
kind: action
params:
- name: variants
type: object
description: Map of groupId to variantId
- id: switch_multiple_variants_by_name
label: Switch Multiple Variants by Name
kind: action
params:
- name: variants
type: object
description: Map of groupName to variantName
- id: reset_all_cue_variants
label: Reset All Cue Variants to Default
kind: action
params: []
- id: shutdown_node
label: Shutdown Node
kind: action
params:
- name: node_ip
type: string
description: Target node IP address (port 3017)
- id: reboot_node
label: Reboot Node
kind: action
params:
- name: node_ip
type: string
description: Target node IP address (port 3017)
- id: restart_node_services
label: Restart Node Services
kind: action
params:
- name: node_ip
type: string
description: Target node IP address (port 3017)
Feedbacks
- id: software_version
label: Software Version
type: string
query: GET /info
- id: playback_state
label: Playback State
type: object
query: GET /v0/state
- id: timelines
label: Timelines
type: array
query: GET /v0/timelines
- id: timeline_cues
label: Timeline Cues
type: array
query: GET /v0/cues/{timeline_id}
- id: inputs
label: All Inputs
type: array
query: GET /v0/inputs
- id: current_show
label: Current Show
type: object
query: GET /v0/show
- id: cue_group_state_by_id
label: Cue Group State by ID
type: object
query: GET /v0/cue-group-state/by-id
- id: cue_group_state_by_name
label: Cue Group State by Name
type: object
query: GET /v0/cue-group-state/by-name
- id: hit_test_result
label: Hit Test Result
type: object
query: POST /v0/hittest
description: Returns cues hit at given stage coordinates
Variables
- id: input_value
label: Input Value
type: number
range: [0.0, 1.0]
description: Input level value
- id: cue_variant
label: Cue Variant Selection
type: string
description: Active variant for a cue group
Events
- id: playback_state_event
type: PlaybackState
stream: SSE v0, v1, v2; NDJSON v2
description: Current playback state
- id: cue_visibility_event
type: CueVisibility
stream: SSE v0, v1, v2; NDJSON v2
description: Cue visibility changes
- id: inputs_event
type: Inputs
stream: SSE v1, v2; NDJSON v2
description: Input value changes
- id: show_revision_event
type: ShowRevision
stream: SSE v1, v2; NDJSON v2
description: Show revision updates
- id: timeline_countdowns_event
type: TimelineCountdowns
stream: SSE v2; NDJSON v2
description: Countdown/countup timing to cues with status: Pre, Last10, Last5, Reached
Macros
# UNRESOLVED: no explicit multi-step macros documented in source
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures in source
Notes
- API base URL defaults to
http://localhost:3019; production deployments use the server IP - Node management endpoints use port 3017 (e.g.
http://192.168.1.2:3017) - Timeline and cue IDs are numeric and stable across renames
- Event streams available in SSE (3 versions) and NDJSON formats
- Only visual media cues without conditional rendering supported for hit-test
- Windows PowerShell requires
curl.exeor alias removal; JSON single quotes not supported
Provenance
source_domains:
- docs.dataton.com
source_urls:
- https://docs.dataton.com/watchout-7/external_protocol/external_protocol.html
retrieved_at: 2026-04-30T04:41:03.688Z
last_checked_at: 2026-06-03T06:35:47.377Z
Verification Summary
verdict: verified
checked_at: 2026-06-03T06:35:47.377Z
matched_actions: 19
action_count: 19
confidence: medium
summary: "Complete match: all 19 spec actions verified (5 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "RS-232, TCP, or other control protocols not documented in source"
- "no explicit power commands in source"
- "no explicit multi-step macros documented in source"
- "no safety warnings or interlock procedures in source"
- "default port 3019 not explicitly confirmed as production default, only localhost example shown"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0