Summary
BirdDog NDI converters and cameras are controlled via a RESTful HTTP API (version 2.0) on port 8080. The API provides endpoints for device info, NDI encode/decode configuration, PTZ control, exposure, white balance, picture settings, colour matrix, gamma, detail, and Silicon2 streaming (RTSP/SRT/HX/RTMP). Not all endpoints are available on all models.
Transport
protocols:
- http
addressing:
base_url: "http://<device-ip>:8080"
port: 8080
auth:
type: none # inferred: no auth procedure in source for the control API
Traits
traits:
- powerable # inferred from reboot/restart commands
- queryable # inferred from numerous GET endpoints returning device state
- levelable # inferred from audio gain, brightness, contrast, color controls
- routable # inferred from NDI source connect/disconnect commands
Actions
actions:
- id: reboot
label: Reboot Device
kind: action
params: []
http:
method: GET
path: /reboot
- id: reboot_post
label: Reboot Device (POST)
kind: action
params: []
http:
method: POST
path: /reboot
- id: restart_video
label: Restart Video Subsystem
kind: action
params: []
http:
method: GET
path: /restart
- id: restart_video_post
label: Restart Video Subsystem (POST)
kind: action
params: []
http:
method: POST
path: /restart
- id: set_operation_mode
label: Set Operation Mode
kind: action
params:
- name: mode
type: string
enum: [encode, decode]
description: "Device operation mode"
http:
method: POST
path: /operationmode
note: "Not present in Flex Encode, Flex Decode, WP Encode, WP Decode, P200/A200/A300, P100/PF120, P4k/P400"
- id: set_video_output_interface
label: Set Video Output Interface
kind: action
params:
- name: videooutput
type: string
enum: [sdi, hdmi, LowLatency, NormalMode]
description: "Video output mode"
http:
method: POST
path: /videooutputinterface
note: "Not present in Studio, Mini, Flex Encode, Flex Decode, WP Encode, WP Decode, QUAD, P200/A200/A300, P100/PF120, P4k/P400"
- id: set_analog_audio
label: Set Analog Audio Setup
kind: action
params:
- name: AnalogAudioInGain
type: integer
min: 0
max: 100
description: "Audio input gain"
- name: AnalogAudioOutGain
type: integer
min: 0
max: 100
description: "Audio output gain"
- name: AnalogAudiooutputselect
type: string
enum: [DecodeMain, DecodeComms, DecodeLoop]
description: "Audio output select"
http:
method: POST
path: /analogaudiosetup
note: "AnalogAudiooutputselect not present in Flex Encode, WP Encode, QUAD, P200/A200/A300, P100/PF120, P4k/P400"
- id: set_encode_transport
label: Set NDI Encode Transport
kind: action
params:
- name: Txpm
type: string
enum: [Multicast, TCP, Multi-TCP, UDP]
description: "Transport mode"
- name: Txnetprefix
type: string
description: "Network prefix (x.x.x.x)"
- name: Txnetmask
type: string
description: "Network mask (x.x.x.x)"
- name: Txmcttl
type: string
description: "Multicast TTL"
http:
method: POST
path: /encodeTransport
- id: set_encode_setup
label: Set NDI Encode Setup
kind: action
params:
- name: ChNum
type: integer
min: 1
max: 4
description: "Channel number"
- name: VideoFormat
type: string
description: "Video format"
- name: VideoSampleRate
type: string
enum: ["420", "422", "444"]
- name: ColorBitDepth
type: string
enum: [8Bit, 10Bit, 12Bit]
- name: StreamName
type: string
description: "NDI stream name"
- name: NDIAudio
type: string
enum: [NDIAudioMain, NDIAudioAnalog, NDIAudioMute]
- name: ScreenSaverMode
type: string
enum: [BirdDogSS, BlackSS, CaptureSS]
- name: BandwidthMode
type: string
enum: [Manual, NDIManaged]
- name: BandwidthSelect
type: integer
min: 60
max: 360
- name: LoopTally
type: string
enum: [LoopTallyEn, LoopTallyDis]
- name: TallyMode
type: string
enum: [TallyOn, TallyOff, VideoMode]
- name: VideoCSC
type: string
enum: [NoCSC, RGB, YVU, YUV444, YVU444]
- name: NDIGroup
type: string
enum: [NDIGroupEn, NDIGroupDis]
- name: NDIGroupName
type: string
description: "NDI group name"
http:
method: POST
path: /encodesetup
- id: connect_to_ndi_source
label: Connect to NDI Source
kind: action
params:
- name: sourceName
type: string
description: "NDI source name to connect to"
- name: ChNum
type: integer
min: 1
max: 4
description: "Channel number"
- name: status
type: string
enum: [Encode, Decode]
http:
method: POST
path: /connectTo
- id: set_decode_transport
label: Set NDI Decode Transport
kind: action
params:
- name: rxpm
type: string
enum: [Multicast, TCP, Multi-TCP, UDP]
description: "Transport mode"
http:
method: POST
path: /decodeTransport
- id: set_decode_setup
label: Set NDI Decode Setup
kind: action
params:
- name: ChNum
type: integer
min: 1
max: 4
description: "Channel number"
- name: ColorSpace
type: string
enum: [RGB, YUV]
- name: TallyMode
type: string
enum: [TallyOn, TallyOff, VideoMode]
- name: ScreenSaverMode
type: string
enum: [BirdDogSS, BlackSS, CaptureSS]
- name: NDIAudio
type: string
enum: [NDIAudioEn, NDIAudioDis]
http:
method: POST
path: /decodesetup
- id: set_ndi_discovery_server
label: Set NDI Discovery Server
kind: action
params:
- name: NDIDisServ
type: string
enum: [NDIDisServEn, NDIDisServDis]
description: "Enable/disable discovery server"
- name: NDIDisServIP
type: string
description: "Discovery server IP (x.x.x.x)"
http:
method: POST
path: /NDIDisServer
- id: set_ndi_group_name
label: Set NDI Group Name
kind: action
params:
- name: groupName
type: string
description: "NDI group name"
http:
method: POST
path: /NdiGrpName
- id: set_off_subnet_source
label: Set Off-Subnet NDI Source IP
kind: action
params:
- name: ipAddress
type: string
description: "Off-subnet IP address (x.x.x.x)"
http:
method: POST
path: /NdiOffSnSrc
- id: refresh_ndi_list
label: Refresh NDI Source List
kind: action
params: []
http:
method: POST
path: /refresh
- id: reset_ndi_list
label: Reset NDI Source List
kind: action
params: []
http:
method: POST
path: /reset
- id: capture_screensaver
label: Capture Screensaver Frame
kind: action
params:
- name: ChNum
type: integer
min: 1
max: 4
description: "Channel number"
- name: status
type: string
enum: [Encode, Decode]
http:
method: GET
path: /capture
- id: set_ptz_setup
label: Set PTZ Speeds
kind: action
params:
- name: PanSpeed
type: integer
min: 0
max: 21
description: "Pan speed"
- name: TiltSpeed
type: integer
min: 0
max: 18
description: "Tilt speed"
- name: ZoomSpeed
type: integer
min: 0
max: 7
description: "Zoom speed"
http:
method: POST
path: /birddogptzsetup
- id: recall_preset
label: Recall PTZ Preset
kind: action
params:
- name: Preset
type: string
description: "Preset name (Preset-1 through Preset-9)"
http:
method: POST
path: /recall
- id: save_preset
label: Save PTZ Preset
kind: action
params:
- name: Preset
type: string
description: "Preset name (Preset-1 through Preset-9)"
http:
method: POST
path: /save
- id: set_exposure
label: Set Exposure Settings
kind: action
params:
- name: ExpMode
type: string
enum: [FULL-AUTO, MANUAL, SHUTTER-PRI, IRIS-PRI, BRIGHT]
- name: AeResponse
type: integer
min: 1
max: 48
- name: BackLight
type: string
enum: [On, Off]
- name: BrightLevel
type: integer
description: "Range 0 or 5-31"
- name: ExpCompEn
type: string
enum: [On, Off]
- name: ExpCompLvl
type: integer
description: "Range 0-14 or -128 to 127"
- name: GainLevel
type: integer
description: "Range 1 to GainLimit"
- name: GainLimit
type: integer
min: 4
max: 15
- name: GainPoint
type: string
enum: [On, Off]
- name: GainPointPosition
type: integer
min: 1
max: 13
- name: HighSensitivity
type: string
enum: [On, Off]
- name: IrisLevel
type: integer
description: "Range 0 or 5-17"
- name: ShutterControlOverwrite
type: string
enum: [On, Off]
- name: ShutterMaxSpeed
type: integer
min: 20
max: 33
- name: ShutterMinSpeed
type: integer
description: "Range 16 to ShutterMaxSpeed"
- name: ShutterSpeed
type: integer
min: 0
max: 21
- name: ShutterSpeedOverwrite
type: integer
min: 30
max: 110
- name: SlowShutterEn
type: string
enum: [On, Off]
- name: SlowShutterLimit
type: integer
min: 1
max: 6
- name: Spotlight
type: string
enum: [On, Off]
http:
method: POST
path: /birddogexpsetup
- id: set_white_balance
label: Set White Balance Settings
kind: action
params:
- name: WbMode
type: string
enum: [AUTO, INDOOR, OUTDOOR, OUTDOOR-AUTO, ONEPUSH, ATW, MANUAL, SVL-AUTO, SVL, SVL-OUTDOOR-AUTO]
- name: RedGain
type: integer
min: 0
max: 255
- name: BlueGain
type: integer
min: 0
max: 255
- name: ColorTemp
type: integer
min: 2800
max: 6500
- name: Speed
type: integer
min: 1
max: 5
- name: Select
type: string
enum: [FL LIGHT, STD, OFF, HIGH SAT]
- name: Level
type: integer
min: 0
max: 14
- name: Offset
type: integer
min: 0
max: 14
- name: Phase
type: integer
min: 0
max: 14
- name: Matrix
type: string
enum: [On, Off]
- name: RG
type: integer
min: -99
max: 99
- name: RB
type: integer
min: -99
max: 99
- name: GR
type: integer
min: -99
max: 99
- name: GB
type: integer
min: -99
max: 99
- name: BR
type: integer
min: -99
max: 99
- name: BG
type: integer
min: -99
max: 99
http:
method: POST
path: /birddogwbsetup
- id: set_picture
label: Set Picture Settings
kind: action
params:
- name: Color
type: integer
min: 0
max: 15
- name: Contrast
type: integer
min: 0
max: 15
- name: Hue
type: integer
min: 0
max: 15
- name: Sharpness
type: integer
min: -128
max: 127
- name: Gamma
type: integer
min: 0
max: 4
- name: Effect
type: string
enum: [BW, Off]
- name: Flip
type: string
enum: [On, Off]
- name: Mirror
type: string
enum: [On, Off]
- name: Stabilizer
type: string
enum: [On, Off]
- name: IRCutFilter
type: string
enum: [Auto, On, Off]
- name: BackLightCom
type: string
enum: [On, Off]
- name: ChromeSuppress
type: string
enum: [OFF, LOW, MEDIUM, HIGH]
- name: HighlightComp
type: string
enum: [OFF, LOW, MEDIUM, HIGH]
- name: HighlightCompMask
type: integer
min: 0
max: 15
- name: NoiseReduction
type: string
description: "Off or 1-5"
- name: TWODNR
type: string
description: "Off or 1-5"
- name: ThreeDNR
type: string
description: "Off or 1-5"
- name: WideDynamicRange
type: string
description: "Off or 1-6"
- name: LowLatency
type: string
enum: [On, Off]
- name: NDFilter
type: integer
min: 0
max: 3
http:
method: POST
path: /birddogpicsetup
- id: set_colour_matrix
label: Set Colour Matrix
kind: action
params:
- name: ColourGain
type: integer
min: 0
max: 255
- name: HuePhase
type: integer
min: 0
max: 255
- name: RedGain
type: integer
min: 0
max: 64
- name: RedHue
type: integer
min: 0
max: 64
- name: GreenGain
type: integer
min: 0
max: 64
- name: GreenHue
type: integer
min: 0
max: 64
- name: BlueGain
type: integer
min: 0
max: 64
- name: BlueHue
type: integer
min: 0
max: 64
- name: CyanGain
type: integer
min: 0
max: 64
- name: CyanHue
type: integer
min: 0
max: 64
- name: MagGain
type: integer
min: 0
max: 64
- name: MagHue
type: integer
min: 0
max: 64
- name: YellowGain
type: integer
min: 0
max: 64
- name: YellowHue
type: integer
min: 0
max: 64
http:
method: POST
path: /birddogcmsetup
- id: set_advanced
label: Set Advanced Settings
kind: action
params:
- name: Brightness
type: integer
min: 0
max: 6
- name: BrightnessComp
type: string
enum: [VERY DARK, DARK, STANDARD, BRIGHT]
- name: CompLevel
type: string
enum: [LOW, MID, HIGH]
- name: GammaOffset
type: integer
min: 16
max: 64
- name: HighResolution
type: string
enum: [On, Off]
- name: VideoEnhancement
type: string
enum: [On, Off]
http:
method: POST
path: /birddogadvancesetup
- id: set_external
label: Set External Settings
kind: action
params:
- name: Aux
type: string
enum: [On, Off]
- name: RainWiper
type: string
enum: [On, Off]
- name: V12vOut
type: string
enum: [On, Off]
http:
method: POST
path: /birddogexternalsetup
- id: set_detail
label: Set Detail Settings
kind: action
params:
- name: Detail
type: string
enum: [On, Off]
- name: Bandwidth
type: string
enum: [DEFAULT, LOW, MIDDLE, HIGH, WIDE]
- name: BwBalance
type: string
enum: [TYPE1, TYPE2, TYPE3, TYPE4, TYPE5]
- name: Crispening
type: integer
min: 0
max: 7
- name: HighLightDetail
type: integer
min: 0
max: 4
- name: HvBalance
type: integer
min: -2
max: 2
- name: Limit
type: integer
min: 0
max: 7
- name: SuperLow
type: integer
min: 0
max: 7
http:
method: POST
path: /birddogdetsetup
- id: set_gamma
label: Set Gamma Settings
kind: action
params:
- name: Settings
type: string
enum: [PATTERN, STANDARD, STRAIGHT]
- name: BlackGammaLevel
type: integer
min: 0
max: 14
- name: BlackLevel
type: integer
min: 0
max: 96
- name: BlackLevelRange
type: string
enum: [LOW, MID, HIGH]
- name: Effect
type: integer
min: -3
max: 3
- name: Level
type: integer
min: 0
max: 14
- name: Offset
type: integer
min: -64
max: 64
- name: Pattern
type: integer
min: 0
max: 512
- name: PatternFine
type: integer
min: 0
max: 9
- name: VisibilityEnhancer
type: string
enum: [On, Off]
http:
method: POST
path: /birddoggammasetup
- id: set_silicon2_codec
label: Set Silicon2 Codec Settings
kind: action
params:
- name: Protocol
type: string
enum: [RTSP, SRT, HX, RTMP, DISABLE]
- name: BitrateControl
type: string
enum: [vbr, cbr]
- name: ModeSel
type: string
enum: [Custom, low, med, high, ultra]
- name: QuantFactorI
type: integer
min: 18
max: 47
- name: QuantFactorP
type: integer
min: 18
max: 47
- name: GOPSize
type: integer
min: 1
max: 59
- name: Bitrate
type: integer
min: 1
max: 80
http:
method: POST
path: /sil2codec
- id: set_silicon2_encode
label: Set Silicon2 Encode/Streaming Settings
kind: action
params:
- name: StreamingProtocol
type: string
enum: [RTSP, SRT, HX, RTMP, DISABLE]
http:
method: POST
path: /sil2enc
note: "Full params include RTSP (Port, StreamName, AuthEnable, UserName, Password), SRT (IPAddress, Port, mode, latency, Encryption, passphrase, pbkeylen, streamid), RTMP (ServerSelection, AuthEnable, StreamKeyLocal, StreamKeyRemote, Server, UserName, Password), HaiVisionPlayerSupport"
Feedbacks
feedbacks:
- id: device_info
label: Device Info
type: object
fields:
- name: FirmwareVersion
type: string
- name: Format
type: string
description: "Device manufacturer extended format"
- name: HostName
type: string
- name: IPAddress
type: string
- name: NetworkConfigMethod
type: string
enum: [DHCP, STATIC]
- name: SerialNumber
type: string
- name: Status
type: string
enum: [ONLINE, OFFLINE, CAMERA INITIALIZING, NO VIDEO]
http:
method: GET
path: /about
- id: hostname
label: Hostname
type: string
http:
method: GET
path: /hostname
- id: hardware_version
label: Hardware Version
type: string
http:
method: GET
path: /version
- id: operation_mode
label: Operation Mode
type: string
enum: [encode, decode]
http:
method: GET
path: /operationmode
note: "Not present in Flex Encode, Flex Decode, WP Encode, WP Decode, P200/A200/A300, P100/PF120, P4k/P400"
- id: video_output_interface
label: Video Output Interface
type: string
enum: [sdi, hdmi, LowLatency, NormalMode]
http:
method: GET
path: /videooutputinterface
- id: analog_audio_setup
label: Analog Audio Setup
type: object
fields:
- name: AnalogAudioInGain
type: string
- name: AnalogAudioOutGain
type: string
- name: AnalogAudiooutputselect
type: string
http:
method: GET
path: /analogaudiosetup
- id: encode_transport
label: NDI Encode Transport Settings
type: object
fields:
- name: Txpm
type: string
- name: Txnetprefix
type: string
- name: Txnetmask
type: string
- name: Txmcttl
type: string
http:
method: GET
path: /encodeTransport
- id: encode_setup
label: NDI Encode Setup
type: object
http:
method: GET
path: /encodesetup
- id: connected_ndi_source
label: Connected NDI Source
type: object
fields:
- name: sourceName
type: string
http:
method: GET
path: /connectTo
- id: decode_transport
label: NDI Decode Transport Settings
type: object
fields:
- name: rxpm
type: string
http:
method: GET
path: /decodeTransport
- id: decode_setup
label: NDI Decode Setup
type: object
http:
method: GET
path: /decodesetup
- id: decode_status
label: NDI Decode Status
type: object
fields:
- name: Videoresolution
type: string
- name: VideoFramerate
type: string
- name: VideoSamplerate
type: string
- name: Audiochannels
type: string
- name: AudioSamplerate
type: string
- name: AverageBitrate
type: string
http:
method: GET
path: /decodestatus
- id: ndi_source_list
label: NDI Source List
type: object
http:
method: GET
path: /List
- id: ndi_discovery_server
label: NDI Discovery Server
type: object
fields:
- name: NDIDisServ
type: string
- name: NDIDisServIP
type: string
http:
method: GET
path: /NDIDisServer
- id: ndi_group_name
label: NDI Group Name
type: string
http:
method: GET
path: /NDIGrpName
- id: off_subnet_source
label: Off-Subnet Source IP
type: string
http:
method: GET
path: /NDIOffSnSrc
- id: ptz_setup
label: PTZ Speed Settings
type: object
fields:
- name: PanSpeed
type: string
- name: TiltSpeed
type: string
- name: ZoomSpeed
type: string
http:
method: GET
path: /birddogptzsetup
- id: exposure_setup
label: Exposure Settings
type: object
http:
method: GET
path: /birddogexpsetup
- id: white_balance_setup
label: White Balance Settings
type: object
http:
method: GET
path: /birddogwbsetup
- id: picture_setup
label: Picture Settings
type: object
http:
method: GET
path: /birddogpicsetup
- id: colour_matrix_setup
label: Colour Matrix Settings
type: object
http:
method: GET
path: /birddogcmsetup
- id: advanced_setup
label: Advanced Settings
type: object
http:
method: GET
path: /birddogadvancesetup
- id: external_setup
label: External Settings
type: object
http:
method: GET
path: /birddogexternalsetup
- id: detail_setup
label: Detail Settings
type: object
http:
method: GET
path: /birddogdetsetup
- id: gamma_setup
label: Gamma Settings
type: object
http:
method: GET
path: /birddoggammasetup
- id: silicon2_codec
label: Silicon2 Codec Settings
type: object
http:
method: GET
path: /birddogsil2codec
- id: silicon2_encode
label: Silicon2 Encode/Streaming Settings
type: object
http:
method: GET
path: /birddogsil2enc
Variables
variables:
- id: audio_input_gain
label: Analog Audio Input Gain
type: integer
min: 0
max: 100
endpoint: /analogaudiosetup
param: AnalogAudioInGain
- id: audio_output_gain
label: Analog Audio Output Gain
type: integer
min: 0
max: 100
endpoint: /analogaudiosetup
param: AnalogAudioOutGain
- id: pan_speed
label: Pan Speed
type: integer
min: 0
max: 21
endpoint: /birddogptzsetup
param: PanSpeed
- id: tilt_speed
label: Tilt Speed
type: integer
min: 0
max: 18
endpoint: /birddogptzsetup
param: TiltSpeed
- id: zoom_speed
label: Zoom Speed
type: integer
min: 0
max: 7
endpoint: /birddogptzsetup
param: ZoomSpeed
- id: bandwidth_select
label: NDI Bandwidth
type: integer
min: 60
max: 360
endpoint: /encodesetup
param: BandwidthSelect
- id: srt_latency
label: SRT Latency
type: integer
min: 80
max: 8000
endpoint: /sil2enc
param: latency
Events
# UNRESOLVED: no unsolicited event/notification mechanism documented in source
Macros
# UNRESOLVED: no multi-step macro sequences documented in source
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: source does not document safety warnings, interlock procedures, or power-on sequencing
Notes
- The API uses both GET and POST for some operations (reboot, restart, refresh, reset) — both methods produce the same result.
- All parameter values are sent and received as strings, even for numeric ranges.
- Many endpoints accept
ChNum(channel number, range 1-4) for multi-channel devices like the QUAD. - Endpoint availability varies by model; source documents exclusions (e.g., "not present in Flex Encode, WP Encode...") but does not provide a definitive inclusion matrix.
- The Silicon2 endpoints (
/sil2codec,/sil2enc) use slightly different paths in POST examples (/sil2codecvs/birddogsil2codecfor GET) — this may be a documentation inconsistency. - POST bodies use
Content-Type: application/jsonfor structured params andContent-Type: text/plainfor simple string values (e.g., operation mode, group name). - The API version documented is 2.0.0.
Provenance
source_domains:
- birddog.tv
source_urls:
- https://birddog.tv/AV/API/index.html
retrieved_at: 2026-04-30T04:40:40.994Z
last_checked_at: 2026-06-03T06:22:59.741Z
Verification Summary
verdict: verified
checked_at: 2026-06-03T06:22:59.741Z
matched_actions: 31
action_count: 31
confidence: medium
summary: "All 31 actions verified against source. Transport (http, 8080, no auth) confirmed (9 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "exact model-to-endpoint mapping not fully documented — source notes only list models where certain endpoints are NOT present"
- "firmware version compatibility not stated in source"
- "no unsolicited event/notification mechanism documented in source"
- "no multi-step macro sequences documented in source"
- "source does not document safety warnings, interlock procedures, or power-on sequencing"
- "exact model-to-endpoint availability matrix not fully specified"
- "no error response codes or error handling documented"
- "no rate limiting or concurrency guidance documented"
- "RTSP/SRT/RTMP streaming auth parameters (user/pass, passphrase) documented but not the control API auth"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0