---
title: Device APIs
slug: legacy-docs/device-apis
docTags: 
createdAt: 2025-03-11T07:03:32.130Z
---

## Device Entity

The Device entity has the following properties:

- `Id` int: (read only) The identifier and primary key of the Device instance.
- `Serial` string: (read only) The serial number of the device. This is a unique alternate key for the Device instance.
- `Name` string: The user-defined name of the device. This designation does not need to be unique within the scope of an account.
- `Description` string: The user-defined description of the device. The description does not need to be unique within the scope of an account.
- `ConcatUnitNameAndSerial` bool: A flag specifying the desired device naming method. A True value indicates that clients should append the device serial number to the device name. A False value indicates that the device name should have nothing appended to it.
- `CurrentSubscription` DeviceSubscription:(read only) A DeviceSubscription instance representing the BrightSign Network subscription that is currently in use by the associated device.
- `TargetGroupId` int: The identifier of the Group or BrightWallGroup instance to which the device is assigned. 
- `ReportedGroupId` int:(read only) The identifier of the Group or BrightWallGroup instance that the device reported belonging to during its last synchronization with the server.
- `TargetBrightWallId` int: The identifier of the BrightWall instance (belonging to the specified BrightWall Group instance) to which the device is assigned. This value is set to Null when the device is assigned to a Group instance.
- `TargetBrightWallScreenNumber` int: The BrightWall screen number to which the device is assigned. This value is set to Null when the device is assigned to a Group instance.
- `ReportedBrightWallId` int:(read only) The identifier of the BrightWall instance that the device reported belonging to when it last synchronized with the server. This value is set to Null when the device is assigned to a Group instance.
- `ReportedBrightWallScreenNumber` int:(read only) The BrightWall screen number that the device reported belonging to when it last synchronized with the server. This value is set to Null when the device is assigned to a Group instance.
- `Presentation` PresentationInfo:(read only) A PresentationInfo or BrightWallPresentationInfo structure that provides information about the current presentation (i.e. the presentation that the device reported playing when it last synchronized with server).
- `Model` DeviceModel:(read only) A DeviceModel enumeration indicating the model number of the device.
- `Family` DeviceFamily: (read only) A DeviceFamily enumeration specifying the model family of the device.
- `AutorunVersion` string:(read only) The version of autorun script that the device was using the last time it synced with the server.
- `FirmwareVersion` string:(read only) The version of firmware that the device was using the last time it synced with the server.
- `CardSize` string:(read only) The total size of the device storage. This information is displayed in the format “&#x7B;0} MiB” or “\{0\:F2} GiB” (where F2 is equivalent to a fixed-point number with two decimal digits (e.g. “1.75 GiB”)).
- `CardFreeSize` string:(read only) The amount of free space on the device storage. This information is displayed in the format “&#x7B;0} MiB” or “\{0\:F2} GiB” (where F2 is equivalent to a fixed-point number with two decimal digits (e.g. “1.75 GiB”)).
- `TargetTimeZone` string: The string name of the time zone that the device should use.
- `ReportedTimeZone` string: (read only) The string name of the time zone that the device reported using the last time it synced with the server.
- `ContentCheckPeriod` DeviceConnectionsPeriod: A DeviceConnectionsPeriod enumeration representing the time interval between synchronization events, when the device checks with the BrightSign Network servers for content updates.
- `ContentDownloadsStartTime` Nullable: The time each day (according to the reported time zone) when the device should begin downloading content from the BrightSign Network persistent storage. A Null value indicates that the device can download content at any time during the day.
- `ContentDownloadsEndTime` Nullable: The time each day (according to the reported time zone) when the device should finish downloading content from the BrightSign Network persistent storage. A Null value indicates that the device can download content at any time during the day.
- `HealthReportingPeriod` DeviceConnectionsPeriod: A DeviceConnectionsPeriod enumeration representing the interval between health-report events, when the device checks in with the server to report its status.
- `HealthReportingStartTime` Nullable: The time each day (according to the reported time zone) when the device should begin sending health status updates to the BrightSign Network servers. A Null value indicates that the device can send reports at any time during the day.
- `HealthReportingEndTime` Nullable: The time each day (according to the reported time zone) when the device should stop sending health status updates to the BrightSign network servers. A Null value indicates that the device can send reports at any time during the day.
- `LastContentCheckTime` DateTime:(read only) A UTC timestamp indicating when the device last checked in with the BrightSign Network servers for content updates.
- `LastSyncSpecProcessedTime` DateTime
- `LastContentDownloadStartTime` DateTime:(read only) A UTC timestamp indicating when the device last began downloading content from the BrightSign Network servers.
- `LastContentDownloadEndTime` DateTime: (read only) A UTC timestamp indicating when the device last completed downloading content from the BrightSign Network servers.
- `LastHeartbeatTime` DateTime: (read only) A UTC timestamp indicating when the device last reported its health status to the BrightSign Network servers.
- `LastErrorTime` DateTime: (read only) A UTC timestamp indicating the most recent time that the device reported a current error.
- `HealthStatus` DeviceHealthStatus:(read only) A DeviceHealthStatus enumeration value representing the current health status of the device.
- `NetworkSettings` DeviceNetworkSettings: A DeviceNetworkSettings structure containing network settings for the associated device.
- `LogsSettings` DeviceLogsSettings: A DeviceLogsSettings structure containing logging settings for the associated device.
- `RemoteSnapshotSettings` RemoteSnapshotSettings: A RemoteSnapshotSettings structure containing Remote Snapshot settings for the player.
- `EnableDiagnosticWebServer` bool: A flag specifying whether the Diagnostic Web Server should be enabled on the device.
- `DiagnosticWebServerPassword` string: A password for restricting access to the Diagnostic Web Server. For security reasons, this property will always return Null (even if it has a value) when called by the following device management web methods: `GetAllDevices()`, `GetSpecifiedDevices()`, `FindDevices()`, `GetDevice()`, `GetDeviceBySerial()`.

