Copy of Remote DWS (DOCS-1008)

The Remote DWS allows you to view and modify settings on a BrightSign player over the Internet. The Remote DWS API is a REST framework that allows a client application to integrate with Remote DWS functionality.

The client application makes REST calls to the BrightSign WebSockets server, which in turn sends WebSockets messages to BrightSign players. Depending on the operation, the BrightSign player may return information to the BrightSign Websockets server, which will be relayed in the server REST response to the client application.

REST URLs

The following URLs are case sensitive, and the server may return code 426 if the case is not matched exactly.

Production Remote DWS Server: https://ws.bsn.cloud/rest/v1

Production Authentication URL: https://api.bsn.cloud/2019/03/REST/token

Authentication

All Remote DWS calls require a valid authentication token. The target player must belong to the same network for which the token has been granted.

Authentication is carried out using the same OAUTH endpoint as other BSN.cloud services. See here for more details.

Request Message Format

HTTP requests to Remote DWS resources must be JSON formatted and contain the following URL parameters:

  • destinationType: The device type. The only currently accepted value is "player".
  • destinationName: The device serial number

Requests that require a JSON body need to have an outer data object. For instance, if a route expects [bool] enabled then the full JSON body would look like:

{"data": {"enabled": false}}

Some requests also require resource-specific properties in the URL or request body, as detailed in the URL Parameters and Request Body sections below.

Response Message Format

The server will respond to a REST request with a success or error message, which may also contain resource-specific properties, as detailed in the Response Body sections below.

Returned JSON objects will have an outer object containing the methods below, where data is an error or a result object containing the returned values:

  • [string] route: The route the request was sent to
  • [string] method: The request method
  • [object] data: The returned data

For example:

{
  "route": "/v1/info",
  "method": "GET",
  "data": {
    "result": {
      "model": "LS424"
      ...
    }
  }
}

/info/

GET

Retrieves general information about the player.

Response Body

  • [string] serial: The serial number of the player
  • [string] model: The model number of the device (e.g. "XD234")
  • [string] connectionType: The currently active network interface, which can be either "Ethernet" or "WiFi"
  • [interfaceConfig{}] ethernet: An InterfaceConfig object containing information about the Ethernet connection. This property will only be available if there's a valid Ethernet connection on the player. The Interface Config object can contain the following properties:
    • [ipConfig{}] IPv4: An IPConfig object containing information about the IPv4 configuration. The IPConfig object can contain the following properties:
      • [string] address
      • [string] netmask
      • [string] family
      • [string] mac
      • [bool] internal
      • [string] cidr
    • [ipConfig{}] IPv6: An IPConfig object containing information about the IPv6 configuration
  • [string] bootVersion: The current version of the boot loader
  • [string] fwVersion: The current version of firmware installed on the player
  • [string] upTime: The amount of time (as a human-readable string) that the player has been powered on and working correctly
  • [int] upTimeSeconds: The amount of time (in seconds) that the player has been powered on and working correctly
  • [extension[]] extensions: An array of Extension objects describing Firmware Extensions currently installed on the player
  • [blessing[]] blessings: An array of Blessing objects describing proprietary codecs that are currently authorized on the player

/time/

GET

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.

PUT

Sets the date/time on the player.

Request Body

  • [string] time: The time to set on the player, formatted as "hh:mm:ss <timezone>"
  • [string] date: The date to set on the player, formatted as "yyyy-mm-dd"
  • [bool] applyTimezone: 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)

ON THIS PAGE


/video-mode/

GET

Retrieves the currently active video mode on the player.

Response Body

  • [int] width: The screen width
  • [int] height: The screen height
  • [int] frames: The framerate
  • [string] scan: The scan method of the video signal, which can be either progressive ("p") or interlaced ("i")
  • [string] name: The full name of the video mode (a full list of modes can be found here)
  • [bool] isAutoMode: A flag indicating whether the video mode was set using auto mode
  • [mode{}] mode: A Mode object that gives additional information about the video output. This object can contain the following properties:

    • [string] colorDepth: The color depth of the video signal ("8bit", "10bit", or "12bit")

    • [bool] preferred: A flag indicating whether the video mode is the preferred mode

    • [bool] overscan: A flag indicating whether the video output is using an overscan setting or not

    • [string] modeName: The full name of the video mode (a full list of modes can be found here)

    • [bool] interlaced: A flag indicating whether the video output is interlaced (true) or progressive (false)

    • [int] width: The width of the video output

    • [int] height: The height of the video output

    • [int] graphicsPlaneWidth: The width of the graphics plane 

    • [int] graphicsPlaneHeight: The height of the graphics plane

    • [int] frequency: The frame rate of the video output

    • [bool] dropFrame: A flag indicating whether the video timecode utilizes drop frames

    • [string] colorSpace: The color space of the video signal ("rgb", "yuv420", or "yuv422")

    • [string] colorDepth: The color depth of the video signal ("8bit", "10bit", or "12bit")

