Skip to content

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.

GET
/api/v1/system/info

Get 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"
}
GET
/api/v1/system/firmware/check

Check for firmware updates

Response
{
  "settings": {
    "Latest Firmware": "2.24.20260106"
  },
  "timestamp": 1771463367,
  "message": "Device is up to date",
  "status": "ok"
}
GET
/api/v1/system/firmware/settings

Get firmware settings

Response
{
  "timestamp": 1771463350,
  "settings": {
    "auto_check": true
  },
  "status": "ok"
}
PUT
/api/v1/system/firmware/settings

Update firmware settings

POST
/api/v1/system/firmware/upgrade

Start firmware upgrade

Encoders

Video and audio encoding settings, metadata, recording, and snapshot capture.

GET
/api/v1/encoders/0/info

Get 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"
}
GET
/api/v1/encoders/0/video/settings

Get video settings

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"
}
PUT
/api/v1/encoders/0/video/settings

Update video settings

GET
/api/v1/encoders/0/audio/settings

Get 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"
}
PUT
/api/v1/encoders/0/audio/settings

Update audio settings

GET
/api/v1/encoders/0/metadata/settings

Get 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"
}
PUT
/api/v1/encoders/0/metadata/settings

Update metadata settings

POST
/api/v1/encoders/0/metadata/scte

Insert SCTE marker

GET
/api/v1/encoders/0/record/settings

Get 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"
}
PUT
/api/v1/encoders/0/record/settings

Update recording settings

GET
/api/v1/encoders/0/record/info

Get 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"
}
POST
/api/v1/encoders/0/record/start

Start recording

POST
/api/v1/encoders/0/record/stop

Stop recording

GET
/api/v1/encoders/0/snapshot

Get JPEG snapshot

Streams

Stream configuration, control, and status. Stream index ranges from 0 to 4.

GET
/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"
}
PUT
/api/v1/streams/{0-4}

Update stream config

GET
/api/v1/streams/{0-4}/settings

Get stream settings

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"
}
PUT
/api/v1/streams/{0-4}/settings

Update stream settings

GET
/api/v1/streams/{0-4}/info

Get 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"
}
POST
/api/v1/streams/{0-4}/start

Start stream

POST
/api/v1/streams/{0-4}/stop

Stop stream

POST
/api/v1/streams/{0-4}/start_all

Start all streams

POST
/api/v1/streams/{0-4}/stop_all

Stop all streams

POST
/api/v1/streams/{0-4}/preview

Start preview

POST
/api/v1/streams/{0-4}/endpreview

End preview

POST
/api/v1/streams/{0-4}/complete

Mark stream complete

Network

Wired, WiFi, and modem network configuration.

GET
/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"
}
GET
/api/v1/network/wifi

Get WiFi settings

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"
}
PUT
/api/v1/network/wifi

Update WiFi settings

GET
/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.

POST
/api/v1/settings/sync/import

Import settings from remote device

POST
/api/v1/settings/sync/push

Push settings to target devices (max 10)