Skip to main content

Create a Device

From the console

  1. In your workspace, open Devices → New (page title Add Device).
  2. Enter Device key (required unless the selected template defines a serial format so the platform assigns one). Allowed characters: letters, numbers, hyphen, and underscore; this value is used as the MQTT client_id.
  3. Optionally set Display name — a human-readable label.
  4. Optionally choose Device model (template) — applies that model’s defaults (capabilities, default device configuration, default MQTT ACLs).
  5. Optionally add Tags — key-value labels for filtering and organization (for example location = istanbul). Use + Add Tag for each pair; remove a row with the trash icon if needed.
  6. Set Connection profile to MQTT to generate credentials at creation, or None to register the device without connectivity.
  7. When MQTT is selected, pick MQTT target (for example Cloud MQTT when no dedicated cluster exists in the workspace).
  8. Click Create Device

Add Device form

After creation, you are taken to the device detail page where you can copy the MQTT credentials.

Credentials shown once

The MQTT password is shown in full only at device creation. Store it securely. You can always reset credentials to generate a new password.

From the API (provisioning flow)

For automated provisioning — e.g. in a factory or CI pipeline — use a provision API key in the iotmer-auth-code header (raw key, not Authorization):

POST /provision/device
Content-Type: application/json
iotmer-auth-code: <your-provision-api-key>

{
"workspace_id": "<workspace-uuid>",
"template_id": "<template-ulid>",
"device_key": "sensor-042"
}

template_id and device_key are optional depending on whether you use a template with auto serial format.

The response includes MQTT fields and a device_http_token (dht_…) for Control Plane calls under /devices/auth/* only. To register the same key kind as X-API-Key / Authorization and create a device through the main API instead, see POST /workspaces/{id}/devices and API Keys: platform vs provision.

Pairing with the mobile app (optional): the phone obtains a one-time claim_code via POST /moid/provision/claims; the device sends it to POST /devices/auth/bind-claim with Authorization: Bearer <device_http_token>. The user’s bound devices then appear on GET /moid/devices.

See POST /provision/device for the full request and response schema.