Skip to content

API Reference: Firmware 2.25

The REST API as units on firmware 2.25 answer it: one encoder (encoder 0), streams 0 to 4, and one decoder. All endpoints require Bearer token authentication unless otherwise noted. Units on 2.26 or later support more pipelines and add endpoints; see Firmware 2.26.


System

Device information, firmware management, and system control.

Device Info

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"
}

Firmware

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. Filter with ?settings=key1,key2

Response
{
  "timestamp": 1771463350,
  "settings": {
    "auto_check": true
  },
  "status": "ok"
}
GET
/api/v1/system/firmware/settings?command=description

Describe firmware settings (types, defaults, allowed values)

Response
{
  "timestamp": 1771463350,
  "settings": {
    "auto_check": {
      "type": "boolean",
      "description": "Automatically check for firmware updates",
      "default": true
    }
  },
  "status": "ok"
}
PUT
/api/v1/system/firmware/settings

Update firmware settings

Request Body
{
  "settings": {
    "auto_check": false
  }
}
POST
/api/v1/system/firmware/upgrade

Start firmware upgrade

Encoders

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

Encoder Info

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"
}

Video Settings

GET
/api/v1/encoders/0/video/settings

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

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

Update video settings

Request Body
{
  "settings": {
    "codec": "hevc",
    "bitrate_list": 15000,
    "gop_length": 60
  }
}

Audio 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

Request Body
{
  "settings": {
    "bitrate_list": 256000,
    "channel_mode": "Stereo",
    "codec": "aac"
  }
}

Metadata

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

Request Body
{
  "settings": {
    "closed-captions": true,
    "timecode": "sdi-hdmi-timecode",
    "dpi": false
  }
}
POST
/api/v1/encoders/0/metadata/scte

Insert SCTE marker

Recording

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

Request Body
{
  "settings": {
    "format": "mp4",
    "max-size-time": 15,
    "auto_record": "off",
    "cyclic": false
  }
}
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

Snapshot

GET
/api/v1/encoders/0/snapshot

Get JPEG snapshot

Decoders

Video ingest settings, audio output, metadata, recording, and snapshot capture.

Decoder Info

GET
/api/v1/decoders/0/info

Get decoder info (format, status)

Response
{
  "message": "Statuses retrieved",
  "timestamp": 1771463351,
  "settings": {
    "Format": "1920x1080p59",
    "Status": "OK"
  },
  "status": "ok"
}

Video Settings

GET
/api/v1/decoders/0/video/mode

Get the current video ingest mode

Response
{
  "message": "Settings retrieved successfully",
  "timestamp": 1771463352,
  "settings": {
    "mode": "SRT"
  },
  "status": "ok"
}
PUT
/api/v1/decoders/0/video/mode

Set the video ingest mode

GET
/api/v1/decoders/0/video/settings

Get video settings. Filter with ?settings=key1,key2

Response
{
  "message": "Settings retrieved successfully",
  "timestamp": 1771463352,
  "settings": {
    "...": "mode-specific fields"
  },
  "status": "ok"
}
GET
/api/v1/decoders/0/video/settings?command=description

Describe video settings (types, defaults, allowed values)

Response
{
  "message": "Settings retrieved successfully",
  "timestamp": 1771463352,
  "settings": {
    "...": "mode-specific setting descriptors"
  },
  "status": "ok"
}
PUT
/api/v1/decoders/0/video/settings

Update video settings

Audio Settings

GET
/api/v1/decoders/0/audio/settings

Get audio output settings

Response
{
  "message": "Settings retrieved successfully",
  "timestamp": 1771463353,
  "settings": {
    "...": "audio output fields"
  },
  "status": "ok"
}
GET
/api/v1/decoders/0/audio/settings?command=description

Describe audio output settings (types, defaults, allowed values)

PUT
/api/v1/decoders/0/audio/settings

Update audio output settings

GET
/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"
}
GET
/api/v1/decoders/0/audio/{0-15}?command=description

Describe per-channel audio settings

PUT
/api/v1/decoders/0/audio/{0-15}

Update per-channel audio settings

Metadata

GET
/api/v1/decoders/0/metadata/settings

Get metadata settings

Response
{
  "message": "Settings retrieved successfully",
  "timestamp": 1771463356,
  "settings": {
    "...": "metadata fields"
  },
  "status": "ok"
}
GET
/api/v1/decoders/0/metadata/settings?command=description

Describe metadata settings (types, defaults, allowed values)

PUT
/api/v1/decoders/0/metadata/settings

Update metadata settings

Recording

GET
/api/v1/decoders/0/record/settings

Get recording settings

Response
{
  "message": "Settings retrieved successfully",
  "timestamp": 1771463355,
  "settings": {
    "name": "$PN_$DATE_$TIME",
    "format": "mp4"
  },
  "status": "ok"
}
GET
/api/v1/decoders/0/record/settings?command=description

Describe recording settings (types, defaults, allowed values)

PUT
/api/v1/decoders/0/record/settings

Update recording settings

GET
/api/v1/decoders/0/record/info

Get recording status

Response
{
  "message": "Statuses retrieved",
  "timestamp": 1771463354,
  "settings": {
    "Size": "13.8G",
    "State": "Disabled"
  },
  "status": "ok"
}
POST
/api/v1/decoders/0/record/start

Start recording

POST
/api/v1/decoders/0/record/stop

Stop recording

Snapshot

POST
/api/v1/decoders/0/snapshot

Get JPEG snapshot

Streams

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

Configuration

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

Request Body
{
  "settings": {
    "mode-h264": "TS",
    "mode-hevc": "Disabled",
    "name": "Main Output"
  }
}
GET
/api/v1/streams/{0-4}/settings

Get 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"
}
GET
/api/v1/streams/{0-4}/settings?command=description

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

Update stream settings

Request Body
{
  "settings": {
    "protocol": "srt",
    "udp_host": "172.24.100.249",
    "udp_port": 9720
  }
}

Status

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"
}

Control

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.

Wired

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"
}

WiFi

GET
/api/v1/network/wifi

Get 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"
}
GET
/api/v1/network/wifi?command=description

Describe WiFi settings (types, defaults, allowed values)

PUT
/api/v1/network/wifi

Update WiFi settings

Request Body
{
  "settings": {
    "Network": "MyNetwork",
    "IP Address": "192.168.1.100"
  }
}

Modem

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.

Import

POST
/api/v1/settings/sync/import

Import settings from remote device

Request Body
{
  "type": "encoder",
  "settings": {
    "host": "192.168.1.50",
    "password": "admin"
  }
}

Push

POST
/api/v1/settings/sync/push

Push settings to target devices (max 10)

Request Body
{
  "targets": [
    { "host": "192.168.1.51", "password": "admin" },
    { "host": "192.168.1.52", "password": "admin" }
  ]
}

Need help with integration?

Our team can help with API questions, troubleshooting, and custom workflows.

Contact Us