---
parent: /workflows/agents.md
back_out_url: /workflows/agents.md
---

# Workflow 11: Provision New Edge Device (LEM Zero-Touch)

> You are at https://api.litmus.io/workflows/provision-zero-touch.md
> Parent: https://api.litmus.io/workflows/agents.md
> If this is the wrong workflow, back out to the index above.

## 11. Provision New Edge Device (LEM Zero-Touch)

**UI trigger**: LEM -> Edge Lifecycle Management -> Activation -> *Add Activation Config* -> operator boots the new device with the code -> *Approve Request*

Adds a new edge device to a LEM project. Two flows: human-approved (default) and zero-touch (devices flashed with a ZT image complete steps 2-4 automatically). All calls use `X-AuthToken: {{LEM_AdminApiToken}}`.

### Step table

| Step | Name in Collection | Method | Endpoint | Body / Notes | Output |
|------|-------------------|--------|----------|-------------|--------|
| 1 | Add Activation Config | `POST` | `{{LEM_URL}}/api/v1/activation/config` | `{ projectId, expiresAt, deviceCount, leaseTtl, licenseSkus, licenseType, ... }` | `{ code: "4JOOD-2CWAQ-..." }` |
| 2 | (out-of-band) | -- | -- | Operator boots edge device with the activation code; device self-registers with LEM | Pending request appears in queue |
| 3 | Requests List | `GET` | `{{LEM_URL}}/api/v1/activation/request?projectId={{project_id}}` | -- | List of pending requests with `entryID` |
| 4a | Approve Request | `POST` | `{{LEM_URL}}/api/v1/activation/request/status` | `{ entryID, projectId, status: "APPROVED" }` | Device provisioned |
| 4b | Reject Request *(alternate)* | `POST` | same endpoint | `{ entryID, projectId, status: "REJECTED" }` | Device rejected |
| 4c | Retry Failed Request *(if 4a errored)* | `POST` | `{{LEM_URL}}/api/v1/activation/request/request-retry-provision?entryId={{project_entry_id}}&projectId={{project_id}}` | -- | Re-attempt provisioning |
| 5 | Devices | `GET` | `{{LEM_URL}}/api/v1/device/{{project_id}}` | -- | New device appears in project list |

> **Zero-touch variant**: `GET /api/v1/zt/{{project_id}}/config` (`List ZeroTouch Configs`) returns pre-configured profiles. Devices flashed with a ZT image complete steps 2-4 without operator action.


---