/video/{:connector}/output/{:device}/

Note

The {:device} value in /video/ URLs is currently 0 in all cases. The current {:connector} value is always HDMI®.

GET

Retrieves information about the specified video output.

Response Body

The following fields will be present in the response:

  • activeMode: The active video mode on the player
  • attached: Boolean value indicating if HDMI output is attached or not
  • bestMode: The best video mode for the player. Needs HDMI attached because it gets details from EDID result.
  • configuredMode: The configured video mode on the player. Can be different from activeMode.
  • edid: Returns the EDID read string of the display connected to the player.
  • edid_identity: Parses above string in a JSON format for readability. Requires HDMI output connected to the player and a display.
  • modes: List of all available video modes on the player.
  • powerSaveStatus: Boolean value indicating power save status of the display connected to the player.
  • resolutions: graphics, output, video – all have same height and width parameter values, not used by DWS currently.
  • status: Parameters like audioBitsPerSample, audioChannelCount, audioFormat, audioSampleRate, eotf, outputPowered, outputPresent, unstable

/video/{:connector}/output/{:device}/edid/

GET

Returns EDID information from a compatible monitor/television connected to the video output.

/video/{:connector}/output/{:device}/power-save/

GET

Retrieves the power status of the monitor connected to the player (as reported over EDID).

Response Body

  • [bool] is_connected: A flag indicating whether the monitor is connected to the HDMI output on the player
  • [bool] is_powered: A flag indicating whether the monitor is on (i.e. RX powered) 
  • [bool] enabled: A flag indicating whether power-save mode has been enabled on the HDMI/VGA output

PUT

Enables or disables power-save mode on the monitor connected to the player (via HDMI, VGA, or Component).

Request Body

  • [bool] enabled:  Whether or not power save is enabled.

For example: 

{"data": {"enabled": true}}

Response Body

  • The server will return a success or error message.

/video/{:connector}/output/{:device}/modes/

GET

Retrieves all available video modes on the specified video output.

/video/{:connector}/output/{:device}/mode/

GET

Retrieves the current video mode on the specified video output. You can get different mode values by passing the following parameters:

  • Best mode: Pass query parameter “?best”
  • Active mode: Pass query parameter “?active”
  • Configured mode: Pass query parameter “?configured”

Response Body

  • [string] mode: The currently configured video mode on the video output

PUT

Changes the video mode on the player.

Request Body

A video mode object containing the following value(s):

  • [string] modeName: The mode (for example, “1920x1080x60p”)
  • [string] colorDepth: The color depth of the video signal (this parameter is optional)
  • [string] colorSpace: The color space of the video signal (this parameter is optional)
  • [bool] dropFrame: Whether or not the video timecode uses drop frame (this parameter is optional)
  • [int] frequency: The frame rate of the video output (this parameter is optional)
  • [int] width: The width of the video output (this parameter is optional)
  • [int] height: The height of the video output (this parameter is optional)
  • [int] graphicsPlaneWidth: The width of the graphics plane (this parameter is optional)
  • [int] graphicsPlaneHeight: The height of the graphics plane (this parameter is optional)
  • [bool] interlaced:  Whether or not the video output is interlaced (this parameter is optional)
  • [bool] overscan: Whether or not the video output is using an overscan setting or not (this parameter is optional)
  • [bool] preferred: Whether or not video is the preferred mode (this parameter is optional). 

For example:

{“data”: {“name”: {“modeName”: “1920x1080x60p”}}}

Response Body

  • The server will return a success or error message.

/logs/

GET

Fetches the player log files as a raw string. The log output is similar to the information generated through serial, Telnet, or SSH on the player.

Response Body

  • [string] result: The raw contents of the player log. Each line is separated by a newline character ("\n").

/download-log-package/

GET

Retrieves log files from the player as a download package. The log output is similar to the information generated through serial, Telnet, or SSH on the player.

Response Body

The log files are provided as a .zip file.

/crash-dump/

GET

