API Reference
Complete reference for all Teradek REST API endpoints. Use these to build broadcast automation, custom control surfaces, and fleet management tools. All endpoints require Bearer token authentication unless otherwise noted.
System
Device information, firmware management, and system control.
Device Info
/api/v1/system/infoGet device info (model, serial, firmware)
Response
{
"settings": {
"Device Model": "Prism-855",
"Serial": "1285500073",
"Firmware Version": "2.25.20260217"
},
"timestamp": 1771463349,
"message": "Statuses received",
"status": "ok"
}Firmware
/api/v1/system/firmware/checkCheck for firmware updates
Response
{
"settings": {
"Latest Firmware": "2.24.20260106"
},
"timestamp": 1771463367,
"message": "Device is up to date",
"status": "ok"
}/api/v1/system/firmware/settingsGet firmware settings. Filter with ?settings=key1,key2
Response
{
"timestamp": 1771463350,
"settings": {
"auto_check": true
},
"status": "ok"
}/api/v1/system/firmware/settings?command=descriptionDescribe firmware settings (types, defaults, allowed values)
Response
{
"timestamp": 1771463350,
"settings": {
"auto_check": {
"type": "boolean",
"description": "Automatically check for firmware updates",
"default": true
}
},
"status": "ok"
}/api/v1/system/firmware/settingsUpdate firmware settings
Request Body
{
"settings": {
"auto_check": false
}
}/api/v1/system/firmware/upgradeStart firmware upgrade
Encoders
Video and audio encoding settings, metadata, recording, and snapshot capture.
Encoder Info
/api/v1/encoders/0/infoGet encoder info
Response
{
"message": "Statuses retrieved",
"timestamp": 1771463351,
"settings": {
"Format": "3840x2160p59",
"Status": "OK",
"Generator": "Off",
"enc-output-resolution": "3840x2160p59",
"Bitrate": 20113797,
"Target Bitrate": 20000000
},
"status": "ok"
}Video Settings
/api/v1/encoders/0/video/settingsGet video settings. Filter with ?settings=key1,key2
Response
{
"message": "Settings retrieved successfully",
"timestamp": 1771463352,
"settings": {
"codec": "h264",
"profile_h264": "AVC_HIGH",
"profile_hevc": "HEVC_MAIN",
"resolution_common": 2160,
"framerate_common": 59.94,
"bitrate_list": 20000,
"control-rate": "CBR",
"gop_length": 30,
"kfi_seconds": 2,
"num_slices": 8,
"bit_depth": 8,
"level": 5.1,
"tier": "MAIN_TIER",
"entropy-mode": "MODE_CABAC",
"interlacer": "progressive",
"...": "additional fields omitted"
},
"status": "ok"
}/api/v1/encoders/0/video/settings?command=descriptionDescribe video settings (types, defaults, allowed values)
Response
{
"message": "Settings retrieved successfully",
"timestamp": 1771463352,
"settings": {
"codec": {
"type": "string",
"default": "h264",
"enum": ["h264", "hevc"]
},
"bitrate_list": {
"type": "integer",
"default": 20000,
"minimum": 100,
"maximum": 80000
},
"...": "additional fields omitted"
},
"status": "ok"
}/api/v1/encoders/0/video/settingsUpdate video settings
Request Body
{
"settings": {
"codec": "hevc",
"bitrate_list": 15000,
"gop_length": 60
}
}Audio Settings
/api/v1/encoders/0/audio/settingsGet audio settings
Response
{
"message": "Settings retrieved successfully",
"timestamp": 1771463353,
"settings": {
"delay": 0,
"bitrate_list": 128000,
"samplerate": "auto",
"default-channel-map": "smpte",
"channel_mode": "Stereo",
"samplerate_list": 48000,
"enable": true,
"codec": "aac"
},
"status": "ok"
}/api/v1/encoders/0/audio/settingsUpdate audio settings
Request Body
{
"settings": {
"bitrate_list": 256000,
"channel_mode": "Stereo",
"codec": "aac"
}
}Metadata
/api/v1/encoders/0/metadata/settingsGet metadata settings
Response
{
"message": "Settings retrieved successfully",
"timestamp": 1771463356,
"settings": {
"break_duration": 30000,
"program_id": 0,
"avail_expect": 0,
"timecode": "sdi-hdmi-timecode",
"pre_roll": 8000,
"network_event": "out-of-network",
"avail_num": 0,
"dpi": false,
"closed-captions": false,
"event_id": "0",
"splice_type": "normal"
},
"status": "ok"
}/api/v1/encoders/0/metadata/settingsUpdate metadata settings
Request Body
{
"settings": {
"closed-captions": true,
"timecode": "sdi-hdmi-timecode",
"dpi": false
}
}/api/v1/encoders/0/metadata/scteInsert SCTE marker
Recording
/api/v1/encoders/0/record/settingsGet recording settings
Response
{
"message": "Settings retrieved successfully",
"timestamp": 1771463355,
"settings": {
"name": "$PN_$DATE_$TIME_$CAM",
"format": "mp4",
"max-files": 144,
"max-size-time": 10,
"bonded_uploads": true,
"cyclic": false,
"file-loop-index": 1,
"camera_type": "canon",
"auto_record": "off",
"drive_id": "sd2",
"fragmented": false,
"timecode": true,
"sidecar": false
},
"status": "ok"
}/api/v1/encoders/0/record/settingsUpdate recording settings
Request Body
{
"settings": {
"format": "mp4",
"max-size-time": 15,
"auto_record": "off",
"cyclic": false
}
}/api/v1/encoders/0/record/infoGet recording status
Response
{
"message": "Statuses retrieved",
"timestamp": 1771463354,
"settings": {
"Size": "13.8G",
"Uptime": "00:00:00",
"State Details": "Recording is Disabled",
"Format": "ext4",
"Available": "12.7G",
"Percent Used": "3%",
"State": "Disabled",
"Used": "381.3M"
},
"status": "ok"
}/api/v1/encoders/0/record/startStart recording
/api/v1/encoders/0/record/stopStop recording
Snapshot
/api/v1/encoders/0/snapshotGet JPEG snapshot
Decoders
Video ingest settings, audio output, metadata, recording, and snapshot capture.
Decoder Info
/api/v1/decoders/0/infoGet decoder info (format, status)
Response
{
"message": "Statuses retrieved",
"timestamp": 1771463351,
"settings": {
"Format": "1920x1080p59",
"Status": "OK"
},
"status": "ok"
}Video Settings
/api/v1/decoders/0/video/modeGet the current video ingest mode
Response
{
"message": "Settings retrieved successfully",
"timestamp": 1771463352,
"settings": {
"mode": "SRT"
},
"status": "ok"
}/api/v1/decoders/0/video/modeSet the video ingest mode
/api/v1/decoders/0/video/settingsGet video settings. Filter with ?settings=key1,key2
Response
{
"message": "Settings retrieved successfully",
"timestamp": 1771463352,
"settings": {
"...": "mode-specific fields"
},
"status": "ok"
}/api/v1/decoders/0/video/settings?command=descriptionDescribe video settings (types, defaults, allowed values)
Response
{
"message": "Settings retrieved successfully",
"timestamp": 1771463352,
"settings": {
"...": "mode-specific setting descriptors"
},
"status": "ok"
}/api/v1/decoders/0/video/settingsUpdate video settings
Audio Settings
/api/v1/decoders/0/audio/settingsGet audio output settings
Response
{
"message": "Settings retrieved successfully",
"timestamp": 1771463353,
"settings": {
"...": "audio output fields"
},
"status": "ok"
}/api/v1/decoders/0/audio/settings?command=descriptionDescribe audio output settings (types, defaults, allowed values)
/api/v1/decoders/0/audio/settingsUpdate audio output settings
/api/v1/decoders/0/audio/{0-15}Get per-channel audio settings
Response
{
"message": "Settings retrieved successfully",
"timestamp": 1771463353,
"settings": {
"...": "channel-specific fields"
},
"status": "ok"
}/api/v1/decoders/0/audio/{0-15}?command=descriptionDescribe per-channel audio settings
/api/v1/decoders/0/audio/{0-15}Update per-channel audio settings
Metadata
/api/v1/decoders/0/metadata/settingsGet metadata settings
Response
{
"message": "Settings retrieved successfully",
"timestamp": 1771463356,
"settings": {
"...": "metadata fields"
},
"status": "ok"
}/api/v1/decoders/0/metadata/settings?command=descriptionDescribe metadata settings (types, defaults, allowed values)
/api/v1/decoders/0/metadata/settingsUpdate metadata settings
Recording
/api/v1/decoders/0/record/settingsGet recording settings
Response
{
"message": "Settings retrieved successfully",
"timestamp": 1771463355,
"settings": {
"name": "$PN_$DATE_$TIME",
"format": "mp4"
},
"status": "ok"
}/api/v1/decoders/0/record/settings?command=descriptionDescribe recording settings (types, defaults, allowed values)
/api/v1/decoders/0/record/settingsUpdate recording settings
/api/v1/decoders/0/record/infoGet recording status
Response
{
"message": "Statuses retrieved",
"timestamp": 1771463354,
"settings": {
"Size": "13.8G",
"State": "Disabled"
},
"status": "ok"
}/api/v1/decoders/0/record/startStart recording
/api/v1/decoders/0/record/stopStop recording
Snapshot
/api/v1/decoders/0/snapshotGet JPEG snapshot
Streams
Stream configuration, control, and status. Stream index ranges from 0 to 4.
Configuration
/api/v1/streams/{0-4}Get stream config
Response
{
"status": "ok",
"endpoints": [
"complete", "endpreview", "info", "preview",
"settings", "start", "start_all", "stop", "stop_all"
],
"timestamp": 1771463360,
"settings": {
"mode-h264": "TS",
"name": "",
"mode-hevc": "Disabled"
},
"message": "Settings retrieved successfully"
}/api/v1/streams/{0-4}Update stream config
Request Body
{
"settings": {
"mode-h264": "TS",
"mode-hevc": "Disabled",
"name": "Main Output"
}
}/api/v1/streams/{0-4}/settingsGet stream settings. Filter with ?settings=key1,key2
Response
{
"message": "Settings retrieved successfully",
"timestamp": 1771463361,
"settings": {
"protocol": "udp",
"udp_host": "172.24.100.249",
"udp_port": 9720,
"udp_rtp": true,
"cbr": false,
"abr": true,
"multicast_host": "",
"multicast_port": 9730,
"server_port": 5000,
"tcp_host": "",
"tcp_port": 9710,
"interface_name": "any",
"...": "additional fields omitted"
},
"status": "ok"
}/api/v1/streams/{0-4}/settings?command=descriptionDescribe stream settings (types, defaults, allowed values)
Response
{
"message": "Settings retrieved successfully",
"timestamp": 1771463361,
"settings": {
"protocol": {
"type": "string",
"default": "udp",
"enum": ["udp", "tcp", "rtmp", "srt", "rist"]
},
"udp_port": {
"type": "integer",
"default": 9720,
"minimum": 1,
"maximum": 65535
},
"...": "additional fields omitted"
},
"status": "ok"
}/api/v1/streams/{0-4}/settingsUpdate stream settings
Request Body
{
"settings": {
"protocol": "srt",
"udp_host": "172.24.100.249",
"udp_port": 9720
}
}Status
/api/v1/streams/{0-4}/infoGet stream status
Response
{
"message": "Statuses retrieved",
"timestamp": 1771463362,
"settings": {
"Protocol": "UDP",
"thisSideStats": {
"Total Network Bytes": 5540878528,
"Run-time": "0 00:36:40",
"Peers": ["172.24.100.249:9720"]
},
"Source Port": 0,
"State": "Running",
"Port": 9720,
"Address": "172.24.100.249",
"State Details": "",
"Stream": "udp://172.24.100.249:9720"
},
"status": "ok"
}Control
/api/v1/streams/{0-4}/startStart stream
/api/v1/streams/{0-4}/stopStop stream
/api/v1/streams/{0-4}/start_allStart all streams
/api/v1/streams/{0-4}/stop_allStop all streams
/api/v1/streams/{0-4}/previewStart preview
/api/v1/streams/{0-4}/endpreviewEnd preview
/api/v1/streams/{0-4}/completeMark stream complete
Network
Wired, WiFi, and modem network configuration.
Wired
/api/v1/network/wired/{0-1}Get wired network config
Response
{
"settings": {
"Custom Labels": { "intf_name": "Wired 1" },
"Detail": "Unable to detect ethernet cable",
"MAC Address": "FC:C2:3D:2F:D1:47",
"Status": "No Cable"
},
"timestamp": 1771463363,
"message": "Statuses received",
"status": "ok"
}WiFi
/api/v1/network/wifiGet WiFi settings. Filter with ?settings=key1,key2
Response
{
"settings": {
"Custom Labels": { "intf_name": "Wi-Fi" },
"Status": "Established Access Point",
"Network": "Prism-855-00073",
"Subnet Mask": "255.255.255.0",
"MAC Address": "64:BC:58:9E:E8:BE",
"IP Address": "172.16.1.1"
},
"timestamp": 1771463364,
"message": "Statuses received",
"status": "ok"
}/api/v1/network/wifi?command=descriptionDescribe WiFi settings (types, defaults, allowed values)
/api/v1/network/wifiUpdate WiFi settings
Request Body
{
"settings": {
"Network": "MyNetwork",
"IP Address": "192.168.1.100"
}
}Modem
/api/v1/network/modem/{0-7}Get modem status
Response
{
"settings": {
"Modem Type": "multislot",
"IMSI": "31188204002110",
"RSSI": -200,
"Modem Report": "EMM attach failed",
"IMEI": "863547050070800",
"Version": "EM120RGLAUR02A07M4G_01.202.01.202",
"Custom Labels": {
"slot": { "2": "Slot 2", "1": "Slot 1" },
"intf_name": "Modem 1"
},
"Status": "No Carrier",
"Model": "Node II-CBRS",
"ICCID": "8901882047100211064F",
"Detail": "Unable to detect carrier"
},
"timestamp": 1771463365,
"message": "Statuses received",
"status": "ok"
}Settings Sync
Import and push device settings across multiple Teradek devices.
Import
/api/v1/settings/sync/importImport settings from remote device
Request Body
{
"type": "encoder",
"settings": {
"host": "192.168.1.50",
"password": "admin"
}
}Push
/api/v1/settings/sync/pushPush settings to target devices (max 10)
Request Body
{
"targets": [
{ "host": "192.168.1.51", "password": "admin" },
{ "host": "192.168.1.52", "password": "admin" }
]
}