---
title: Devices Endpoints (2022/06)
slug: develop/devices-endpoints-202206
docTags: 
createdAt: 2025-03-11T07:03:30.743Z
---

This endpoint allows for management and monitoring of players on the network. 

Base URL for these endpoints:  ***https\://api.bsn.cloud/2022/06/REST/Devices***

*\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_*

## GET /

Retrieves a list of players on the network.

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Query String Parameters**

- `filter` <font color="#704ae0">string</font> <font color="#01a0af">optional: </font>An [expression](docId:3L0afyD3xoOE-yTvfk2vs) for filtering search results. The default value is null.
- `sort` <font color="#704ae0">string</font> <font color="#01a0af">optional: </font>An expression for sorting the search results. The sort expression specifies the entry used for sorting and the ascending/descending (ASC/DESC) sorting order (e.g. "`[Device].[Serial] ASC`"). 
- `marker` <font color="#704ae0">string</font> <font color="#01a0af">optional: </font>A value specifying which page to retrieve. This value is useful if the `isTruncated` entry in the response body of the previous GET call indicates that the number of player instances exceeds the `pageSize`. This parameter is only required if you need more elements in the paged list than the `pageSize` (100).
- `pageSize` <font color="#704ae0">int</font> <font color="#01a0af">optional</font>The maximum number of player instances that can be contained in the response body. This defaults to the maximum allowed page size (100).

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `marker` value is set to the `[PagedList].[NextMarker]` property value from the previous BSN.Cloud API response.
- `pageSize` is set to `1`
- `filter` is set to `[Model] IS 'HD1024'`
- `sort` is set to `[LastModifiedDate] ASC`

```text
GET /2022/06/REST/Devices/?marker=Mj0kwMTU2&pageSize=1&filter=%5BModel%5D%20IS%20%27HD1024%27&sort=%5BLastModifiedDate%5D%20ASC HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns a [paged list](docId\:Pwwr0Ln3-binNgL-mr3St) of [Player Entity](docId:9PqPrRJAVwfZbka1GYBEA) instances on a network. This will return not more than 100 entities along with the information necessary to return any other remaining pages.

:::ExpandableHeading
Example

```text
{
  "items": [
    {
      "id": 12345,
      "serial": "46C89C101829",
      "model": "HD1024",
      "family": "Pagani",
      "registrationDate": "2020-07-09T19:15:22.773Z",
      "lastModifiedDate": "2021-05-04T18:04:17.97Z",
      "settings": {
        "name": "HDPlayer",
        "description": "Primary Display",
        "concatNameAndSerial": false,
        "setupType": "BSN",
        "lastModifiedDate": "2022-01-05T18:12:22.643Z",
        "group": {
          "id": 123,
          "name": "TestGroup",
          "link": null
        },
        "brightWall": null,
        "timezone": "PST",
        "screen": {
          "idleColor": "FF702896",
          "splashUrl": null
        },
        "synchronization": {
          "status": {
            "period": "00:05:00"
          },
          "settings": {
            "period": "00:00:00"
          },
          "schedule": {
            "period": "06:00:00"
          },
          "content": {
            "start": null,
            "end": null
          }
        },
        "network": {
          "hostname": "BrightSign-46C89C101829",
          "proxyServer": null,
          "proxyBypass": [],
          "timeServers": [
            "http://time.brightsignnetwork.com/"
          ],
          "interfaces": [
            {
              "name": "eth0",
              "type": "Ethernet",
              "enabled": true,
              "proto": "Static",
              "ip": [
                "192.168.0.2/24",
                "EF88:7::2FAB:7657/64"
              ],
              "gateway": "192.168.0.1",
              "dns": [
                "192.168.0.125",
                "74.38.99.135"
              ],
              "rateLimitDuringInitialDownloads": null,
              "rateLimitInsideContentDownloadWindow": null,
              "rateLimitOutsideContentDownloadWindow": null,
              "contentDownloadEnabled": true,
              "textFeedsDownloadEnabled": true,
              "mediaFeedsDownloadEnabled": true,
              "healthReportingEnabled": true,
              "logsUploadEnabled": true
            },
            {
              "name": "eth0.25",
              "type": "Virtual",
              "enabled": false,
              "parent": "eth0",
              "vlanId": 25,
              "proto": "DHCPv4",
              "ip": null,
              "gateway": null,
              "dns": null,
              "rateLimitDuringInitialDownloads": null,
              "rateLimitInsideContentDownloadWindow": null,
              "rateLimitOutsideContentDownloadWindow": null,
              "contentDownloadEnabled": false,
              "textFeedsDownloadEnabled": false,
              "mediaFeedsDownloadEnabled": false,
              "healthReportingEnabled": true,
              "logsUploadEnabled": true
            },
            {
              "name": "wlan0",
              "type": "WiFi",
              "enabled": true,
              "ssid": "hall_devices",
              "security": {
                "authentication": {
                  "mode": "Shared",
                  "passphrase": "A8200E996438DE85103486A44CA96A999B0A6D"
                },
                "encryption": {
                  "mode": "TKIP"
                }
              },
              "proto": "NDP, DHCPv6",
              "ip": null,
              "gateway": null,
              "dns": null,
              "rateLimitDuringInitialDownloads": 10240000,
              "rateLimitInsideContentDownloadWindow": 10240000,
              "rateLimitOutsideContentDownloadWindow": 256000,
              "contentDownloadEnabled": true,
              "textFeedsDownloadEnabled": true,
              "mediaFeedsDownloadEnabled": false,
              "healthReportingEnabled": true,
              "logsUploadEnabled": false
            },
            {
              "name": "ppp0",
              "type": "Cellular",
              "enabled": true,
              "modems": [
                {
                  "model": "BrightSign IK41",
                  "usbDeviceIds": [
                    "1bbb:00b6"
                  ]
                }
              ],
              "sims": [
                {
                  "mcc": "901",
                  "mnc": "28",
                  "connection": {
                    "type": "Default"
                  }
                },
                {
                  "mcc": "204",
                  "mnc": "04",
                  "connection": {
                    "type": "Default"
                  }
                }
              ],
              "rateLimitDuringInitialDownloads": null,
              "rateLimitInsideContentDownloadWindow": null,
              "rateLimitOutsideContentDownloadWindow": null,
              "contentDownloadEnabled": true,
              "textFeedsDownloadEnabled": true,
              "mediaFeedsDownloadEnabled": true,
              "healthReportingEnabled": true,
              "logsUploadEnabled": true
            },
            {
              "name": "usb0",
              "type": "Ethernet",
              "enabled": true,
              "proto": "Static",
              "ip": [
                "132.80.245.191/24"
              ],
              "gateway": null,
              "dns": [
                "132.80.245.142"
              ],
              "rateLimitDuringInitialDownloads": null,
              "rateLimitInsideContentDownloadWindow": null,
              "rateLimitOutsideContentDownloadWindow": null,
              "contentDownloadEnabled": false,
              "textFeedsDownloadEnabled": false,
              "mediaFeedsDownloadEnabled": false,
              "healthReportingEnabled": false,
              "logsUploadEnabled": false
            },
            {
              "name": "eth0.110",
              "type": "Virtual",
              "enabled": true,
              "parent": "eth0",
              "vlanId": 110,
              "proto": "Static",
              "ip": [
                "16.194.230.251/28"
              ],
              "gateway": "16.194.230.241",
              "dns": [
                "192.168.0.125",
                "74.38.99.135"
              ],
              "rateLimitDuringInitialDownloads": null,
              "rateLimitInsideContentDownloadWindow": null,
              "rateLimitOutsideContentDownloadWindow": null,
              "contentDownloadEnabled": true,
              "textFeedsDownloadEnabled": true,
              "mediaFeedsDownloadEnabled": true,
              "healthReportingEnabled": true,
              "logsUploadEnabled": true
            }
          ]
        },
        "beacons": [],
        "location": {
         "placeId": null,
         "gpsLatitude": 37.4152,
         "gpsLongitude": -122.1224,
         "country": "US",
         "countryLongName": "United States",
         "adminAreaLevel1": "CA",
         "adminAreaLevel1LongName": "California",
         "adminAreaLevel2": "Santa Clara County",
         "adminAreaLevel2LongName": "Santa Clara County",
         "locality": "Palo Alto",
         "localityLongName": "Palo Alto",
         "path": "/US/CA/Santa Clara County/Palo Alto/",
         "pathLongName": "/United States/California/Santa Clara County/Palo Alto/"
        },
        "screenshots": null,
        "logging": {
          "enableDiagnosticLog": false,
          "enableEventLog": false,
          "enablePlaybackLog": false,
          "enableStateLog": false,
          "enableVariableLog": false,
          "uploadAtBoot": false,
          "uploadTime": null
        },
        "lws": {
          "username": "",
          "password": "",
          "enableUpdateNotifications": true
        },
        "ldws": {
          "password": "RLSJZ35Sm9b1lB0npVFW4kPYegscBlMF3NFG6wtOaSTXIoC+iR5NGrhJa77ZaWTgpiCzPdDdnwMlQSb4QLqe6nEFx6q/927scO6LlVTtRBVch+RlgzlJ2SXYqAH6TUx66JRFuvCxyHzL0iUNKR/R4E1hdTQpxH3yXIPJ5OBOTlaw8OW6DZNixDGMuvhgmWAW9/TgksUYTlwb1SKqGzQOrDYmmg+A71YMGV6NcKbuN3P0DjQsMrVxlFe9+awQ73LSxqKF5Q52FjUhgSKsYcTtnoJvY/n9HWcREyxOPKF7vsEIfKOeG/qoFBvgZZKOoqaTyD82iBKbOQu9WllBGX+qaaTTQHR1SrZoyS2PDmBlddLhngE4BHiDxmOPhm69bsmiakUcUqgjvgi8sRL/9kUxLXuayeQ6VYzUnHdX7K3nYqbhgJCxVbSURe5wIS/vQ97zi4wt0NpF55FmoAQlZA1JcSk/85w8S4hfpCYlDnqQMI8jXqvNZ5apc7nKsg6NSibGhh4h1cpA7DG6d6MzjBldVKhutni3Bj991cP45RIaGlmWipbC9eKwODrsDPYMK2CDN/JEygmfiUdJJW4Cvgi4s6Z3oyqddiEV+plZtGD69NAau4OMCoHcR1STJdsVOrq++tF+R0/IkC5wDhAUBszXvlSdcKja7Gv7v4kOAZC0CmtA="
        }
      },
      "status": {
        "group": {
          "id": 123,
          "name": "TestGroup",
          "link": null
        },
        "brightWall": null,
        "presentation": {
          "id": 12345,
          "name": "Test2",
          "type": "Presentation",
          "link": null
        },
        "timezone": "PST",
        "synchronization": {
          "settings": {
            "enabled": false
          },
          "schedule": {
            "enabled": false
          },
          "content": {
            "enabled": false
          }
        },
        "script": {
          "type": "Autorun",
          "version": "10.0.100",
          "plugins": null
        },
        "firmware": {
          "version": "8.5.35"
        },
        "storage": [
          {
            "interface": "SD1",
            "system": "ExFAT",
            "access": "Read, Write",
            "stats": {
              "sizeTotal": 31905546240,
              "sizeFree": 31898959872,
              "blockSize": 32768
            }
          }
        ],
        "network": {
          "externalIp": "98.134.53.219",
          "interfaces": [
            {
              "name": "eth0",
              "type": "Ethernet",
              "proto": "Static",
              "mac": "D0:6A:85:DA:FE:71",
              "ip": [
                "192.168.0.1/24",
                "EF88:7::2FAB:7657/64",
                "FE80::C60C:27BF:74E0:2E0F/128"
              ],
              "gateway": "192.168.0.1",
              "metric": 100
            },
            {
              "name": "eth0.25",
              "type": "Virtual",
              "proto": "DHCPv4",
              "mac": "D0:6A:85:DA:FE:71",
              "ip": [
                "176.216.148.166/16",
                "FE80::1623:693:8588:65BB/128"
              ],
              "gateway": "176.216.0.1",
              "metric": 2
            },
            {
              "name": "wlan0",
              "type": "WiFi",
              "proto": "NDP, DHCPv6",
              "mac": "33:5B:FE:4A:E1:BB",
              "ip": [
                "10.10.0.2/16"
              ],
              "gateway": "10.10.0.1",
              "metric": 110
            },
            {
              "name": "ppp0",
              "type": "Cellular",
              "proto": "Static",
              "mac": "FE:98:1A:AA:B4:72",
              "ip": [
                "192.168.255.255/31"
              ],
              "gateway": "192.168.255.254",
              "metric": 120,
              "modem": {
                "imei": "35778404001349",
                "manufacturer": "Vodafone",
                "model": "IK41US_USBC4G_V2_NA",
                "revision": "IK41_00_02.00_09"
              },
              "sims": [
                {
                  "status": "OK",
                  "iccid": "8910412345678907",
                  "connection": {
                    "network": "Vodafone Libertel",
                    "signal": -53
                  }
                }
              ]
            },
            {
              "name": "usb0",
              "type": "Ethernet",
              "proto": "Static",
              "mac": "5A:64:A1:72:EE:12",
              "ip": [
                "132.80.245.191/24"
              ],
              "gateway": null,
              "metric": null
            },
            {
              "name": "eth0.110",
              "type": "Virtual",
              "proto": "Static",
              "mac": "D0:6A:85:DA:FE:71",
              "ip": [
                "16.194.230.251/28",
                "FE80::8C6F:34A9:C88:31D5/128"
              ],
              "gateway": "16.194.230.241",
              "metric": 3
            }
          ]
        },
        "uptime": "08:20:46",
        "currentSettingsTimestamp": "2021-05-04T10:45:06Z",
        "currentScheduleTimestamp": "2021-05-04T10:45:06Z",
        "health": "Error",
        "lastModifiedDate": "2022-02-15T23:53:50.16Z"
      },
      "subscription": {
        "id": 123456,
        "device": {
          "id": 12345,
          "serial": "46C89C101829"
        },
        "type": "Commercial",
        "activityPeriod": "365.00:00:00",
        "status": "Active",
        "creationDate": "2020-08-17T20:49:49.09Z",
        "lastModifiedDate": "2020-08-17T20:49:49.09Z",
        "activationDate": "2020-08-17T20:49:49.09Z",
        "suspensionDate": null,
        "expirationDate": null
      },
      "taggedGroups": [],
      "tags": {
        "string::[Content].<Anon>": "image",
        "number::[Content].<BillingRate>": "30"
      },
      "permissions": []
    }
  ],
  "totalItemCount": 3,
  "matchingItemCount": 2,
  "pageSize": 1,
  "nextMarker": "LDM3MjA2",
  "prevMarker": "LDM32b56",
  "isTruncated": false,
  "sortExpression": "[LastModifiedDate] ASC",
  "filterExpression": "[Model] IS 'HD1024'"
}
```
:::

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## DELETE /

Removes players, specified by a filter, from a network. This allows multiple players to be deleted at once.

**Required Scope Token**

bsn.api.main.devices.delete

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Query String Parameter**

- `filter` <font color="#704ae0">string</font>  <font color="#01a0af">required: </font>An [expression](docId:3L0afyD3xoOE-yTvfk2vs) for filtering search results.

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `filter` is set to `[Model] IS 'HD1024'`

```text
DELETE /2022/06/REST/Devices/?filter=%5BModel%5D%20IS%20%27HD1024%27 HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns the number of affected players as an integer value.

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /Regions/\{\*locationPath}/ 

Returns a region which contains all the players located in the specified path.

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `locationPath` <font color="#704ae0">string: </font>The parts of the returned player location path (country, province, city, etc.) that are common to all players. 

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Query String Parameter**