## DeviceSubscription Entity

The DeviceSubscription entity represents the application of a purchased BrightSign Network subscription to a device. It has the following properties:

- `Id` int:(read only) The identifier and primary key of a DeviceSubscription instance.
- `AccountId` int:(read only) The identifier of the BrightSign Network account that owns the DeviceSubscription instance.
- `DeviceId` int:(read only) The identifier of the Device instance that is currently using the DeviceSubscription instance. This value can be Null if the subscription is not currently assigned to a device.
- `Type` DeviceSubscriptionType:(read only) A DeviceSubscriptionType enumeration value representing the type of the DeviceSubscription instance.
- `Status` DeviceSubscriptionStatus:(read only) A DeviceSubscriptionStatus enumeration value representing the current status of the DeviceSubscription instance.
- `CreationDate` DateTime:(read only) A UTC timestamp indicating when the DeviceSubscription instance was created in the BrightSign Network.
- `ActivationDate` Nullable:(read only) A UTC timestamp indicating when the subscription was activated by a device. This property is Null if the subscription has not been activated yet.
- `SuspensionDate` Nullable:(read only) A UTC timestamp indicating when the status of the DeviceSubscription was changed to “Suspended”. This property is Null if the DeviceSubscriptionStatus is currently “Active”.
- `ExpirationDate` Nullable: A UTC timestamp indicating when the DeviceSubscription will expire. This property is Null if the DeviceSubscription instance has not been activated.

## DeviceLogReport Entity

The DeviceLogReport entity represents a single device log file stored on the servers. It has the following properties:

- `Id` int:(read only) The identifier and primary key of the DeviceLogReport instance.
- `Name` string:(read only) The name of the DeviceLogReport instance that is visible to end users.
- `Type` DeviceLogType:(read only) The type of the DeviceLogReport instance. This value is represented by a DeviceLogType enumeration.
- `StartDate` DateTime:(read only) A UTC timestamp that represents the beginning of the time range covered by the DeviceLogReport instance.
- `EndDate` DateTime:(read only) A UTC timestamp that represents the end of the time range covered by the DeviceLogReport instance.
- `LastUpdate` DateTime: (read only) A UTC timestamp indicating when the latest portion of the device log has been appended to the current DeviceLogReport instance.
- `FilePath` string:(read only) An external URL indicating where the device log report file is saved in the persistent storage.

## DeviceSubscriptionType Enumeration

The DeviceSubscriptionType enumeration can have the following values:

- `Grace`: A free subscription that is created automatically for a device that connects to the BrightSign Network for the first time. A grace subscription lasts for 30 days and can only be used once by a single device.
- `Demo`: A free subscription that can only be created by the BrightSign Network administrators. BrightSign network accounts are limited to a maximum of four demo subscriptions, and each device assigned a demo subscription has content downloads capped at 1 GiB.
- `Monthly`: A commercial subscription that is valid for thirty days after the activation date.
- `Quarterly`: A commercial subscription that is valid for three months after the activation date.
- `Yearly`: A Commercial subscription that is valid for one year after the activation date.

## DeviceLogType Enumeration

The DeviceLogType enumeration can have the following values:

- `Event` 
- `Playback`
- `Diagnostic`
- `State`

## DeviceSubscriptionStatus Enumeration

The DeviceSubscriptionStatus enumeration can have the following values:

- `Active`: The normal operational status of a subscription.
- `Suspending`: An intermediate status between “Active” and “Suspended”, indicating that the subscription is still operational but will be suspended in less than 14 days.
- `Suspended`: The status of a subscription that is non-operational but has not expired yet.

## DeviceConnectionsPeriod Enumeration

The DeviceConnectionsPeriod enumeration represents the interval of time between device-server communication events. It can have the following values:

- `Custom`: The value assigned to all devices that are configured using BrightAuthor.
- `ThirtySeconds`
- `OneMinute` 
- `FiveMinutes`
- `FifteenMinutes`
- `ThirtyMinutes`
- `OneHour`
- `SixHours`
- `TwelveHours`
- `OneDay`

:::hint{type="info"}
The ThirtySeconds and OneMinute values may result in connection instability and are for testing purposes only.
:::

## DeviceNetworkSettings Structure

The DeviceNetworkSettings structure has the following values:

- `ProxyServer` string: The host name and port of a proxy server for the device to work through.
- `TimeServer` string: The URL of an NTP service endpoint or HTTP 1.1 resource that the device should use as a source for clock synchronization.
- `Broadcast` string
- `Wired` DeviceWiredSettings: A DeviceWiredSettings structure that contains wired connection settings for the device.
- `Wireless` DeviceWirelessSettings: A DeviceWirelessSettings structure that contains wireless settings for the device.
- `WiredConnection Priority` int: A number that defines the priority of a wired connection for the device.
- `WirelessConnectionPriority` int: A number that defines the priority of a wireless connection for the device

## DeviceWiredSettings Structure

The DeviceWiredSettings structure has the following values:

- `UseDHCP` bool: A flag specifying whether the device should use DHCP to obtain settings for the wired connection. If the `UseDHCP` bool property is set to `False`, then the following properties should be defined:
- `IpAddress` string: A user-defined IPv4 address for the device wired connection.
- `SubnetMask` string: A user-defined IPv4 subnetwork mask for the device wired connection.
- `DefaultGateway` string: A user-defined IPv4 default gateway address for the device wired connection.
- `DNS1` string: A user-defined IPv4 address of a preferred DNS server for the device wired connection.
- `DNS2` string: A user-defined IPv4 address of an alternate DNS server for the device wired connection.
- `DNS3` string: A user-defined IPv4 address of a second alternate DNS server for the device wired connection.

## DeviceWirelessSettings Structure

The DeviceWirelessSettings structure has the following values:

- `Enabled` bool: A flag specifying whether the wireless module should be enabled or disabled.
- `SSID` string: The service set identifier of the wireless network to which the device should connect.
- `Passphrase` string: The security key for the specified wireless network. For security reasons, this property will always return Null (even if it has a value) when called by the following device management web methods: `GetAllDevices()`, `GetSpecifiedDevices()`, `FindDevices()`, `GetDevice()`, `GetDeviceBySerial()`.
- `UseDHCP` bool: A flag specifying whether the device should use DHCP to obtain settings for the wireless connection.  If the `UseDHCP` bool property is set to `False`, then the following properties should be defined:
- `IpAddress` string: A user-defined IPv4 address for the device wireless connection.
- `SubnetMask` string: A user-defined IPv4 subnetwork mask for the device wireless connection.
- `DefaultGateway` string: A user-defined IPv4 address of a default gateway for the device wireless connection.
- `DNS1` string: A user-defined IPv4 address of a preferred DNS server for the device wireless connection.
- `DNS2` string: A user-defined IPv4 address of an alternate DNS server for the device wireless connection.
- `DNS3` string: A user-defined IPv4 address of a second alternate DNS server for the device wireless connection.

