Summary
PIXNET is an HTTP-based control API for Sound Devices PIX video recorders. Controls transport (rec/play/stop), settings, file management, timecode, and event polling via HTTP requests to the unit's IP address on port 80. CORS enabled. Authentication method UNRESOLVED (no login procedure documented in source).
Transport
protocols:
- http
addressing:
base_url: http://[host] # host = PIX unit IP address, port 80
auth:
type: UNRESOLVED # source documents no login procedure but does not explicitly state no auth
Traits
- queryable # transport state, timecode, settings queryable
- levelable # input gain adjustable (-250 to +200 tenths of dB)
# powerable: UNRESOLVED (transport states are play/stop/rec only; no documented power-on/off)
# routable: UNRESOLVED (no input/output routing commands found)
Actions
- id: settransport
label: Set Transport State
kind: action
params:
- name: state
type: enum
values: [play, stop, rec]
- id: setsetting
label: Change a Setting
kind: action
params:
- name: setting
type: string
description: Setting name from Setting Names section (case-sensitive)
- name: value
type: string
description: URL-encoded setting value as shown on unit
- id: false_take
label: Initiate False Take
kind: action
params: []
- id: fast_forward
label: Fast Forward Playback
kind: action
params:
- name: speed
type: enum
values: [PlayX2, PlayX16]
- id: fast_reverse
label: Fast Reverse Playback
kind: action
params:
- name: speed
type: enum
values: [PlayX2, PlayX16]
- id: set_input_gain
label: Set Input Gain
kind: action
params:
- name: input_index
type: integer
description: Zero-based input index
- name: gain_value
type: integer
description: Tenths of dB (-250 to +200; -2550 = OFF)
- id: set_device_name
label: Set PIX Device Name
kind: action
params:
- name: name
type: string
description: Alpha-numeric, spaces, dashes only
- id: simulate_key
label: Simulate Key Press
kind: action
params:
- name: keycode
type: string
description: Hex keycode (e.g. "0x01000080" = Play)
- name: event_type
type: enum
values: [KeyPressAndRelease, KeyPress, KeyRelease]
- id: close_message_box
label: Push Dialog Button
kind: action
params:
- name: button_text
type: string
description: Exact button text displayed (case-sensitive)
- id: set_auto_dismiss
label: Set Dialog Auto-Dismiss
kind: action
params:
- name: time_ms
type: integer
description: UNRESOLVED: integer time per source; unit (e.g. milliseconds) not documented
- name: action
type: enum
values: [Accept, Reject]
- id: jam_received_tc
label: Jam Received Timecode
kind: action
params: []
- id: jam_time_of_day
label: Jam Time-of-Day Timecode
kind: action
params: []
- id: format_all_drives
label: Format All Drives
kind: action
params:
- name: label
type: string
description: Alpha-numeric, spaces, dashes only
- id: file_copy
label: Copy File
kind: action
params:
- name: file_path
type: string
description: Full path of file to copy
- name: drive_id
type: enum
values: [HDD, HD2, HD3, HD4]
- id: reel_copy
label: Copy Reel
kind: action
params:
- name: reel_path
type: string
description: Full path of reel (no trailing slash)
- name: drive_id
type: enum
values: [HDD, HD2, HD3, HD4]
- id: set_list_setting
label: Update Phrase List
kind: action
params:
- name: phrases
type: string
description: Comma-separated list of phrases
- id: create_sound_report_current
label: Create Sound Report (Current Reel)
kind: action
params: []
- id: create_sound_report
label: Create Sound Report (Specific Reel)
kind: action
params:
- name: drive_id
type: enum
values: [HDD, HD2, HD3, HD4]
- name: reel_name
type: string
- id: enable_timecode_events
label: Enable Timecode Events
kind: action
params: [] # UNRESOLVED: command pattern not fully documented
- id: get_transport
label: Get Transport State
kind: query
params: []
- id: get_timecode
label: Get Timecode Value
kind: query
params: []
- id: get_framerate
label: Get Timecode Framerate
kind: query
params: []
- id: get_device_table
label: Get PIX Device Table
kind: query
params: []
- id: get_absolute_time
label: Get Absolute Time
kind: query
params: []
- id: get_next_filename
label: Get Next Filename
kind: query
params: []
- id: get_current_take
label: Get Current Record Take
kind: query
params: []
- id: get_previous_take
label: Get Previous Record Take
kind: query
params: []
- id: getsettings
label: Get Setting Values
kind: query
params:
- name: settings
type: string
description: Comma-separated list of setting names (case-sensitive, from Setting Names section)
- id: get_video_input_source
label: Get Video Input Source
kind: query
params: []
- id: get_take_list_handle
label: Get Take List Handle
kind: query
params:
- name: drive_id
type: enum
values: [HDD, HD2, HD3, HD4]
- id: get_take_list_entry
label: Get Take List Entry
kind: query
params:
- name: take_list_handle
type: integer
description: As obtained from get_take_list_handle
- name: which
type: enum
values: [FirstEntry, NextEntry, CurrentEntry, NextSibling, ChildEntry]
- id: get_file_details
label: Get File Details
kind: query
params:
- name: file_path
type: string
description: Full path of the file (case-sensitive)
- id: getlistsetting
label: Get Phrase List
kind: query
params: []
- id: get_drive_status
label: Get Drive Status
kind: query
params:
- name: drive_id
type: enum
values: [HDD, HD2, HD3, HD4]
- id: get_events
label: Poll Event Queue
kind: query
params: []
Feedbacks
- id: transport_state
type: object
properties:
Transport: enum [stop, play, rec]
FileName: string
- id: timecode_value
type: string
description: HH:MM:SS:FF format
- id: timecode_framerate
type: string
description: e.g. "29.97ND"
- id: device_table
type: object
description: JSON listing all PIX units on network
- id: absolute_time
type: object
properties:
String: string
- id: next_filename
type: object
properties:
String: string
- id: current_take
type: object
properties:
String: string
- id: previous_take
type: object
properties:
String: string
- id: take_list_handle
type: integer
description: Handle for take list operations; 0 = empty
- id: take_list_entry
type: object
properties:
ArrayStrings: array
- id: file_details
type: object
description: Full file metadata (audio format, codec, duration, etc.)
- id: video_input_info
type: object
properties:
String: string
- id: drive_status
type: object
properties:
String: string
- id: phrase_list
type: object
properties:
PhraseList: array
- id: settings_value
type: object
description: Named setting values
- id: event_message
type: object
description: Polled events (Setting, Transport, FileName, TextMsg, etc.)
Variables
# Settable parameters via setsetting action - see Setting Names section for full enumeration
# Examples:
- id: RecordMode
type: enum
values: [Sequential, Simultaneous]
- id: VideoInput
type: enum
values: [HDMI, SDI]
- id: RecordCodec
type: enum
values: ["DNxHD 220x 220Mb/s, 10bit", "DNxHD 220 220Mb/s, 8bit", "DNxHD 145 145Mb/s, 8bit", "DNxHD 36 36Mb/s, 8bit", "ProRes 4444 330Mb/s, 12bit", "ProRes 422HQ 220Mb/s, 10bit", "ProRes 422 145Mb/s, 10bit", "ProRes 422LT 100Mb/s, 8bit", "ProRes 422Proxy36Mb/s, 8bit"]
- id: AudioSampleRate
type: enum
values: ["44.1 kHz", "47.952k", "47.952kF", "48k", "48.048k", "48.048kF"]
- id: HeadphoneSource
type: enum
values: ["1,2", "3,4", "5,6", "7,8", "9,10", "11,12", "13,14", "15,16", "17,18", "19,20", "21,22", "23,24", "25,26", "27,28", "29,30", "31,32", "All tracks summed - mono", "All tracks summed - stereo"]
# Full list per Setting Names section
Events
# Polled via /sounddevices/update at up to 200ms intervals
# Event types:
- SettingChange # setting_name|index|new_value
- Transport # new transport state
- FileName # new filename
- TextMsg # popup message text|buttons
- MessageBoxClosed # popup dismissed
- VideoTimingChanged # video sync changed
- DisplayedTimeCode # timecode at event time
- InputGainChanged # input_index|new_gain_dB
- MaxEventsExceeded # full state refresh needed
Macros
# False take sequence: false_take() then close_message_box("OK")
# Drive format sequence: format_all_drives(label) then close_message_box("OK")
# File copy sequence: file_copy(path, drive) then close_message_box("Yes")
# Reel copy sequence: reel_copy(path, drive) then close_message_box("Yes")
Safety
confirmation_required_for:
- format_all_drives # confirmation dialog required
- file_copy # overwrite confirmation dialog
- reel_copy # overwrite confirmation dialog
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures documented
Notes
- CORS
Access-Control-Allow-Origin: *on all responses - Event queue is shared; single client should poll
/sounddevices/update - Event polled at max 200ms intervals; queue drains on read
- All setting values and filenames must be URL-encoded in requests
false_takeandformat_all_drivesrequire follow-upclose_message_boxto complete- Media recorded to temp formats (.sda audio, .sdv video) before finalization
/sounddevices/devtbllists network PIX units; queried unit has leading*
Provenance
source_domains:
- cdn.videodevices.com
source_urls:
- http://cdn.videodevices.com/download/guides/PIXNET_API.pdf
retrieved_at: 2026-04-30T01:30:16.434Z
last_checked_at: 2026-09-30T01:15:03.211Z
Verification Summary
verdict: verified
checked_at: 2026-09-30T01:15:03.211Z
matched_actions: 35
action_count: 35
confidence: medium
summary: "All 35 actions match the PIX-family API's 34 distinct commands; file/reel copy share an endpoint, with exact-model applicability unconfirmed. (8 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "serial/RS-232 not mentioned; RS-422 referenced only as OSD setting flag"
- "integer time per source; unit (e.g. milliseconds) not documented"
- "command pattern not fully documented"
- "no safety warnings or interlock procedures documented"
- "serial/RS-232 config not documented; RS-422 shown only as OSD status flag"
- "authentication method not documented; absence of login procedure is not explicit confirmation of no auth"
- "set_auto_dismiss time unit not documented"
- "transport states are play/stop/rec only; no documented power-on/off command"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0