- `filter` <font color="#704ae0">string</font> <font color="#01a0af">optional: </font>An [expression](docId:3L0afyD3xoOE-yTvfk2vs) for filtering search results

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `filter` is set to `[Model] IS 'HD1024'`
- `locationPath` is set to `/US/`

```text
GET /2022/06/REST/Devices/Regions/US/?filter=%5BModel%5D%20IS%20%27HD1024%27 HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns the [Player Region Entity](docId\:a9mjHdAU9WTp79Ngksoh2)&#x20;

**Example**

```json
[
  {
    "country": "US",
    "countryLongName": "United States",
    "adminAreaLevel1": "MO",
    "adminAreaLevel1LongName": "Missouri",
    "adminAreaLevel2": "Callaway County",
    "adminAreaLevel2LongName": "Callaway County",
    "locality": "Fulton",
    "localityLongName": "Fulton",
    "minGPSLatitude": 38.8513,
    "maxGPSLatitude": 38.8513,
    "minGPSLongitude": -91.9604,
    "maxGPSLongitude": -91.9604,
    "devicesCount": 1,
    "devicesHealthStatus": [
      "Normal"
    ],
    "locationPath": "/US/MO/Callaway County/Fulton/"
  }
]
```

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /Count/ 

Retrieves the number of players on the network matching the specified filter criteria. If no filter is included, this call returns the total number of players on the network. 

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Query String Parameter**

- `filter` <font color="#704ae0">string</font> <font color="#01a0af">optional: </font>An [expression](docId:3L0afyD3xoOE-yTvfk2vs) for filtering search results.

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `filter` is set to `[Model] IS 'HD1024'`

```text
GET /2022/06/REST/Devices/Count/?filter=%5BModel%5D%20IS%20%27HD1024%27 HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">200</font>: The player count is returned as an integer value.

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{id}/ 

Return the information for a specified player

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `id` <font color="#704ae0">int: </font>A unique identifier for the player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `id` is set to `12345`
- The optional `If-Modified-Since` header value equals the `Last-Modified` header value retrieved from the previous `GET /id` or `GET /serial` response

```text
GET /2022/06/REST/Devices/12345/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
If-Modified-Since: Wed, 13 Mar 2024 15:51:01 GMT
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response with Body**

<font color="#089a4d">200</font>: Returns the [Player Entity](docId:9PqPrRJAVwfZbka1GYBEA)

:::ExpandableHeading
Example

```json
{
  "id": 12345,
  "serial": "46C89C101839",
  "model": "HD1024",
  "family": "Pagani",
  "registrationDate": "2020-07-09T19:15:22.773Z",
  "lastModifiedDate": "2024-03-13T16:29:11.983Z",
  "settings": {
    "name": "HDPlayer",
    "description": "Primary Display",
    "concatNameAndSerial": false,
    "setupType": "BSN",
    "lastModifiedDate": "2022-01-05T18:12:22.643Z",
    "group": {
      "id": 123,
      "name": "TestGroup",
      "link": null
    },
    "brightWall": null,
    "timezone": "PST",
    "screen": {
      "idleColor": "FF702896",
      "splashUrl": null
    },
    "synchronization": {
      "status": {
        "period": "00:05:00"
      },
      "settings": {
        "period": "00:00:00"
      },
      "schedule": {
        "period": "06:00:00"
      },
      "content": {
        "start": null,
        "end": null
      }
    },
    "network": {
      "hostname": "BrightSign-46C89C101829",
      "proxyServer": null,
      "proxyBypass": [],
      "timeServers": [
        "http://time.brightsignnetwork.com/"
      ],
      "interfaces": [
        {
          "name": "eth0",
          "type": "Ethernet",
          "enabled": true,
          "proto": "Static",
          "ip": [
            "192.168.0.2/24",
            "EF88:7::2FAB:7657/64"
          ],
          "gateway": "192.168.0.1",
          "dns": [
            "192.168.0.125",
            "74.38.99.135"
          ],
          "rateLimitDuringInitialDownloads": null,
          "rateLimitInsideContentDownloadWindow": null,
          "rateLimitOutsideContentDownloadWindow": null,
          "contentDownloadEnabled": true,
          "textFeedsDownloadEnabled": true,
          "mediaFeedsDownloadEnabled": true,
          "healthReportingEnabled": true,
          "logsUploadEnabled": true
        },
        {
          "name": "eth0.25",
          "type": "Virtual",
          "enabled": false,
          "parent": "eth0",
          "vlanId": 25,
          "proto": "DHCPv4",
          "ip": null,
          "gateway": null,
          "dns": null,
          "rateLimitDuringInitialDownloads": null,
          "rateLimitInsideContentDownloadWindow": null,
          "rateLimitOutsideContentDownloadWindow": null,
          "contentDownloadEnabled": false,
          "textFeedsDownloadEnabled": false,
          "mediaFeedsDownloadEnabled": false,
          "healthReportingEnabled": true,
          "logsUploadEnabled": true
        },
        {
          "name": "wlan0",
          "type": "WiFi",
          "enabled": true,
          "ssid": "hall_devices",
          "security": {
            "authentication": {
              "mode": "Shared",
              "passphrase": "A8201E996438DE85103486A44CA96A999B0A6D"
            },
            "encryption": {
              "mode": "TKIP"
            }
          },
          "proto": "NDP, DHCPv6",
          "ip": null,
          "gateway": null,
          "dns": null,
          "rateLimitDuringInitialDownloads": 10240000,
          "rateLimitInsideContentDownloadWindow": 10240000,
          "rateLimitOutsideContentDownloadWindow": 256000,
          "contentDownloadEnabled": true,
          "textFeedsDownloadEnabled": true,
          "mediaFeedsDownloadEnabled": false,
          "healthReportingEnabled": true,
          "logsUploadEnabled": false
        },
        {
          "name": "ppp0",
          "type": "Cellular",
          "enabled": true,
          "modems": [
            {
              "model": "BrightSign IK41",
              "usbDeviceIds": [
                "1bbb:00b6"
              ]
            }
          ],
          "sims": [
            {
              "mcc": "901",
              "mnc": "28",
              "connection": {
                "type": "Default"
              }
            },
            {
              "mcc": "204",
              "mnc": "04",
              "connection": {
                "type": "Default"
              }
            }
          ],
          "rateLimitDuringInitialDownloads": null,
          "rateLimitInsideContentDownloadWindow": null,
          "rateLimitOutsideContentDownloadWindow": null,
          "contentDownloadEnabled": true,
          "textFeedsDownloadEnabled": true,
          "mediaFeedsDownloadEnabled": true,
          "healthReportingEnabled": true,
          "logsUploadEnabled": true
        },
        {
          "name": "usb0",
          "type": "Ethernet",
          "enabled": true,
          "proto": "Static",
          "ip": [
            "132.80.245.191/24"
          ],
          "gateway": null,
          "dns": [
            "132.80.245.142"
          ],
          "rateLimitDuringInitialDownloads": null,
          "rateLimitInsideContentDownloadWindow": null,
          "rateLimitOutsideContentDownloadWindow": null,
          "contentDownloadEnabled": false,
          "textFeedsDownloadEnabled": false,
          "mediaFeedsDownloadEnabled": false,
          "healthReportingEnabled": false,
          "logsUploadEnabled": false
        },
        {
          "name": "eth0.110",
          "type": "Virtual",
          "enabled": true,
          "parent": "eth0",
          "vlanId": 110,
          "proto": "Static",
          "ip": [
            "16.194.230.251/28"
          ],
          "gateway": "16.194.230.241",
          "dns": [
            "192.168.0.125",
            "74.38.99.135"
          ],
          "rateLimitDuringInitialDownloads": null,
          "rateLimitInsideContentDownloadWindow": null,
          "rateLimitOutsideContentDownloadWindow": null,
          "contentDownloadEnabled": true,
          "textFeedsDownloadEnabled": true,
          "mediaFeedsDownloadEnabled": true,
          "healthReportingEnabled": true,
          "logsUploadEnabled": true
        }
      ]
    },
    "beacons": [],
    "location": {
         "placeId": null,
         "gpsLatitude": 37.4152,
         "gpsLongitude": -122.1224,
         "country": "US",
         "countryLongName": "United States",
         "adminAreaLevel1": "CA",
         "adminAreaLevel1LongName": "California",
         "adminAreaLevel2": "Santa Clara County",
         "adminAreaLevel2LongName": "Santa Clara County",
         "locality": "Palo Alto",
         "localityLongName": "Palo Alto",
         "path": "/US/CA/Santa Clara County/Palo Alto/",
         "pathLongName": "/United States/California/Santa Clara County/Palo Alto/"
        },
    "screenshots": {
         "interval": "00:15:00",
         "countLimit": 5,
         "quality": 50,
         "orientation": "Landscape"
      },
    "logging": {
      "enableDiagnosticLog": false,
      "enableEventLog": false,
      "enablePlaybackLog": false,
      "enableStateLog": false,
      "enableVariableLog": false,
      "uploadAtBoot": false,
      "uploadTime": null
    },
    "lws": {
      "username": "",
      "password": "",
      "enableUpdateNotifications": true
    },
    "ldws": {
      "password": "RLSJZ35Sm9b1lB0npVFW4kPYegscBlMF3NFG6wtOaSTXIoC+iR5NGrhJa77ZaWTgpiCzPdDdnwMlQSb4QLqe6nEFx6q/927scO6LlVTtRBVch+RlgzlJ2SXYqAH6TUx66JRFuvCxyHzL0iUNKR/R4E1hdTQpxH3yXIPJ5OBOTlaw8OW6DZNixDGMuvhgmWAW9/TgksUYTlwb1SKqGzQOrDYmmg+A71YMGV6NcKbuN3P0DjQsMrVxlFe9+awQ73LSxqKF5Q52FjUhgSKsYcTtnoJvY/n9HWcREyxOPKF7vsEIfKOeG/qoFBvgZZKOoqaTyD82iBKbOQu9WllBGX+qaaTTQHR1SrZoyS2PDmBlddLhngE4BHiDxmOPhm69bsmiakUcUqgjvgi8sRL/9kUxLXuayeQ6VYzUnHdX7K3nYqbhgJCxVbSURe5wIS/vQ97zi4wt0NpF55FmoAQlZA1JcSk/85w8S4hfpCYlDnqQMI8jXqvNZ5apc7nKsg6NSibGhh4h1cpA7DG6d6MzjBldVKhutni3Bj991cP45RIaGlmWipbC9eKwODrsDPYMK2CDN/JEygmfiUdJJW4Cvgi4s6Z3oyqddiEV+plZtGD69NAau4OMCoHcR1STJdsVOrq++tF+R0/IkC5wDhAUBszXvlSdcKja7Gv7v4kOAZC0CmtA="
    }
  },
  "status": {
    "group": {
      "id": 123,
      "name": "TestGroup",
      "link": null
    },
    "brightWall": null,
    "presentation": {
      "id": 12345,
      "name": "Test2",
      "type": "Presentation",
      "link": null
    },
    "timezone": "PST",
    "synchronization": {
      "settings": {
        "enabled": false
      },
      "schedule": {
        "enabled": false
      },
      "content": {
        "enabled": false
      }
    },
    "script": {
      "type": "Autorun",
      "version": "10.0.100",
      "plugins": null
    },
    "firmware": {
      "version": "8.5.35"
    },
    "storage": [
      {
        "interface": "SD1",
        "system": "ExFAT",
        "access": "Read, Write",
        "stats": {
          "sizeTotal": 31905546240,
          "sizeFree": 31898959872,
          "blockSize": 32768
        }
      }
    ],
    "network": {
      "externalIp": "98.134.53.219",
      "interfaces": [
        {
          "name": "eth0",
          "type": "Ethernet",
          "proto": "Static",
          "mac": "D0:6A:85:DA:FE:71",
          "ip": [
            "192.168.0.1/24",
            "EF88:7::2FAB:7657/64",
            "FE80::C60C:27BF:74E0:2E0F/128"
          ],
          "gateway": "192.168.0.1",
          "metric": 100
        },
        {
          "name": "eth0.25",
          "type": "Virtual",
          "proto": "DHCPv4",
          "mac": "D0:6A:85:DA:FE:71",
          "ip": [
            "176.216.148.166/16",
            "FE80::1623:693:8588:65BB/128"
          ],
          "gateway": "176.216.0.1",
          "metric": 2
        },
        {
          "name": "wlan0",
          "type": "WiFi",
          "proto": "NDP, DHCPv6",
          "mac": "33:5B:FE:4A:E1:BB",
          "ip": [
            "10.10.0.2/16"
          ],
          "gateway": "10.10.0.1",
          "metric": 110
        },
        {
          "name": "ppp0",
          "type": "Cellular",
          "proto": "Static",
          "mac": "FE:98:1A:AA:B4:72",
          "ip": [
            "192.168.255.255/31"
          ],
          "gateway": "192.168.255.254",
          "metric": 120,
          "modem": {
            "imei": "35778404001349",
            "manufacturer": "Vodafone",
            "model": "IK41US_USBC4G_V2_NA",
            "revision": "IK41_00_02.00_09"
          },
          "sims": [
            {
              "status": "OK",
              "iccid": "8910412345678907",
              "connection": {
                "network": "Vodafone Libertel",
                "signal": -53
              }
            }
          ]
        },
        {
          "name": "usb0",
          "type": "Ethernet",
          "proto": "Static",
          "mac": "5A:64:A1:72:EE:12",
          "ip": [
            "132.80.245.191/24"
          ],
          "gateway": null,
          "metric": null
        },
        {
          "name": "eth0.110",
          "type": "Virtual",
          "proto": "Static",
          "mac": "D0:6A:85:DA:FE:71",
          "ip": [
            "16.194.230.251/28",
            "FE80::8C6F:34A9:C88:31D5/128"
          ],
          "gateway": "16.194.230.241",
          "metric": 3
        }
      ]
    },
    "uptime": "08:20:46",
    "currentSettingsTimestamp": "2021-05-04T10:45:06Z",
    "currentScheduleTimestamp": "2021-05-04T10:45:06Z",
    "health": "Error",
    "lastModifiedDate": "2022-02-15T23:53:50.16Z"
  },
  "subscription": {
    "id": 123456,
    "device": {
      "id": 12345,
      "serial": "46C89C101839"
    },
    "type": "Commercial",
    "activityPeriod": "365.00:00:00",
    "status": "Active",
    "creationDate": "2020-08-17T20:49:49.09Z",
    "lastModifiedDate": "2020-08-17T20:49:49.09Z",
    "activationDate": "2020-08-17T20:49:49.09Z",
    "suspensionDate": null,
    "expirationDate": null
  },
  "taggedGroups": [],
  "tags": {
    "string::[Content].<Anon>": "image",
    "number::[Content].<BillingRate>": "30"
  },
  "permissions": []
}
```
:::

**Success Response** 

<font color="#089a4d">304</font>: The resource was not modified since the time specified in the “If-Modified-Since” header

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist) 

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## PUT /\{id}/ 

Update the specified player. Applies only to the player settings.

**Required Scope Token**

bsn.api.main.devices.update

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `id` <font color="#704ae0">int: </font>A unique identifier for the player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Body**

- The [Player Entity](docId:9PqPrRJAVwfZbka1GYBEA)

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `id` is set to `12345`
- The optional `If-Unmodified-Since` header value equals the `Last-Modified` header value retrieved from the `GET /id` or `GET /serial` response.

```text
PUT /2022/06/REST/Devices/12345/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
If-Unmodified-Since: Wed, 13 Mar 2024 15:51:01 GMT
Content-Type: application/json
Content-Length: 5947
```

:::ExpandableHeading
Example

```json
{
   "id": 0,
   "serial": "46D89C107131",
   "model": "HD1024",
   "family": "Pagani",
   "registrationDate": "0001-01-01T00:00:00",
   "lastModifiedDate": "0001-01-01T00:00:00",
   "settings":    {
      "name": "OutsidePlayer",
      "description": "Outside of Building A",
      "concatNameAndSerial": false,
      "setupType": "BSN",
      "lastModifiedDate": "2022-01-05T18:12:22.643Z",
      "group":       {
         "id": 123,
         "name": "TestGroup",
         "link": null
      },
      "brightWall": null,
      "timezone": "PST",
      "screen":       {
         "idleColor": "FF702896",
         "splashUrl": null
      },
      "synchronization":       {
         "status": {"period": "00:05:00"},
         "settings": {"period": "00:00:00"},
         "schedule": {"period": "06:00:00"},
         "content":          {
            "start": null,
            "end": null
         }
      },
      "network":       {
         "hostname": "BrightSign-46D89C107131",
         "proxyServer": null,
         "proxyBypass": [],
         "timeServers": ["http://time.brightsignnetwork.com/"],
         "interfaces":          [
                        {
               "enabled": true,
               "proto": "DHCP",
               "ip": null,
               "gateway": null,
               "dns": null,
               "rateLimitDuringInitialDownloads": 0,
               "rateLimitInsideContentDownloadWindow": 0,
               "rateLimitOutsideContentDownloadWindow": null,
               "contentDownloadEnabled": true,
               "textFeedsDownloadEnabled": true,
               "mediaFeedsDownloadEnabled": true,
               "healthReportingEnabled": true,
               "logsUploadEnabled": true,
               "name": "eth0",
               "type": "Ethernet"
            },
                        {
               "enabled": false,
               "ssid": "",
               "security":                {
                  "authentication":                   {
                     "mode": "Shared",
                     "passphrase": ""
                  },
                  "encryption": {"mode": "TKIP, CCMP"}
               },
               "proto": "DHCP",
               "ip": null,
               "gateway": null,
               "dns": null,
               "rateLimitDuringInitialDownloads": 0,
               "rateLimitInsideContentDownloadWindow": 0,
               "rateLimitOutsideContentDownloadWindow": 0,
               "contentDownloadEnabled": false,
               "textFeedsDownloadEnabled": false,
               "mediaFeedsDownloadEnabled": false,
               "healthReportingEnabled": false,
               "logsUploadEnabled": false,
               "name": "wlan0",
               "type": "WiFi"
            }
         ]
      },
      "beacons": [],
      "location": null,
      "screenshots": null,
      "logging":       {
         "enableDiagnosticLog": false,
         "enableEventLog": false,
         "enablePlaybackLog": false,
         "enableStateLog": false,
         "enableVariableLog": false,
         "uploadAtBoot": false,
         "uploadTime": null
      },
      "lws":       {
         "username": "",
         "password": "",
         "enableUpdateNotifications": true
      },
      "ldws": {"password": "RLSJPQSm9z15lB8nwVFWjkPYegscBlMF3NFG6wt3aSTXIoC+iR5NGrhJa77ZaWTgpiCzPdDdnwMlQSb4QLqe6nEFx6q/927scO6LlVTtRBVch+RlgzlJ2SXYqAH6TUx66JRFuvCxyHzL0iUNKR/R4E1hdTQpxH3yXIPJ5OBOTlaw8OW6DZNixDGMuvhgmWAW9/TgksUYTlwb1SKqGzQOrDYmmg+A71YMGV6NcKbuN3P0DjQsMrVxlFe9+awQ73LSxqKF5Q52FjUhgSKsYcTtnoJvY/n9HWcREyxOPKF7vsEIfKOeG/qoFBvgZZKOoqaTyD82iBKbOQu9WllBGX+qaaTTQHR1SrZoyS2PDmBlddLhngE4BHiDxmOPhm69bsmiakUcUqgjvgi8sRL/9kUxLXuayeQ6VYzUnHdX7K3nYqbhgJCxVbSURe5wIS/vQ97zi4wt0NpF55FmoAQlZA1JcSk/85w8S4hfpCYlDnqQMI8jXqvNZ5apc7nKsg6NSibGhh4h1cpA7DG6d6MzjBldVKhutni3Bj991cP45RIaGlmWipbC9eKwODrsDPYMK2CDN/JEygmfiUdJJW4Cvgi4s6Z3oyqddiEV+plZtGD69NAau4OMCoHcR1STJdsVOrq++tF+R0/IkC5wDhAUBszXvlSdcKja7Gv7v4kOAZC0CmtA="}
   },
   "status": null,
   "subscription": null,
   "taggedGroups": [],
   "tags": {},
   "permissions": []
}
```
:::

**Success Response**

<font color="#089a4d">204</font>: The specified player was successfully updated

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">412</font>: Precondition failed (the resource changed since the time specified in the “If-Unmodified-Since” header value)

<font color="#9a0808">415</font>: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## PATCH /\{id}/ 

Replaces certain parameters on the specified player. Applies only to the player settings. See [rfc6902](https://datatracker.ietf.org/doc/html/rfc6902).

**Required Scope Token**

bsn.api.main.devices.update

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `id` <font color="#704ae0">int: </font>A unique identifier for the player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Body**

These properties are entries in an array. Every entry must have all three of these properties:

- `op` <font color="#704ae0">string</font>: The type of operation - in this case it is always "replace"
- `path` <font color="#704ae0">string</font>: A Uri path that references the location within the target document where the update will be performed
- `value` <font color="#704ae0">object</font>: The replacement value(s) for the parameters that must be updated

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `id` is `12345`
- The optional `If-Unmodified-Since` header value equals the `Last-Modified` header value retrieved from the `GET /id` or `GET /serial` response.

```text
PATCH /2022/06/REST/Devices/12345/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
If-Unmodified-Since: Wed, 13 Mar 2024 15:51:01 GMT
Content-Type: application/json-patch+json
Content-Length: 94
```

This is the example request body:

```json
[
  {
    "op": "replace",
    "path": "/settings/description/",
    "value": "Main Screen Player"
  }
]
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">204</font>: The parameters have been successfully replaced.