## DeviceLogsSettings Structure

The DeviceLogsSettings structure has the following values:

- `EnableDiagnosticLog` bool: A flag specifying whether the device should generate a diagnostic log.
- `EnableEventLog` bool: A flag specifying whether the device should generate an event log.
- `EnablePlaybackLog` bool: A flag specifying whether the device should generate a playback log.
- `EnableStateLog` bool: A flag specifying whether the device should generate a state log.
- `UploadAtBoot` bool: A flag specifying whether the device should upload the current logs to the BrightSign Network during the boot process.
- `UploadTime` Nullable: The time each day (according to the reported time zone) when the device should upload its current logs. A Null value indicates that the device should not regularly upload logs. The device can still upload logs during the boot process or via direct commands from the user.

## RemoteSnapshotSettings Structure

The RemoteSnapshotSettings structure has the following values:

- `Enabled` bool: A flag specifying whether the Remote Snapshot feature is enabled or disabled on the device.
- `CaptureInterval` TimeSpan: The amount of time to elapse between each screenshot. This value can be between 00:01:00 and 24:00:00.
- `ScreenShotsCountLimit` ushort: The maximum number of Remote Snapshot images allowed on player storage. Once this number is reached, the player will begin deleting Remote Snapshot images, beginning with the oldest first. This value can range from 1 to 100.
- `ImageQuality` byte: The quality of Remote Snapshot images on the player. This value can range from 1 to 100.
- `ScreenOrientation` ScreenOrientation: A ScreenOrientation enumeration indicating whether the Remote Snapshot images are landscape or portrait oriented.

## ScreenOrientation Enumeration

The ScreenOrientation enumeration has the following values:

- `Landscape`
- `Portrait`

## DeviceHealthStatus Enumeration

The DeviceHealthStatus enumeration has the following values:

- `Normal`
- `Warning`
- `Error`
- `NoSubscription`

## DeviceError Structure

The DeviceError structure has the following values.

- `Timestamp` DateTime:(read only) A UTC timestamp indicating the most recent time that the device reported a current error.
- `ErrorName` string
- `ErrorEvent` string
- `Reason` string
- `ResponseCode` int

## DeviceDownload Structure

The DeviceDownload structure has the following values:

- `Timestamp` DateTime:(read only) A UTC timestamp indicating when the device reported the current download.
- `FileName` string:(read only) The name of the file that is being (or has been) downloaded by the device.
- `FileHash` string:(read only) A SHA1 hash of the file that is being (or has been) downloaded by the device.
- `Progress` int: (read only) A value ranging from 0 to 100 indicating the progress of the current download.
- `Status` string:(read only) The status of the current download.

## Device Management Web Methods

:::hint{type="info"}
Devices can only be added to a BrightSign Network account automatically during the player setup process. Consequently, there is no equivalent CreateDevice() web method in the API.
:::

### PagedList\<Device> GetAllDevices(string marker, int pageSize)

Retrieves the next page of the Devices list, sorted by serial number. This method will return no more items than the defined page size.

**Required** **Permissions**

Device: View Devices

**Description**

- `marker` string: The `Serial` string of the last Device instance on the previous page. If the value is Null, then the method will retrieve the first page.
- `pageSize` int: The maximum number of objects returned by the method. If the list of objects that match the search criteria exceeds the `pageSize` int limit, the returned list will indicate that it is truncated. If the integer is not positive, then the method will return the maximum allowed number of objects. Attempting to request more objects than is allowed will lead to the same result, but without an error.

### List\<Device> GetSpecifiedDevices(int\[] deviceIds)

Retrieves a list of Device instances matching the specified identifiers. The list is sorted by device serial number. The identifiers of nonexistent Device instances will be ignored.

**Required** **Permissions**

Device: View Devices

**Parameters**

- `deviceIds` Int\[]: An array of `Id`  int values for the Device instances being requested. The number of items is limited to 100 by the server. Attempting to request more than the maximum allowed number of objects will cause an error, while passing an empty array will lead to an immediate empty response without an error.

### PagedList\<Device> FindDevices(string namePattern, string marker, int pageSize)

Retrieves the next page of a Device list containing names matched with the specified pattern. The returned list is organized by `Serial` string and may not contain more items than the defined page size.

