Summary
ATEN VM Series are multi-port video matrix switches controllable via RESTful API over HTTP. The API exposes video and audio routing, port configuration, EDID management, user accounts, and system settings. Authentication via Basic auth or token-based auth.
Transport
protocols:
- http
addressing:
base_url: /api/v1.0
auth:
type: token # Basic auth also supported per source; token is primary auth mechanism
notes:
- Basic: Authorization: Basic <base64(username:password)>
- Token: GET /api/v1.0/auth/tokens (POST) → token in Authentication header
Traits
- routable # inferred: video/audio connection endpoints present
- queryable # inferred: numerous GET endpoints returning state
- levelable # inferred: volume control on audio output ports
Actions
- id: auth_login
label: Login
kind: action
params:
- name: authorization
type: string
description: Base64-encoded username:password
- id: auth_logout
label: Logout
kind: action
params:
- name: credential
type: string
description: Token to revoke
- id: system_info_get
label: Get System Info
kind: action
params: []
- id: system_info_patch
label: Modify System Info
kind: action
params:
- name: deviceName
type: string
description: Device name
- id: video_boards_get
label: Get Video Board(s)
kind: action
params:
- name: id
type: string
required: false
description: Video board ID (omit for all)
- id: network_interfaces_get
label: Get Network Interfaces
kind: action
params:
- name: id
type: string
required: false
description: Network interface ID (omit for all)
- id: network_interfaces_patch
label: Modify Network Interface
kind: action
params:
- name: id
type: string
description: Network interface ID
- name: mode
type: object
description: Network mode {value: 0=DHC Pv4, 3=IPv4 fixed}
- name: ip4Addr
type: string
description: IPv4 address
- name: ip4Mask
type: string
description: IPv4 netmask
- name: ip4Gateway
type: string
description: IPv4 gateway
- id: account_users_get
label: Get User Accounts
kind: action
params:
- name: id
type: string
required: false
description: User ID (omit for all)
- id: account_users_post
label: Create User Account
kind: action
params:
- name: name
type: string
- name: password
type: string
- name: description
type: string
- name: privilege
type: object
description: "{value: 0=basic, 1=advanced, 2=admin}"
- id: account_users_patch
label: Modify User Account
kind: action
params:
- name: id
type: string
- name: name
type: string
required: false
- name: password
type: string
required: false
- name: description
type: string
required: false
- name: privilege
type: object
required: false
description: "{value: 0=basic, 1=advanced, 2=admin}"
- id: account_users_delete
label: Delete User Account
kind: action
params:
- name: id
type: string
- id: account_me_get
label: Get Current Account
kind: action
params: []
- id: account_me_patch
label: Modify Current Account
kind: action
params:
- name: name
type: string
required: false
- name: password
type: string
required: false
- name: description
type: string
required: false
- id: video_configs_get
label: Get Video Configuration
kind: action
params: []
- id: video_configs_patch
label: Modify Video Configuration
kind: action
params:
- name: edid
type: object
description: "{value: 1=ATEN default, 2=1st output EDID, 3=remixed}"
- name: osd
type: object
description: "{value: 1=off, 2=on}"
- name: blank
type: object
description: "{value: 1=off, 2=on}"
- name: scaler
type: number
description: "0=scale, 1=unsupported"
- id: video_scaler_resolutions_get
label: Get Scaler Resolutions
kind: action
params: []
- id: video_inputs_get
label: Get Video Input Ports
kind: action
params:
- name: id
type: string
required: false
description: Input port ID (omit for all)
- id: video_inputs_patch
label: Modify Video Input Port
kind: action
params:
- name: id
type: string
- name: name
type: string
required: false
- name: hdcp
type: object
required: false
description: "{value: 1=without HDCP, 2=HDCP1.4, 3=HDCP2.2}"
- id: video_outputs_get
label: Get Video Output Ports
kind: action
params:
- name: id
type: string
required: false
description: Output port ID (omit for all)
- id: video_outputs_patch
label: Modify Video Output Port
kind: action
params:
- name: id
type: string
- name: name
type: string
required: false
- name: seamlessSwitch
type: object
required: false
description: "{value: 1=off, 2=on}"
- name: transitionMode
type: object
required: false
description: "{value: 1=off, 2=slow, 3=normal, 4=fast}"
- name: resolution
type: number
required: false
description: Scaler resolution ID
- name: fixHDCP
type: object
required: false
description: "{value: 1=off, 2=on}"
- name: osd
type: object
required: false
description: "{value: 1=off, 2=on}"
- name: cec
type: object
required: false
description: "{value: 1=off, 2=on}"
- name: blank
type: object
required: false
description: "{value: 1=off, 2=on}"
- id: video_connections_get
label: Get Video Connections
kind: action
params:
- name: id
type: string
required: false
description: Output port ID (omit for all)
- id: video_connections_patch
label: Set Video Connection
kind: action
params:
- name: id
type: string
description: Output port ID
- name: videoInput
type: string
description: Input port ID or "" for null
- id: video_profiles_get
label: Get Video Profiles
kind: action
params:
- name: id
type: string
required: false
description: Profile ID (omit for all)
- id: video_profiles_post
label: Create Video Profile
kind: action
params:
- name: name
type: string
description: Profile name
- id: video_profiles_patch
label: Modify Video Profile
kind: action
params:
- name: id
type: string
- name: name
type: string
required: false
- id: video_profiles_delete
label: Delete Video Profile
kind: action
params:
- name: id
type: string
- id: video_profile_now_get
label: Get Current Profile
kind: action
params: []
- id: video_profile_now_patch
label: Switch to Profile
kind: action
params:
- name: id
type: string
description: Profile ID
- id: video_profile_now_delete
label: Remove Current Profile
kind: action
params: []
- id: audio_configs_get
label: Get Audio Configuration
kind: action
params: []
- id: audio_configs_patch
label: Modify Audio Configuration
kind: action
params:
- name: volume
type: number
description: "-1=unchanged, 0-max=volume level"
- name: mute
type: object
description: "{value: 0=unsupported, 1=unmute}"
- id: audio_inputs_get
label: Get Audio Input Ports
kind: action
params:
- name: id
type: string
required: false
description: Input port ID (omit for all)
- id: audio_inputs_patch
label: Modify Audio Input Port
kind: action
params:
- name: id
type: string
- name: mute
type: object
description: "{value: 1=unmute, 2=mute}"
- id: audio_outputs_get
label: Get Audio Output Ports
kind: action
params:
- name: id
type: string
required: false
description: Output port ID (omit for all)
- id: audio_outputs_patch
label: Modify Audio Output Port
kind: action
params:
- name: id
type: string
- name: volume
type: number
required: false
description: "-1=unchanged, 0-max=volume"
- name: mute
type: object
required: false
description: "{value: 1=unmute, 2=mute}"
- id: audio_connections_get
label: Get Audio Connections
kind: action
params:
- name: id
type: string
required: false
description: Output port ID (omit for all)
- id: audio_connections_patch
label: Set Audio Connection
kind: action
params:
- name: id
type: string
description: Output port ID
- name: audioInput
type: array
description: Array of input port IDs or [""] for null
Feedbacks
- id: auth_response
type: object
fields:
- name: code
type: integer
- name: message
type: string
- id: http_status
type: enum
values:
- 200
- 201
- 202
- 204
- 400
- 401
- 403
- 404
- 405
- 413
- 500
- 501
- 503
- id: error_detail
type: object
fields:
- name: code
type: integer
description: Specific error code (e.g., 40000, 40100, 40300...)
- name: message
type: string
description: Error description
- id: system_info
type: object
fields:
- name: type
type: string
- name: modelName
type: string
- name: deviceName
type: string
- name: serialNumber
type: string
- name: uptime
type: number
- name: fwVersion
type: string
- id: video_board_info
type: object
fields:
- name: maxInputCount
type: number
- name: maxOutputCount
type: number
- name: videoBoards
type: array
items:
- id
- type
- idx
- modelName
- interfaceCount
- fwVersion
- id: video_connection_state
type: object
fields:
- name: id
type: string
- name: videoInput
type: string
- id: audio_connection_state
type: object
fields:
- name: id
type: string
- name: audioInput
type: array
- id: video_profile_state
type: object
fields:
- name: id
type: string
- name: name
type: string
Variables
# Network settings exposed as gettable/settable parameters
- id: network_interface_mode
type: enum
values: [0, 3] # 0=DHCPv4, 3=IPv4 fixed
description: Network mode for interface
- id: network_interface_ip
type: string
description: IPv4 address
- id: network_interface_mask
type: string
description: IPv4 netmask
- id: network_interface_gateway
type: string
description: IPv4 gateway
# Audio volume per output port
- id: audio_output_volume
type: integer
range: "-1 to max"
description: "-1=no change; 0=minimum; max=maximum volume"
# Video output settings
- id: output_seamless_switch
type: enum
values: [1, 2]
description: "1=off, 2=on"
- id: output_transition_mode
type: enum
values: [1, 2, 3, 4]
description: "1=off, 2=slow, 3=normal, 4=fast"
- id: output_resolution
type: integer
description: Scaler resolution ID
- id: output_HDCP_mode
type: enum
values: [1, 2]
description: "1=fixed-HDCP off, 2=fixed-HDCP on"
Events
# UNRESOLVED: source does not document unsolicited event notifications from device
Macros
# UNRESOLVED: source does not document multi-step command sequences
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures in source
Notes
Device is a video matrix switcher. Routing is per-output: each output selects one input (or null). Audio connections support multiple inputs per output.
Firmware version requirements vary by model — see compatible_with.firmware field.
Token auth flow: POST credentials to /api/v1.0/auth/tokens → receive token → include in Authentication header for subsequent requests.
Error codes use a <category>00 pattern (e.g., 40000, 40001, 40100). See Response section for full enumerated list.
EDID modes: 1=ATEN default, 2=first output EDID, 3=remixed. Not all models support all modes — valid array indicates supported values.
Seamless switching and transition mode are per-output settings; not all models support them.
Video profiles store preset routing configurations; the now endpoint switches the active profile.
Audio volume control only on VM1600A/VM3200/VM3250.
Provenance
source_domains:
- assets.aten.com
- aten.com
source_urls:
- https://assets.aten.com/product/manual/vm_restful_api_2021-08-05.pdf
- https://www.aten.com/global/en/products/professional-audiovideo/video-matrix-switches/vm3200/
- https://assets.aten.com/product/manual/vm3200-vm3250-user-manual-w.pdf
retrieved_at: 2026-04-30T13:45:39.922Z
last_checked_at: 2026-06-02T21:39:54.868Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T21:39:54.868Z
matched_actions: 37
action_count: 37
confidence: medium
summary: "Complete RESTful API with authentication, system management, routing, and port control (6 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "TCP/HTTP port number not stated in source"
- "source does not document unsolicited event notifications from device"
- "source does not document multi-step command sequences"
- "no safety warnings or interlock procedures in source"
- "HTTP/TCP port number not stated in source"
- "RS-232 serial support not covered in source (prior attempt noted RS-232 docs exist for VM0404 etc., but this spec covers REST API only)"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0