**Failure Response**

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">412</font>: Precondition failed (the resource changed since the time specified in the “If-Unmodified-Since” header value)

<font color="#9a0808">415</font>: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## DELETE /\{id}/ 

Delete the specified player

**Required Scope Token**

bsn.api.main.devices.delete

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `id` <font color="#704ae0">int: </font>A unique identifier for the player to delete

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `id` is set to `12345`
- The optional `If-Unmodified-Since` header value equals the `Last-Modified` header value retrieved from the `GET /id` or `GET /serial` response.

```text
DELETE /2022/06/REST/Devices/12345/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}}
If-Unmodified-Since: Wed, 13 Mar 2024 15:51:01 GMT
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">204</font>: The player was successfully deleted

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">412</font>: Precondition failed (the resource changed since the time specified in the “If-Unmodified-Since” header value)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{serial}/ 

Return the specified player information

**Required Scope**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The player serial number

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_ 

**Request Example**

The example request parameters and headers are set as follows:

- `serial` is set to `46D89C101139`
- The optional `If-Modified-Since` header value equals the `Last-Modified` header value retrieved from the previous `GET /id` or `GET /serial` response

```text
GET /2022/06/REST/Devices/46D89C101139/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
If-Modified-Since: Wed, 13 Mar 2024 15:51:01 GMT
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response with Body**

<font color="#089a4d">200</font>: Returns the [Player Entity](docId:9PqPrRJAVwfZbka1GYBEA)

:::ExpandableHeading
Example

```json
{
  "id": 12345,
  "serial": "46D89C101139",
  "model": "HD1024",
  "family": "Pagani",
  "registrationDate": "2020-07-09T19:15:22.773Z",
  "lastModifiedDate": "2024-03-13T16:29:11.983Z",
  "settings": {
    "name": "HDPlayer",
    "description": "Primary Display",
    "concatNameAndSerial": false,
    "setupType": "BSN",
    "lastModifiedDate": "2022-01-05T18:12:22.643Z",
    "group": {
      "id": 123,
      "name": "TestGroup",
      "link": null
    },
    "brightWall": null,
    "timezone": "PST",
    "screen": {
      "idleColor": "FF702896",
      "splashUrl": null
    },
    "synchronization": {
      "status": {
        "period": "00:05:00"
      },
      "settings": {
        "period": "00:00:00"
      },
      "schedule": {
        "period": "06:00:00"
      },
      "content": {
        "start": null,
        "end": null
      }
    },
    "network": {
      "hostname": "BrightSign-46D89C101139",
      "proxyServer": null,
      "proxyBypass": [],
      "timeServers": [
        "http://time.brightsignnetwork.com/"
      ],
      "interfaces": [
        {
          "name": "eth0",
          "type": "Ethernet",
          "enabled": true,
          "proto": "Static",
          "ip": [
            "192.168.0.2/24",
            "EF88:7::2FAB:7657/64"
          ],
          "gateway": "192.168.0.1",
          "dns": [
            "192.168.0.125",
            "74.38.99.135"
          ],
          "rateLimitDuringInitialDownloads": null,
          "rateLimitInsideContentDownloadWindow": null,
          "rateLimitOutsideContentDownloadWindow": null,
          "contentDownloadEnabled": true,
          "textFeedsDownloadEnabled": true,
          "mediaFeedsDownloadEnabled": true,
          "healthReportingEnabled": true,
          "logsUploadEnabled": true
        },
        {
          "name": "eth0.25",
          "type": "Virtual",
          "enabled": false,
          "parent": "eth0",
          "vlanId": 25,
          "proto": "DHCPv4",
          "ip": null,
          "gateway": null,
          "dns": null,
          "rateLimitDuringInitialDownloads": null,
          "rateLimitInsideContentDownloadWindow": null,
          "rateLimitOutsideContentDownloadWindow": null,
          "contentDownloadEnabled": false,
          "textFeedsDownloadEnabled": false,
          "mediaFeedsDownloadEnabled": false,
          "healthReportingEnabled": true,
          "logsUploadEnabled": true
        },
        {
          "name": "wlan0",
          "type": "WiFi",
          "enabled": true,
          "ssid": "hall_devices",
          "security": {
            "authentication": {
              "mode": "Shared",
              "passphrase": "A8201E996438DE85103486A44CA96A999B0A6D"
            },
            "encryption": {
              "mode": "TKIP"
            }
          },
          "proto": "NDP, DHCPv6",
          "ip": null,
          "gateway": null,
          "dns": null,
          "rateLimitDuringInitialDownloads": 10240000,
          "rateLimitInsideContentDownloadWindow": 10240000,
          "rateLimitOutsideContentDownloadWindow": 256000,
          "contentDownloadEnabled": true,
          "textFeedsDownloadEnabled": true,
          "mediaFeedsDownloadEnabled": false,
          "healthReportingEnabled": true,
          "logsUploadEnabled": false
        },
        {
          "name": "ppp0",
          "type": "Cellular",
          "enabled": true,
          "modems": [
            {
              "model": "BrightSign IK41",
              "usbDeviceIds": [
                "1bbb:00b6"
              ]
            }
          ],
          "sims": [
            {
              "mcc": "901",
              "mnc": "28",
              "connection": {
                "type": "Default"
              }
            },
            {
              "mcc": "204",
              "mnc": "04",
              "connection": {
                "type": "Default"
              }
            }
          ],
          "rateLimitDuringInitialDownloads": null,
          "rateLimitInsideContentDownloadWindow": null,
          "rateLimitOutsideContentDownloadWindow": null,
          "contentDownloadEnabled": true,
          "textFeedsDownloadEnabled": true,
          "mediaFeedsDownloadEnabled": true,
          "healthReportingEnabled": true,
          "logsUploadEnabled": true
        },
        {
          "name": "usb0",
          "type": "Ethernet",
          "enabled": true,
          "proto": "Static",
          "ip": [
            "132.80.245.191/24"
          ],
          "gateway": null,
          "dns": [
            "132.80.245.142"
          ],
          "rateLimitDuringInitialDownloads": null,
          "rateLimitInsideContentDownloadWindow": null,
          "rateLimitOutsideContentDownloadWindow": null,
          "contentDownloadEnabled": false,
          "textFeedsDownloadEnabled": false,
          "mediaFeedsDownloadEnabled": false,
          "healthReportingEnabled": false,
          "logsUploadEnabled": false
        },
        {
          "name": "eth0.110",
          "type": "Virtual",
          "enabled": true,
          "parent": "eth0",
          "vlanId": 110,
          "proto": "Static",
          "ip": [
            "16.194.230.251/28"
          ],
          "gateway": "16.194.230.241",
          "dns": [
            "192.168.0.125",
            "74.38.99.135"
          ],
          "rateLimitDuringInitialDownloads": null,
          "rateLimitInsideContentDownloadWindow": null,
          "rateLimitOutsideContentDownloadWindow": null,
          "contentDownloadEnabled": true,
          "textFeedsDownloadEnabled": true,
          "mediaFeedsDownloadEnabled": true,
          "healthReportingEnabled": true,
          "logsUploadEnabled": true
        }
      ]
    },
    "beacons": [],
    "location": {
         "placeId": null,
         "gpsLatitude": 37.4152,
         "gpsLongitude": -122.1224,
         "country": "US",
         "countryLongName": "United States",
         "adminAreaLevel1": "CA",
         "adminAreaLevel1LongName": "California",
         "adminAreaLevel2": "Santa Clara County",
         "adminAreaLevel2LongName": "Santa Clara County",
         "locality": "Palo Alto",
         "localityLongName": "Palo Alto",
         "path": "/US/CA/Santa Clara County/Palo Alto/",
         "pathLongName": "/United States/California/Santa Clara County/Palo Alto/"
        },
    "screenshots": {
         "interval": "00:15:00",
         "countLimit": 5,
         "quality": 50,
         "orientation": "Landscape"
      },
    "logging": {
      "enableDiagnosticLog": false,
      "enableEventLog": false,
      "enablePlaybackLog": false,
      "enableStateLog": false,
      "enableVariableLog": false,
      "uploadAtBoot": false,
      "uploadTime": null
    },
    "lws": {
      "username": "",
      "password": "",
      "enableUpdateNotifications": true
    },
    "ldws": {
      "password": "RLSJZ35Sm9b1lB0npVFW4kPYegscBlMF3NFG6wtOaSTXIoC+iR5NGrhJa77ZaWTgpiCzPdDdnwMlQSb4QLqe6nEFx6q/927scO6LlVTtRBVch+RlgzlJ2SXYqAH6TUx66JRFuvCxyHzL0iUNKR/R4E1hdTQpxH3yXIPJ5OBOTlaw8OW6DZNixDGMuvhgmWAW9/TgksUYTlwb1SKqGzQOrDYmmg+A71YMGV6NcKbuN3P0DjQsMrVxlFe9+awQ73LSxqKF5Q52FjUhgSKsYcTtnoJvY/n9HWcREyxOPKF7vsEIfKOeG/qoFBvgZZKOoqaTyD82iBKbOQu9WllBGX+qaaTTQHR1SrZoyS2PDmBlddLhngE4BHiDxmOPhm69bsmiakUcUqgjvgi8sRL/9kUxLXuayeQ6VYzUnHdX7K3nYqbhgJCxVbSURe5wIS/vQ97zi4wt0NpF55FmoAQlZA1JcSk/85w8S4hfpCYlDnqQMI8jXqvNZ5apc7nKsg6NSibGhh4h1cpA7DG6d6MzjBldVKhutni3Bj991cP45RIaGlmWipbC9eKwODrsDPYMK2CDN/JEygmfiUdJJW4Cvgi4s6Z3oyqddiEV+plZtGD69NAau4OMCoHcR1STJdsVOrq++tF+R0/IkC5wDhAUBszXvlSdcKja7Gv7v4kOAZC0CmtA="
    }
  },
  "status": {
    "group": {
      "id": 123,
      "name": "TestGroup",
      "link": null
    },
    "brightWall": null,
    "presentation": {
      "id": 12345,
      "name": "Test2",
      "type": "Presentation",
      "link": null
    },
    "timezone": "PST",
    "synchronization": {
      "settings": {
        "enabled": false
      },
      "schedule": {
        "enabled": false
      },
      "content": {
        "enabled": false
      }
    },
    "script": {
      "type": "Autorun",
      "version": "10.0.100",
      "plugins": null
    },
    "firmware": {
      "version": "8.5.35"
    },
    "storage": [
      {
        "interface": "SD1",
        "system": "ExFAT",
        "access": "Read, Write",
        "stats": {
          "sizeTotal": 31905546240,
          "sizeFree": 31898959872,
          "blockSize": 32768
        }
      }
    ],
    "network": {
      "externalIp": "98.134.53.219",
      "interfaces": [
        {
          "name": "eth0",
          "type": "Ethernet",
          "proto": "Static",
          "mac": "D0:6A:85:DA:FE:71",
          "ip": [
            "192.168.0.1/24",
            "EF88:7::2FAB:7657/64",
            "FE80::C60C:27BF:74E0:2E0F/128"
          ],
          "gateway": "192.168.0.1",
          "metric": 100
        },
        {
          "name": "eth0.25",
          "type": "Virtual",
          "proto": "DHCPv4",
          "mac": "D0:6A:85:DA:FE:71",
          "ip": [
            "176.216.148.166/16",
            "FE80::1623:693:8588:65BB/128"
          ],
          "gateway": "176.216.0.1",
          "metric": 2
        },
        {
          "name": "wlan0",
          "type": "WiFi",
          "proto": "NDP, DHCPv6",
          "mac": "33:5B:FE:4A:E1:BB",
          "ip": [
            "10.10.0.2/16"
          ],
          "gateway": "10.10.0.1",
          "metric": 110
        },
        {
          "name": "ppp0",
          "type": "Cellular",
          "proto": "Static",
          "mac": "FE:98:1A:AA:B4:72",
          "ip": [
            "192.168.255.255/31"
          ],
          "gateway": "192.168.255.254",
          "metric": 120,
          "modem": {
            "imei": "35778404001349",
            "manufacturer": "Vodafone",
            "model": "IK41US_USBC4G_V2_NA",
            "revision": "IK41_00_02.00_09"
          },
          "sims": [
            {
              "status": "OK",
              "iccid": "8910412345678907",
              "connection": {
                "network": "Vodafone Libertel",
                "signal": -53
              }
            }
          ]
        },
        {
          "name": "usb0",
          "type": "Ethernet",
          "proto": "Static",
          "mac": "5A:64:A1:72:EE:12",
          "ip": [
            "132.80.245.191/24"
          ],
          "gateway": null,
          "metric": null
        },
        {
          "name": "eth0.110",
          "type": "Virtual",
          "proto": "Static",
          "mac": "D0:6A:85:DA:FE:71",
          "ip": [
            "16.194.230.251/28",
            "FE80::8C6F:34A9:C88:31D5/128"
          ],
          "gateway": "16.194.230.241",
          "metric": 3
        }
      ]
    },
    "uptime": "08:20:46",
    "currentSettingsTimestamp": "2021-05-04T10:45:06Z",
    "currentScheduleTimestamp": "2021-05-04T10:45:06Z",
    "health": "Error",
    "lastModifiedDate": "2022-02-15T23:53:50.16Z"
  },
  "subscription": {
    "id": 123456,
    "device": {
      "id": 12345,
      "serial": "46D89C101139"
    },
    "type": "Commercial",
    "activityPeriod": "365.00:00:00",
    "status": "Active",
    "creationDate": "2020-08-17T20:49:49.09Z",
    "lastModifiedDate": "2020-08-17T20:49:49.09Z",
    "activationDate": "2020-08-17T20:49:49.09Z",
    "suspensionDate": null,
    "expirationDate": null
  },
  "taggedGroups": [],
  "tags": {
    "string::[Content].<Anon>": "image",
    "number::[Content].<BillingRate>": "30"
  },
  "permissions": []
}
```
:::

