> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://mediakind.ferndocs.com/harmonic/api/vos/monitor-source/get-list-discovery/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://mediakind.ferndocs.com/_mcp/server. # Get list of discovery GET https://device.example.com:443/cluster1/vos-api/source-monitor/v1/discover Get list of active source monitors. Reference: https://mediakind.ferndocs.com/harmonic/api/vos/monitor-source/get-list-discovery ## Authentication - `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer `, where token is your auth token. ## Response ### 200 OK - `list of com.harmonicinc.vos.app.sourcemonitor.model.DiscoverySource` ## Errors ### 401 Unauthorized Error Unauthorized - `any` ### 403 Forbidden Error Forbidden - `any` ### 404 Not Found Error Not Found - `any` ## Types ### com.harmonicinc.vos.app.sourcemonitor.model.DiscoverySource - `sourceType` (enum, required) — Source Type - Allowed values: `IP`, `ZIXI`, `SRT`, `HSP`, `CLOUD`, `RF`, `DEMUX` - `cloudSource` (com.harmonicinc.vos.app.sourcemonitor.model.CloudSource, optional) - `creationTimestamp` (long, optional) — Creation timestamp of Discovery Task - `demuxSource` (com.harmonicinc.vos.app.sourcemonitor.model.DemuxSource, optional) - `hspSource` (com.harmonicinc.vos.app.sourcemonitor.model.HspSource, optional) - `id` (string, optional) — Discovery ID - `inputId` (string, optional) — Input ID - `ipSourceRange` (com.harmonicinc.vos.app.sourcemonitor.model.IPSourceRange, optional) - `probingDurationInMs` (integer, optional) — Probing duration in milliseconds. Ranging from 5000 to 30000 ms. Default value is 5000 ms - `rfsource` (com.harmonicinc.vos.app.sourcemonitor.model.RFSource, optional) - `sourceId` (string, optional) — Source ID - `srtSource` (com.harmonicinc.vos.app.sourcemonitor.model.SrtSource, optional) - `zixiSource` (com.harmonicinc.vos.app.sourcemonitor.model.ZixiSource, optional) ### com.harmonicinc.vos.app.sourcemonitor.model.CloudSource - `automaticGrooming` (boolean, optional) — Automatic grooming - `cloudInputType` (enum, optional) — Cloud input type - Allowed values: `CLOUD_SOURCE`, `CLOUD_EDGE` - `cloudSourceType` (enum, optional) — Cloud source type - Allowed values: `SRT`, `RTMP`, `RIST`, `ZIXI` - `egressId` (string, optional) — Id of the cloud egress - `region` (string, optional) — Region of the cloud egress - `resourceMode` (enum, optional) — Cloud resource mode, determines whether a single stream or multiple different streams are used - Allowed values: `SHARED`, `DEDICATED` - `sourceId` (string, optional) — Id of cloud source - `srtSource` (com.harmonicinc.vos.app.sourcemonitor.model.SrtSource, optional) - `userStreamId` (string, optional) — Stream ID for cloud resource ### com.harmonicinc.vos.app.sourcemonitor.model.DemuxSource - `demuxServiceId` (string, required) — Indicates the uuid of the Demux service ### com.harmonicinc.vos.app.sourcemonitor.model.HspSource - `hspEndpoint` (string, required) — HSP Endpoint - `variantPlaylistFileName` (string, required) — Playlist File Name of the source - `authenticationHeader` (com.harmonicinc.vos.app.sourcemonitor.model.HspAuthenticationHeader, optional) - `backupEndpointSettings` (com.harmonicinc.vos.app.sourcemonitor.model.HspEndpointSettings, optional) - `ipNetworkAddress` (string, optional) — IP Network Address used to receive the stream - `scte35Annotation` (enum, optional) — SCTE-35 annotation format - Allowed values: `NONE`, `BASE64_SCTE35_CUE`, `SIMPLE_SCTE35_CUE` ### com.harmonicinc.vos.app.sourcemonitor.model.IPSourceRange - `ipPortRangeEnd` (integer, required) — End IP Port of IP Port Range to Scan - `ipPortRangeStart` (integer, required) — Start IP Port of IP Port Range to Scan - `ipRangeEnd` (string, required) — End IP Address of IP Address Range to Scan - `ipRangeStart` (string, required) — Start IP Address of IP Address Range to Scan - `descramblingKey` (string, optional) — Descrambling key - `ipNetworkAddress` (string, optional) — IP Network Address used to receive the stream - `smpte20227DelayBufferInMs` (integer, optional) — SMPTE 2022-7 Delay Buffer in ms - `smpte20227IpSource` (com.harmonicinc.vos.app.sourcemonitor.model.IPConnectionSettings, optional) - `ssm` (list of string, optional) — Source Specific Address ### com.harmonicinc.vos.app.sourcemonitor.model.RFSource - `adapter` (integer, required) — Adapter, corresponds to tuner Ids (adapter 0 is tuner 1) - `frontend` (integer, required) — Frontend - `rfdeliverySystemType` (enum, required) — RF Delivery System - Allowed values: `DVBT`, `DVBT2`, `DVBS`, `DVBS2`, `ATSCT` ### com.harmonicinc.vos.app.sourcemonitor.model.SrtSource - `automaticGrooming` (boolean, optional) — Automatic grooming - `cloudlinkGroupId` (string, optional) — Id of the cloudlink group - `cloudlinkId` (string, optional) — Id of the cloudlink - `connectionMode` (enum, optional) — Mode for establishing SRT connection - Allowed values: `LISTENER`, `CALLER` - `descramblingKey` (string, optional) — Descrambling key - `descramblingRequired` (boolean, optional) — Whether descrambling is required - `ipAddress` (string, optional) — IPv4 or IPv6 address to receive the input - `ipNetworkAddress` (string, optional) — Local interface for outgoing connections - `ipPort` (integer, optional) — IP port to receive the input - `ipPortRangeEnd` (integer, optional) — UDP port range end used to receive input - `latency` (integer, optional) — Latency parameter - `pathRedundancyMode` (enum, optional) — Path redundancy mode - Allowed values: `SRT_SOCKET_GROUP`, `ST_2022_7` - `pidList` (list of integer, optional) — PID list - `programId` (integer, optional) — Program ID - `srtConnectionSettings` (list of com.harmonicinc.vos.app.sourcemonitor.model.SrtConnectionSettings, optional) — Srt connection setting list - `srtEncryptionParams` (com.harmonicinc.vos.app.sourcemonitor.model.SrtEncryptionParams, optional) - `ssmIpAddresses` (list of string, optional) — Source-specific multicast IP addresses - `st20227DelayBufferInMs` (integer, optional) — Buffer delay for reordering RTP packet - `streamIds` (list of string, optional) — StreamId specifications ### com.harmonicinc.vos.app.sourcemonitor.model.ZixiSource - `harmonicUplinkSetting` (com.harmonicinc.vos.app.sourcemonitor.model.HarmonicUplinkSetting, optional) ### com.harmonicinc.vos.app.sourcemonitor.model.HspAuthenticationHeader - `isDirty` (boolean, required) - `key` (string, required) — Key - `value` (string, required) — Value ### com.harmonicinc.vos.app.sourcemonitor.model.HspEndpointSettings - `hspEndpoint` (string, required) — HSP Endpoint - `variantPlaylistFileName` (string, required) — Playlist File Name of the source - `authenticationHeader` (com.harmonicinc.vos.app.sourcemonitor.model.HspAuthenticationHeader, optional) - `ipNetworkAddress` (string, optional) — IP Network Address used to receive the stream ### com.harmonicinc.vos.app.sourcemonitor.model.IPConnectionSettings - `ip` (string, required) — IP Address of input - `ipPort` (integer, required) — IP Port of input - `ipNetworkAddress` (string, optional) — IP Network Address used to receive the stream - `ssm` (list of string, optional) — SSM Address List of Input ### com.harmonicinc.vos.app.sourcemonitor.model.SrtConnectionSettings - `ipAddress` (string, optional) — Ip address - `ipNetworkAddress` (string, optional) — Interface - `latency` (integer, optional) — Latency parameter - `port` (integer, optional) — Port - `srtEncryptionParams` (com.harmonicinc.vos.app.sourcemonitor.model.SrtEncryptionParams, optional) - `streamId` (string, optional) — StreamId specification ### com.harmonicinc.vos.app.sourcemonitor.model.SrtEncryptionParams - `encryptionKey` (string, optional) — Srt encryption key - `encryptionType` (enum, optional) — Srt encryption type - Allowed values: `AES_128`, `AES_192`, `AES_256`, `NO_ENCRYPTION` ### com.harmonicinc.vos.app.sourcemonitor.model.HarmonicUplinkSetting - `descramblingKey` (string, optional) — Descrambling key - `descramblingRequired` (boolean, optional) — Whether descrambling is required - `ipAddress` (string, optional) — IPv4 or IPv6 address to receive the input - `ipPort` (integer, optional) — IP port to receive the input - `ipPortRangeEnd` (integer, optional) — UDP port range end used to receive input - `pidList` (list of integer, optional) — PID list - `programId` (integer, optional) — Program ID - `ssmIpAddresses` (list of string, optional) — Source-specific multicast IP addresses - `uplinkGroupId` (string, optional) — Id of the uplinkGroup - `uplinkId` (string, optional) — Id of the uplink ## Examples **Response** ```json [ { "sourceType": "IP", "cloudSource": { "automaticGrooming": true, "cloudInputType": "CLOUD_SOURCE", "cloudSourceType": "SRT", "egressId": "string", "region": "string", "resourceMode": "SHARED", "sourceId": "string", "srtSource": { "automaticGrooming": true, "cloudlinkGroupId": "string", "cloudlinkId": "string", "connectionMode": "LISTENER", "descramblingKey": "string", "descramblingRequired": true, "ipAddress": "string", "ipNetworkAddress": "string", "ipPort": 1, "ipPortRangeEnd": 1, "latency": 1, "pathRedundancyMode": "SRT_SOCKET_GROUP", "pidList": [ 1 ], "programId": 1, "srtConnectionSettings": [ { "ipAddress": "string", "ipNetworkAddress": "string", "latency": 1, "port": 1, "srtEncryptionParams": { "encryptionKey": "string", "encryptionType": "AES_128" }, "streamId": "string" } ], "srtEncryptionParams": { "encryptionKey": "string", "encryptionType": "AES_128" }, "ssmIpAddresses": [ "string" ], "st20227DelayBufferInMs": 1, "streamIds": [ "string" ] }, "userStreamId": "string" }, "creationTimestamp": 1, "demuxSource": { "demuxServiceId": "string" }, "hspSource": { "hspEndpoint": "string", "variantPlaylistFileName": "string", "authenticationHeader": { "isDirty": true, "key": "string", "value": "string" }, "backupEndpointSettings": { "hspEndpoint": "string", "variantPlaylistFileName": "string", "authenticationHeader": { "isDirty": true, "key": "string", "value": "string" }, "ipNetworkAddress": "string" }, "ipNetworkAddress": "string", "scte35Annotation": "NONE" }, "id": "string", "inputId": "string", "ipSourceRange": { "ipPortRangeEnd": 1, "ipPortRangeStart": 1, "ipRangeEnd": "string", "ipRangeStart": "string", "descramblingKey": "string", "ipNetworkAddress": "string", "smpte20227DelayBufferInMs": 1, "smpte20227IpSource": { "ip": "string", "ipPort": 1, "ipNetworkAddress": "string", "ssm": [ "string" ] }, "ssm": [ "string" ] }, "probingDurationInMs": 1, "rfsource": { "adapter": 1, "frontend": 1, "rfdeliverySystemType": "DVBT" }, "sourceId": "string", "srtSource": { "automaticGrooming": true, "cloudlinkGroupId": "string", "cloudlinkId": "string", "connectionMode": "LISTENER", "descramblingKey": "string", "descramblingRequired": true, "ipAddress": "string", "ipNetworkAddress": "string", "ipPort": 1, "ipPortRangeEnd": 1, "latency": 1, "pathRedundancyMode": "SRT_SOCKET_GROUP", "pidList": [ 1 ], "programId": 1, "srtConnectionSettings": [ { "ipAddress": "string", "ipNetworkAddress": "string", "latency": 1, "port": 1, "srtEncryptionParams": { "encryptionKey": "string", "encryptionType": "AES_128" }, "streamId": "string" } ], "srtEncryptionParams": { "encryptionKey": "string", "encryptionType": "AES_128" }, "ssmIpAddresses": [ "string" ], "st20227DelayBufferInMs": 1, "streamIds": [ "string" ] }, "zixiSource": { "harmonicUplinkSetting": { "descramblingKey": "string", "descramblingRequired": true, "ipAddress": "string", "ipPort": 1, "ipPortRangeEnd": 1, "pidList": [ 1 ], "programId": 1, "ssmIpAddresses": [ "string" ], "uplinkGroupId": "string", "uplinkId": "string" } } } ] ``` **SDK Code** ```python import requests url = "https://device.example.com/cluster1/vos-api/source-monitor/v1/discover" headers = {"Authorization": "Bearer "} response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript const url = 'https://device.example.com/cluster1/vos-api/source-monitor/v1/discover'; const options = {method: 'GET', headers: {Authorization: 'Bearer '}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://device.example.com/cluster1/vos-api/source-monitor/v1/discover" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Bearer ") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://device.example.com/cluster1/vos-api/source-monitor/v1/discover") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = 'Bearer ' response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://device.example.com/cluster1/vos-api/source-monitor/v1/discover") .header("Authorization", "Bearer ") .asString(); ``` ```php request('GET', 'https://device.example.com/cluster1/vos-api/source-monitor/v1/discover', [ 'headers' => [ 'Authorization' => 'Bearer ', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://device.example.com/cluster1/vos-api/source-monitor/v1/discover"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer "); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = ["Authorization": "Bearer "] let request = NSMutableURLRequest(url: NSURL(string: "https://device.example.com/cluster1/vos-api/source-monitor/v1/discover")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```