Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

Base URL for these endpoints:  https://ws.bsn.cloud/rest/v1/

_________________________________________________________________________

GET  /info/ 

Retrieves general information about the player

Request Example

Code Block
GET /rest/v1/info/?destinationType=player&destinationName={{deviceSerial}} HTTP/1.1
Host: ws.bsn.cloud
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json

Response

  • serial string: The serial number of the player

  • model string: The model number of the device (e.g. "XD234")

  • connectionType string: The currently active network interface, which can be either "Ethernet" or "WiFi"

  • ethernet object: An object containing information about the ethernet connection. This property will only be available if there's a valid ethernet connection on the player. The object can contain the following properties:

    • IPv4 object: An object containing information about the IPv4 configuration. The object can contain the following properties:

      • address string: The assigned IPv4 address

      • netmask string: The IPv4 network mask

      • family string: IPv4

      • mac string: The MAC address of the network interface

      • internal bool: true if the network interface is a loopback or similar interface that is not remotely accessible; otherwise false

      • cidr string: The assigned IPv4 address with the routing prefix in CIDR notation. If the netmask is invalid, this property is set to null.

    • IPv6 object: An object containing information about the IPv6 configuration:

      • address string: The assigned IPv6 address

      • netmask string: The IPv6 network mask

      • family string: IPv6

      • mac string: The MAC address of the network interface

      • internal bool: true if the network interface is a loopback or similar interface that is not remotely accessible; otherwise false

      • cidr string: The assigned IPv4 address with the routing prefix in CIDR notation. If the netmask is invalid, this property is set to null.

  • bootVersion string: The current version of the boot loader

  • fwVersion  string: The current version of firmware installed on the player

  • upTime string: The amount of time (as a human-readable string) that the player has been powered on and working correctly

  • upTimeSeconds int: The amount of time (in seconds) that the player has been powered on and working correctly

  • extensions extension[ ]: An array of Extension objects describing Firmware Extensions currently installed on the player

  • blessings blessing[ ]: An array of Blessing objects describing proprietary codecs that are currently authorized on the player

Response Example

Expand
titleExpand

...

Code Block
languagejson
{
    "route": "/v1/info",
    "method": "GET",
    "data": {
        "result": {
            "serial": "RE433D006644",
            "upTime": "30 minutes",
            "upTimeSeconds": 1832,
            "model": "XD1035",
            "FWVersion": "9.0.97",
            "bootVersion": "9.0.85",
            "family": "cobra",
            "isPlayer": true,
            "power": {
                "result": {
                    "battery": "absent",
                    "source": "AC",
                    "switch_mode": "hard"
                }
            },
            "poe": {
                "result": {
                    "status": "inactive"
                }
            },
            "extensions": {
                "result": {
                    "extensions": []
                }
            },
            "blessings": {
                "result": {
                    "ac3": false,
                    "eac3": false
                }
            },
            "networking": {
                "result": {
                    "description": "Test_player",
                    "name": "XD5-RE433D006644"
                }
            },
            "bvnPipelines": {
                "result": {
                    "pipelines": []
                }
            },
            "bvnComponents": {
                "result": {
                    "components": []
                }
            },
            "hardware_features": {
                "hdmi": true,
                "component video": false,
                "vga": false,
                "two channel audio": true,
                "ethernet": true,
                "usb": true,
                "serial port 0": true,
                "serial port 1": false,
                "gpio connector": true,
                "svc button": true,
                "reset button": true,
                "rtc": true,
                "settings rom": false,
                "microsd": false,
                "sdhc": true,
                "six channel audio": false,
                "ir blaster": true,
                "wifi": false,
                "serial port 2": false,
                "audio input": false,
                "cec": true,
                "battery": false,
                "portrait lcd": false,
                "hdmi input": false,
                "digital tuner": false,
                "spdif": true,
                "audio input loopback": false,
                "msata": false,
                "ac3": false,
                "eac3": false,
                "onboard storage": true,
                "no 4k decode": false,
                "no bluetooth": false,
                "no poe": false,
                "internal storage only": false,
                "disable packet capture": false,
                "disable bsn cloud": false,
                "brightear": false,
                "disable dws": false
            },
            "api_features": {
                "video": true
            },
            "active_features": {
                "legacyDWS": true
            },
            "connectionType": "eth0",
            "ethernet": [
                {
                    "interfaceName": "eth0",
                    "interfaceType": "Ethernet",
                    "IPv4": [
                        {
                            "address": "123.456.7.890",
                            "netmask": "255.255.255.0",
                            "family": "IPv4",
                            "mac": "90:ac:3f:2a:01:79",
                            "internal": false,
                            "cidr": "192.168.1.174/24"
                        }
                    ],
                    "IPv6": [
                        {
                            "address": "2600:1700:dac0:2060::23",
                            "netmask": "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
                            "family": "IPv6",
                            "mac": "90:ac:3f:2a:01:79",
                            "internal": false,
                            "cidr": "2600:1700:dac0:2060::23/128",
                            "scopeid": 0
                        },
                        {
                            "address": "2600:1700:dac0:2060:92ac:3fff:fe2a:179",
                            "netmask": "ffff:ffff:ffff:ffff::",
                            "family": "IPv6",
                            "mac": "90:ac:3f:2a:01:79",
                            "internal": false,
                            "cidr": "2600:1700:dac0:2060:92ac:3fff:fe2a:179/64",
                            "scopeid": 0
                        },
                        {
                            "address": "fe80::92ac:3fff:fe2a:179",
                            "netmask": "ffff:ffff:ffff:ffff::",
                            "family": "IPv6",
                            "mac": "90:ac:3f:2a:01:79",
                            "internal": false,
                            "cidr": "fe80::92ac:3fff:fe2a:179/64",
                            "scopeid": 2
                        }
                    ]
                }
            ],
            "wireless": [],
            "interfaces": [],
            "bsnce": true
        }
    }
}