**Success Response**

<font color="#089a4d">304</font>: The resource was not modified since the time specified in the “If-Modified-Since” header

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## PUT /\{serial}/ 

Update a specified player. Applies only to the player settings.

**Required Scope Token**

bsn.api.main.devices.update

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The player serial number 

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Body**

- The [Player Entity](docId:9PqPrRJAVwfZbka1GYBEA)

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `serial` is set to `46D89C107131`
- The optional `If-Unmodified-Since` header value equals the `Last-Modified` header value retrieved from the `GET /id` or `GET /serial` response.

```text
PUT /2022/06/REST/Devices/46D89C107131/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
If-Unmodified-Since: Wed, 13 Mar 2024 15:51:01 GMT
Content-Type: application/json
Content-Length: 5947
```

This is the example request body:

```json
{
   "id": 0,
   "serial": "46D89C107131",
   "model": "HD1024",
   "family": "Pagani",
   "registrationDate": "0001-01-01T00:00:00",
   "lastModifiedDate": "0001-01-01T00:00:00",
   "settings":    {
      "name": "OutsidePlayer",
      "description": "Outside of Building A",
      "concatNameAndSerial": false,
      "setupType": "BSN",
      "lastModifiedDate": "2022-01-05T18:12:22.643Z",
      "group":       {
         "id": 123,
         "name": "TestGroup",
         "link": null
      },
      "brightWall": null,
      "timezone": "PST",
      "screen":       {
         "idleColor": "FF702896",
         "splashUrl": null
      },
      "synchronization":       {
         "status": {"period": "00:05:00"},
         "settings": {"period": "00:00:00"},
         "schedule": {"period": "06:00:00"},
         "content":          {
            "start": null,
            "end": null
         }
      },
      "network":       {
         "hostname": "BrightSign-46D89C107131",
         "proxyServer": null,
         "proxyBypass": [],
         "timeServers": ["http://time.brightsignnetwork.com/"],
         "interfaces":          [
                        {
               "enabled": true,
               "proto": "DHCP",
               "ip": null,
               "gateway": null,
               "dns": null,
               "rateLimitDuringInitialDownloads": 0,
               "rateLimitInsideContentDownloadWindow": 0,
               "rateLimitOutsideContentDownloadWindow": null,
               "contentDownloadEnabled": true,
               "textFeedsDownloadEnabled": true,
               "mediaFeedsDownloadEnabled": true,
               "healthReportingEnabled": true,
               "logsUploadEnabled": true,
               "name": "eth0",
               "type": "Ethernet"
            },
                        {
               "enabled": false,
               "ssid": "",
               "security":                {
                  "authentication":                   {
                     "mode": "Shared",
                     "passphrase": ""
                  },
                  "encryption": {"mode": "TKIP, CCMP"}
               },
               "proto": "DHCP",
               "ip": null,
               "gateway": null,
               "dns": null,
               "rateLimitDuringInitialDownloads": 0,
               "rateLimitInsideContentDownloadWindow": 0,
               "rateLimitOutsideContentDownloadWindow": 0,
               "contentDownloadEnabled": false,
               "textFeedsDownloadEnabled": false,
               "mediaFeedsDownloadEnabled": false,
               "healthReportingEnabled": false,
               "logsUploadEnabled": false,
               "name": "wlan0",
               "type": "WiFi"
            }
         ]
      },
      "beacons": [],
      "location": null,
      "screenshots": null,
      "logging":       {
         "enableDiagnosticLog": false,
         "enableEventLog": false,
         "enablePlaybackLog": false,
         "enableStateLog": false,
         "enableVariableLog": false,
         "uploadAtBoot": false,
         "uploadTime": null
      },
      "lws":       {
         "username": "",
         "password": "",
         "enableUpdateNotifications": true
      },
      "ldws": {"password": "RLSJPQSm9z15lB8nwVFWjkPYegscBlMF3NFG6wt3aSTXIoC+iR5NGrhJa77ZaWTgpiCzPdDdnwMlQSb4QLqe6nEFx6q/927scO6LlVTtRBVch+RlgzlJ2SXYqAH6TUx66JRFuvCxyHzL0iUNKR/R4E1hdTQpxH3yXIPJ5OBOTlaw8OW6DZNixDGMuvhgmWAW9/TgksUYTlwb1SKqGzQOrDYmmg+A71YMGV6NcKbuN3P0DjQsMrVxlFe9+awQ73LSxqKF5Q52FjUhgSKsYcTtnoJvY/n9HWcREyxOPKF7vsEIfKOeG/qoFBvgZZKOoqaTyD82iBKbOQu9WllBGX+qaaTTQHR1SrZoyS2PDmBlddLhngE4BHiDxmOPhm69bsmiakUcUqgjvgi8sRL/9kUxLXuayeQ6VYzUnHdX7K3nYqbhgJCxVbSURe5wIS/vQ97zi4wt0NpF55FmoAQlZA1JcSk/85w8S4hfpCYlDnqQMI8jXqvNZ5apc7nKsg6NSibGhh4h1cpA7DG6d6MzjBldVKhutni3Bj991cP45RIaGlmWipbC9eKwODrsDPYMK2CDN/JEygmfiUdJJW4Cvgi4s6Z3oyqddiEV+plZtGD69NAau4OMCoHcR1STJdsVOrq++tF+R0/IkC5wDhAUBszXvlSdcKja7Gv7v4kOAZC0CmtA="}
   },
   "status": null,
   "subscription": null,
   "taggedGroups": [],
   "tags": {},
   "permissions": []
}
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">204</font>: The specified player was successfully updated

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">412</font>: Precondition failed (the resource changed since the time specified in the “If-Unmodified-Since” header value)

<font color="#9a0808">415</font>: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## PATCH /\{serial}/ 

Replaces certain parameters on the specified player. Applies only to player settings. See [rfc6902](https://datatracker.ietf.org/doc/html/rfc6902).

**Required Scope Token**

bsn.api.main.devices.update

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The serial number of the player to delete

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Body**

These properties are entries in an array. Every entry must have all three of these properties:

- `op` <font color="#704ae0">string</font>:  The type of operation - in this case it is always "replace"
- `path` <font color="#704ae0">string</font>: A Uri path that references the location within the target document where the update will be performed
- `value` <font color="#704ae0">object</font>:  The replacement value(s) for the parameters that must be updated. 

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `serial` is `46D89C101139`
- The optional `If-Unmodified-Since` header value equals the `Last-Modified` header value retrieved from the `GET /id` or `GET /serial` response.

```text
PATCH /2022/06/REST/Devices/46D89C101139/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
If-Unmodified-Since: Wed, 13 Mar 2024 15:51:01 GMT
Content-Type: application/json-patch+json
Content-Length: 94
```

This is the example request body:

```json
[
  {
    "op": "replace",
    "path": "/settings/description/",
    "value": "Main Screen Player"
  }
]
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">204</font>: The parameters have been successfully replaced.

**Failure Response**

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">412</font>: Precondition failed (the resource changed since the time specified in the “If-Unmodified-Since” header value)

<font color="#9a0808">415</font>: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## DELETE /\{serial}/ 

Delete the specified player

**Required Scope Token**

bsn.api.main.devices.delete

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The player serial number 

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `serial` is set to `46D89C101139`
- The optional `If-Unmodified-Since` header value equals the `Last-Modified` header value retrieved from the `GET /id` or `GET /serial` response.

```text
DELETE /2022/06/REST/Devices/46D89C101139/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}}
If-Unmodified-Since: Wed, 13 Mar 2024 15:51:01 GMT
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">204</font>: The player was successfully deleted

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">412</font>: Precondition failed (the resource changed since the time specified in the “If-Unmodified-Since” header value)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{deviceId}/Beacons/ 

Return the array of all beacons defined for the player that is specified

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `deviceId` <font color="#704ae0">int: </font>A unique identifier for the player instance

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: The collection of [Player Beacon Entities](docId\:BsgHv6pw46ZE0xu2T2I8I)

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{serial}/Beacons/ 

Return the array of all beacons defined for the player that is specified

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The serial number of the player instance

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: The collection of [Player Beacon Entities](docId\:BsgHv6pw46ZE0xu2T2I8I)

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{deviceId}/Beacons/\{name}/ 

Returns a device beacon of a certain type associated with a specified player and the specified name

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `deviceId` <font color="#704ae0">int: </font>A unique identifier for the player instance
- `name` <font color="#704ae0">string: </font>The name of the player beacon

 \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns the [Player Beacon Entity](docId\:BsgHv6pw46ZE0xu2T2I8I)

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## DELETE /\{deviceId}/Beacons/\{name}/ 

Delete a specified player beacon from a specified player.

**Required Scope Token**

bsn.api.main.devices.update

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `deviceId` <font color="#704ae0">int: </font>A unique identifier for the player instance
- `name` <font color="#704ae0">string: </font>The name of the player beacon

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">204</font>: The specified player beacon was successfully deleted from the player

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{serial}/Beacons/\{name}/ 

Returns a player beacon of a certain type associated with a specified player and the specified name

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The serial number of the player
- `name` <font color="#704ae0">string: </font>The name of the player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns the [Player Beacon Entity](docId\:BsgHv6pw46ZE0xu2T2I8I)

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## DELETE /\{serial}/Beacons/\{name}/ 

Delete a specified player beacon on a specified player.

**Required Scope Token**

bsn.api.main.devices.update

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The serial number of the player
- `name` <font color="#704ae0">string: </font>The name of the beacon to delete

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">204</font>: The specified player beacon was successfully deleted from the player

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## POST /\{id}/Beacons/ 

Create a player beacon

**Required Scope Token**

bsn.api.main.devices.update

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `id` <font color="#704ae0">int: </font>A unique identifier for the player instance on which you want to create the beacon

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Body**

- The [Player Beacon Entity](docId\:BsgHv6pw46ZE0xu2T2I8I)

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">201</font>: Returns the new resource created and referenced by the Uri (given by the Location header field) in the response. The response includes the [Player Beacon Entity](docId\:BsgHv6pw46ZE0xu2T2I8I).

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">415</font>: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## POST /\{serial}/Beacons/ 

Create a player beacon on a specified player.

**Required Scope Token**

bsn.api.main.devices.update

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The serial number of the player on which you want to create the beacon

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Body**

- The [Player Beacon Entity](docId\:BsgHv6pw46ZE0xu2T2I8I)

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">201</font>: Returns the new resource created and referenced by the Uri (given by the Location header field) in the response. The response includes the [Player Beacon Entity](docId\:BsgHv6pw46ZE0xu2T2I8I).

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">415</font>: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{id}/Errors/ 

Returns a list of errors associated with a specified player

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `id` <font color="#704ae0">int: </font>A unique identifier for the player that is reporting the errors

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Query String Parameters**

- `marker` <font color="#704ae0">string</font> <font color="#01a0af">optional: </font>A value specifying which page to retrieve. This value is useful if the `isTruncated` entry in the response body of the previous GET call indicates that the number of error instances exceeds the `pageSize`. This parameter is only required if you need more elements in the paged list than the `pageSize` (100).
- `pageSize` <font color="#704ae0">int</font> <font color="#01a0af">optional: </font>The maximum number of error instances that can be contained in the response body. 

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `id` is set to `12345`
- `marker` value is set to the `[PagedList].[NextMarker]` property value from the previous BSN.Cloud API response.
- `pageSize` is set to `1`

```text
GET /2022/06/REST/Devices/12345/Errors/?pageSize=1&marker=a9DH34d23Bh0 HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns the [Player Error Entity](docId:4Vwry6LZ2JTfPAC07jFIq)

**Example**