Retrieves the crash dump from the player.

Response Body

  • [Result] result: A Result object containing crash-dump files:
    • [bool] isRecent: A flag indicating if this is the most recent set of crash-dump files
    • [CrashDumpFiles[]] crashDumpFiles: An array of CrashDumpFiles instances. Each CrashDumpFiles instance contains the following entries:
      • [string] fileName: The file name
      • [string] mimeType: The MIME type of the crash-dump file
      • [string] fileContents: The crash-dump file contents

/control/reboot/

PUT

Reboots the player. The player will not send a response to a reboot request.

Request Body

  • [bool] crash_reportPass the body parameter {“crash_report": true}. To be used only when directed by BrightSign customer service. This will reboot the player and save a crash-report file to the brightsign-dumps folder. Customer service may request the crash report when helping you troubleshoot a player.
  • [bool] factory_reset: Pass the body parameter {“factory_reset”: true}. This resets the player to factory defaults, erasing all persistent registry settings for networking, security, and other applications.
  • [string] autorun: Pass the body parameter {“autorun”: “disable”}. This disables the current autorun script, and this is especially helpful for debugging purposes.

/control/dws-password/

GET 

Retrieves information about the current password of the local DWS (but not the password itself) such as whether the password is blank or invalid.

Response Body

  • [bool] success: A flag indicating whether the password was successfully read
  • [Password{}] password: A Password object that describes the DWS password. The following are possible values:
    • [bool] isResultValid: A flag indicating whether the DWS password is valid
    • [bool] isBlank: A flag indicating whether the DWS password is blank (i.e. no password is required)

PUT

Sets a new password for the local DWS (or removes the password requirement).

Request Body

  • [string] password: The new local DWS password for the player. The absence of this parameter (or a blank string) will remove the password requirement for the DWS.
  • [string] previous_password: The previous DWS password. This parameter must be included. This value can be an empty string to indicate that the previous password was blank.

Response Body

  • [bool] success: A flag indicating whether the password was successfully set
  • [bool] reboot: A flag indicating whether the player will reboot to set the password

/control/local-dws/

GET

Retrieves the current state of the local DWS.

Response Body

  • [bool] success: A flag indicating whether the local DWS is enabled or disabled

PUT

Enables or disables the local DWS.

Request Body

  • [bool] enable: A flag indicating whether the local DWS should be enabled or disabled

Response Body

  • [bool] success: A flag indicating whether the local DWS was successfully enabled or disabled
  • [bool] reboot: A flag indicating whether the player will reboot to enable/disable the local DWS

/files/{:path}

GET

Lists directories / files in the requested :path. You can get raw contents of a directory by passing a query parameter “?raw” with the above API.

Response Body

  • [string] type: Either a directory or file
  • [string] path: The path, for example, "sd"
  • [object] stat: Directory stats from the "fs" module
  • [object[]] files
    • [string] name:  Name of the file or directory
    • [string] type:  Either "file" or "dir"
    • [string] path: The relative path of the file or directory
    • [object] stat: File stats from the “fs” module
    • [string] mime: mime type (available only for type "file")

  • [object] storageInfo: If the path in the URL is a storage device, this returns information about the storage device. For more information, see storageinfo

    Note

    You can get raw contents of a directory by passing a query parameter “?raw” with the API above.

    • [string] fileSystemType: The type of filesystem (for example, "fat32")
    • [object] stats:
      • [int] blockSize: The size of a native block
      • [int] bytesFree: The amount of free space
      • [int] filesFree: The number of used inodes
      • [int] filesUsed: The number of free inodes
      • [bool] isReadOnly: A flag indicating whether the filesystem is read only
      • [int] sizeBytes: The amount of total space
    • [string] mountedOn: The location where the file system is mounted (for example, "/storage/sd")
    • [object[]] contents:
      • [string] name: The name of the file or directory
      • [string] type:  Either "file" or "dir"
      • [string] path:  The absolute path of the file or directory
      • [object] stat: The statistics from the "fs" module 
      • [string] mime: mime type (available only for type "file")
      • [object[]]children:  This is available only for directory types and will have the same format as "contents"

POST

Renames a file from :path. Path should include the file name. Pass body parameter {“name”: “new-file-name”}.

DELETE

Deletes a file from the player storage.

Response Body

The player will return a success or error message.

/storage/{:device_name}

DELETE

Reformats the specified storage device (see here for a list of available devices).

Request body

  • [string] fs: The file system to use when reformatting a storage device. The default value of fs is "exfat".

/re-provision/

GET

Calling this endpoint will reprovision the player (in other words, the B-Deploy setup previously associated with the player will be downloaded again). 

Response Body

  • [bool] successTrue means that the operation succeeded, False means that the operation failed. If the operation is successful, the player will reboot.

/diagnostics/

GET

Run network diagnostics on the player.

Response Body

  • [string] ethernet
    • [string] diagnosis: Indicates if this type of interface is present
    • [object[]] log: This contains the diagnostic results for the ethernet interface. It has fields for name, pass, and result.
      • [string] name:  The name of the diagnostic test
      • [bool] pass: Indicates whether the test passed or not
      • [string] result: The actual value for the diagnostic tests like checking type and ping.
    • [bool] ok: If diagnostics were run on the interface or not.
  • [string] wifi
    • [string] diagnosis: Indicates if this type of interface is present
    • [object[]] log: This contains the diagnostic results for the wifi interface. It has fields for name, pass, and result.
      • [string] name:  The name of the diagnostic test
      • [bool] pass: Indicates whether the test passed or not
      • [string] result: The actual value for the diagnostic tests like checking type and ping.
    • [bool] ok: If diagnostics were run on the interface or not.
  • [string] modem
    • [string] diagnosis: Indicates if this type of interface is present
    • [object[]] log: This contains the diagnostic results for the modem interface. It has fields for name, pass, and result.
      • [string] name:  The name of the diagnostic test
      • [bool] pass: Indicates whether the test passed or not
      • [string] result: The actual value for the diagnostic tests like checking type and ping.
    • [bool] ok: If diagnostics were run on the interface or not.
  • [string] internet
    • [string] diagnosis: Indicates if this type of interface is present
    • [object[]] log: This contains the diagnostic results for the internet connectivity. It has fields for info, name, pass, and result.
      • [string[]] info: Returns DNS server info
      • [string] name:  Checks DNS servers and internet connectivity
      • [bool] pass: Indicates whether the test passed or not
      • [string] result: The actual value for the diagnostic tests like checking type and ping. 
    • [bool] ok: If diagnostics were run on the interface or not.

/diagnostics/dns-lookup/{:domain_name}/

GET

Tests name resolution on the specified DNS address.

Response Body

The player queries each DNS field separately, then collects returned data into the records object and returned errors into the errorList object. The following DNS fields are queried: "ipv4", "ipv6", "cname", "mx", "service", "text".

  • [object] records
    • [string[]] ipv4
    • [string[]] ipv6
    • [string[][]] text
    • [object[]] mx
      • [string] exchange
      • [int] priority
  • [object] server_test:
    • [object] tcp
      • [int] made:  The total number of DNS requests made
      • [int] pass: The total number of requests that passed
      • [int] fail: The total number of requests that failed.
      • [int] timeout: The total number of requests that timed out.
      • [int] mismatch
    • [object] udp
      • [int] made:  The total number of DNS requests made
      • [int] pass: The total number of requests that passed
      • [int] fail: The total number of requests that failed.
      • [int] timeout: The total number of requests that timed out.
      • [int] mismatch
  • [object[]] errorList
    • [string] field
    • [object] err
      • [string] errno: Error number (usually the same value as code)
      • [string] code: Error code number
      • [string] syscall
      • [string] hostname: The value passed in the URL

/diagnostics/ping/{:domain_name}/

GET

Requests the player to ping the specified IP or DNS address on its local network. This call can take over 10 seconds to return.

Response Body

  • [bool] success: A flag that indicates if the operation succeeded or not
  • [object] response:
    • [string] hostname: The value that you passed in the URL
    • [object] results:
      • [object[]] ipv4: 
        • [string] address: The IPv4 address
        • [object] results:
          • [int] received: The number of packets received
          • [object] stats: 

            • [int] average: The average time for the packet to return
            • [int] quickest: The quickest time for packet to return
            • [int] slowest: The slowest time for the packet to return
            • [int] units: The time units (usually microseconds)
          • [int] transmitted: The number of packets transmitted
      • [object[]] ipv6
        • [string] interface
        • [string] source
        • [string] address: The IPv6 address
        • [object] results:
          • [int] received:  The number of packets received
          • [int] transmitted: The number of packets transmitted

Note

The ipv6 entry will only be returned if IPv6 is present.

/diagnostics/trace-route/{:domain_name}/

GET

Requests the player to perform a standard trace-route diagnostic on the specified IP or DNS address. This call can take several minutes to return.

URL Parameters

resolveAddress: A Boolean value specifying whether the IP/DNS address should be resolved or not

Response Body

  • [string] address 
  • [object]  results:
    • [string[]] output: Returns the trace route output information in text format
    • [string] protocol: The IP protocol, for example, "ipv4"
    • [object[]] route:
      • [int] hop
      • [object] servers:
        • [string] address: The address to which the trace route request is made
        • [string] hostname
        • [object[]] stats:
          • [string] reachable
          • [string] time: The time required for the trace route request to return
          • [string] units: The time units (usually in milliseconds)

/diagnostics/network-configuration/{:interface}/

GET

Retrieves extensive information about network-interface settings on the player. Interface names include eth0wlan0, and modem.

Response Body

Note

Some entries (e.g. caCertificatesclientIdentifier) are identical for all interfaces.

  • [string] text: The network configuration information in plain-text form
  • [Output] output: The network configuration information as a JSON object:
    • [Interface[]] interfaces: An array of I nterface objects representing network interfaces:
      • [string] name: The interface name (e.g. "eth0")
      • [[Error[]] errors: An array of error messages associated with the interface
      • [Param[]] params: An array of Param objects representing parameters associated with the network interface. Each Param interface has the following entries:
        • [string] name: The property name (e.g. "MAC")
        • [string] value: The property value (e.g. "90:ac:3f:0b:d2:88")
    • [Info[]] host: An array of  Info objects providing network host information. Each Info object can have the following entries:
      • [[Error[]] errors: An array of error messages associated with the network host
      • [Param[]] params: An array of Param objects representing parameters associated with the network host 
    • [Info[]] bsn: An array of Info  objects providing information about BSN communication. 
    • [Info[]] other: An array of Info  objects providing information miscellaneous network information.
  • [string] caCertificate: The contents of a CA certificate file in text form (i.e. a "pem" file).
  • [bool] clientCertificate: A flag indicating whether the player is using a client certificate
  • [string] clientIdentifier: The DHCP client identifier for the network interface
  • [string[]] dnsServerList:  An IP address list of the DNS servers
  • [string] domain: The domain name for the network interface
  • [string] eapTlsOptions: A string containing EAP-specific options
  • [string[]] enabledProtocolList: An array of enabled IP protocols. Currently supported values are "IPv4" and "IPv6".
  • [string] identity: The RADIUS identity
  • [string[]] ipAddressList: The IP addresses assigned to the player
  • [int] inboundShaperRate: The bandwidth limit for inbound traffic in bits per second. A value of -1 specifies the default bandwidth limit, and a value of 0 specifies no bandwidth limit (these two settings are functionally the same).
  • [int] metric:  The routing metric for the default gateway on the interface. Routes with lower metrics are preferred over routes with higher metrics.
  • [int] mtu: The maximum transmission unit (MTU) for the network interface in bytes
  • [string] privateKey: The private key for authentication
  • [int[]] vlanIdList: An array of VLAN IDs that are supported on the parent network interface
  • [string] securityMode: Security mode for authentication
  • [string] securityMode

/diagnostics/network-neighborhood/

GET

Retrieves information about the current network neighborhood of the player.

Response Body

  • [bool] success: A flag that indicates if the operation succeeded
  • [object[]] response:
    • [string] chassis-descr
    • [string] chassis-id
    • [string] chassis-name
    • [string] mgmt-ip
    • [string] port-descr
    • [string] port-id
    • [string] vlan-pvid


Note

The response body can alternatively be an error message if the diagnostic could not be performed.

/diagnostics/packet-capture/

GET

Gets the current status of packet capture operation. Packet capture operation requires the legacy DWS to be working.

Response Body

  • [int] statusCode: The success or error code (200 is success)
  • [bool] is_running: Flag indicating if the packet capture operation is running

POST

Starts a packet capture operation. The body parameters are:

  • [string] filename: The name of the packet capture file. If you don't pass this string, 'capture.pcap' is the default.
  • [string] interface:  The name of the interface for which we are performing packet capture. 'eth0' is the default.
  • [int] duration : The duration for which the packet capture runs in seconds. The default is 300 seconds (5 minutes).
  • [int] maxpackets: The maximum number of packets to capture before concluding the process. 0 is the default value.
  • [int] snaplen: The maximum size of each packet. Specifying 0 will instruct the function to capture the entire packet no matter the size.
  • [string] filter: A field for conditional filtering of packets. This operation uses standard pcap syntax. This string is empty by default.

DELETE

Stops a packet capture operation.

/snapshot/

POST

Takes a screenshot of the current screen contents and saves it to storage.

Response Body

  • [string] remoteSnapshotThumbnail: A snapshot image thumbnail in Base64 format
  • [string] filename: The name and path of the snapshot image file. Call GET /file/{:path} to retrieve the full-resolution image.
  • [string] timestamp: The date and time the snapshot was taken. The date/time is formatted as "yyyy-mm-dd hh:mm:ss <timezone>".

/health/

GET

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.

Response Body

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

/custom/

PUT

Sends custom data to the player. The player in turn sends the data as a message (in JSON string format) on UDP port 5000, which can then be captured by the autorun.brs or JavaScript application on the player.

Request Body

  • [string] command: The custom data to send
  • [bool] returnImmediately: A flag specifying whether the server should respond to the PUT request immediately (true) or wait on a response to the UDP message from the BrightScript/JavaScript application (false).

Response Body

If the returnImmediately property is true, the server will return a success or error message. If the property is false, the server will wait for a response from UDP port 5000 on the player and send it as the response to the PUT request.

/download-firmware/

GET

Instructs the player to download and apply a firmware update.

URL parameter

  • url: The public URL for downloading the firmware-update file.

Response Body

  • [bool] success: A flag indicating whether the download was successful
  • [bool] reboot: A flag indicating whether the player will reboot when applying a firmware update

/registry/

GET

Gets the whole registry dump of the player. 

Response Body

  • [bool] success: If the operation is successful
  • [object] value: The keys are the names of the registry sections. These are some examples:
    • [string] brightscript: The BrightScript key-value pairs
    • [string] networking: The networking key-value pairs

/registry/recovery_url/

GET

Retrieves the recovery URL stored in the player registry.

Response Body

  • [bool] success: A flag indicating whether the request was successfully read
  • [string] value: The recovery URL

PUT

Writes a new recovery URL to the player registry.

Request Body

  • [string] url: The new recovery URL

Response Body

  • [bool] success: A flag indicating whether the write was successful

/remoteview/config

GET

Get the remote view configuration.

PUT

Pass body parameter {“accessURL”: “http://test-server-url/”} to configure the remote view server URL.


/remoteview/{:source}/view

GET

Get a list of all the active remote view session IDs.

POST

Starts remote view session and returns a sessionID.


/remoteview/{:source}/view/:id

GET

Get information about a particular session using its sessionID (passed in as :id in route). The current {:source} value is always desktop. These are the parameters of the response:

Response Body

  • [string] id: This is the session id
  • [string] mediaSource: The value is always "desktop"
  • [bool] available: This value is always true when the session is active.
  • [bool] viewing: This indicates that the session is active. The value will always be true.

DELETE

Delete a particular session using its sessionID.


Examples

GET /time/

Request

GET /rest/v1/time?destinationType=player&destinationName=X3F78A117334 HTTP/1.1
Host: wsstg.brightsignnetwork.com
Authorization: Bearer eZaLAY8iBWCUc2U3nQWZK5NvugfpagsMV9JPoPYbSsMTDYoopk3FrLOysjkJfwdcNwDvpaD1DIa4mgYSJqDwo78hyIzgE52hxmAj2v3z840FcI7vPDFXV86o5IvIhzMs
cache-control: no-cache
Postman-Token: 1b2a601a-8d3d-4406-b552-e056f6e640b0


Response

{
    "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/

Request

PUT /rest/v1/time?destinationType=player&destinationName=X3F78A117334 HTTP/1.1
Host: wsstg.brightsignnetwork.com
Authorization: Bearer 05oZ8MWPqbpst4XprDqWTn3LEaRYxp7Ej6GyEgqAkYFg4DHJ1I4XuJdqohIHS6KF8hAQEAsXZZl3c41D5r22Oe7966QqQQNqpuNFHRgZhbGOxctK3WGOyuhSCmbxTkxT
Content-Type: application/x-www-form-urlencoded
cache-control: no-cache
{
    "time": "00:00:00 PDT",
    "date": "2000-00-00",
    "applyTimeZone": true,
}

Response

{
    "time": "00:00:00 PDT",
    "date": "2000-00-00",
    "applyTimeZone": "true",
    "route": "/v1/time",
    "method": "PUT",
    "data": {
        "result": true
    }
}