---
title: "Registers a new device."
method: POST
path: "/devices"
tags: ["Devices"]
---

# Registers a new device.

`POST /devices`

## Query parameters

- `activation_code` string

## Request body

- DeviceRequest — Request model used for creating and updating devices in the RevelDigital platform. Contains the mutable properties that can be set when registering or modifying a device.
  - `name` string, nullable — The device name
  - `tags` string, nullable — Tags associated with this device
  - `timeZone` string, nullable — The timezone of the device
  - `language_code` string, nullable — The language code of the device
  - `group_id` string, nullable — The group id
  - `last_service` string, date-time, nullable — The last service date
  - `mac_address` string, nullable — The MAC address of this device, is applicable
  - `location` Location
    - `city` string, nullable — City
    - `state` string, nullable — State
    - `county` string, nullable — County
    - `country` string, nullable — Country
    - `postal_code` string, nullable — Postal code
    - `address` string, nullable — Address
    - `latitude` number, double, nullable — Latitude
    - `longitude` number, double, nullable — Longitude
  - `beacon` Beacon — Represents Bluetooth Low Energy (BLE) beacon configuration for a device. Beacons enable proximity-based interactions, allowing mobile devices to detect nearby digital signage and trigger location-aware content or notifications.
    - `distance` number, double, nullable — The detection distance threshold in meters. Mobile devices within this range will receive beacon notifications.
    - `calibration` number, double, nullable — The RSSI calibration value (measured power at 1 meter) used for distance estimation. This value is typically negative (e.g., -59 dBm) and device-specific. Accurate calibration improves proximity zone detection accuracy.
    - `phone` string, nullable — Contact phone number associated with this beacon location. Displayed to users who interact with the beacon via mobile app.
    - `emailAddress` string, nullable — Contact email address associated with this beacon location. Displayed to users who interact with the beacon via mobile app.
    - `website` string, nullable — Website URL associated with this beacon location. Can be opened by mobile app when user interacts with beacon notification.
    - `devices` string[], nullable — List of device IDs associated with this beacon configuration. Used for grouping multiple devices that share the same beacon identity.
    - `rating` number, double, nullable — Rating value for this beacon location (e.g., customer rating, priority score). Can be used to rank or filter beacon-triggered content.
    - `uuid` string, nullable — The iBeacon UUID (Universally Unique Identifier). A 128-bit identifier typically shared by all beacons in an organization. Format: "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
    - `major` string, nullable — The iBeacon Major value (0-65535). Typically used to identify a specific location or venue within an organization.
    - `minor` string, nullable — The iBeacon Minor value (0-65535). Typically used to identify a specific beacon within a location.
    - `notification_delay` integer, nullable — Delay in seconds before sending a notification after beacon detection. Prevents notification spam when users briefly pass by a beacon. A value of 0 or null means immediate notification.
    - `instance_id` string, nullable — The Eddystone Instance ID (6 bytes, 12 hex characters). Identifies a specific beacon within an Eddystone namespace.
    - `namespace` string, nullable — The Eddystone Namespace ID (10 bytes, 20 hex characters). Typically derived from a domain name or organization identifier.

## Response `201`

Created