```json
{
   "items":    [
            {
         "timestamp": "2023-03-21T20:36:21.887Z",
         "errorName": "Failed to download sync list",
         "errorEvent": "deviceError",
         "reason": "Connection timed out after 30000 milliseconds",
         "responseCode": -28
      }
   ],
   "totalItemCount": 9,
   "matchingItemCount": 9,
   "pageSize": 1,
   "nextMarker": "9DH34d23Bc1fjkdsa",
   "prevMarker": "9DH34d23Bc1fj786t",
   "isTruncated": false,
   "sortExpression": "[DeviceError].[Timestamp] DESC",
   "filterExpression": null
}
```

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{serial}/Errors/ 

Returns a list of errors associated with a specified player

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The serial number of the player that is reporting the errors

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Query String Parameters**

- `marker` <font color="#704ae0">string</font> <font color="#01a0af">optional: </font>A value specifying which page to retrieve. This value is useful if the `isTruncated` entry in the response body of the previous GET call indicates that the number of error instances exceeds the `pageSize`.This parameter is only required if you need more elements in the paged list than the `pageSize` (100).
- `pageSize` <font color="#704ae0">int</font> <font color="#01a0af">optional: </font>The maximum number of error instances that can be contained in the response body

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `serial` is set to `46D89C101139`
- `marker` value is set to the `[PagedList].[NextMarker]` property value from the previous BSN.Cloud API response.
- `pageSize` is set to `1`

