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.

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