- Device — Represents a digital signage player device in the RevelDigital platform. A device is a registered hardware unit that displays content according to assigned schedules and templates.
  - `id` string, nullable — The device id
  - `name` string, nullable — The device name
  - `group_name` string, nullable — The group name
  - `group_id` string, nullable — The group id
  - `tags` string, nullable — Tags associated with this device
  - `device_type` DeviceType — Represents a device type classification in the RevelDigital digital signage platform. This DTO defines the hardware type and capabilities of a digital signage player device. Device types are used to categorize devices by their manufacturer and supported features.
    - `id` string, nullable — The unique identifier for the device type. This is typically a string-based key used to reference the device type across the platform.
    - `name` string, nullable — The display name of the device type. Examples include model names or product line identifiers (e.g., "BrightSign HD", "Samsung Tizen", "LG webOS").
    - `manufacturer` string, nullable — The manufacturer or vendor of the device type. Examples include "BrightSign", "Samsung", "LG", "Android", etc.
    - `device_caps` integer, nullable — A bitmask representing the capabilities supported by this device type. Null indicates capabilities have not been defined for this device type.
  - `entered_service` string, date-time, nullable — The date the device was registered
  - `last_service` string, date-time, nullable — The last service date
  - `timezone` string, nullable — The timezone of the device
  - `language_code` string, nullable — The language code of the device
  - `last_update` string, date-time, nullable — The timestamp of the last content sync with the server
  - `location` Location
    - `city` string, nullable — City
    - `state` string, nullable — State
    - `county` string, nullable — County
    - `country` string, nullable — Country
    - `postal_code` string, nullable — Postal code
    - `address` string, nullable — Address
    - `latitude` number, double, nullable — Latitude
    - `longitude` number, double, nullable — Longitude
  - `ping_data` PingData
    - `type` string, nullable — Ping type
    - `snap` string, byte, nullable — Snapshot (screenshot) of live player content
    - `player_version` string, nullable — Player version number
    - `os_version` string, nullable — Player OS version
    - `cpu_usage` number, float — CPU usage (percentage) Value range [0, 100]
    - `memory_usage` number, float — Memory usage (percentage) Value range [0, 100]
    - `mac_address` string, nullable — MAC address of primary player network interface
    - `disk_usage` number, float — Disk usage (percentage) Value range [0, 100]
    - `timestamp` string, date-time — Timestamp of this ping. Device is considered offline if this timestamp is older than 10 minutes
    - `bytes_received` integer — Bytes recieved by this player
    - `transfer_rate` integer — Current transfer rate over the primary network interface
    - `ip_address` string, nullable — IP address of the primary network interface
    - `latitude` number, double, nullable — Current location of the player (latitude)
    - `longitude` number, double, nullable — Current location of the player (longitude)
    - `current_schedule` string, nullable — Currently running schedule
    - `uptime` integer, nullable — Current uptime of the player (milliseconds)
    - `external_ip_address` string, nullable — IP address as seen by the server for this device
    - `download_pct_complete` integer, nullable — Package download progress (percentage)
    - `meta` object, nullable — Dictionary of meta data
    - `cpu_temperature` number, float, nullable — Current CPU temperature
  - `registration_key` string, nullable — The device registration key
  - `encrypted_registration_key` string, nullable — The encrypted registration key
  - `mac_address` string, nullable — The device MAC address, if applicable
  - `beacon` Beacon — Represents Bluetooth Low Energy (BLE) beacon configuration for a device. Beacons enable proximity-based interactions, allowing mobile devices to detect nearby digital signage and trigger location-aware content or notifications.
    - `distance` number, double, nullable — The detection distance threshold in meters. Mobile devices within this range will receive beacon notifications.
    - `calibration` number, double, nullable — The RSSI calibration value (measured power at 1 meter) used for distance estimation. This value is typically negative (e.g., -59 dBm) and device-specific. Accurate calibration improves proximity zone detection accuracy.
    - `phone` string, nullable — Contact phone number associated with this beacon location. Displayed to users who interact with the beacon via mobile app.
    - `emailAddress` string, nullable — Contact email address associated with this beacon location. Displayed to users who interact with the beacon via mobile app.
    - `website` string, nullable — Website URL associated with this beacon location. Can be opened by mobile app when user interacts with beacon notification.
    - `devices` string[], nullable — List of device IDs associated with this beacon configuration. Used for grouping multiple devices that share the same beacon identity.
    - `rating` number, double, nullable — Rating value for this beacon location (e.g., customer rating, priority score). Can be used to rank or filter beacon-triggered content.
    - `uuid` string, nullable — The iBeacon UUID (Universally Unique Identifier). A 128-bit identifier typically shared by all beacons in an organization. Format: "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
    - `major` string, nullable — The iBeacon Major value (0-65535). Typically used to identify a specific location or venue within an organization.
    - `minor` string, nullable — The iBeacon Minor value (0-65535). Typically used to identify a specific beacon within a location.
    - `notification_delay` integer, nullable — Delay in seconds before sending a notification after beacon detection. Prevents notification spam when users briefly pass by a beacon. A value of 0 or null means immediate notification.
    - `instance_id` string, nullable — The Eddystone Instance ID (6 bytes, 12 hex characters). Identifies a specific beacon within an Eddystone namespace.
    - `namespace` string, nullable — The Eddystone Namespace ID (10 bytes, 20 hex characters). Typically derived from a domain name or organization identifier.
  - `service_level` string, nullable — The device service level
  - `in_sync` boolean — Is the device content in sync with server
  - `serial_number` string, nullable — The device serial number
  - `deactivated` boolean, nullable — Is the device deactivated
  - `notes` string, nullable — The device notes
  - `is_online` boolean — Is the device currently online. A device is considered online if it has a timestamp within the last 5 minutes

## Other responses

- `400` — Bad Request

---

[API](https://skmtc.net/reveldigital/apis/revel-digital-rest-api.md) · [All operations](https://skmtc.net/reveldigital/apis/revel-digital-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/reveldigital/revel-digital-rest-api/versions/f23a94aea621/schema)