```text
GET /2022/06/REST/Devices/46D89C101139/Errors/?pageSize=1&marker=Vsh54Uh9Mn0s HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns the [Player Error Entity](docId:4Vwry6LZ2JTfPAC07jFIq)

**Example**

```json
{
   "items":    [
            {
         "timestamp": "2023-03-21T20:36:21.887Z",
         "errorName": "Failed to download sync list",
         "errorEvent": "deviceError",
         "reason": "Connection timed out after 30000 milliseconds",
         "responseCode": -28
      }
   ],
   "totalItemCount": 9,
   "matchingItemCount": 9,
   "pageSize": 1,
   "nextMarker": "34DH04d23c00JK",
   "prevMarker": "34DH04d23cfhg9",   
   "isTruncated": false,
   "sortExpression": "[DeviceError].[Timestamp] DESC",
   "filterExpression": null
}
```

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{id}/Downloads/ 

Returns the downloads associated with a specified player

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `id` <font color="#704ae0">int: </font>The unique identifier for the player that has the download instances

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Query String Parameters**

- `marker` <font color="#704ae0">string</font> <font color="#01a0af">optional: </font>A value specifying which page to retrieve. This value is useful if the `isTruncated` entry in the response body of the previous GET call indicates that the number of download instances exceeds the `pageSize`. This parameter is only required if you need more elements in the paged list than the `pageSize` (100).
- `pageSize` <font color="#704ae0">int</font> <font color="#01a0af">optional: </font>The maximum number of download instances that can be contained in the response body

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `id` is set to `12345`
- `marker` value is set to the `[PagedList].[NextMarker]` property value from the previous BSN.Cloud API response.
- `pageSize` is set to `3`

```text
GET /2022/06/REST/Devices/12345/Downloads/?pageSize=3&marker=BN548plV2hZW4tWW HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json, application/*
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns the [Player Download Entity](docId:40QXuGrQ94l5RAS_HcMDV)

**Example**

```json
{
   "items":    [
            {
         "timestamp": "2021-05-04T17:44:06.533Z",
         "fileName": "ZoomBG.jpeg",
         "fileHash": "SHA1:311822ED6A306CB3F2775CB3D9FF1A8C96680E92",
         "progress": 42,
         "status": "downloading"
      },
            {
         "timestamp": "2021-05-04T17:44:06.533Z",
         "fileName": "featureMinRevs.json",
         "fileHash": "SHA1:98E4C18E11C4D41D5742756213C103B671B985E9",
         "progress": 100,
         "status": "ok"
      },
            {
         "timestamp": "2021-05-04T17:44:06.533Z",
         "fileName": "autoplugins.brs",
         "fileHash": "SHA1:A0ACB3E76C85E48D326E802428B23F1325667410",
         "progress": 100,
         "status": "ok"
      }
   ],
   "totalItemCount": 7,
   "matchingItemCount": 7,
   "pageSize": 3,
   "nextMarker": "HFfakds789nm06",
   "prevMarker": "HFfakds789/0nm",
   "isTruncated": true,
   "sortExpression": "[DeviceDownload].[Timestamp] DESC",
   "filterExpression": null
}
```

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{serial}/Downloads/ 

Returns a list of downloads carried out by a player (specified by serial number).

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The serial number of the player that has the download instances

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Query String Parameters**

- `marker` <font color="#704ae0">string</font> <font color="#01a0af">optional: </font>A value specifying which page to retrieve. This value is useful if the `isTruncated` entry in the response body of the previous GET call indicates that the number of download instances exceeds the `pageSize`. This parameter is only required if you need more elements in the paged list than the `pageSize` (100).
- `pageSize` <font color="#704ae0">int</font> <font color="#01a0af">optional: </font>The maximum number of download instances that can be contained in the response body

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `serial` is set to `46D89C101139`
- `marker` value is set to the `[PagedList].[NextMarker]` property value from the previous BSN.Cloud API response.
- `pageSize` is set to `3`

```text
GET /2022/06/REST/Devices/46D89C101139/Downloads/?pageSize=3&marker=W4tWW3hcnMsMTcyMU478ngh HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json, application/*
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns the [Player Download Entity](docId:40QXuGrQ94l5RAS_HcMDV) 

**Example**

```json
{
   "items":    [
            {
         "timestamp": "2021-05-04T17:44:06.533Z",
         "fileName": "ZoomBG.jpeg",
         "fileHash": "SHA1:311822ED6A306CB3F2775CB3D9FF1A8C96680E92",
         "progress": 42,
         "status": "downloading"
      },
            {
         "timestamp": "2021-05-04T17:44:06.533Z",
         "fileName": "featureMinRevs.json",
         "fileHash": "SHA1:98E4C18E11C4D41D5742756213C103B671B985E9",
         "progress": 100,
         "status": "ok"
      },
            {
         "timestamp": "2021-05-04T17:44:06.533Z",
         "fileName": "autoplugins.brs",
         "fileHash": "SHA1:A0ACB3E76C85E48D326E802428B23F1325667410",
         "progress": 100,
         "status": "ok"
      }
   ],
   "totalItemCount": 7,
   "matchingItemCount": 7,
   "pageSize": 3,
   "nextMarker": "fjdkah890vdjk",
   "prevMarker": "fjdkah890546k",
   "isTruncated": true,
   "sortExpression": "[DeviceDownload].[Timestamp] DESC",
   "filterExpression": null
}
```

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{deviceid}/ScreenShots/ 

Returns a list of screenshots uploaded by a specified player 

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `id` <font color="#704ae0">int: </font>The unique identifier for the player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Query String Parameters**

- `marker` <font color="#704ae0">string</font> <font color="#01a0af">optional: </font>A value specifying which page to retrieve. This value is useful if the `isTruncated` entry in the response body of the previous GET call indicates that the number of screenshot instances exceeds the `pageSize`. This parameter is only required if you need more elements in the paged list than the `pageSize` (100).
- `pageSize` <font color="#704ae0">int</font> <font color="#01a0af">optional: </font>The maximum number of screenshot instances that can be contained in the response body

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `id` is set to `1234567`
- `marker` value is set to the `[PagedList].[NextMarker]` property value from the previous BSN.Cloud API response.
- `pageSize` is set to `1`

```text
GET /2022/06/REST/Devices/1234567/ScreenShots/?marker=SE4ODYzNF230OTv&pageSize=1 HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns the [ScreenShot Entity](docId:-0vlMdzog7WbNYvHxzeBE) .

**Example**

```json
{
   "items":    [
            {
         "id": 12345,
         "device":          {
            "id": 1234567,
            "serial": "CFD02W901738"
         },
         "groupName": "Default",
         "presentationName": "videos-and-images",
         "utcTimestamp": "2023-10-19T15:07:57Z",
         "localTimestamp": "2023-10-19T10:07:57",
         "width": 1920,
         "height": 1080,
         "filePath": "https://bsncloud-dssp.s3.amazonaws.com/DeviceScreenShots/Public/CFD02W901738/2023-10-19T15-07-57.7710000Z.jpg",
         "fileSize": 802681,
         "thumbPath": "https://bsncloud-dssp.s3.amazonaws.com/DeviceScreenShots/Public/CFD02W901738/2023-10-19T15-07-57.7710000Z.thumb.150x150.jpg"
      }
   ],
   "totalItemCount": 4,
   "matchingItemCount": 4,
   "pageSize": 1,
   "nextMarker": "LDE4ODYzNTI0OTU=",
   "prevMarker": "LDE4ODYzNTI0h893",
   "isTruncated": true,
   "sortExpression": "[DeviceScreenShot].[UTCTimestamp] DESC",
   "filterExpression": null
}
```

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{serial}/ScreenShots/ 

Returns a list of screenshots uploaded by a specified player 

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The player serial number

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Query String Parameters**

- `marker` <font color="#704ae0">string</font> <font color="#01a0af">optional: </font>A value specifying which page to retrieve. This value is useful if the `isTruncated` entry in the response body of the previous GET call indicates that the number of screenshot instances exceeds the `pageSize`. This parameter is only required if you need more elements in the paged list than the `pageSize` (100).
- `pageSize` <font color="#704ae0">int</font> <font color="#01a0af">optional: </font>The maximum number of screenshot instances that can be contained in the response body

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `serial` is set to `CFD02W901738`
- `marker` value is set to the `[PagedList].[NextMarker]` property value from the previous BSN.Cloud API response.
- `pageSize` is set to `1`

```text
GET /2022/06/REST/Devices/CFD02W901738/ScreenShots/?marker=G140faj35k8as&pageSize=1 HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns the [ScreenShot Entity](docId:-0vlMdzog7WbNYvHxzeBE)&#x20;

**Example**

```json
{
   "items":    [
            {
         "id": 12345,
         "device":          {
            "id": 1234567,
            "serial": "CFD02W901738"
         },
         "groupName": "Default",
         "presentationName": "videos-and-images",
         "utcTimestamp": "2023-10-19T15:07:57Z",
         "localTimestamp": "2023-10-19T10:07:57",
         "width": 1920,
         "height": 1080,
         "filePath": "https://bsncloud-dssp.s3.amazonaws.com/DeviceScreenShots/Public/CFD02W901738/2023-10-19T15-07-57.7710000Z.jpg",
         "fileSize": 802681,
         "thumbPath": "https://bsncloud-dssp.s3.amazonaws.com/DeviceScreenShots/Public/CFD02W901738/2023-10-19T15-07-57.7710000Z.thumb.150x150.jpg"
      }
   ],
   "totalItemCount": 4,
   "matchingItemCount": 4,
   "pageSize": 1,
   "nextMarker": "GH0dkf78aok34",
   "prevMarker": "GH0dkf78a5783",
   "isTruncated": true,
   "sortExpression": "[DeviceScreenShot].[UTCTimestamp] DESC",
   "filterExpression": null
}
```

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /ScreenShots/ 

Returns a list of screenshots uploaded by a player

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Query String Parameters**

- `projection` <font color="#704ae0">string</font> <font color="#01a0af">optional: </font>This parameter currently supports only one placeholder (`TOP({int},[Nodes])]`) which limits the number of entities in a group. The possible value for `{int}` is any number from 1 to 100.
- `filter` <font color="#704ae0">string</font> <font color="#01a0af">optional: </font>An [expression](docId:3L0afyD3xoOE-yTvfk2vs) for filtering search results
- `grouping` <font color="#704ae0">string</font> <font color="#01a0af">optional: </font>A grouping expression for the filtered entities. This parameter can be used with the `projection` parameter to retrieve a certain number of screenshots for a large number of devices in one request (for example, 100 screenshots from 100 players).
- `sort` <font color="#704ae0">string</font> <font color="#01a0af">optional: </font>An expression for sorting the search results. The sort expression specifies the entry used for sorting and the ascending/descending (ASC/DESC) sorting order (e.g. "\[Device].\[Serial] ASC")
- `marker` <font color="#704ae0">string</font> <font color="#01a0af">optional: </font>A value specifying which page to retrieve. This value is useful if the `isTruncated` entry in the response body of the previous GET call indicates that the number of screenshot instances exceeds the `pageSize`. This parameter is only required if you need more elements in the paged list than the `pageSize` (100).
- `pageSize` <font color="#704ae0">int</font> <font color="#01a0af">optional: </font>The maximum number of screenshot instances that can be contained in the response body

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `projection` is set to `TOP(3,[Nodes])`
- `filter` is set to `[groupName] IS 'Default'`
- `grouping` is set to `[Serial]`
- `sort` is set to `[Id] ASC`
- `marker` value is set to the `[PagedList].[NextMarker]` property value from the previous BSN.Cloud API response.
- `pageSize` is set to `1`

```text
GET /2022/06/REST/Devices/ScreenShots/?marker=MTgzMDA1MTQ5MiwxODMwMDUxNDky&projection=TOP%283%2C%5BNodes%5D%29&pageSize=1&filter=%5BgroupName%5D%20IS%20%27Default%27&grouping=%5BSerial%5D&sort=%5BId%5D%20ASC HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json, application/*
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns the [ScreenShot Entity](docId:-0vlMdzog7WbNYvHxzeBE)&#x20;

**Example**

```json
{
   "items":    [
            {
         "id": 1829566038,
         "device":          {
            "id": 0123456,
            "serial": "E9E8J5401510"
         },
         "groupName": "Default",
         "presentationName": "videos-and-images",
         "utcTimestamp": "2023-09-22T06:05:43Z",
         "localTimestamp": "2023-09-22T01:05:43",
         "width": 1920,
         "height": 1080,
         "filePath": "https://bsncloud-dssp.s3.amazonaws.com/DeviceScreenShots/Public/D9E8D5001519/2023-09-22T06-05-43.2670000Z.jpg",
         "fileSize": 1169176,
         "thumbPath": "https://bsncloud-dssp.s3.amazonaws.com/DeviceScreenShots/Public/D9E8D5001519/2023-09-22T06-05-43.2670000Z.thumb.150x150.jpg"
      }
   ],
   "totalItemCount": 1256,
   "matchingItemCount": 19,
   "pageSize": 1,
   "nextMarker": "MTgyOTYwODM2NCwxODI5NjA4MzY0",
   "prevMarker": "MTgyOTYwODM2NCwxODI5NjA478gh",
   "isTruncated": true,
   "sortExpression": "[Id] ASC",
   "filterExpression": "[groupName] IS 'Default'"
}
```

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{id}/Tags/ 

Returns an object whose property names match tag keys and whose property values match tag values on a player

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `id` <font color="#704ae0">int: </font>The unique identifier for the player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `id` is set to `12345`

```text
GET /2022/06/REST/Devices/12345/Tags/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: A collection of key value pairs where the key is tag name, and the value is tag value. See the `Tags` entry in [Player Entity](docId:9PqPrRJAVwfZbka1GYBEA) for more information.

**Example**

```json
{"string::[Device].<Testing2>": "PlayAllDay"}
```

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## POST /\{id}/Tags/ 

Adds tags to a specified player

**Required Scope Token**

bsn.api.main.devices.update

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `id` <font color="#704ae0">int: </font>The unique identifier for the player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Body**

- `tags` <font color="#704ae0">DynamicObject</font>: A collection of key value pairs where the key is tag name, and the value is tag value. See the `Tags` entry in [Player Entity](docId:9PqPrRJAVwfZbka1GYBEA) for more information.

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `id` is set to `12345`

```text
POST /2022/06/REST/Devices/12345/Tags/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 73
```

This is the example request body:

```json
{
	"Number::[Device].<Number>":"1",
	"Boolean::[Device].<Boolean>":true
}
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">204</font>: The tags were added to the specified player 

**Failure Response**

<font color="#9a0808">400</font>: Either a tag with the specified key was already defined, the request is malformed and therefore invalid, or there is a conflict

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">415</font>: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## DELETE /\{id}/Tags/ 

Remove tags from a specified player

**Required Scope Token**

bsn.api.main.devices.update

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `id` <font color="#704ae0">int: </font>The unique identifier for the player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Body**

- `list` <font color="#704ae0">string[]</font>: An array of tag keys to delete

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `id` is set to `12345`

```text
DELETE /2022/06/REST/Devices/12345/Tags/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 64
```

This is the example request body:

```json
[
	"Number::[Device].<Number>",
	"Boolean::[Device].<Boolean>"
]
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">204</font>: The specified tag was successfully deleted from the player

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{serial}/Tags/ 

Returns an object whose property names match tag keys and whose property values match tag values on a player

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The player serial number

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `serial` is set to `35F89C022150`

```text
GET /2022/06/REST/Devices/35F89C022150/Tags/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: A collection of key value pairs where the key is tag name, and the value is tag value. See the `Tags` entry in the [Player Entity](docId:9PqPrRJAVwfZbka1GYBEA) for more information.

**Example**

```json
{"string::[Device].<Testing2>": "PlayAllDay"}
```

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## POST /\{serial}/Tags/ 

Adds one or more tags to a specified player

**Required Scope Token**

bsn.api.main.devices.update

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The player serial number

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Body**

- `tags` <font color="#704ae0">DynamicObject: </font>A collection of key value pairs where the key is tag name, and the value is tag value.  See the `Tags` entry in the [Player Entity](docId:9PqPrRJAVwfZbka1GYBEA) for more information.

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `serial` is set to `35F89C022150`

```text
POST /2022/06/REST/Devices/35F89C022150/Tags/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 73
```

This is the example request body:

```json
{
	"Number::[Device].<Number>":"1",
	"Boolean::[Device].<Boolean>":true
}
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">204</font>: The tags were added to the specified player

**Failure Response**

<font color="#9a0808">400</font>: Either a tag with the specified key was already defined, the request is malformed and therefore invalid, or there is a conflict

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">415</font>: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## DELETE /\{serial}/Tags/ 

Removes one or more tags from a specified player

**Required Scope Token**

bsn.api.main.devices.update

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The player serial number

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Body**

- `list` <font color="#704ae0">string[]</font>: An array of tag keys to delete

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `serial` is set to `35F89C022150`

```text
DELETE /2022/06/REST/Devices/35F89C022150/Tags/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 64
```

This is the example request body:

```json
[
	"Number::[Device].<Number>",
	"Boolean::[Device].<Boolean>"
]
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">204</font>: The specified tag was successfully deleted from the player

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /Models/ 

Returns the list of player models supported by the current Main API version

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

```text
GET /2022/06/REST/Devices/Models/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns the complete list of player models that are supported on this Main API version

**Example**

```json
[
   "HD223",
   "HD1023",
   "HD1423",
   "LS423",
   "XD233",
   "XD1033",
   "XD1133",
   "XT243",
   "XT1043",
   "XT1143",
   "4K242",
   "4K1042",
   "4K1142",
   "HS123",
   "HO523",
   "XD234",
   "XD1034",
   "XT244",
   "XT1144",
   "HS124",
   "HS144",
   "LS424",
   "HD224",
   "HD1024",
   "AU325",
   "AU335",
   "XC2055",
   "XC4055",
   "LS425",
   "LS445",
   "HS125",
   "HS145",
   "HD225",
   "HD1025",
   "XD235",
   "XD1035",
   "XT245",
   "XT1145",
   "XT2145"
]
```

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /Models/\{model}/ 

Returns the list of player models supported by the current Main API version

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `model` <font color="#704ae0">string: </font>The player model

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `model` is `XD1034`

```text
GET /2022/06/REST/Devices/Models/XD1034/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns the complete list of player models that are supported on this Main API version

**Example**

```json
"XD1034"
```

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The provided player model does not exist (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /Models/\{model}/Connectors/ 

Returns the list of connectors available on a given player model. 

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `model` <font color="#704ae0">string: </font>The player model

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `model` is set to `XD1034`

```text
GET /2022/06/REST/Devices/Models/XD1034/Connectors/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns the list of connectors available on a given player model

**Example**

```json
["HDMI"]
```

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The provided player model does not exist or is incorrect 

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /Models/\{model}/Connectors/\{connector}/ 

Returns the list of connectors available on a given player model

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `model` <font color="#704ae0">string: </font>The player model
- `connector` <font color="#704ae0">string:</font>The video connector (for example, "HDMI" or "DisplayPort")

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `model` is set to `XD1034`
- `connector` is set to `HDMI`

```text
GET /2022/06/REST/Devices/Models/XD1034/Connectors/HDMI/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns the list of connectors available on a given player model

**Example**

```json
"HDMI"
```

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The provided player model or connector does not exist or is incorrect

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /Models/\{model}/Connectors/\{connector}/VideoModes/ 

Returns the [Video Modes](docId\:QpML112mBhEK7LBDGUxnv) supported by the specified connector on the specified player model. 

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `model` <font color="#704ae0">string: </font>The player model
- `connector` <font color="#704ae0">string: </font>The video connector (for example, "HDMI" or "DisplayPort")

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `model` is set to `XD1034`
- `connector` is set to `HDMI`

```text
GET /2022/06/REST/Devices/Models/XD1034/Connectors/HDMI/VideoModes/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: The response body is an array of strings listing [Video Modes](docId\:QpML112mBhEK7LBDGUxnv) supported by the specified connector on the specified player model.

**Example**

```json
[
   "4096x2160x23.976p",
   "4096x2160x24p",
   "4096x2160x25p",
   "4096x2160x29.97p",
   "4096x2160x30p",
   "4096x2160x50p",
   "4096x2160x59.94p",
   "4096x2160x60p",
   "3840x2160x60p",
   "3840x2160x59.94p",
   "3840x2160x50p",
   "3840x2160x30p",
   "3840x2160x29.97p",
   "3840x2160x25p",
   "3840x2160x24p",
   "3840x2160x23.976p",
   "3840x1080x60p",
   "3840x1080x50p",
   "3840x1080x30p",
   "3840x1080x25p",
   "3840x600x60p",
   "3440x1440x60p",
   "3440x1440x50p",
   "3440x1440x30p",
   "2560x1600x60p",
   "2560x1440x60p",
   "2560x1440x30p",
   "2560x1080x60p",
   "2560x960x60p",
   "2048x1152x60p",
   "1920x1920x60p",
   "1920x1200x60p",
   "1920x1200x50p",
   "1920x1080x60p",
   "1920x1080x59.94p",
   "1920x1080x50p",
   "1920x1080x30p",
   "1920x1080x29.97p",
   "1920x1080x25p",
   "1920x1080x24p",
   "1920x1080x23.976p",
   "1920x1080x60i",
   "1920x1080x59.94i",
   "1920x1080x50i",
   "1920x540x60p",
   "1680x1050x60p",
   "1600x1200x60p",
   "1600x900x60p",
   "1440x1080x60p",
   "1440x900x75p",
   "1440x900x60p",
   "1400x1050x75p",
   "1400x1050x60p",
   "1366x768x60p",
   "1360x768x60p",
   "1280x1024x75p",
   "1280x1024x60p",
   "1280x960x60p",
   "1280x800x75p",
   "1280x800x60p",
   "1280x768x60p",
   "1280x720x60p",
   "1280x720x59.94p",
   "1280x720x50p",
   "1280x720x25p",
   "1280x720x24p",
   "1280x720x23.976p",
   "1200x1920x60p",
   "1024x768x75p",
   "1024x768x60p",
   "960x960x60p",
   "800x1280x60p",
   "800x600x75p",
   "800x600x60p",
   "720x576x50p",
   "720x576x50i",
   "720x480x60p",
   "720x480x60i",
   "720x480x59.94p",
   "640x480x60p"
]
```

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The provided player model or connector does not exist or is incorrect

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /Operations/ 

Returns operational permissions granted to roles for specific business operations

**Required Scope Token**

bsn.api.main.operations.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

```text
GET /2022/06/REST/Devices/Operations/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns the [Business Operations Entity](docId\:eI98k7OUl6z5i-5B-D6js)

:::ExpandableHeading
Example

```json
{
   "uid": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
   "singularName": "Full Control",
   "pluralName": "Device (Full Control)",
   "fullName": "Device (Full Control)",
   "targetEntity": "Device",
   "appliance": "Instance, Collection",
   "parent": null,
   "descendants":    [
            {
         "uid": "7d71c53e-ae40-59c4-f972-28e8b4dfabcf",
         "singularName": "View Device",
         "pluralName": "View Devices",
         "fullName": "Device (Full Control) - View Devices",
         "targetEntity": "Device",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
            "singularName": "Full Control",
            "pluralName": "Device (Full Control)",
            "fullName": "Device (Full Control)",
            "targetEntity": "Device",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "7d71c53e-ae40-59c4-f972-28e8b4dfabcf",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": false,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:07.35Z"
            },
                        {
               "entityId": null,
               "operationUID": "7d71c53e-ae40-59c4-f972-28e8b4dfabcf",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.153Z"
            },
                        {
               "entityId": null,
               "operationUID": "7d71c53e-ae40-59c4-f972-28e8b4dfabcf",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.41Z"
            },
                        {
               "entityId": null,
               "operationUID": "7d71c53e-ae40-59c4-f972-28e8b4dfabcf",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:05.72Z"
            },
                        {
               "entityId": null,
               "operationUID": "7d71c53e-ae40-59c4-f972-28e8b4dfabcf",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:06.163Z"
            },
                        {
               "entityId": null,
               "operationUID": "7d71c53e-ae40-59c4-f972-28e8b4dfabcf",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:06.73Z"
            }
         ]
      },
            {
         "uid": "0595648a-ab46-6bf4-417e-429d90821b49",
         "singularName": "Export Device",
         "pluralName": "Export Devices List",
         "fullName": "Device (Full Control) - Export Devices List",
         "targetEntity": "Device",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
            "singularName": "Full Control",
            "pluralName": "Device (Full Control)",
            "fullName": "Device (Full Control)",
            "targetEntity": "Device",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "0595648a-ab46-6bf4-417e-429d90821b49",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": false,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:07.363Z"
            },
                        {
               "entityId": null,
               "operationUID": "0595648a-ab46-6bf4-417e-429d90821b49",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.153Z"
            },
                        {
               "entityId": null,
               "operationUID": "0595648a-ab46-6bf4-417e-429d90821b49",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.41Z"
            },
                        {
               "entityId": null,
               "operationUID": "0595648a-ab46-6bf4-417e-429d90821b49",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:05.72Z"
            },
                        {
               "entityId": null,
               "operationUID": "0595648a-ab46-6bf4-417e-429d90821b49",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:06.163Z"
            },
                        {
               "entityId": null,
               "operationUID": "0595648a-ab46-6bf4-417e-429d90821b49",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:06.73Z"
            }
         ]
      },
            {
         "uid": "3c97788f-e17a-42d4-b15d-65e53fb84ddc",
         "singularName": "View Device Downloads",
         "pluralName": "View Device Downloads",
         "fullName": "Device (Full Control) - View Device Downloads",
         "targetEntity": "Device",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
            "singularName": "Full Control",
            "pluralName": "Device (Full Control)",
            "fullName": "Device (Full Control)",
            "targetEntity": "Device",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "3c97788f-e17a-42d4-b15d-65e53fb84ddc",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": false,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:07.4Z"
            },
                        {
               "entityId": null,
               "operationUID": "3c97788f-e17a-42d4-b15d-65e53fb84ddc",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.153Z"
            },
                        {
               "entityId": null,
               "operationUID": "3c97788f-e17a-42d4-b15d-65e53fb84ddc",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.41Z"
            },
                        {
               "entityId": null,
               "operationUID": "3c97788f-e17a-42d4-b15d-65e53fb84ddc",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:05.72Z"
            },
                        {
               "entityId": null,
               "operationUID": "3c97788f-e17a-42d4-b15d-65e53fb84ddc",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:06.163Z"
            },
                        {
               "entityId": null,
               "operationUID": "3c97788f-e17a-42d4-b15d-65e53fb84ddc",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:06.73Z"
            }
         ]
      },
            {
         "uid": "45b82bbe-34eb-4eab-8439-370d46cc5528",
         "singularName": "View Device Battery Status",
         "pluralName": "View Device Battery Status",
         "fullName": "Device (Full Control) - View Device Battery Status",
         "targetEntity": "Device",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
            "singularName": "Full Control",
            "pluralName": "Device (Full Control)",
            "fullName": "Device (Full Control)",
            "targetEntity": "Device",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "45b82bbe-34eb-4eab-8439-370d46cc5528",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": false,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:07.413Z"
            },
                        {
               "entityId": null,
               "operationUID": "45b82bbe-34eb-4eab-8439-370d46cc5528",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.153Z"
            },
                        {
               "entityId": null,
               "operationUID": "45b82bbe-34eb-4eab-8439-370d46cc5528",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.41Z"
            },
                        {
               "entityId": null,
               "operationUID": "45b82bbe-34eb-4eab-8439-370d46cc5528",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:05.72Z"
            },
                        {
               "entityId": null,
               "operationUID": "45b82bbe-34eb-4eab-8439-370d46cc5528",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:06.163Z"
            },
                        {
               "entityId": null,
               "operationUID": "45b82bbe-34eb-4eab-8439-370d46cc5528",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:06.73Z"
            }
         ]
      },
            {
         "uid": "0cf93b59-dbd4-4ad1-89b4-4024c08d8ddc",
         "singularName": "View Remote Snapshots",
         "pluralName": "View Remote Snapshots",
         "fullName": "Device (Full Control) - View Remote Snapshots",
         "targetEntity": "Device",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
            "singularName": "Full Control",
            "pluralName": "Device (Full Control)",
            "fullName": "Device (Full Control)",
            "targetEntity": "Device",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "0cf93b59-dbd4-4ad1-89b4-4024c08d8ddc",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": false,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:07.44Z"
            },
                        {
               "entityId": null,
               "operationUID": "0cf93b59-dbd4-4ad1-89b4-4024c08d8ddc",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.153Z"
            },
                        {
               "entityId": null,
               "operationUID": "0cf93b59-dbd4-4ad1-89b4-4024c08d8ddc",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.41Z"
            },
                        {
               "entityId": null,
               "operationUID": "0cf93b59-dbd4-4ad1-89b4-4024c08d8ddc",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:05.72Z"
            },
                        {
               "entityId": null,
               "operationUID": "0cf93b59-dbd4-4ad1-89b4-4024c08d8ddc",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:06.163Z"
            },
                        {
               "entityId": null,
               "operationUID": "0cf93b59-dbd4-4ad1-89b4-4024c08d8ddc",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:06.73Z"
            }
         ]
      },
            {
         "uid": "f396dc0f-f3b6-4d1b-acd4-4063b47e3025",
         "singularName": "View Device Log Reports",
         "pluralName": "View Device Log Reports",
         "fullName": "Device (Full Control) - View Device Log Reports",
         "targetEntity": "Device",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
            "singularName": "Full Control",
            "pluralName": "Device (Full Control)",
            "fullName": "Device (Full Control)",
            "targetEntity": "Device",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "f396dc0f-f3b6-4d1b-acd4-4063b47e3025",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": false,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:07.427Z"
            },
                        {
               "entityId": null,
               "operationUID": "f396dc0f-f3b6-4d1b-acd4-4063b47e3025",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.153Z"
            },
                        {
               "entityId": null,
               "operationUID": "f396dc0f-f3b6-4d1b-acd4-4063b47e3025",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.41Z"
            },
                        {
               "entityId": null,
               "operationUID": "f396dc0f-f3b6-4d1b-acd4-4063b47e3025",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:05.72Z"
            },
                        {
               "entityId": null,
               "operationUID": "f396dc0f-f3b6-4d1b-acd4-4063b47e3025",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:06.163Z"
            },
                        {
               "entityId": null,
               "operationUID": "f396dc0f-f3b6-4d1b-acd4-4063b47e3025",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:06.73Z"
            }
         ]
      },
            {
         "uid": "9e4cc8d8-45fe-4fb4-01fc-170bf90449b2",
         "singularName": "Get Device Log Reports",
         "pluralName": "Get Device Log Reports",
         "fullName": "Device (Full Control) - Get Device Log Reports",
         "targetEntity": "Device",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
            "singularName": "Full Control",
            "pluralName": "Device (Full Control)",
            "fullName": "Device (Full Control)",
            "targetEntity": "Device",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "9e4cc8d8-45fe-4fb4-01fc-170bf90449b2",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": false,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:07.453Z"
            },
                        {
               "entityId": null,
               "operationUID": "9e4cc8d8-45fe-4fb4-01fc-170bf90449b2",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.153Z"
            },
                        {
               "entityId": null,
               "operationUID": "9e4cc8d8-45fe-4fb4-01fc-170bf90449b2",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.41Z"
            },
                        {
               "entityId": null,
               "operationUID": "9e4cc8d8-45fe-4fb4-01fc-170bf90449b2",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:05.72Z"
            },
                        {
               "entityId": null,
               "operationUID": "9e4cc8d8-45fe-4fb4-01fc-170bf90449b2",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:06.163Z"
            },
                        {
               "entityId": null,
               "operationUID": "9e4cc8d8-45fe-4fb4-01fc-170bf90449b2",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:06.73Z"
            }
         ]
      },
            {
         "uid": "6e006934-6070-4a3a-bb7e-5527ef5a5034",
         "singularName": "Setup Device",
         "pluralName": "Setup Devices",
         "fullName": "Device (Full Control) - Setup Devices",
         "targetEntity": "Device",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
            "singularName": "Full Control",
            "pluralName": "Device (Full Control)",
            "fullName": "Device (Full Control)",
            "targetEntity": "Device",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "6e006934-6070-4a3a-bb7e-5527ef5a5034",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.153Z"
            },
                        {
               "entityId": null,
               "operationUID": "6e006934-6070-4a3a-bb7e-5527ef5a5034",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.41Z"
            },
                        {
               "entityId": null,
               "operationUID": "6e006934-6070-4a3a-bb7e-5527ef5a5034",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:05.72Z"
            },
                        {
               "entityId": null,
               "operationUID": "6e006934-6070-4a3a-bb7e-5527ef5a5034",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:06.163Z"
            },
                        {
               "entityId": null,
               "operationUID": "6e006934-6070-4a3a-bb7e-5527ef5a5034",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:06.73Z"
            },
                        {
               "entityId": null,
               "operationUID": "6e006934-6070-4a3a-bb7e-5527ef5a5034",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:07.337Z"
            }
         ]
      },
            {
         "uid": "d89437e0-21fa-74b4-c1fe-b66c6270b176",
         "singularName": "Update Device",
         "pluralName": "Update Device",
         "fullName": "Device (Full Control) - Update Device",
         "targetEntity": "Device",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
            "singularName": "Full Control",
            "pluralName": "Device (Full Control)",
            "fullName": "Device (Full Control)",
            "targetEntity": "Device",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "d89437e0-21fa-74b4-c1fe-b66c6270b176",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.153Z"
            },
                        {
               "entityId": null,
               "operationUID": "d89437e0-21fa-74b4-c1fe-b66c6270b176",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.41Z"
            },
                        {
               "entityId": null,
               "operationUID": "d89437e0-21fa-74b4-c1fe-b66c6270b176",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:05.72Z"
            },
                        {
               "entityId": null,
               "operationUID": "d89437e0-21fa-74b4-c1fe-b66c6270b176",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:06.163Z"
            },
                        {
               "entityId": null,
               "operationUID": "d89437e0-21fa-74b4-c1fe-b66c6270b176",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:06.73Z"
            },
                        {
               "entityId": null,
               "operationUID": "d89437e0-21fa-74b4-c1fe-b66c6270b176",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:07.337Z"
            }
         ]
      },
            {
         "uid": "c889ca96-5a6e-a904-318b-978d8f4282f6",
         "singularName": "Change Target Group",
         "pluralName": "Change Target Group",
         "fullName": "Device (Full Control) - Change Target Group",
         "targetEntity": "Device",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
            "singularName": "Full Control",
            "pluralName": "Device (Full Control)",
            "fullName": "Device (Full Control)",
            "targetEntity": "Device",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "c889ca96-5a6e-a904-318b-978d8f4282f6",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.153Z"
            },
                        {
               "entityId": null,
               "operationUID": "c889ca96-5a6e-a904-318b-978d8f4282f6",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.41Z"
            },
                        {
               "entityId": null,
               "operationUID": "c889ca96-5a6e-a904-318b-978d8f4282f6",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:05.72Z"
            },
                        {
               "entityId": null,
               "operationUID": "c889ca96-5a6e-a904-318b-978d8f4282f6",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:06.163Z"
            },
                        {
               "entityId": null,
               "operationUID": "c889ca96-5a6e-a904-318b-978d8f4282f6",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:06.73Z"
            },
                        {
               "entityId": null,
               "operationUID": "c889ca96-5a6e-a904-318b-978d8f4282f6",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:07.337Z"
            }
         ]
      },
            {
         "uid": "1b213d9c-1fbe-44ed-86ab-f67179f12640",
         "singularName": "Manage Tags",
         "pluralName": "Manage Tags",
         "fullName": "Device (Full Control) - Manage Tags",
         "targetEntity": "Device",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
            "singularName": "Full Control",
            "pluralName": "Device (Full Control)",
            "fullName": "Device (Full Control)",
            "targetEntity": "Device",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "1b213d9c-1fbe-44ed-86ab-f67179f12640",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.153Z"
            },
                        {
               "entityId": null,
               "operationUID": "1b213d9c-1fbe-44ed-86ab-f67179f12640",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.41Z"
            },
                        {
               "entityId": null,
               "operationUID": "1b213d9c-1fbe-44ed-86ab-f67179f12640",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:05.72Z"
            },
                        {
               "entityId": null,
               "operationUID": "1b213d9c-1fbe-44ed-86ab-f67179f12640",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:06.163Z"
            },
                        {
               "entityId": null,
               "operationUID": "1b213d9c-1fbe-44ed-86ab-f67179f12640",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:06.73Z"
            },
                        {
               "entityId": null,
               "operationUID": "1b213d9c-1fbe-44ed-86ab-f67179f12640",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:07.337Z"
            }
         ]
      },
            {
         "uid": "b15c6202-171f-40ac-80db-507f1b4f83e2",
         "singularName": "Unit Control",
         "pluralName": "Unit Control",
         "fullName": "Device (Full Control) - Unit Control",
         "targetEntity": "Device",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
            "singularName": "Full Control",
            "pluralName": "Device (Full Control)",
            "fullName": "Device (Full Control)",
            "targetEntity": "Device",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "b15c6202-171f-40ac-80db-507f1b4f83e2",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.153Z"
            },
                        {
               "entityId": null,
               "operationUID": "b15c6202-171f-40ac-80db-507f1b4f83e2",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.41Z"
            },
                        {
               "entityId": null,
               "operationUID": "b15c6202-171f-40ac-80db-507f1b4f83e2",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:05.72Z"
            },
                        {
               "entityId": null,
               "operationUID": "b15c6202-171f-40ac-80db-507f1b4f83e2",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:06.163Z"
            },
                        {
               "entityId": null,
               "operationUID": "b15c6202-171f-40ac-80db-507f1b4f83e2",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:06.73Z"
            },
                        {
               "entityId": null,
               "operationUID": "b15c6202-171f-40ac-80db-507f1b4f83e2",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:07.337Z"
            }
         ]
      },
            {
         "uid": "6e41336d-be6b-4549-9acb-afb1cefe5211",
         "singularName": "Add Subscriptions",
         "pluralName": "Add Subscriptions",
         "fullName": "Device (Full Control) - Add Subscriptions",
         "targetEntity": "Device",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
            "singularName": "Full Control",
            "pluralName": "Device (Full Control)",
            "fullName": "Device (Full Control)",
            "targetEntity": "Device",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "6e41336d-be6b-4549-9acb-afb1cefe5211",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.153Z"
            },
                        {
               "entityId": null,
               "operationUID": "6e41336d-be6b-4549-9acb-afb1cefe5211",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.41Z"
            },
                        {
               "entityId": null,
               "operationUID": "6e41336d-be6b-4549-9acb-afb1cefe5211",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:05.72Z"
            },
                        {
               "entityId": null,
               "operationUID": "6e41336d-be6b-4549-9acb-afb1cefe5211",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:06.163Z"
            },
                        {
               "entityId": null,
               "operationUID": "6e41336d-be6b-4549-9acb-afb1cefe5211",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:06.73Z"
            },
                        {
               "entityId": null,
               "operationUID": "6e41336d-be6b-4549-9acb-afb1cefe5211",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:07.337Z"
            }
         ]
      },
            {
         "uid": "3ec8d3c9-5ceb-c404-b976-cbc6ce2d95be",
         "singularName": "Edit Permissions",
         "pluralName": "Edit Permissions",
         "fullName": "Device (Full Control) - Edit Permissions",
         "targetEntity": "Device",
         "appliance": "Collection",
         "parent":          {
            "uid": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
            "singularName": "Full Control",
            "pluralName": "Device (Full Control)",
            "fullName": "Device (Full Control)",
            "targetEntity": "Device",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "3ec8d3c9-5ceb-c404-b976-cbc6ce2d95be",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.153Z"
            },
                        {
               "entityId": null,
               "operationUID": "3ec8d3c9-5ceb-c404-b976-cbc6ce2d95be",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.41Z"
            },
                        {
               "entityId": null,
               "operationUID": "3ec8d3c9-5ceb-c404-b976-cbc6ce2d95be",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:05.72Z"
            },
                        {
               "entityId": null,
               "operationUID": "3ec8d3c9-5ceb-c404-b976-cbc6ce2d95be",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:06.163Z"
            },
                        {
               "entityId": null,
               "operationUID": "3ec8d3c9-5ceb-c404-b976-cbc6ce2d95be",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:06.73Z"
            },
                        {
               "entityId": null,
               "operationUID": "3ec8d3c9-5ceb-c404-b976-cbc6ce2d95be",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:07.337Z"
            }
         ]
      },
            {
         "uid": "da52a016-4e82-ce64-dded-a8dcd0de0ce3",
         "singularName": "Delete Device",
         "pluralName": "Delete Device",
         "fullName": "Device (Full Control) - Delete Device",
         "targetEntity": "Device",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
            "singularName": "Full Control",
            "pluralName": "Device (Full Control)",
            "fullName": "Device (Full Control)",
            "targetEntity": "Device",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "da52a016-4e82-ce64-dded-a8dcd0de0ce3",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.153Z"
            },
                        {
               "entityId": null,
               "operationUID": "da52a016-4e82-ce64-dded-a8dcd0de0ce3",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.41Z"
            },
                        {
               "entityId": null,
               "operationUID": "da52a016-4e82-ce64-dded-a8dcd0de0ce3",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:05.72Z"
            },
                        {
               "entityId": null,
               "operationUID": "da52a016-4e82-ce64-dded-a8dcd0de0ce3",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:06.163Z"
            },
                        {
               "entityId": null,
               "operationUID": "da52a016-4e82-ce64-dded-a8dcd0de0ce3",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:06.73Z"
            },
                        {
               "entityId": null,
               "operationUID": "da52a016-4e82-ce64-dded-a8dcd0de0ce3",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:07.337Z"
            }
         ]
      },
            {
         "uid": "9e8c409d-b81f-46ed-bd60-c24ee77ce139",
         "singularName": "Revoke Tokens",
         "pluralName": "Revoke Tokens",
         "fullName": "Device (Full Control) - Revoke Tokens",
         "targetEntity": "Device",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
            "singularName": "Full Control",
            "pluralName": "Device (Full Control)",
            "fullName": "Device (Full Control)",
            "targetEntity": "Device",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "9e8c409d-b81f-46ed-bd60-c24ee77ce139",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.153Z"
            },
                        {
               "entityId": null,
               "operationUID": "9e8c409d-b81f-46ed-bd60-c24ee77ce139",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:05.41Z"
            },
                        {
               "entityId": null,
               "operationUID": "9e8c409d-b81f-46ed-bd60-c24ee77ce139",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:05.72Z"
            },
                        {
               "entityId": null,
               "operationUID": "9e8c409d-b81f-46ed-bd60-c24ee77ce139",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:06.163Z"
            },
                        {
               "entityId": null,
               "operationUID": "9e8c409d-b81f-46ed-bd60-c24ee77ce139",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-03-05T16:59:06.73Z"
            },
                        {
               "entityId": null,
               "operationUID": "9e8c409d-b81f-46ed-bd60-c24ee77ce139",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-03-05T16:59:07.337Z"
            }
         ]
      }
   ],
   "permissions":    [
            {
         "entityId": null,
         "operationUID": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
         "principal":          {
            "name": "Administrators",
            "isCustom": false,
            "type": "Role",
            "id": 1
         },
         "isFixed": true,
         "isInherited": false,
         "isAllowed": true,
         "creationDate": "2020-03-05T16:59:05.153Z"
      },
            {
         "entityId": null,
         "operationUID": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
         "principal":          {
            "name": "General Managers",
            "isCustom": false,
            "type": "Role",
            "id": 2
         },
         "isFixed": true,
         "isInherited": false,
         "isAllowed": true,
         "creationDate": "2020-03-05T16:59:05.41Z"
      },
            {
         "entityId": null,
         "operationUID": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
         "principal":          {
            "name": "Creators",
            "isCustom": false,
            "type": "Role",
            "id": 3
         },
         "isFixed": true,
         "isInherited": false,
         "isAllowed": false,
         "creationDate": "2020-03-05T16:59:05.72Z"
      },
            {
         "entityId": null,
         "operationUID": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
         "principal":          {
            "name": "Publishers",
            "isCustom": false,
            "type": "Role",
            "id": 4
         },
         "isFixed": true,
         "isInherited": false,
         "isAllowed": false,
         "creationDate": "2020-03-05T16:59:06.163Z"
      },
            {
         "entityId": null,
         "operationUID": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
         "principal":          {
            "name": "Network Managers",
            "isCustom": false,
            "type": "Role",
            "id": 5
         },
         "isFixed": true,
         "isInherited": false,
         "isAllowed": true,
         "creationDate": "2020-03-05T16:59:06.73Z"
      },
            {
         "entityId": null,
         "operationUID": "9bf0a633-52a5-6b94-2d45-16c4c1c8c025",
         "principal":          {
            "name": "Viewers",
            "isCustom": false,
            "type": "Role",
            "id": 6
         },
         "isFixed": true,
         "isInherited": false,
         "isAllowed": false,
         "creationDate": "2020-03-05T16:59:07.337Z"
      }
   ]
}
```
:::

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{id}/Permissions/ 

Returns the list of permissions allowing or denying specific business operations to be executed on the specified player

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `id` <font color="#704ae0">int: </font>A unique identifier for the player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `id` is set to `12345`

```text
GET /2022/06/REST/Devices/12345/Permissions/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns an array of [Permission](docId\:JWfyMC42cdRG5jY2SkYsU) entities 

**Example**

```json
[
  {
    "entityId": 12345,
    "operationUID": "7d71c53e-ae40-59c4-f972-28e8b4dfabcf",
    "principal": {
      "login": "JaneDoe@brightsign.biz",
      "type": "User",
      "id": 54321
    },
    "isFixed": false,
    "isInherited": false,
    "isAllowed": false,
    "creationDate": "2023-10-06T15:55:35.587Z"
  },
  {
    "entityId": 12345,
    "operationUID": "0cf93b59-dbd4-4ad1-89b4-4024c08d8ddc",
    "principal": {
      "name": "Custom",
      "isCustom": true,
      "type": "Role",
      "id": 54321
    },
    "isFixed": false,
    "isInherited": false,
    "isAllowed": true,
    "creationDate": "2023-10-06T15:55:35.553Z"
  }
]
```

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## POST /\{id}/Permissions/ 

Applies permissions allowing or denying specific business operations to be executed on a specified player

**Required Scope Token**

bsn.api.main.devices.update

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `id` <font color="#704ae0">int: </font>A unique identifier for the player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Body**

- An array of [Permission](docId\:JWfyMC42cdRG5jY2SkYsU) entities

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `id` is set to `12345`

```text
POST /2022/06/REST/Devices/12345/Permissions/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 322
```

This is the example request body:

```json
[
  {
    "entityId": 12345,
    "operationUID": "7d71c53e-ae40-59c4-f972-28e8b4dfabcf",
    "principal": {
      "login": "JaneDoe@brightsign.biz",
      "type": "User",
      "id": 54321
    },
    "isFixed": false,
    "isInherited": false,
    "isAllowed": false,
    "creationDate": "0001-01-01T00:00:00"
  }
]
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">204</font>: The specified permissions were successfully granted

**Failure Response**

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">415</font>: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## DELETE /\{id}/Permissions/ 

Removes custom permissions granted to execute business operations from a specified player

**Required Scope Token**

bsn.api.main.devices.update

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `id` <font color="#704ae0">int: </font>A unique identifier for the player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Body**

- An array of [Permission](docId\:JWfyMC42cdRG5jY2SkYsU) entities

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `id` is set to `12345`

```text
DELETE /2022/06/REST/Devices/12345/Permissions/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 322
```

This is the example request body:

```json
[
  {
    "entityId": 12345,
    "operationUID": "7d71c53e-ae40-59c4-f972-28e8b4dfabcf",
    "principal": {
      "login": "JaneDoe@brightsign.biz",
      "type": "User",
      "id": 54321
    },
    "isFixed": false,
    "isInherited": false,
    "isAllowed": false,
    "creationDate": "0001-01-01T00:00:00"
  }
]  
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">204</font>: The specified permissions were successfully deleted from the player

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{serial}/Permissions/ 

Returns the list of permissions allowing or denying specific business operations to be executed on a specified player

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The serial number of the player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `serial` is set to `46D89C001033`

```text
GET /2022/06/REST/Devices/46D89C001033/Permissions/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns an array of [Permission](docId\:JWfyMC42cdRG5jY2SkYsU) entities 

**Example**

```json
[
  {
    "entityId": 12345,
    "operationUID": "7d71c53e-ae40-59c4-f972-28e8b4dfabcf",
    "principal": {
      "login": "JaneDoe@brightsign.biz",
      "type": "User",
      "id": 54321
    },
    "isFixed": false,
    "isInherited": false,
    "isAllowed": false,
    "creationDate": "2023-10-06T15:55:35.587Z"
  },
  {
    "entityId": 12345,
    "operationUID": "0cf93b59-dbd4-4ad1-89b4-4024c08d8ddc",
    "principal": {
      "name": "Custom",
      "isCustom": true,
      "type": "Role",
      "id": 54321
    },
    "isFixed": false,
    "isInherited": false,
    "isAllowed": true,
    "creationDate": "2023-10-06T15:55:35.553Z"
  }
]
```

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## POST /\{serial}/Permissions/ 

Applies permissions allowing or denying specific business operations to be executed on a specified player

**Required Scope Token**

bsn.api.main.devices.update

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The serial number of the player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Body**

- An array of [Permission](docId\:JWfyMC42cdRG5jY2SkYsU) entities

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `serial` is set to `46D89C001032`

```text
POST /2022/06/REST/Devices/46D89C001032/Permissions/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 322
```

This is the example request body:

```json
[
  {
    "entityId": 12345,
    "operationUID": "7d71c53e-ae40-59c4-f972-28e8b4dfabcf",
    "principal": {
      "login": "JaneDoe@brightsign.biz",
      "type": "User",
      "id": 54321
    },
    "isFixed": false,
    "isInherited": false,
    "isAllowed": false,
    "creationDate": "0001-01-01T00:00:00"
  }
]
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">204</font>: The specified permissions were successfully granted

**Failure Response**

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">415</font>: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## DELETE /\{serial}/Permissions/ 

Removes custom permissions granted to execute business operations from a specified player

**Required Scope Token**

bsn.api.main.devices.update

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The serial number of the player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Body**

- An array of [Permission](docId\:JWfyMC42cdRG5jY2SkYsU) entities

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `serial` is set to `46D89C001033`

```text
DELETE /2022/06/REST/Devices/46D89C001033/Permissions/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 322
```

This is the example request body:

```json
[
  {
    "entityId": 12345,
    "operationUID": "7d71c53e-ae40-59c4-f972-28e8b4dfabcf",
    "principal": {
      "login": "JaneDoe@brightsign.biz",
      "type": "User",
      "id": 54321
    },
    "isFixed": false,
    "isInherited": false,
    "isAllowed": false,
    "creationDate": "0001-01-01T00:00:00"
  }
]  
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">204</font>: The specified permissions were successfully deleted from the player

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{serial}/Tokens/\{token}/ 

Validates an OAuth2 device access or refresh token on a specified player

**Required Scope Token**

bsn.api.main.devices.token.validate

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The serial number of the player
- `token` <font color="#704ae0">string: </font>An OAuth2 device access or refresh token issued for the specified player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `serial` is set to `47G49C000042`
- `token` is set to `{{Token}}`

```text
GET /2022/06/REST/Device/47G49C000042/Tokens/{{Token}}/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UsersAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns the [Token Info Entity](docId\:RMBciR76z7OjsYJB_U2pP)&#x20;

**Example**

```json
{
   "token": {{Token}},
   "scope": "bdeploy certs bsn.api.device bsn.api.main.groups.regular.retrieve bsn.api.main.groups.regular.schedule.retrieve bsn.api.main.content.retrieve",
   "validFrom": "2023-11-29T17:43:55Z",
   "validTo": "2023-11-29T17:58:55Z"
}
```

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## DELETE /\{serial}/Tokens/\{token}/ 

Revokes an OAuth2 device access or refresh token on a specified player

**Required Scope Token**

bsn.api.main.devices.token.revoke

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The serial number of the player
- `token` <font color="#704ae0">string: </font>An OAuth2 device access or refresh token issued for the specified player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `serial` is set to `47G49C000042`
- `token` is set to `{{Token}}`

```text
DELETE /2022/06/REST/Device/47G49C000042/Tokens/{{Token}}/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">204</font>: The specified token was successfully deleted from the player

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{id}/Tokens/\{token}/ 

Validates an OAuth2 device access or refresh token on a specified player

**Required Scope Token**

bsn.api.main.devices.token.validate

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `id` <font color="#704ae0">int: </font>A unique identifier for the player
- `token` <font color="#704ae0">string: </font>An OAuth2 device access or refresh token issued for the specified player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `id` is set to `123456`
- `token` is set to `{{Token}}`

```text
GET /2022/06/REST/Device/123456/Tokens/{{Token}}/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns the [Token Info Entity](docId\:RMBciR76z7OjsYJB_U2pP)&#x20;

**Example**

```json
{
   "token": {{Token}},
   "scope": "bdeploy certs bsn.api.device bsn.api.main.groups.regular.retrieve bsn.api.main.groups.regular.schedule.retrieve bsn.api.main.content.retrieve",
   "validFrom": "2023-11-29T17:43:55Z",
   "validTo": "2023-11-29T17:58:55Z"
}
```

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## DELETE /\{id}/Tokens/\{token}/ 

Revokes an OAuth2 device access or refresh token on a specified player

**Required Scope Token**

bsn.api.main.devices.revoke

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `id` <font color="#704ae0">int: </font>A unique identifier for the player
- `token` <font color="#704ae0">string: </font>An OAuth2 device access or refresh token issued for the specified player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `id` is set to `123456`
- `token` is set to `{{Token}}`

```text
DELETE /2022/06/REST/Device/123456/Tokens/{{Token}}/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">204</font>: The specified token was successfully deleted from the player

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist) 

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /All/Notes/

Retrieves a list of notes for all players on the network.

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Query String Parameters**

- `filter` <font color="#704ae0">string</font> <font color="#01a0af">optional: </font>An [expression](docId:3L0afyD3xoOE-yTvfk2vs) for filtering search results. The default value is null.
- `sort` <font color="#704ae0">string</font> <font color="#01a0af">optional: </font>An expression for sorting the search results. The sort expression specifies the entry used for sorting and the ascending/descending (ASC/DESC) sorting order (see [this page](docId:3L0afyD3xoOE-yTvfk2vs) for more information). The default value is null.
- `marker` <font color="#704ae0">string</font> <font color="#01a0af">optional: </font>A value specifying which page to retrieve. This value is useful if the `isTruncated` entry in the response body of the previous GET call indicates that the number of autorun plugin instances exceeds the `pageSize`. This parameter is only required if you need more elements in the paged list than the `pageSize` (100).
- `pageSize` <font color="#704ae0">int</font> <font color="#01a0af">optional: </font>The maximum number of player instances that can be contained in the response body. This defaults to the maximum allowed page size (100).

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `pageSize` is set to `1`
- `filter` is set to `[Device].[Id] IS '*inaccessible*'`
- `sort` is set to `[LastModifiedDate] DESC`
- `marker` value is set to the `[PagedList].[NextMarker]` property value from the previous BSN.Cloud API response.

```text
GET /2022/06/REST/Devices/All/Notes/?pageSize=1&sort=%5BLastModifiedDate%5D%20DESC&filter=%5BDevice%5D.%5BId%5D%20IS%20%27%2Ainaccessible%2A%27&marker=oxNjo0NydaLDY0Njg2NA%3D HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response Body**

<font color="#089a4d">200</font>: Returns a [paged list](docId\:Pwwr0Ln3-binNgL-mr3St) of [Player Note](docId\:amShqPc9ioqfHZaJ-sZmI) instances on a network. This will return not more than 100 entities along with the information necessary to return any other remaining pages.

:::ExpandableHeading
Example

```json
{
   "items": [   {
      "device":       {
         "id": 12345,
         "serial": "ABCD12345678"
      },
     "notes": "This player is behind the TV in an inaccessible place",
     "creationDate": "2024-01-10T18:30:11.123Z",
     "lastModifiedDate": "2024-03-15T15:51:01.123Z"
   }],
   "totalItemCount": 1024,
   "matchingItemCount": 1,
   "pageSize": 100,
   "nextMarker": "LDExOTc4M2A=",
   "prevMarker": "LDExOTc489ui",
   "isTruncated": false,
   "sortExpression": "[LastModifiedDate] DESC",
   "filterExpression": "[Device].[Id] IS '*inaccessible*'"
}
```
:::

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{id}/Notes/

Return the notes for a specified player

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

`id` <font color="#704ae0">int: </font>A unique identifier for the player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `id` is set to `12345`

```text
GET /2022/06/REST/Devices/12345/Notes/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
If-Modified-Since: Mon, 11 Mar 2024 10:00:00 GMT
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response with Body**

<font color="#089a4d">200</font>: Returns the [Player Note](docId\:amShqPc9ioqfHZaJ-sZmI) instance for the specified player.

**Example**

```json
{
   "device":    {
      "id": 12345,
      "serial": "ABCD12345678"
   },
   "notes": "This player is behind the TV in an inaccessible place",
   "creationDate": "2024-01-10T18:30:11.123Z",
   "lastModifiedDate": "2024-03-15T15:51:01.123Z"
}
```

**Success Response** 

<font color="#089a4d">304</font>: The resource was not modified since the time specified in the “If-Modified-Since” header

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist) 

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## PUT /\{id}/Notes/

Updates the notes for the specified player. 

**Required Scope Token**

bsn.api.main.devices.update

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `id` <font color="#704ae0">int: </font>A unique identifier for the player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Body**

- The [Player Note](docId\:amShqPc9ioqfHZaJ-sZmI) 

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `id` is set to `12345`

```text
PUT /2022/06/REST/Devices/12345/Notes/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
If-Unmodified-Since: Wed, 13 Mar 2024 15:51:01 GMT
Content-Type: application/json
Content-Length: 59
```

This is the example request body:

```json
{
   "device":    {
      "id": 12345,
      "serial": "ABCD12345678"
   },
   "notes": "This player is behind the TV in an inaccessible place",
   "creationDate": "0001-01-01T00:00:00",
   "lastModifiedDate": "0001-01-01T00:00:00"
}
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">204</font>: The notes on the specified player were successfully updated

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">412</font>: Precondition failed (the resource changed since the time specified in the “If-Unmodified-Since” header value)

<font color="#9a0808">415</font>: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## GET /\{serial}/Notes/

Return the notes for a specified player

**Required Scope Token**

bsn.api.main.devices.retrieve

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The serial number of the player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `id` is set to `ABCD12345678`

```text
GET /2022/06/REST/Devices/ABCD12345678/Notes/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
If-Modified-Since: Mon, 11 Mar 2024 10:00:00 GMT
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response with Body**

<font color="#089a4d">200</font>: Returns the [Player Note](docId\:amShqPc9ioqfHZaJ-sZmI) instance for the specified player

**Example**

```json
{
   "device":    {
      "id": 12345,
      "serial": "ABCD12345678"
   },
   "notes": "This player is behind the TV in an inaccessible place",
   "creationDate": "2024-01-10T18:30:11.123Z",
   "lastModifiedDate": "2024-03-15T15:51:01.123Z"
}
```

**Success Response** 

<font color="#089a4d">304</font>: The resource was not modified since the time specified in the “If-Modified-Since” header

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request is malformed and therefore invalid

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist) 

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error

## PUT /\{serial}/Notes/

Updates the notes for the specified player

**Required Scope Token**

bsn.api.main.devices.update

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Segment**

- `serial` <font color="#704ae0">string: </font>The serial number of the player

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Body**

- The [Player Note](docId\:amShqPc9ioqfHZaJ-sZmI) 

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Request Example**

The example request parameters and headers are set as follows:

- `serial` is set to `ABCD12345678`

```text
PUT /2022/06/REST/Devices/ABCD12345678/Notes/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
If-Unmodified-Since: Wed, 13 Mar 2024 15:51:01 GMT
Content-Type: application/json
Content-Length: 59
```

This is the example request body:

```json
{
   "device":    {
      "id": 12345,
      "serial": "ABCD12345678"
   },
   "notes": "This player is behind the TV in an inaccessible place",
   "creationDate": "0001-01-01T00:00:00",
   "lastModifiedDate": "0001-01-01T00:00:00"
}
```

\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_

**Success Response**

<font color="#089a4d">204</font>: The note on the specified player was successfully updated

**Failure Response**

<font color="#9a0808">300</font>: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

<font color="#9a0808">400</font>: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules

<font color="#9a0808">401</font>: The access token is invalid or not specified

<font color="#9a0808">403</font>: The supplied access token, though valid, doesn't provide access to this method 

<font color="#9a0808">404</font>: The server cannot find the requested resource (the path does not exist)

<font color="#9a0808">406</font>: The server cannot return the data representation that you requested (as specified in the "Accept" header)

<font color="#9a0808">412</font>: Precondition failed (the resource changed since the time specified in the “If-Unmodified-Since” header value)

<font color="#9a0808">415</font>: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

<font color="#9a0808">5XX</font>: Any 500 code is an internal server error
