All URIs are relative to https://<sub_domain>.api.kandji.io
Method | HTTP request | Description |
---|---|---|
cancelLostMode | DELETE /api/v1/devices/{device_id}/details/lostmode | Cancel Lost Mode |
getDevice | GET /api/v1/devices/{device_id} | Get Device |
getDeviceActivity | GET /api/v1/devices/{device_id}/activity | Get Device Activity |
getDeviceApps | GET /api/v1/devices/{device_id}/apps | Get Device Apps |
getDeviceDetails | GET /api/v1/devices/{device_id}/details | Get Device Details |
getDeviceLibraryItems | GET /api/v1/devices/{device_id}/library-items | Get Device Library Items |
getDeviceLostModeDetails | GET /api/v1/devices/{device_id}/details/lostmode | Get Device Lost Mode details |
getDeviceParameters | GET /api/v1/devices/{device_id}/parameters | Get Device Parameters |
getDeviceStatus | GET /api/v1/devices/{device_id}/status | Get Device Status |
listDevices | GET /api/v1/devices | List Devices |
updateDevice | PATCH /api/v1/devices/{device_id} | Update Device |
open class func cancelLostMode(deviceId: String, completion: @escaping (_ data: Void?, _ error: Error?) -> Void)
Cancel Lost Mode
This endpoint can be used to send a cancelation request if Lost Mode is in an error state for a given iOS or iPadOS device.
// The following code samples are still beta. For any issue, please report via http://github.com/OpenAPITools/openapi-generator/issues/new
import kandji_sdk
let deviceId = "deviceId_example" // String |
// Cancel Lost Mode
DeviceInformationAPI.cancelLostMode(deviceId: deviceId) { (response, error) in
guard error == nil else {
print(error)
return
}
if (response) {
dump(response)
}
}
Name | Type | Description | Notes |
---|---|---|---|
deviceId | String |
Void (empty response body)
- Content-Type: Not defined
- Accept: Not defined
[Back to top] [Back to API list] [Back to Model list] [Back to README]
open class func getDevice(deviceId: String, completion: @escaping (_ data: DeviceInformationGetDevice200Response?, _ error: Error?) -> Void)
Get Device
This request returns the high-level information for a specified Device ID.
// The following code samples are still beta. For any issue, please report via http://github.com/OpenAPITools/openapi-generator/issues/new
import kandji_sdk
let deviceId = "deviceId_example" // String |
// Get Device
DeviceInformationAPI.getDevice(deviceId: deviceId) { (response, error) in
guard error == nil else {
print(error)
return
}
if (response) {
dump(response)
}
}
Name | Type | Description | Notes |
---|---|---|---|
deviceId | String |
DeviceInformationGetDevice200Response
- Content-Type: Not defined
- Accept: application/json
[Back to top] [Back to API list] [Back to Model list] [Back to README]
open class func getDeviceActivity(deviceId: String, limit: String, offset: String? = nil, completion: @escaping (_ data: DeviceInformationGetDeviceActivity200Response?, _ error: Error?) -> Void)
Get Device Activity
This request returns the device activity for a specified Device ID.
// The following code samples are still beta. For any issue, please report via http://github.com/OpenAPITools/openapi-generator/issues/new
import kandji_sdk
let deviceId = "deviceId_example" // String |
let limit = "limit_example" // String | A hard upper <code>limit</code> is set at 300 device records returned per request. If more device records are expected, pagination should be used using the <code>limit</code> and <code>offset</code> parameters. Additionally, parameter queries can be added to a request to limit the results.
let offset = "offset_example" // String | Specify the starting record to return (optional)
// Get Device Activity
DeviceInformationAPI.getDeviceActivity(deviceId: deviceId, limit: limit, offset: offset) { (response, error) in
guard error == nil else {
print(error)
return
}
if (response) {
dump(response)
}
}
Name | Type | Description | Notes |
---|---|---|---|
deviceId | String | ||
limit | String | A hard upper <code>limit</code> is set at 300 device records returned per request. If more device records are expected, pagination should be used using the <code>limit</code> and <code>offset</code> parameters. Additionally, parameter queries can be added to a request to limit the results. | |
offset | String | Specify the starting record to return | [optional] |
DeviceInformationGetDeviceActivity200Response
- Content-Type: Not defined
- Accept: application/json
[Back to top] [Back to API list] [Back to Model list] [Back to README]
open class func getDeviceApps(deviceId: String, completion: @escaping (_ data: DeviceInformationGetDeviceApps200Response?, _ error: Error?) -> Void)
Get Device Apps
This request returns a list of all installed apps for a specified Device ID.
For iPhone and iPad, the preinstalled Apple apps are not reported.
// The following code samples are still beta. For any issue, please report via http://github.com/OpenAPITools/openapi-generator/issues/new
import kandji_sdk
let deviceId = "deviceId_example" // String |
// Get Device Apps
DeviceInformationAPI.getDeviceApps(deviceId: deviceId) { (response, error) in
guard error == nil else {
print(error)
return
}
if (response) {
dump(response)
}
}
Name | Type | Description | Notes |
---|---|---|---|
deviceId | String |
DeviceInformationGetDeviceApps200Response
- Content-Type: Not defined
- Accept: application/json
[Back to top] [Back to API list] [Back to Model list] [Back to README]
open class func getDeviceDetails(deviceId: String, completion: @escaping (_ data: DeviceInformationGetDeviceDetails200Response?, _ error: Error?) -> Void)
Get Device Details
This request returns the device details for a specified Device ID.
// The following code samples are still beta. For any issue, please report via http://github.com/OpenAPITools/openapi-generator/issues/new
import kandji_sdk
let deviceId = "deviceId_example" // String |
// Get Device Details
DeviceInformationAPI.getDeviceDetails(deviceId: deviceId) { (response, error) in
guard error == nil else {
print(error)
return
}
if (response) {
dump(response)
}
}
Name | Type | Description | Notes |
---|---|---|---|
deviceId | String |
DeviceInformationGetDeviceDetails200Response
- Content-Type: Not defined
- Accept: application/json
[Back to top] [Back to API list] [Back to Model list] [Back to README]
open class func getDeviceLibraryItems(deviceId: String, completion: @escaping (_ data: DeviceInformationGetDeviceLibraryItems200Response?, _ error: Error?) -> Void)
Get Device Library Items
This request gets all library items and their statuses for a specified Device ID
Value | Type | Additional Info |
---|---|---|
AVAILABLE | string | Library item available in Self Service |
CACHED | string | Library item downloaded for install but not yet installed |
CHANGE_PENDING | string | Recovery Password library item has changes that have not yet been applied |
DOWNLOADING | string | Library item downloading |
ERROR | string | Audit failure |
EXCLUDED | string | Not in scope for assignment rule |
INCOMPATIBLE | string | Not compatible with device or OS version |
INSTALLING | string | Library item installing |
PASS | string | Device meets requirements |
PENDING | string | Waiting on device, not yet installed (All library items except for config profiles) |
failed | string | Configuration profile failed to install |
pending | string | Waiting on device, Configuration profile not yet installed |
success | string | Configuration profile installed |
// The following code samples are still beta. For any issue, please report via http://github.com/OpenAPITools/openapi-generator/issues/new
import kandji_sdk
let deviceId = "deviceId_example" // String |
// Get Device Library Items
DeviceInformationAPI.getDeviceLibraryItems(deviceId: deviceId) { (response, error) in
guard error == nil else {
print(error)
return
}
if (response) {
dump(response)
}
}
Name | Type | Description | Notes |
---|---|---|---|
deviceId | String |
DeviceInformationGetDeviceLibraryItems200Response
- Content-Type: Not defined
- Accept: application/json
[Back to top] [Back to API list] [Back to Model list] [Back to README]
open class func getDeviceLostModeDetails(deviceId: String, completion: @escaping (_ data: DeviceInformationGetDeviceLostModeDetails200Response?, _ error: Error?) -> Void)
Get Device Lost Mode details
This request returns the device lost mode details for a specified Device ID.
Note: Lost Mode is is only available for iOS and iPadOS. For more information, please see this Kandji support artilcle.
// The following code samples are still beta. For any issue, please report via http://github.com/OpenAPITools/openapi-generator/issues/new
import kandji_sdk
let deviceId = "deviceId_example" // String |
// Get Device Lost Mode details
DeviceInformationAPI.getDeviceLostModeDetails(deviceId: deviceId) { (response, error) in
guard error == nil else {
print(error)
return
}
if (response) {
dump(response)
}
}
Name | Type | Description | Notes |
---|---|---|---|
deviceId | String |
DeviceInformationGetDeviceLostModeDetails200Response
- Content-Type: Not defined
- Accept: application/json
[Back to top] [Back to API list] [Back to Model list] [Back to README]
open class func getDeviceParameters(deviceId: String, completion: @escaping (_ data: DeviceInformationGetDeviceParameters200Response?, _ error: Error?) -> Void)
Get Device Parameters
This request returns the parameters and their statuses for a specified Device ID
This endpoint is only applicable to macOS clients.
The parameters will be returned as a list of IDs. These IDs can be correlated with the parameter names available here: https://github.com/kandji-inc/support/wiki/Devices-API---Parameter-Correlations
Possible parameter status values
Value | Type | Additional Info |
---|---|---|
ERROR | string | Audit failure |
INCOMPATIBLE | string | Not compatible with device or OS version |
PASS | string | Device meets requirements |
PENDING | string | Waiting on device. Not yet run. |
REMEDIATED | string | Parameter remediated |
WARNING | string | Muted alert |
// The following code samples are still beta. For any issue, please report via http://github.com/OpenAPITools/openapi-generator/issues/new
import kandji_sdk
let deviceId = "deviceId_example" // String |
// Get Device Parameters
DeviceInformationAPI.getDeviceParameters(deviceId: deviceId) { (response, error) in
guard error == nil else {
print(error)
return
}
if (response) {
dump(response)
}
}
Name | Type | Description | Notes |
---|---|---|---|
deviceId | String |
DeviceInformationGetDeviceParameters200Response
- Content-Type: Not defined
- Accept: application/json
[Back to top] [Back to API list] [Back to Model list] [Back to README]
open class func getDeviceStatus(deviceId: String, completion: @escaping (_ data: DeviceInformationGetDeviceStatus200Response?, _ error: Error?) -> Void)
Get Device Status
This request returns the full status (parameters and library items) for a specified Device ID.
The parameters will be returned as a list of IDs. These IDs can be correlated with the parameter names available here: https://github.com/kandji-inc/support/wiki/Devices-API---Parameter-Correlations
Library items
Value | Type | Additional Info |
---|---|---|
AVAILABLE | string | Library item available in Self Service |
ERROR | string | Audit failure |
EXCLUDED | string | Not in scope for assignment rule |
INCOMPATIBLE | string | Not compatible with device or OS version |
PASS | string | Device meets requirements |
PENDING | string | Waiting on device, not yet installed (All library items except for config profiles) |
failed | string | Configuration profile failed to install |
pending | string | Waiting on device, Configuration profile not yet installed |
success | string | Configuration profile installed |
Parameters
Value | Type | Additional Info |
---|---|---|
ERROR | string | Audit failure |
INCOMPATIBLE | string | Not compatible with device or OS version |
PASS | string | Device meets requirements |
PENDING | string | Waiting on device. Not yet run. |
REMEDIATED | string | Parameter remediated |
WARNING | string | Muted alert |
// The following code samples are still beta. For any issue, please report via http://github.com/OpenAPITools/openapi-generator/issues/new
import kandji_sdk
let deviceId = "deviceId_example" // String |
// Get Device Status
DeviceInformationAPI.getDeviceStatus(deviceId: deviceId) { (response, error) in
guard error == nil else {
print(error)
return
}
if (response) {
dump(response)
}
}
Name | Type | Description | Notes |
---|---|---|---|
deviceId | String |
DeviceInformationGetDeviceStatus200Response
- Content-Type: Not defined
- Accept: application/json
[Back to top] [Back to API list] [Back to Model list] [Back to README]
open class func listDevices(limit: String, assetTag: String? = nil, blueprintId: String? = nil, deviceId: String? = nil, deviceName: String? = nil, filevaultEnabled: String? = nil, macAddress: String? = nil, model: String? = nil, ordering: String? = nil, osVersion: String? = nil, platform: String? = nil, serialNumber: String? = nil, tagName: String? = nil, tagNameIn: String? = nil, tagId: String? = nil, tagIdIn: String? = nil, user: String? = nil, userEmail: String? = nil, userId: String? = nil, userName: String? = nil, offset: String? = nil, completion: @escaping (_ data: AnyCodable?, _ error: Error?) -> Void)
List Devices
This request returns a list of devices in a Kandji tenant. Optionally. query parameters can be used to filter results.
There is a hard upper limit of 300 results per request. To return addtional results pagination must be used. Pagination examples can be found in the Kandji support GitHub.
// The following code samples are still beta. For any issue, please report via http://github.com/OpenAPITools/openapi-generator/issues/new
import kandji_sdk
let limit = "limit_example" // String | A hard upper <code>limit</code> is set at 300 device records returned per request. If more device records are expected, pagination should be used using the <code>limit</code> and <code>offset</code> parameters. Additionally, parameter queries can be added to a request to limit the results.
let assetTag = "assetTag_example" // String | (optional)
let blueprintId = "blueprintId_example" // String | Return results "containing" the specified blueprint id (optional)
let deviceId = "deviceId_example" // String | (optional)
let deviceName = "deviceName_example" // String | (optional)
let filevaultEnabled = "filevaultEnabled_example" // String | <p>Query for devices that either have FileVault on (true) or off (false). This parameter only applies to macOS. </p> <p>An empty list <code>[]</code> will be returned if no devices are found with the given parameter value.</p> (optional)
let macAddress = "macAddress_example" // String | Search for a specific device by MAC address (optional)
let model = "model_example" // String | Return model results "containing" the specified model string. (optional)
let ordering = "ordering_example" // String | <p>The <code>ordering</code> parameter can be used to define how the device records are ordered in the response. Prepending a dash (-) to the parameter value will reverse the order of the returned results.</p> <p><code>?ordering=-serial_number</code> will order the response by serial_number in descending order.</p> <p><strong>Possible values</strong></p> <ul> <li><code>asset_tag</code></li> <li><code>blueprint_id</code></li> <li><code>device_id</code></li> <li><code>device_name</code></li> <li><code>last_check_in</code> - agent checkin</li> <li><code>model</code></li> <li><code>platform</code></li> <li><code>os_version</code></li> <li><code>serial_number</code></li> <li><code>user</code></li> </ul> <p>Additionally, multiple values can be combined in a comma separated list to further customize the ordering of the response.</p> <p><code>?ordering=serial_number,platform</code></p> (optional)
let osVersion = "osVersion_example" // String | Return all device records with the specified OS version (optional)
let platform = "platform_example" // String | Return all records matching a specific platform. Possible values:<code>Mac</code>, <code>iPad</code>, <code>iPhone</code>, <code>AppleTV</code> (optional)
let serialNumber = "serialNumber_example" // String | Search for a specific device by Serial Number. If partial serial number is provided in the query, all device containing the partial string will be returned. (optional)
let tagName = "tagName_example" // String | Return results for given tag name. Case sensitive. (optional)
let tagNameIn = "tagNameIn_example" // String | Return results for given tag names separate by commas. Case sensitive. (optional)
let tagId = "" // String | Search for a tag by its ID. Case sensitive. (optional)
let tagIdIn = "" // String | Return results for given tag IDs separated by commas. Case sensitive. (optional)
let user = "user_example" // String | Return results "containing" the user name (optional)
let userEmail = "userEmail_example" // String | Return results "containing" search on email address (optional)
let userId = "userId_example" // String | "exact" match on kandji user ID number (optional)
let userName = "userName_example" // String | Return results "containing" the assigned user Display Name (optional)
let offset = "offset_example" // String | Specify the starting record to return (optional)
// List Devices
DeviceInformationAPI.listDevices(limit: limit, assetTag: assetTag, blueprintId: blueprintId, deviceId: deviceId, deviceName: deviceName, filevaultEnabled: filevaultEnabled, macAddress: macAddress, model: model, ordering: ordering, osVersion: osVersion, platform: platform, serialNumber: serialNumber, tagName: tagName, tagNameIn: tagNameIn, tagId: tagId, tagIdIn: tagIdIn, user: user, userEmail: userEmail, userId: userId, userName: userName, offset: offset) { (response, error) in
guard error == nil else {
print(error)
return
}
if (response) {
dump(response)
}
}
Name | Type | Description | Notes |
---|---|---|---|
limit | String | A hard upper <code>limit</code> is set at 300 device records returned per request. If more device records are expected, pagination should be used using the <code>limit</code> and <code>offset</code> parameters. Additionally, parameter queries can be added to a request to limit the results. | |
assetTag | String | [optional] | |
blueprintId | String | Return results "containing" the specified blueprint id | [optional] |
deviceId | String | [optional] | |
deviceName | String | [optional] | |
filevaultEnabled | String | <p>Query for devices that either have FileVault on (true) or off (false). This parameter only applies to macOS. </p> <p>An empty list <code>[]</code> will be returned if no devices are found with the given parameter value.</p> | [optional] |
macAddress | String | Search for a specific device by MAC address | [optional] |
model | String | Return model results "containing" the specified model string. | [optional] |
ordering | String | <p>The <code>ordering</code> parameter can be used to define how the device records are ordered in the response. Prepending a dash (-) to the parameter value will reverse the order of the returned results.</p> <p><code>?ordering=-serial_number</code> will order the response by serial_number in descending order.</p> <p><strong>Possible values</strong></p> <ul> <li><code>asset_tag</code></li> <li><code>blueprint_id</code></li> <li><code>device_id</code></li> <li><code>device_name</code></li> <li><code>last_check_in</code> - agent checkin</li> <li><code>model</code></li> <li><code>platform</code></li> <li><code>os_version</code></li> <li><code>serial_number</code></li> <li><code>user</code></li> </ul> <p>Additionally, multiple values can be combined in a comma separated list to further customize the ordering of the response.</p> <p><code>?ordering=serial_number,platform</code></p> | [optional] |
osVersion | String | Return all device records with the specified OS version | [optional] |
platform | String | Return all records matching a specific platform. Possible values:<code>Mac</code>, <code>iPad</code>, <code>iPhone</code>, <code>AppleTV</code> | [optional] |
serialNumber | String | Search for a specific device by Serial Number. If partial serial number is provided in the query, all device containing the partial string will be returned. | [optional] |
tagName | String | Return results for given tag name. Case sensitive. | [optional] |
tagNameIn | String | Return results for given tag names separate by commas. Case sensitive. | [optional] |
tagId | String | Search for a tag by its ID. Case sensitive. | [optional] |
tagIdIn | String | Return results for given tag IDs separated by commas. Case sensitive. | [optional] |
user | String | Return results "containing" the user name | [optional] |
userEmail | String | Return results "containing" search on email address | [optional] |
userId | String | "exact" match on kandji user ID number | [optional] |
userName | String | Return results "containing" the assigned user Display Name | [optional] |
offset | String | Specify the starting record to return | [optional] |
AnyCodable
- Content-Type: Not defined
- Accept: application/json
[Back to top] [Back to API list] [Back to Model list] [Back to README]
open class func updateDevice(deviceId: String, body: String? = nil, completion: @escaping (_ data: DeviceInformationUpdateDevice200Response?, _ error: Error?) -> Void)
Update Device
This request allows you to update device information, such as the assigned blueprint, user, Asset Tag, and Tags. It is not required to use all attributes in a given request. For example if you only want to update the assigned blueprint, you only need to pass the blueprint_id
in the request payload.
NOTE: With the introduction of a UUID value for user ID in the Users API, the Device PATCH endpoint will support both the depricated user ID integer value and the new user ID UUID value when updating the user assignment for a device. The ability to update user assignment via the integer ID value will be removed starting January 2025.
device_id
(path parameter): The unique identifier of the device.
User ID can be found using the list users
API
A Blueprint ID can be found using the list blueprints
API or in the URL path while on a Blueprint overview page.
For example, for this URL https://subdomain.kandji.io/blueprints/6391086e-85a1-4820-813c-f9c75025fff4
The Blueprint ID would be 6391086e-85a1-4820-813c-f9c75025fff4
An example script that leverages this API can be found in the Kandji Support GitHub
To clear a device asset tag, set the asset_tag
value to null
in the JSON payload.
{ "asset_tag": null }
To clear the assigned user for a given device, set the user
value to null
in the JSON payload.
{ "user": null }
To clear the assigned tags for a given device, set the tags
value to an empty list []
in the JSON payload.
{ "tags": [] }
// The following code samples are still beta. For any issue, please report via http://github.com/OpenAPITools/openapi-generator/issues/new
import kandji_sdk
let deviceId = "deviceId_example" // String |
let body = "body_example" // String | (optional)
// Update Device
DeviceInformationAPI.updateDevice(deviceId: deviceId, body: body) { (response, error) in
guard error == nil else {
print(error)
return
}
if (response) {
dump(response)
}
}
Name | Type | Description | Notes |
---|---|---|---|
deviceId | String | ||
body | String | [optional] |
DeviceInformationUpdateDevice200Response
- Content-Type: application/json
- Accept: application/json
[Back to top] [Back to API list] [Back to Model list] [Back to README]