**Required** **Permissions**

Device: View Devices

**Parameters**

- `namePattern`  string : The exact `Name`  string of the Device instance (or its wildcard-based pattern). Supported wildcards currently include “\*”, “?”, and “\[‘and’]”.
- `marker` string: The `Serial` string of the last Device instance on the previous page. If the value is Null, then the method will retrieve the first page.
- `pageSize` int: The maximum number of objects returned by the method. If the list of objects that match the search criteria exceeds the `pageSize` int limit, the returned list will indicate that it is truncated. If the integer is not positive, then the method will return the maximum allowed number of objects. Attempting to request more objects than is allowed will lead to the same result, but without an error.

### Device GetDevice(int deviceId)

Retrieves a single Device instance with the specified `Id` int. This method returns Null if a Device instance with the specified identifier does not exist.

**Required** **Permissions**

Device: View Devices

**Parameters**

- `DeviceId` int: The identifier and primary key of the requested Device instance.

### Device GetDeviceBySerial(string serial)

Retrieves a single Device instance with the specified serial number. This method returns Null if a Device instance with the specified identifier does not exist.

**Required** **Permissions**

Device: View Devices

**Parameters**

- `serial` string: The serial number of the device. This is an alternate key for a Device instance.

### PagedList\<DeviceError> GetDeviceErrors(int deviceId, string marker, int pageSize)

Retrieves the next page of the DeviceError list, sorted by Timestamp. This method will return no more items than the defined page size.

**Required** **Permissions**

Device: View Device Errors

**Parameters**

- `deviceId` int: The identifier and primary key of the device reporting the requested errors. The method returns Null if a Device instance with the specified identifier does not exist.
- `marker` string: The timestamp of the last DeviceError instance on the previous page. If the value is Null, then the method will retrieve the first page.
- `pageSize` int: The maximum number of objects returned by the method. If the list of objects that match the search criteria exceeds the `pageSize` int limit, the returned list will indicate that it is truncated. If the integer is not positive, then the method will return the maximum allowed number of objects. Attempting to request more objects than is allowed will lead to the same result, but without an error.

### PagedList\<DeviceDownload> GetDeviceDownloads(int deviceId, string marker, int pageSize)

Retrieves the next page of the DeviceDownload list, sorted by timestamp. This method will return no more items than the defined page size.

**Required** **Permissions**

Device: View Device Errors

**Parameters**

- `[deviceId` int: The identifier and primary key of the device conducting the requested downloads. The method returns Null if a Device instance with the specified identifier does not exist.
- `marker` string: The timestamp of the last DeviceDownload instance on the previous page. If the value is Null, then the method will retrieve the first page.
- `pageSize` int: The maximum number of objects returned by the method. If the list of objects that match the search criteria exceeds the `pageSize` int limit, the returned list will indicate that it is truncated. If the integer is not positive, then the method will return the maximum allowed number of objects. Attempting to request more objects than is allowed will lead to the same result, but without an error.

### bool RenameDevice(int deviceId, string newName, string newDescription)

Updates the `Name` string and `Description` string of the specified Device instance. This method returns True only if the operation was completely successful. Otherwise, it returns False.

**Required** **Permissions**

Device: Update Device

**Parameters**

- `deviceId` int: The identifier and primary key of the Device instance to be renamed. If a Device instance with the specified identifier does not exist, the method will immediately return False without an error.
- `newName` string: The new name for the specified Device instance. If the string is greater than 128 characters, the method will return a descriptive error.
- `newDescription` string: The new description for the specified Device instance. If the string is greater than 128 character, the method will return a descriptive error.

### bool UpdateDeviceRemoteSnapshotSettings(int DeviceId, RemoteSnapshotSettings settings)

Updates the Remote Snapshot settings structure of the specified Device instance. This operation returns True only if it is completely successful. Otherwise, it returns False.

**Required** **Permissions**

Device: Update Device

**Parameters**

- `DeviceId` int: The identifier and primary key of the Device instance to be updated. If a Device instance with the specified identifier does not exist, the method will immediately return False without an error.
- `settings` RemoteSnapshotSettings: A RemoteSnapshotSettings structure with updated values for the specified device. If this parameter is set to Null, then the method will immediately return False without an error. A descriptive error will be returned if the specified `UploadTime` Nullable value is less than 00:00:00 or greater than 23:59:59.

