Skip to content

Device Containment — Kandji / Iru

Device Containment — Kandji / Iru

Challenge locks devices managed by Kandji or Iru using the tenant API. On macOS, Kandji/Iru generates the unlock PIN and returns it in the lock API response.

Credentials

  1. In your Kandji or Iru tenant, create an API token with permission to list devices and lock devices.
  2. Copy your tenant API URL (shown when the first token is created).
  3. In Challenge, open Integrations → Device Containment → Kandji / Iru.
  4. Set Tenant API URL and API token.
  5. Optionally set a Lock message for macOS 14+.
  6. Enable the integration and save.

API calls Challenge makes

StepMethodEndpointExpected status
Lookup (email)GET/api/v1/devices/?user_email={email}200
Lookup (hostname)GET/api/v1/devices/ (filter/search)200
Lookup (serial)GET/api/v1/devices/ (serial filter)200
LockPOST/api/v1/devices/{device_id}/action/lock200

Least-privilege guidance

Token permissions should include device list/read and Lock device only. See Iru device lock API and Kandji API overview.

Lookup formats

Lookup typeValue example
user_emailalice@example.com
hostnameDevice name in Kandji
serial_numberApple serial number
provider_device_idKandji device_id

Lock PIN behavior

For macOS, Kandji/Iru generates a 6-digit EFI PIN after the lock command is received. Challenge parses the API response and returns lock_pin in result metadata. Do not send a PIN in the request — the MDM handles generation.

Troubleshooting

SymptomCheck
http_403API token permissions
device_not_foundUser email not linked on device record
No PIN in responseiOS/iPadOS uses existing passcode; PIN may not apply