...

Endpoints:

...

GET  /time/ 

Retrieves the date and time as configured on the player. The date/time value is formatted as "yyyy-mm-dd hh:mm:ss <timezone>". This call is identical to using the Node.js® time API.

Request Example

Code Block
GET /rest/v1/time/?destinationType=player&destinationName={{deviceSerial}} HTTP/1.1
Host: ws.bsn.cloud
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json

Response Example

Code Block
languagejson
{
    "route": "/v1/time",
    "method": "GET",
    "data": {
        "result": {
            "time": "2018-10-18 14:34:34 PDT",
            "timezone_mins": null,
            "timezone_name": "America/Los_Angeles",
            "timezone_abbr": "PDT",
            "year": 2018,
            "month": 10,
            "date": 18,
            "hour": 14,
            "minute": 34,
            "second": 34,
            "millisecond": 569
        }
    }
}

PUT  /time/ 

Sets the date/time on the player

Request Body

  • time string: The time to set on the player, formatted as "hh:mm:ss <timezone>"

  • date string:  The date to set on the player, formatted as "yyyy-mm-dd"

  • applyTimezone bool:  A flag specifying whether the date and time should be applied using the time zone configured on the player (true) or the UTC time zone (false)

Request Example

Code Block
PUT /rest/v1/time/?destinationType=player&destinationName={{deviceSerial}} HTTP/1.1
Host: ws.bsn.cloud
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Content-Type: application/json
Content-Length: 117

This is the example request body:

Code Block
languagejson
{
    "data": {
        "time": "22:00:00",
        "date": "2023-11-07",
        "applyTimezone": true
    }
}

Response Example

A successful response would be a 200 status code with the following body:

Code Block
languagejson
{
  "data": {
    "result": true
  }
}

GET  /health/ 

Retrieves the current status of the player. Currently, this endpoint is only used to determine if a player can respond to a WebSockets request; it cannot determine the error state of a player.

Request Example

Code Block
GET /rest/v1/health/?destinationType=player&destinationName={{deviceSerial}} HTTP/1.1
Host: ws.bsn.cloud
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json

Response Body

  • status string: The player status. The only possible value is "active".

  • statusTime string: The date and time the player responded to the status request. The date/time is formatted as "yyyy-mm-dd hh:mm:ss <timezone>".

Response Example

Code Block
languagejson
{
    "route": "/v1/health",
    "method": "GET",
    "data": {
        "result": {
            "status": "active",
            "statusTime": "2024-01-30 07:38:05 PST"
        }
    }
}