### bool UpdateDeviceLogsSettings(int deviceId, DeviceLogsSettings settings)

Updates the log settings structure of the specified Device instance. This operation returns True only if it is completely successful. Otherwise, it returns False.

**Required** **Permissions**

Device: Update Device

**Parameters**

- `DeviceId` int: The identifier and primary key of the Device instance to be updated. If a Device instance with the specified identifier does not exist, the method will immediately return False without an error.
- `settings` DeviceLogsSettings: A DeviceLogsSettings structure with updated values for the specified device. If this parameter is set to Null, then the method will immediately return False without an error. A descriptive error will be returned if the specified `UploadTime` Nullable value is less than 00:00:00 or greater than 23:59:59.

### bool ReassignDevices(int\[] deviceIds, int newGroupId, int(?) newBrightWallId, byte(?) newBrightWallScreenNumber)

Reassigns the specified Device instance(s) to the specified Group instance. You may optionally assign a single device to a BrightWall instance if the newGroupId value corresponds to a BrightWallGroup instance. This operation returns True only if it is completely successful. Otherwise, it returns False.

**Required** **Permissions**

Device: Change Target Group – Group: Remove Device, Add Device

**Parameters**

- `deviceIds` int\[]: An array of identifiers corresponding to the Device instance(s) that should be reassigned. The number of passed items is limited to 100 by the server. Attempting to reassign more than the allowed number of objects will result in an error. Passing an array containing a Device `Id` int value that does not correspond to an existing Device instance will also result in an error. Passing an empty array will lead to an immediate False response without an error.
- `newGroupId` int: The identifier of the Group instance that the Device instance(s) should be reassigned to. If this value does not match an existing Group instance, then the Device instance(s) will be reassigned to the default “Unassigned” group. A descriptive error will be returned if this value corresponds to a BrightWallGroup instance but a newBrightWallId and/or newBrightWallScreenNumber is not specified.
- `newBrightWallId` int: The identifier of the BrightWall instance (belonging to the specified BrightWall Group) that the Device instance should be reassigned to. A descriptive error will be returned if this value is specified but the newGroupId corresponds to a Group instance.
- `newBrightWallScreenNumber` byte: The BrightWall screen number that the Device instance should be assigned to. A descriptive error will be returned if this value is specified but the newGroupId corresponds to a Group instance.

### bool ForceDevicesReboot(int\[] deviceIds)

Enables the flags indicating that the specified device(s) should reboot during the next check-in event. This operation returns True only if it is completely successful. Otherwise, it returns False.

**Required** **Permissions**

Device: Reboot Device

**Parameters**

- `deviceIds` int\[]\:: An array of identifiers corresponding to the Device instance(s) that should be rebooted. The number of passed items is limited to 100 by the server. Attempting to reboot more than the allowed number of objects will result in an error. Passing an array containing a Device `Id` int value that does not correspond to an existing Device instance will also result in an error. Passing an empty array will lead to an immediate False response without an error.

### bool CancelDevicesReboot(int\[] deviceIds)

Disables the flags indicating that the specified device(s) should reboot during the next check-in event. This operation returns True only if it is completely successful. Otherwise, it returns False.

**Required** **Permissions**

Device: Reboot Device

**Parameters**

- `deviceIds` int\[]\:: An array of identifiers corresponding to the Device instance(s) that should be affected. The number of passed items is limited to 100 by the server. Attempting to target more than the allowed number of objects will result in an error. Passing an array containing a Device `Id` int value that does not correspond to an existing Device instance will also result in an error. Passing an empty array will lead to an immediate `False` response without an error.

### bool ForceDevicesRecovery(int\[] deviceIds, bool reformat)

Enables the flags indicating that the specified device(s) should download and run a recovery script during the next check-in event. This operation returns `True` only if it is completely successful. Otherwise, it returns `False`.

**Required** **Permissions**

Device: Recover Device

**Parameters**

- `deviceIds` int\[]\:: An array of identifiers corresponding to the Device instance(s) that should be recovered. The number of passed items is limited to 100 by the server. Attempting to recover more than the allowed number of objects will result in an error. Passing an array containing a Device `Id`  int value that does not correspond to an existing Device instance will also result in an error. Passing an empty array will lead to an immediate False response without an error.
- `reformat` bool: A flag indicating whether the specified devices should also reformat their local storage.

