The swXtchBridge API base URL for is http://{swXtchBridge-ctrl-ip}:{port}
Adaptors
adaptors/add
Adds new unicast adaptor configuration.
Endpoint:
<base_url>/swx/adaptors/addRequest:
json{ "directionCode": "string", "id": "string", "options": [ { "name": "string", "value": "string" }, { "name": "string", "value": "string" } ], "protocolCode": "string", "socketIp": "string", "socketPort": 1307, "streamIp": "string", "streamPort": 3047 }Response:
json/ { "id": "adaptor-uuid-123" }Error Responses:
400- Fanout not enabled or validation failed
409- Adaptor already exists
Example Response: Add an UDP ingress adaptor →
$ curl 172.51.128.132/swx/adaptors/add -d '{ "protocolCode": "udp", "directionCode": "ingress", "streamIp": "239.1.1.1", "streamPort": 5000, "socketIp": "10.0.1.100", "socketPort": 5001, "listenerPort": 6000, "options": [ { "name": "bufferSize", "value": "65536" }, { "name": "ttl", "value": "64" } ] }' {"id":"12415546857077395231"}
adaptors/remove
Removes one or more adaptor configurations.
Endpoint:
<base_url>/swx/adaptors/removeRequest:
json/ { "ids": ["adaptor-uuid-123", "adaptor-uuid-456"] }Response:
200- Success (no body)
json/ {"errorCode":12005,"errorMessage":"The given adaptors don't exist.","data":"adaptor-uuid-123"}
Example Response: Delete a given adaptor →
$ curl 172.51.128.132/swx/adaptors/remove -d '{ "ids": [ "12415546857077395231" ] }' $
adaptors/show
Returns the current adaptors configuration.
Endpoint:
<base_url>/swx/adaptors/showRequest:
Empty
Response:
json
Example Response: Get current adaptors configurations →
$ curl 172.51.128.132/swx/adaptors/show {"adaptors":{"3875045238777959178":{"id":"3875045238777959178","protocolCode":"udp","directionCode":"ingress","streamIp":"239.1.1.1","streamPort":5000,"socketIp":"10.0.1.100","socketPort":5001,"listenerPort":6000,"options":[{"name":"bufferSize","value":"65536"},{"name":"ttl","value":"64"}]},"9444164746505921829":{"id":"9444164746505921829","protocolCode":"udp","directionCode":"ingress","streamIp":"239.1.1.1","streamPort":10020,"socketIp":null,"socketPort":null,"listenerPort":10021,"options":[]}}}
adaptors/state
Returns the runtime statistics for all adaptors.
Endpoint:
<base_url>/swx/adaptors/stateRequest:
Empty
Response:
json
Example Response: Get current adaptors statistics →
$ curl 172.51.128.132/swx/adaptors/state {"3875045238777959178":{"id":"3875045238777959178","isConnected":false,"isActive":false,"stats":{},"config":{"id":"3875045238777959178","protocolCode":"udp","directionCode":"ingress","streamIp":"239.1.1.1","streamPort":5000,"socketIp":"10.0.1.100","socketPort":5001,"listenerPort":6000,"options":[{"name":"bufferSize","value":"65536"},{"name":"ttl","value":"64"}]}},"9444164746505921829":{"id":"9444164746505921829","isConnected":false,"isActive":false,"stats":{},"config":{"id":"9444164746505921829","protocolCode":"udp","directionCode":"ingress","streamIp":"239.1.1.1","streamPort":10020,"socketIp":null,"socketPort":null,"listenerPort":10021,"options":[]}}}
adaptors/update
Updates existing adaptor configuration.
NOTE
Only SRT adaptros that are currently in use can be updated. Also, only the POST type.
Endpoint:
<base_url>/swx/adaptors/updateRequest:
json{ "id": "string", "options": [ { "name": "string", "value": "string" }, { "name": "string", "value": "string" } ] }Response:
200- Success (no body)
json/ {"errorCode":12005,"errorMessage":"The given adaptors don't exist.","data":null}
Example Response: Update a given adaptor configuration →
$ curl 172.51.128.132/swx/adaptors/update -d '{ "id": "3875045238777959178", "options": [ { "name": "bufferSize", "value": "131072" }, { "name": "ttl", "value": "32" } ] }'
Monitoring
monitoring/state
Retrieve bridge state information.
Endpoint:
<base_url>/swx/monitoring/stateRequest:
Empty
Response:
json
Example Response: Get the configuration of a given swXtchBridge →
$ curl 172.51.128.132/swx/monitoring/state { "bridgeConfig": { "ctrlInterfaceName": "ens5", "dataInterfaceName": "ens6", "userInterfaceName": "ens6", "dataPort": 9999, "nicsConfig": null, "maxGroundSubscriptions": 2000, "pollingIntervalMilliseconds": 1000, "subscriptionsPollingIntervalMilliseconds": 100, "overrideSrcIp": false, "maxTimeStatsNs": null, "cpu": -1, "protocolConfig": { "cgroupName": "swx-protocol", "cpuSet": "", "cpuUsage": 80 }, "processes": { "swxCore": { "launch": true, "options": null, "args": { "--verbosity": "1" } }, "swxTunnelIgmp": { "launch": true, "options": null, "args": { "--verbosity": "1" } }, "swxTunnelSingleNic": { "launch": false, "options": null, "args": { "--tunIP": "" } }, "swxTunnel": { "launch": true, "options": null, "args": { "--verbosity": "2" } }, "swxProtocol": { "launch": true, "options": null, "args": { "--cpu-set": "", "--cpu-usage": "80", "--verbosity": "1" } }, "swxBridgeData": { "launch": true, "options": null, "args": { "--verbosity": "1" } } }, "installedConnection": { "controlAddress": { "ip": "172.31.25.214", "port": 80 }, "dataAddress": null }, "nonSlpMtu": 1500, "dataGatewayIp": null } }
Subscriptions
Subscriptions are multicast addresses that are required for on-prem to cloud IGMP joins and vice versa. Note that it is dynamic from on-prem to cloud; therefore, Forward Subscriptions are not necessary; however, Ground Subscriptions are necessary unless using PIM table integration.
subscriptions/addForwardSubscription
Adds a forward subscription to the bridge configuration.
Endpoint:
<base_url>/swx/subscriptions/addForwardSubscriptionRequest:
json{ "groupAddress": "string", "swxtchAddress": { "ip": "string", "port": 0 } }Response:
200- Success (no body)
json/ {"errorMessage":"Group: string already present for swxtch: string:0."}
Example Response: Create a forward subscription →
$ curl 172.51.128.152/swx/subscriptions/addForwardSubscription -d '{ "groupAddress": "239.1.1.1", "swxtchAddress": { "ip": "172.51.128.132", "port": 10000 } }'
subscriptions/addGroundSubscription
Adds a ground subscription to configuration
Endpoint:
<base_url>/swx/subscriptions/addGroundSubscriptionRequest:
json{ "multicastGroups": [ "string" ] }Response:
200- Success (no body)
Example Response: Create a ground subscription →
$ curl 172.51.128.152/swx/subscriptions/addGroundSubscription -d '{ "multicastGroups": [ "239.1.1.1", "239.1.1.2" ] }'
subscriptions/removeForwardSubscription
Removes a forward subscription configuration
Endpoint:
<base_url>/swx/subscriptions/removeForwardSubscriptionRequest:
json{ "groupAddress": "string", "swxtchAddress": { "ip": "string", "port": 0 } }Response:
200- Success (no body)
Example Response: Remove a forward subscription →
$ curl 172.51.128.152/swx/subscriptions/removeForwardSubscription -d '{ "groupAddress": "239.1.1.1", "swxtchAddress": { "ip": "172.51.128.132", "port": 10000 } }'
subscriptions/removeGroundSubscription
Removes ground subscriptions configuration
Endpoint:
<base_url>/swx/subscriptions/removeGroundSubscriptionRequest:
jsonList of multicast groups to be removed{ "multicastGroups": [ "string", "string", - ] }Response:
200- Success (no body)
Example Response: Remove a Ground subscription →
$ curl 172.51.128.152/swx/subscriptions/removeGroundSubscription -d '{ "multicastGroups": [ "239.1.1.1", "239.1.1.2" ] }'
subscriptions/showForwardSubscriptions
Returns current forward subscriptions configuration.
Endpoint:
<base_url>/swx/subscriptions/showForwardSubscriptionsRequest:
Empty
Response:
json/ {"string:0":["string","string"]}
Example Response: Show forward subscription configurations →
$ curl 172.51.128.152/swx/subscriptions/showForwardSubscriptions {"172.51.128.132:10000":["239.1.1.1","239.1.1.2"]}
subscriptions/showGroundSubscriptions
Returns current ground subscriptions configuration.
Endpoint:
<base_url>/swx/subscriptions/showGroundSubscriptionsRequest:
json{ "multicastGroups": [ "string" ] }Response:
200- Success (no body)
json/ {"multicastGroups":["string","string"]}
Example Response: Show ground subscription configurations →
$ curl 172.51.128.152/swx/subscriptions/showGroundSubscriptions {"multicastGroups":["239.1.1.1:0","239.1.1.2:0"]}
Connections
connections/addConnectionCluster
Add and deploy a swXtch connections cluster configuration
Endpoint:
<base_url>/swx/connections/addConnectionClusterRequest:
json{ "connection": { "dataInterfaceName": "string", "ha": { "deduplication": { "bufferSizeInPackets": 0, "maxTimeToBufferPacketsMs": 0, "removeInactiveStreamTimeoutSec": 0 }, "enable": "string", "protocol": "string" }, "slp": { "enableRx": "string", "enableTx": "string", "params": { "ack_interval_ns": 0, "channel_bonding_start_port": 0, "channel_rebonding_start_port": 0, "connection_timeout_retries": 0, "disable_auto_update_nack_estimation": "string", "enable_auto_incoming": "string", "enable_reconnection": "string", "in_flight_pkt_count": 0, "incoming_retra_delay_ns": 0, "latency_factor": 0, "min_avg_window": 0, "min_time_first_retrans_req_ns": 0, "mtu": 0, "num_channel_bonding_ports": 0, "num_channel_rebonding_ports": 0, "pkt_delivery_retries": 0 } } }, "primarySwxtch": { "controlAddress": { "ip": "string", "port": 0 }, "dataAddress": { "ip": "string", "port": 0 } } }Response:
200- Success (no body)
Example Response →
$ curl 172.51.128.152/swx/connections/addConnectionCluster -d '{"componentId":"172.31.29.118","connectionData":{"primarySwxtch":{"controlAddress":{"ip":"172.31.18.246","port":80}},"connection":{"ha":{"enable":false,"protocol":"swxtch","deduplication":null},"slp":{"enableTx":true,"enableRx":true,"params":{"in_flight_pkt_count":null,"pkt_delivery_retries":null,"connection_timeout_retries":null,"mtu":null,"disable_auto_update_nack_estimation":null,"min_time_first_retrans_req_ns":null,"incoming_retra_delay_ns":null,"ack_interval_ns":null,"channel_bonding_start_port":null,"num_channel_bonding_ports":null,"channel_rebonding_start_port":null,"num_channel_rebonding_ports":null,"min_avg_window":null,"enable_auto_incoming":null,"latency_factor":2,"enable_reconnection":null}},"dataInterfaceName":"ens6"}}}' $
connections/removeConnectionCluster
Remove a swXtch connections cluster configuration
Endpoint:
<base_url>/swx/connections/removeConnectionClusterRequest:
json{ "ip": "string", "port": 0 }Response:
200- Success (no body)
Example Response: Remove a connection cluster →
$ curl 172.51.128.152/swx/connections/removeConnectionCluster -d '{"componentId":"172.31.29.118","address":{"ip":"172.31.18.246","port":80}}' $
connections/showConnectionClusters
Retrieve current swXtch connections clusters configurations
Endpoint:
<base_url>/swx/connections/showConnectionClustersRequest:
jsonResponse:
200- OKjson
Example Response: Show the connection for a single swXtchBridge without a single connection to the cloudSwXtch →
$ curl 172.51.25.214/swx/connections/showConnectionClusters [ { "primarySwxtch": { "controlAddress": { "ip": "172.31.25.214", "port": 80 }, "dataAddress": null }, "connection": { "slp": { "enableTx": true, "enableRx": true, "params": { "in_flight_pkt_count": null, "pkt_delivery_retries": null, "connection_timeout_retries": null, "mtu": null, "disable_auto_update_nack_estimation": null, "min_time_first_retrans_req_ns": null, "incoming_retra_delay_ns": null, "ack_interval_ns": null, "channel_bonding_start_port": null, "num_channel_bonding_ports": null, "channel_rebonding_start_port": null, "num_channel_rebonding_ports": null, "min_avg_window": null, "enable_auto_incoming": null, "latency_factor": 2, "enable_reconnection": null } }, "ha": { "enable": false, "protocol": "swxtch", "deduplication": null }, "dataInterfaceName": "ens6" } } ]
connections/updateConnectionClusters
Update a swXtch connection cluster configuration
Endpoint:
<base_url>/swx/connections/updateConnectionClustersRequest:
json{ "connection": { "dataInterfaceName": "string", "ha": { "deduplication": { "bufferSizeInPackets": 0, "maxTimeToBufferPacketsMs": 0, "removeInactiveStreamTimeoutSec": 0 }, "enable": "string", "protocol": "string" }, "slp": { "enableRx": "string", "enableTx": "string", "params": { "ack_interval_ns": 0, "channel_bonding_start_port": 0, "channel_rebonding_start_port": 0, "connection_timeout_retries": 0, "disable_auto_update_nack_estimation": "string", "enable_auto_incoming": "string", "enable_reconnection": "string", "in_flight_pkt_count": 0, "incoming_retra_delay_ns": 0, "latency_factor": 0, "min_avg_window": 0, "min_time_first_retrans_req_ns": 0, "mtu": 0, "num_channel_bonding_ports": 0, "num_channel_rebonding_ports": 0, "pkt_delivery_retries": 0 } } }, "primarySwxtch": { "controlAddress": { "ip": "string", "port": 0 }, "dataAddress": { "ip": "string", "port": 0 } } }Response:
200- Success (no body)
Example Response: Update the connection to remove SLP for RX →
$ curl 172.51.128.152/swx/connections/updateConnectionClusters -d '{"componentId":"172.31.29.118","connectionData":{"primarySwxtch":{"controlAddress":{"ip":"172.31.18.246","port":80}},"connection":{"ha":{"enable":false,"protocol":"swxtch","deduplication":null},"slp":{"enableTx":true,"enableRx":false,"params":{"in_flight_pkt_count":null,"pkt_delivery_retries":null,"connection_timeout_retries":null,"mtu":null,"disable_auto_update_nack_estimation":null,"min_time_first_retrans_req_ns":null,"incoming_retra_delay_ns":null,"ack_interval_ns":null,"channel_bonding_start_port":null,"num_channel_bonding_ports":null,"channel_rebonding_start_port":null,"num_channel_rebonding_ports":null,"min_avg_window":null,"enable_auto_incoming":null,"latency_factor":2,"enable_reconnection":null}},"dataInterfaceName":"ens6"}}}' $
connections/updateConnectionConfig
Update default connection configuration
Endpoint:
<base_url>/swx/connections/updateConnectionConfigRequest:
json{ "dataInterfaceName": "string", "ha": { "deduplication": { "bufferSizeInPackets": 0, "maxTimeToBufferPacketsMs": 0, "removeInactiveStreamTimeoutSec": 0 }, "enable": "string", "protocol": "string" }, "slp": { "enableRx": "string", "enableTx": "string", "params": { "ack_interval_ns": 0, "channel_bonding_start_port": 0, "channel_rebonding_start_port": 0, "connection_timeout_retries": 0, "disable_auto_update_nack_estimation": "string", "enable_auto_incoming": "string", "enable_reconnection": "string", "in_flight_pkt_count": 0, "incoming_retra_delay_ns": 0, "latency_factor": 0, "min_avg_window": 0, "min_time_first_retrans_req_ns": 0, "mtu": 0, "num_channel_bonding_ports": 0, "num_channel_rebonding_ports": 0, "pkt_delivery_retries": 0 } } }Response:
200- Success (no body)
Example Response: Update connection config to remove SLP for RX →
$ curl 172.51.128.152/swx/connections/updateConnectionConfig -d '{"componentId":"172.31.29.118","connectionConfig":{"slp":{"enableTx":true,"enableRx":false,"params":{"in_flight_pkt_count":null,"pkt_delivery_retries":null,"connection_timeout_retries":null,"mtu":null,"disable_auto_update_nack_estimation":null,"min_time_first_retrans_req_ns":null,"incoming_retra_delay_ns":null,"ack_interval_ns":null,"channel_bonding_start_port":null,"num_channel_bonding_ports":null,"channel_rebonding_start_port":null,"num_channel_rebonding_ports":null,"min_avg_window":null,"enable_auto_incoming":null,"latency_factor":2,"enable_reconnection":null}},"ha":{"enable":false,"protocol":"swxtch","deduplication":null},"dataInterfaceName":"ens6"}}' $
.png?sv=2022-11-02&spr=https&st=2025-12-24T16%3A51%3A39Z&se=2025-12-24T17%3A10%3A39Z&sr=c&sp=r&sig=9TWu0Iq3sAeulK1I5AqJ%2BaRIp75OOVT0HCeFZiuxc4k%3D)