### bool CancelDevicesRecovery(int\[] deviceIds)

Disables the flags indicating that the specified device(s) should download and run a recovery script during the next check-in event. This operation only returns True if it is completely successful. Otherwise, it returns `False`.

**Required** **Permissions**

Device: Recover Device

**Parameters**

- `deviceIds` int\[]: An array of identifiers corresponding to the Device instance(s) that should be affected. The number of passed items is limited to 100 by the server. Attempting to target more than the allowed number of objects will result in an error. Passing an array containing a Device `Id`  int value that does not correspond to an existing Device instance will also result in an error. Passing an empty array will lead to an immediate `False` response without an error.

### bool ForceDevicesLogsUpload(int\[] deviceIds)

Enables the flags indicating that the specified device(s) should upload their current logs to the BrightSign Network servers during the next check-in event. This operation returns `True` only if it is completely successful. Otherwise, it returns `False`.

**Required** **Permissions**

Device: Force Logs Upload

**Parameters**

- `deviceIds` int\[]: An array of identifiers corresponding to the Device instance(s) that should be affected. The number of passed items is limited to 100 by the server. Attempting to target more than the allowed number of objects will result in an error. Passing an array containing a Device `Id` int value that does not correspond to an existing Device instance will also result in an error. Passing an empty array will lead to an immediate `False` response without an error.

### bool CancelDevicesLogsUpload(int\[] deviceIds)

Disables the flags indicating that the specified device(s) should upload their current logs to the BrightSign Network servers during the next check-in event. This operation returns `True` only if it is completely successful. Otherwise, it returns `False`.

**Required** **Permissions**

Device: Force Logs Upload

**Parameters**

- `deviceIds` int\[]: An array of identifiers corresponding to the Device instance(s) that should be affected. The number of passed items is limited to 100 by the server. Attempting to target more than the allowed number of objects will result in an error. Passing an array containing a Device `Id` int value that does not correspond to an existing Device instance will also result in an error. Passing an empty array will lead to an immediate `False` response without an error.

### PagedList\<DeviceLogReport> GetDeviceLogReports(int deviceId, DeviceLogType logType, string marker, int pageSize)

Retrieves the next page of the DeviceLogReport list associated with the specified Device instance. The list is sorted chronologically by the `[DateTime] StartDate` of the log report. A device log, represented by a DeviceLogReport entity, can be downloaded from persistent storage using the `[string] FilePath` URL of the entity\*.\* Note that these URLs point to un-archived files that are in OpenXML format and may be up to 2GB in size each.

**Required** **Permissions**

Device: View Device Log Reports

**Parameters**

- `DeviceId` int: The identifier of the Device instance associated with the listed device logs. If a Device instance with the specified identifier does not exist, the server will return a Null response without error.
- `logType` DeviceLogType: The type of DeviceLogReport instances to be retrieved. Log types are represented with the DeviceLogType enumeration.
- `marker` string: The name of the last DeviceLogReport instance on the previous page. If the passed string is Null or empty, the first page of the list will be returned.
- `pageSize` int: The maximum number of objects returned by the method. If the list of objects that match the search criteria exceeds the `pageSize` int limit, the returned list will indicate that it is truncated. If the integer is not positive, then the method will return the maximum allowed number of objects. Attempting to request more objects than is allowed will lead to the same result, but without an error.

### bool DeleteDevices(int\[] deviceIds)

Deletes the specified Device instance(s) and releases the associated DeviceSubscription instance(s), allowing them to be reassigned. This operation returns `True` only if it is completely successful. Otherwise, it returns `False`.

:::hint{type="info"}
If the physical device associated with a deleted Device instance reconnects to the BrightSign Network, the instance will be restored, but without the DeviceSubscription instance that was previously assigned to it.
:::

**Required** **Permissions**

Device: Delete Device

Parameters

- `deviceIds` int\[]: An array of identifiers corresponding to the Device instance(s) that should be deleted. The number of passed items is limited to 100 by the server. Attempting to delete more than the allowed number of objects will result in an error. Passing an array containing a Device `Id` int value that does not correspond to an existing Device instance will also result in an error. Passing an empty array will lead to an immediate `False` response without an error.

