Hexnode MDM API Documentation

What is an API? Setting up an API Authentication Retrieve API Key Status and Error Codes Devices List all Devices Retrieve Device Details List Device Policies List all Applications List Device Locations Action Status Users List all Users Create User Retrieve User Details Edit User Delete User Send Enrollment Request User Groups List User Groups Create User Group Retrieve User Group Details Update User Group Add/Remove Users Delete User Group Device Groups List Device Groups Create Device Group Retrieve Device Group Details Update Device Group Add/Remove Devices Delete Device Group Policies List Policies Create Policy iOS Policies Android Policies Policy Details Edit Policy Delete Policy Applications List All Apps Search Apps Add App to List Retrieve App Details Remove App App Groups List App Groups Create App Group Retrieve App Group Details Update App Group Add/Remove Apps Delete App Group App Catalogs List App Catalogs Create a Catalog Retrieve App Catalog Details Update App Group Add/Remove Apps Delete App Catalog Actions Associate Policy Remove Policy Install Application Uninstall Applications Lock Device Scan Location Scan Device Clear Passcode Wipe Device Disenroll Devices Enable Lost Mode Disable Lost Mode Change Owner

   

1. What is an API?

The Application Programming Interface (API) is a set of functions used to build an application program with a custom user interface. With pre-built functions and software libraries, an application program is easier to be developed using an API.

The Hexnode MDM API is available as a RESTful JSON implementation and is designed to work over authenticated, HTTPS secured channels. Since the API is based on the HTTP protocol, you can directly interact with it using any HTTP client library.

This documentation is intended for application developers and provides an understanding of the design and architecture of the REST API library to facilitate a custom development and integration with Hexnode MDM. Refer the following sections for detailed information on specific Hexnode MDM API.

2. Setting up an API

APIs require authentication to integrate with Hexnode MDM. Prior to authentication, API access must be enabled in Hexnode MDM by selecting the Enable API Access check box from Admin > API.

2.1. Authentication

You can authenticate with the Hexnode MDM API by providing your secret API key with each request. The API uses HTTP Basic Authentication to receive your API key. It will look for your API key in the Authentication field.

2.2. Retrieve API Key

You can retrieve your API key by

  • Signing in to your Hexnode MDM portal and selecting API from the Admin tab, or
  • Accessing the URL /api-token-auth/ when valid username and password are provided with basic authentication.

HTTP Request:

curl -X POST -d username="admin" -d password="admin"

https://<portal>.hexnodemdm.com/api/v1/api-token-auth/

Response:

{"Authorization" : <your API key>}

2.3. Status and Error Codes

Responses from the API generally use standard HTTP status codes.

Possible values:

  • 200 OK: Success
  • 201 Created: Created one or more resource(s).
  • 204 No Content: The server has successfully fulfilled the request.
  • 400 Bad Request: The web-service request was invalid.
  • 401 Unauthorized: Authentication failed! Invalid credentials.
  • 403 Forbidden: Requested a resource to which the server does not allow access.
  • 404 Not Found: Requested resource not found.
  • 415 Unsupported Media Type: The requested payload format is in an unsupported format.
  • 429 Too Many Request: User has sent too many requests in a given amount of time.
  • 500 Internal Server Error: An internal server error occurred while processing the request.
  • 502 Bad Gateway: Hexnode MDM Web service server is not reachable.
  • 503 Service Unavailable: The server is currently unable to handle the request due to a temporary overload or maintenance of the server. This is a temporary condition which will be alleviated after some delay.

3. Devices

3.1. List all Devices

Returns all enrolled devices.
HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/devices/?order_by=desc

Shell command:

curl –H "Authorization:<your API key>" https://<portal>.hexnodemdm.com/api/v1/devices/?order_by=desc
Parameters Type Description Default value
order_by String Optional. Order the result by device name. Use asc or desc asc
platform String Optional. Filter by OS. Use ios, android or windows
is_active Boolean Optional. Filter by active or inactive devices. Use True or False
device_type String Optional. Use smartphone or tablet
page Integer Optional 1
per_page Integer Optional 100

HTTP Response:

{

"count": 104, 

"next": https://<portal>.hexnodemdm.com/api/v1/devices/page=2&order_by=desc,

"previous": null, 

"results":  [  

{  

"id" : 5, 

"device_name" : "motorolaXT1033",  

"model_name": "XT1033", 

"os_name": "Android", 

"os_version": "5.1", 

"enrolled_time": "2017-05-05T04:39:32.563524Z", 

"last_reported": "2017-05-05T08:00:07.401Z", 

"compliant": true, 

"serial_number": "TA933D15V", 

"enrollment_status": "enrolled", 

"user": { 

"id": "1", 

"name":"neil" 

} 


} , 

...

] 

}

3.2. Retrieve Device Details

Get all details of a device.

HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/devices/{DEVICE_ID}/

Shell command:

curl -H "Authorization: <your API key>" https://<portal>.hexnodemdm.com/api/v1/devices/{DEVICE_ID}/

HTTP Response:

{  

"id": 1, 

"udid": "822b365f06614569", 

"platform": "iOS", 

"enrollment_status": "enrolled", 

"enrolled_time": "2017-04-10T06:06:02.076000Z", 

"agent_active": true, 

"lastreported": "2017-04-10T06:06:02.076000Z", 

"lastscanned": "2017-04-10T06:06:02.076000Z", 

"lastnotified": "2017-04-10T06:06:02.076000Z", 

"remarks": "successfully enrolled", 

"disenrolled_time": null, 

"location_tracking_disabled": true, 

"location_tracking_interval": 60, 

"lostmode": false, 

"last_location": "Wynnum Rd at Bulimba Creek", 

"latitude": "-27.4797261951427", 

"longitude": "153.109797270424", 

"last_location_time": "2017-04-10T06:06:02.076000Z" 

"user": { 

"id": 1, 

"name": "neil", 

"email": "neil@hexnode.com", 

"phoneno": null, 

"alternate_email": null 

}, 

"device" : { 

"device_name": " ipad", 

"description": "neils ipad", 

"os_version": "9.12", 

"os_name": "ios", 

"build_version": "32.3.A.0.376", 

"model_name": "iPhone 4S", 

"model": "MF266HN", 

"product_name": "iPhone4,1", 

"device_type": "smartphone", 

"manufacture": "Apple Inc", 

"serial_number": "CB5A2628BK", 

"device_capacity": 27.1856803894043, 

"available_device_capacity": 25.5329742431641, 

"used_device_capacity": 1.65270614624023, 

"battery_level": 44.999998807907, 

"imei": "01 353200 983934 8", 

"meid": "359057061257785", 

"modem_firmware_version": "5.2.00", 

"is_supervised": false, 

} 

"applications":[  

{   

"id":1,   

"name": "Apple Music",  

"bundle_size": 3371031,  

"version": "1.3",  

"black_listed":false,   

"managed": true,  

"status": "Installed" 

}, 

{ 

"id": 2, 

"name": "Maps", 

"bundle_size": null, 

"version": "9.49.2", 

"black_listed": false, 

"managed": false, 

"status": "Installed" 

} 

],   

"policies":[  

{   

"id":4,   

"name": "ios policy",  

"version": 4  

}

],   

"location_history":[  

{  

"long_name": "Wynnum Rd at Bulimba Creek",  

"reported_time": “2017-04-17T12:43:28.302Z'',  

"latitude": "-27.4797261951427",   

"longitude": "153.109797270424"  

}, 

...

]

}

3.3. List Device Policies

Returns policies associated with the devices.

HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/devices/{DEVICE_ID}/policies/?page=1 

Shell command:

curl –H "Authorization: <your API key>" https://<portal>.hexnodemdm.com/api/v1/devices/{DEVICE_ID}/policies/?page=1
Parameters Type Description Default value
page Integer Optional 1
per_page Integer Optional 100

HTTP Response:

{ 

"count":2, 

"next":null, 

"previous":null, 

"results":[  

{   

"id":4,   

"name": "ios policy",  

"version": 4  

}, 

...

] 

}

3.4. List All Applications

Returns applications associated with the device.

HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/devices/{DEVICE_ID}/applications/?page=1 

Shell command:

curl –H "Authorization: <your API key>" https://<portal>.hexnodemdm.com/api/v1/devices/{DEVICE_ID}/applications/?page=1
Parameters Type Description Default value
page Integer Optional 1
per_page Integer Optional 100

HTTP Response:

{ 

"count":110, 

"next":https://<portal>.hexnodemdm.com/api/v1/devices/{DEVICE_ID}/applications/?page=2, 

"previous":null, 

"results": [  

{   

"id":1,   

"name": "Apple Music",  

"bundle_size": 3371031,  

"version": "1.3",  

"black_listed":false,   

"managed": true,  

"status": "Installed" 

}, 

...

 ] 

}

3.5. List Device Locations

Returns the reported locations of the devices.

HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/devices/{DEVICE_ID}/locations/?page=1 

Shell command:

curl –H "Authorization: <your API key>" https://<portal>.hexnodemdm.com/api/v1/devices/{DEVICE_ID}/locations/?page=1
Parameters Type Description Default value
page Integer Optional 1
per_page Integer Optional 100

HTTP Response:

{ 

"count":1238, 

"next":"https://<portal>.hexnodemdm.com/api/v1/devices/{DEVICE_ID}/locations/?page=2" 

"previous":null, 

"results": [ 

{ 

"long_name": "Wynnum Rd at Bulimba Creek",  

"reported_time": “2017-04-17T12:43:28.302Z'',  

"latitude": "-27.4797261951427",   

"longitude": "153.109797270424" 

}, 

...

] 

}

3.6. Action Status

Returns status of actions executed in devices.

HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/devices/{DEVICE_ID}/action_status/?page=2 

Shell command:

curl -H "Authorization: <your API key>" https://<portal>.hexnodemdm.com/api/v1/devices/{DEVICE_ID}/action_status/?page=2
Parameters Type Description Default value
page Integer Optional 1
per_page Integer Optional 100

HTTP Response:

{ 

"count": 270, "next":https://<portal>.hexnodemdm.com/api/v1/devices/{DEVICE_ID}/action_status/?page=3, 

"previous":  https://<portal>.hexnodemdm.com/api/v1/devices/{DEVICE_ID}/action_status?/page=1, 

"results": [ 

{ 

"status": pending, 

"finished_time": null,  

"action_label": "Scan Device Location", 

"subject_details": {}, 

"error_code": null,  

“error_message”: null, 

"created_time": "2017-04-12T15:00:04.725Z" 

}, 

{ 

"status": "success",  

"finished_time": "2017-04-06T15:59:40.959Z",  

"action_label": "Associate Policy",  

"subject_details": { 

"identifier": "com.hexnode.mdm.3287302066", 

"link": "#",  

"name": "Effective Profile v2" 

}, 

"error_code":null, 

"error_message" : null, 

"created_time" : "2017-04-06T15:59:4.959Z" 

} 

] 

}

4. Users

4.1. List all Users

Lists all enrolled users.

HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/users/?order_by=asc 

Shell command:

curl -H "Authorization:<your API key>" https://<portal>.hexnodemdm.com/api/v1/users/?order_by=asc

 

Parameters Type Description Default value
order_by String Optional. Order by username. Use asc or desc false
user_type String Optional. Use local or active directory
enrollment_status String Optional. Use enrolled or unenrolled
page Integer Optional 1
per_page Integer Optional 100

HTTP Response:

{

"count": 103,

"next": https://<portal>.hexnodemdm.com/api/v1/users/?order_by=asc&page=2"

"previous": null,

"results": [

{

"id":  "1",

"name": "Randy",

"email": ”randy@hexnode.com",

"phoneno": "18664989407",

"total_devices": "3",

"domain":"local"

},

...

}

4.2. Create User

Create a new user.

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/users/

Shell command:

curl -H "Authorization:<your API key>" -H "Content-Type: application/json" -d '[{ "name": Neil","email":"neil@hexnode.com, "phoneno":"18664989407","password":"admin" }]' https://<portal>.hexnodemdm.com/api/v1/users/

 

Argument Type Description Default value
name String Required. The display name of the user
email String Required. Unique email address of the user
phoneno Integer Optional. The contact number of the user null
password String Optional. User password null

HTTP Response:

HTTP/1.1 201 Created 

[ 

{ 

"id": 13, 

"name": "Neil", 

"email": "neil@hexnode.com", 

"phoneno": "18664989407", 

"alternate_email": null, 

"password": null 

} 

]

4.3. Retrieve User Details

Get the details of a user.

HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/users/{USER_ID}/ 

Shell command:

curl -H "Authorization:<your API key>" https://<portal>.hexnodemdm.com/api/v1/users/{USER_ID}/

HTTP Response:

{ 

"id":1, 

"name":"neil",  

"email": "neil@hexnode.com", 

"phoneno": "18664989407", 

"password":null, 

"devices":[ 

{  

"id":1,  

"name": "neil's ipad",  

"status": "enrolled", 

"model_name": "iPad (3rd Gen)", 

"platform": "ios" 

} 

]  

"groups":[ 

{  

"id":  2, 

"name": "ios usergroup", 

"description": "contain ios devices only",  

"created_date": "2017-03-30T09:00:08.901Z" 

},  

"policies":[ 

{  

"id": 1, 

"name":"kiosk policy", 

"version":  3, 

},  

"location_history":[ 

{ 

"last_location": "Brisbane, QLD, Australia", 

"device_id":1, 

 "device_name": "OnePlusONE E1003", "last_location_time": "2017-03-29T02:15:05.175Z", "longitude": "-27.470125",  

"latitude": "153.021072",  

},  

{ 

"last_location": "Walnut, CA 91789, USA", 

"device_id":2, 

"device_name": "XiaomiRedmi Note 4", "last_location_time": "2017-03-30T09:00:08.901Z", "longitude": "-122.0638889", 

"latitude": "37.9063889",  

} 

] 

}

4.4. Edit User

Edit the user details.

HTTP Request:

PUT https://<portal>.hexnodemdm.com/api/v1/users/{USER_ID}/

Shell command:

curl -H "Authorization:<your API key>" -H "Content-Type: application/json" -d '{ "name": Neil","email":"neil@hexnode.com, "phoneno":"18664989407","password":"admin" }' https://<portal>.hexnodemdm.com/api/v1/users/<USER_ID>/ -X PUT
Argument Type Description Default value
name String Required. The display name of the user
email String Required. Unique email address of the user
phoneno Integer Optional. The contact number of the user null
password String Optional. User password null

HTTP Response:

HTTP/1.1 200 ok { 
"id": 13, 
"name": "Neil", 
"email": "neil@hexnode.com", 
"phoneno": "18664989407", 
"alternate_email": null, 
"password": "admin"
}

4.5. Delete User

Deletes a user. This action will disenroll all the devices associated with the user.

HTTP Request:

DELETE https://<portal>.hexnodemdm.com/api/v1/users/{USER_ID}/ 

Shell command:

curl -H "Authorization:<your API key>" https://<portal>.hexnodemdm.com/api/v1/users/{USER_ID}/ -X DELETE

HTTP Response:

HTTP/1.1 204 No Content

4.5. Send Enrollment Request

Send enrollment request to the user

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1//users/{USER_ID}/send_request/ 

Shell command:

curl -H "Authorization:<your API key>" -d '{ "ownership": "personal"}'  https://<portal>.hexnodemdm.com/api/v1/users/{USER_ID}/send_request/ -X POST

 

Argument Type Description
ownership String Required. Specify type of ownership either personal, corporate or user_choice

HTTP Response:

HTTP/1.1 200  

{"detail": "enrollment request sent successfully"}

5. User Groups

5.1. List User Groups

Lists all user groups.

HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/usergroups/ 

Shell command:

curl  -H "Authorization:<your API key>" https://<portal>.hexnodemdm.com/api/v1/usergroups/
Parameters Type Description Default value
page Integer Optional 1
per_page Integer Optional 100

HTTP Response:

{  

"count": 121, 

"next": "https://<portal>.hexnodemdm.com/api/v1/usergroups/?page=2", 

"previous": null, 

"results": [  

{  

"id":1,  

"groupname":"example",  

"description":"ios usergroup",  

"users_count":1, 

"modified_date":"2017-04-12T13:05:32.237Z"  

}  

]  

}

5.2. Create User Group

Create a new user group.

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/usergroups/ 

Shell command:

curl -H "Authorization:<your API key>"  -H "Content-Type: application/json" -d '{ "groupname": Neil","description":"description",  "users":[1,2,3]}' https://<portal>.hexnodemdm.com/api/v1/usergroups/
Arguments Type Description
groupname String Required. Name of the user group
description String Required. Description of the group
users Integer array Optional. Array of ID’s of the enrolled users

HTTP Response:

HTTP/1.1 201 Created 

{  

"id": 1, 

"groupname":"example", 

"description":"ios usergroup",  

"users":[ 

{  

"id":  1, 

"name":"neil", 

"email":"neil@hexnode.com",  

"domain": "local", 

"phoneno": "18664989407" 

}, 

...

], 

}

5.3. Retrieve User Group Details

Get the details of a user group.

HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/usergroups/{USERGROUP_ID}/ 

Shell command:

curl -H "Authorization:<your API key>" https://<portal>.hexnodemdm.com/api/v1/usergroups/{USERGROUP_ID}/

HTTP Response:

{  

"id":  

"groupname":"example"  

"description":"ios usergroup",  

"users":[ 

{  

"id":  1, 

"name":"neil", 

"email":"neil@hexnode.com",  

"domain": "local", 

"phoneno": "9878799678" 

} 

],  

"policies":[ 

{  

"id": 1, 

"name":"ios mandatory policy", 

"version":3,  

"created_time": "2017-04-12T13:05:32.237Z"  

} 

],  

"location_history":[ 

{ 

"user_id" : 1, 

"user_name": "Randy Hall",  

"place_name": "Walnut, CA 91789, USA", "device_name": "OnePlusONE E1003", "last_location_time": "2017-03-29T02:15:05.175Z",  

"longitude": "-122.0638889",  

"latitude": "37.9063889" 

},  

{ 

"user_id": 2 

"user_name": "Liz",  

"lplace_name": "Brisbane, QLD, Australia", "device_name": "XiaomiRedmi Note 4", "last_location_time": "2017-03-30T09:00:08.901Z",  

"longitude": "-27.470125",  

"latitude": "153.021072" 

} 

] 

}

5.4. Update User Group

Update a user group.

HTTP Request:

PUT https://<portal>.hexnodemdm.com/api/v1/usergroups/{USERGROUP_ID}/ 

Shell command:

curl -H "Authorization:2417f8b06f28d6124041c770918af316aa3fb7d"  -H "Content-Type: application/json" -d '{ "groupname": "ios","description":"ios usergroup",  "users":[2,3]}'  https://<portal>.hexnodemdm.com/api/v1/usergroups/{USERGROUP_ID}/ -X PUT

 

Arguments Type Description
groupname String Required. New name for the user group
description String Required. Description for the group
users Integer array Optional. Updated list of the users

HTTP Response:

{  

"id": 5, 

"groupname":"ios" , 

"description":"ios usergroup",  

"users":[ 

{  

"id":  2, 

"name":"bran", 

"email":"bran@hexnode.com",  

"domain": "local", 

"phoneno": "18664989407" 

}, 

...


] 

}

5.5. Add/Remove Users

Add or remove users to/from a user group.

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/usergroups/{USERGROUP_ID}/ 

Shell command:

curl -H "Authorization:<your API key>"  -H "Content-Type: application/json" -d '{ "add_users":[1,2,3],"remove_users":[4]}' https://<portal>.hexnodemdm.com/api/v1/usergroups/{USERGROUP_ID}/
Arguments Type Description
add_users Integer array Required. An array of user IDs to be added into the group
remove_users Integer array Required. Array of user IDs to be removed from the group

NOTE: If add_users and remove_users contain same IDs, then those IDs will be added to the group.

HTTP Response:

HTTP_201_CREATED 

{  

"id": 6, 

"groupname":"example" , 

"description":"ios usergroup",  

"users":[ 

{  

"id":  1, 

"name":"neil" 

"email":"neil@hexnode.com",  

"domain": "local", 

"phoneno": "18664989407" 

}, 

...

]

5.6. Delete User Group

Delete a user group.

HTTP Request:

DELETE https://<portal>.hexnodemdm.com/api/v1/usergroups/{USERGROUP_ID}/ 

Shell command:

curl  -H "Authorization:<your API key>" https://<portal>.hexnodemdm.com/api/v1/usergroups/{USERGROUP_ID}/ -X DELETE

HTTP Response:

HTTP/1.1 204 No Content

6. Device Groups

6.1. List Device Groups

Lists all device groups.

HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/devicegroups/ 

Shell command:

curl  -H "Authorization:<your API key>" https://<portal>.hexnodemdm.com/api/v1/devicegroups/
Parameter Type Description Default value
page Integer Optional 1
per_page Integer Optional 100

HTTP Response:

{  

"count": 11, 

"next": https://<portal>.hexnodemdm.com/api/v1/devicegroups/? page=2&per_page=10, 

"previous": null, 

"results": [ 

{   

"id":1,  

"groupname":"example", 

device_count:1, 

description:"ios device group",  

"grouptype":"custom",  

"modified_date":"2017-04-12T13:05:12.605Z"  

} , 

{   

"id":2,  

groupname:"example", 

"device_count":3, 

"description":"android device group",  

"grouptype":"dynamic",  

"modified_date":"2017-04-12T13:05:12.605Z"

} ]  

}

6.2. Create Device Group

Create a new static device group.

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/devicegroups/ 

Shell command:

curl -H "Authorization:<your API key>"  -H "Content-Type: application/json" -d '{ "groupname": Neil","description":"description",  "devices":[1,2,3]}' https://<portal>.hexnodemdm.com/api/v1/devicegroups/
Arguments Type Description
groupname String Required. Name of the device group
description String Required. Description for the group
devices Integer array Optional. Array of enrolled device IDs

HTTP Response:

HTTP/1.1 201 Created 

{ 

"id":1, 

"groupname": "ios device group", 

"description":" ios devices group for apps", 

"devices":[ 

{  

"id": 1 

"name": "neil's ipad",  

"user_id": 2, 

"user_name": "neil", 

"model_name": "iPad (3rd Gen)", 

"platform": "ios" 

}, 

...


] 

}

6.3. Retrieve Device Group Details

Get the details of a device group.

HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/devicegroups/{DEVICEGROUP_ID}/ 

Shell command:

curl -H "Authorization:<your API key>" https://<portal>.hexnodemdm.com/api/v1/devicegroups/{DEVICEGROUP_ID}/

HTTP Response:

{  

"id": 4, 

"groupname":"ios device group", 

“description”: “this is a group of ios devices”, 

"devices":[ 

{  

"id": 1, 

"name": "neil's ipad",  

“user_id”: 2, 

"user_name": "neil", 

"model_name": "iPhone 4S", 

"platform": "ios" 

}, 

],  

"policy":[ 

{  

"id":3,  

"name":"android devices",  

"version": 5, 

"created_time": "2017-04-12T13:05:12.605Z"  

}, 

...


],  

"locations":[ 

{ 

"device_name": "Randy Hall",  

"place_name": "Wynnum Rd at Bulimba Creek", 

"reported_time": "2017-03-29T02:15:05.175Z", 

 "longitude": "153.109797270424",  

"latitude": "-27.4797261951427" 

},  

{ 

"device_name": "XiaomiRedmi Note 4",  

"place_name": "Walnut, CA 91789, USA",   

"reported_time": "2017-03-30T09:00:08.901Z",  

"longitude": "-122.0638889",  

"latitude": "37.9063889"  

} 

] 

}

6.4. Update Device Group

Update the device group.

HTTP Request:

PUT https://<portal>.hexnodemdm.com/api/v1/devicegroups/{DEVICEGROUP_ID}/ 

Shell command:

curl -H "Authorization:<your API key>"  -H "Content-Type: application/json" -d '{ "groupname": Neil","description":"description",  "devices":[1,2,3]}'  https://<portal>.hexnodemdm.com/api/v1/devicegroups/{DEVICEGROUP_ID}/ -X PUT
Arguments Type Description
groupname String Required. Name of the device group
description String Required. Description for the group
devices Integer array Optional. IDs of the devices

HTTP Response:

{ 

"id":1, 

"groupname": "ios device group", 

"description":" "ios devices group for apps", 

"devices":[ 

{  

"id": 1, 

"name": "neil's ipad',  

"user_id": 2, 

"user_name": "neil", 

"model_name": "iPhone 4S", 

"platform": "ios" 

}, 

] 

}

6.5. Add/Remove Devices

Add or remove devices to/from a device group.

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/devicegroups/{DEVICEGROUP_ID}/ 

Shell command:

curl -H "Authorization:<your API key>"  -H "Content-Type: application/json" -d '{ "add_devices":[1,2,3],'remove_devices':[4]}' https://<portal>.hexnodemdm.com/api/v1/devicegroups/{DEVICEGROUP_ID}/
Arguments Type Description
add_devices Integer array Required. An array of device IDs of enrolled devices
remove_devices Integer array Required. An array of device IDs of enrolled devices

NOTE: If add_devices and remove_devices contain same ID’s, then those ID’s will be added to the group.

HTTP Response:

{  

"id": 4, 

"groupname":"ios device group", 

"description": "", 

"devices":[ 

{  

"id": 1, 

"name": "neils ipad",  

"model_name": "iPad (3rd Gen)", 

"platform": "ios" 

}, 

], 

}

6.6. Delete Device Group

Deletes a device group.

HTTP Request:

DELETE https://<portal>.hexnodemdm.com/api/v1/devicegroups/{DEVICEGROUP_ID}/ 

Shell command:

curl -H "Authorization:<your API key>" https://<portal>.hexnodemdm.com/api/v1/devicegroup/{DEVICEGROUP_ID}/ -X DELETE

HTTP Response:

HTTP/1.1 204 No Content

7. Policies

7.1. List Policies

List all policies.

HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/policy/ 

Shell command:

curl -H "Authorization:<your API key>" https://<portal>.hexnodemdm.com/api/v1/policy/
Parameters Type Description Default value
page Integer Optional 1
per_page Integer Optional 100

HTTP Response:

{ 

"count": 4, 

"next": null 

"previous": null, 

"results": [ 

{ 

"id": 129, 

"name": "tested", 

"description": "", 

"version": 21, 

"ios_configured": false, 

"android_configured": true, 

"windows_configured": false, 

"created_time": "2017-05-04T07:32:44.775574Z", 

"modified_time": "2017-05-05T09:39:33.577660Z", 

"device_count": 0 

} 

] 

}

7.2. Create Policy

Create a new policy.

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/policy/

Example:

curl -H “Authorization: ” -H “Content-Type: application/json” -d ‘{ “name”: Sales Team Policy”,”description”:””, “ios”:{“password”:{“allow_simple”:true,”force_pin”:true,”max_failed_attempts”:4,”max_grace_period”:5,”max_inactivity”:2,”max_pinage_in_days”:””,”min_complex_chars”:1,”min_length”:1,”pin_history”:””,”require_alphanumeric”:false},”restriction”:{}} }’ https://.hexnodemdm.com/api/v1/policy/
Argument Type Description
name String Name of the policy
description String Description of the policy
ios Dictionary Optional. If provided this dictionary, provide following keys:

password, restrictions, advanced_restrictions, web_content_filter, wifi, email, activesync, ldap, caldav, subscribe_calendar, carddav, webclip, access_point, applock, wallpaper, globalproxy, lock_screen_msg. It can be set to null if nothing is configured

android Dictionary Optional. If provided this dictionary, provide following keys:

Password, restrictions, wifi, email, activesync, applock and wallpaper. It can also be set to null if nothing configured

app_management Dictionary Optional. If provided this dictionary support following keys:

whitelist_apps, blacklist_apps, mandatory_apps and catalogues.

whitelist_apps, blacklist_apps and mandatory_apps are themselves also dictionary which contain app and group keys whose values are a list of corresponding app and appgroup ID’s

general_settings Dictionary Optional. Dictionary for general_settings currently contains only a location_settings key. Its value is a dictionary which contains keys trackingdisabledand interval_minutes.

Key Type
trackingdisabled Boolean
interval_minutes Integer
policy_targets Dictionary Optional. Policy targets support users, devices, usergroups and devicegroups and values are list of their respective IDs

7.2.1. iOS Policies

The password dictionary can contain the following keys:

Argument Type Description Default value
allow_simple Boolean Optional true
require_alphanumeric Boolean Optional false
min_length Integer Optional. Values can be from 1 to 16
min_complex_char Integer Optional. Values can be from 1 to 4
max_pinage_in_days Integer Optional. Specifies the number of days for which the passcode can remain unchanged
max_inactivity Integer Optional. This dictionary contains email configurations
pin_history Dictionary Optional. When the user changes the passcode, it has to be unique within the last N entries in the history. Minimum value is 1, maximum value is 50
max_grace_period Integer Optional. The maximum grace period (in minutes) to unlock the phone without entering a passcode.

Supported values are 1, 5, 15, 60 and 240

max_failed_attempts Integer Optional. Specifies the number of allowed failed attempts to enter the passcode on the device’s lock screen. Supported values are 4, 5, 6, 7, 8, 9 and 10

The restrictions dictionary can contain the following keys:

Argument Type Description Default value
allow_app_installation Boolean Optional true
allow_airdrop_managemendapps Boolean Optional false
allow_camera Boolean Optional true
allow_video_conferencing Boolean Optional true
allow_screen_shot Boolean Optional false
allow_global_background_fetch_when_roaming Boolean Optional true
allow_touchId Boolean Optional true
allow_assistant Boolean Optional true
allow_assistant_while_locked Boolean Optional true
allow_voice_dialing Boolean Optional true
allow_passbook_while_locked Boolean Optional false
allow_inapp_purchases Boolean Optional true
force_itunes_store_password_entry Boolean Optional true
allow_multiplayer_gaming Boolean Optional true
allow_adding_game_center_friends Boolean Optional true
allow_enterprise_app_trust Boolean Optional true
allow_enterprise_app_trust_modification Boolean Optional true
allow_enterprise_book_backup Boolean Optional true
allow_managed_app_sync Boolean Optional true
allow_youtube Boolean Optional true
allow_itunes Boolean Optional true
allow_safari Boolean Optional true
safari_allow_auto_fill Boolean Optional true
safari_force_fraud_warning Boolean Optional false
safari_allow_java_script Boolean Optional true
safari_allow_popups Boolean Optional true
safari_accept_cookies String Optional. Values can be always, visited or never
allow_cloud_backup Boolean Optional true
allow_cloud_document_sync Boolean Optional true
allow_photo_stream Boolean Optional true
allow_shared_stream Boolean Optional true
allow_icloud_photo Boolean Optional true
allow_lockscreen_notify Boolean Optional true
allow_lockscreen_todayView Boolean Optional true
allow_lockscreen_control Boolean Optional true
allow_ota_pki_update Boolean Optional true
limit_ad_tracking Boolean Optional false
allow_diagnostic_submission Boolean Optional true
allow_untrusted_tls_prompt Boolean Optional true
force_encrypted_backup Boolean Optional false
force_applewatch_Detection Boolean Optional false
allow_explicit_content Boolean Optional true
allow_bookstore_erotica Boolean Optional false
rating_region String Optional. Values can be us, au, ca, de, fr, ie, jp, nz or gb
rating_movies String Optional. Values can be allow, nc-17, r, pg-13, pg, g or never
rating_tv_shows String Optional. Values can be allow, tv-ma, tv-14, tv-pg, tv-g, tv-y7, tv-y or never
rating_apps String Values can be allow, 17+, 12+, 9+, 4+, never

The advanced_restrictions dictionary can contain the following keys:

Argument Type Description Default value
allow_airdrop Boolean Optional true
allow_app_cellular_data_modification Boolean Optional true
allow_app_removal Boolean Optional true
allow_bookstore Boolean Optional true
allow_touchId_modify Boolean Optional false
allow_chat Boolean Optional true
allow_game_center Boolean Optional true
allow_host_pairing Boolean Optional true
allow_ui_configuration_profile_installation Boolean Optional true
allow_podcasts Boolean Optional true
allow_definition_lookup Boolean Optional true
allow_predictive_keyboard Boolean Optional true
allow_auto_correction Boolean Optional true
allow_spell_check Boolean Optional true
allow_music_service Boolean Optional true
allow_radio_service Boolean Optional true
allow_news Boolean Optional true
allow_ui_app_installation Boolean Optional true
allow_keyboard_shortcuts Boolean Optional true
allow_paired_watch Boolean Optional true
allow_account_modification Boolean Optional true
allow_erase_content_and_settings Boolean Optional true
allow_assistant_user_generated_content Boolean Optional true
allow_find_my_friends_modification Boolean Optional true
force_assistant_profanity_filter Boolean Optional false
allow_spotlight_internet_results Boolean Optional true
allow_enabling_restrictions Boolean Optional true
allow_passcode_modification Boolean Optional true
allow_device_name_modification Boolean Optional true
allow_wallpaper_modification Boolean Optional true
allow_notifications_modification Boolean Optional true
Allow_automatic_app_downloads Boolean Optional true
autonomous_single_apps Integer array Optional. Can contain IDs of the iOS apps An empty list

The web_content_filter dictionary can contain the following keys:

Arguments Type Description Default value
filter_type String Required. Values can be white_list or black_list
auto_filter_enabled Boolean Optional. Use only when filter_type is black_list false
permitted_urls String array Optional. Used only when auto_filter_enabled is true. Otherwise, this field is ignored
blacklisted_urls String array Optional. Array of URLs. Use only when filter_type is black_list. Otherwise, this field is ignored
whitelist_urls String array Optional. Array of URLs. Use only when filter_type is white_list. Otherwise this field is ignored

The wifi dictionary payload contain can contain the following keys:

Arguments Type Key
service_set_identifier String Required
autojoin Boolean Optional
hidden_network Boolean Optional
security_type String Required. The possible values are None, None, wep, wpa, any, WEP_Enterprise, WPA_Enterprise, Any_Enterprise, eap
proxy_type String Optional. Valid values are None, Manual and Auto

If the security_type field is set to wep, wpa, or any, the following fields must also be provided:

Argument Type Key
password String Required

If the security_type field is set to WEP_Enterprise, WPA_Enterprise, Any_Enterprise or eap, the following fields may also be provided:

Argument Type Description Default value
user_name String Required
user_password String Required if use_per_connection_pwd is set to false
use_per_connection_pwd Boolean Optional
tls Boolean Optional false
leap Boolean Optional false
ttls Boolean Optional true
peap Boolean Optional true
eap_fast Boolean Optional false
eap_sim Boolean Optional false
provision_pac Boolean Optional false
provision_pac_anonymously Boolean Optional false
use_pac Boolean Optional false
inner_authentication String Optional. The possible values are PAP, CHAP, MSCHAP, MSCHAPv2 PAP
outer_identity String Optional None

If the proxy_type field is set to Manual, the following fields must also be provided:

Argument Type Description
proxyserver String Required. The proxy server’s network address
proxy_server_port Integer Required. The proxy server’s port
proxy_user_name String Required. Username used to authenticate the proxy server
proxy_password String Required. Password used to authenticate proxyserver

If the proxy_type field is set to Auto, the following field must also be provided:

Argument Type Description
proxy_pac_url String Required. The URL of the PAC file that defines the proxy configuration

The email dictionary can contain the following keys:

Argument Type Description Default value
account_description String Required. User visible description of the email account
user_display_name String Required. Username of the account. Use %name% for user’s name
account_type String Required. The possible values are POP and IMAP
imap_path_prefix String Optional. Required if account_type is set to IMAP
email_address String Required. The email address for the account. Use %email% for user’s email
allow_move Boolean Optional false
incoming_server_host_name String Required. Incoming mail server host name
incoming_server_port Integer Optional 143
incoming_server_username String Required. Use %username% for username
incoming_server_auth String Required. Possible values are None, Password, MD5, NTLM and HTTP
incoming_password String Required if incoming_server_auth is not None
incoming_server_use_ssl Boolean Optional true
out_server_host_name String Required. Outgoing mail server host name
out_server_port Integer Required 587
out_server_username Integer Required. Value can be null. Use %username% for username
out_server_auth String Required. Possible values are None, Password, MD5, NTLM and HTTP
out_pwd_as_incoming_pwd Boolean Required if out_server_auth is not None
out_password String Required if out_pwd_as_incoming_pwd is set to false
allow_recent_syncing Boolean Optional false
mail_app_only Boolean Optional. Use only in mail
out_server_use_ssl Boolean Optional true
smime_enabled Boolean Optional false

The activesync dictionary can contain the following keys:

Arguments Type Description Default value
account_name String Required
host_name String Required
allow_move Boolean Optional false
recent_address_syncing Boolean Optional false
mail_app_only Boolean Optional false
use_ssl Boolean Optional true
smime_enabled Boolean Optional false
domain String Required. Value can be blank. Use %domain% for user’s domain
username String Required. Use %username% for username and %email% for user’s email address
email_address String Required. Use %email% for user’s email address
password String Optional. Value can be null
no_past_days_to_sync Integer Optional. Possible values are 0, 1, 3, 7, 14, 31 3
cert_compatible_ios4 Boolean Optional true

The ldap dictionary can contain the following keys:

Argument Type Description Default value
account_name String Required. Visible description of the ldap account. Value can be null
host_name String Required
username String Required. Value can be null
password String Required. Value can be null
use_ssl Boolean Optional true

The caldav dictionary can contain the following keys:

Argument Type Description Default value
account_name String Required. Visible description of the caldav account. Value can be null
hostname String Required. Host name of the account
username String Required. Username of the account. Value can be null
password String Required. Password of the account. Value can be null
use_ssl Boolean Optional true
port Integer Optional 80
principal_url String Required. Value can be null

The subscribe_calendar dictionary can contain the following keys:

Argument Type Description Default value
account_name String Required. Visible info about the account. Value can be null
url String Required
username String Required. Value can be null
password String Required. Value can be null
use_ssl Boolean Optional true

The carddav dictionary can contain the following keys:

Argument Type Description Default value
account_name String Required. Visible description. Value can be null
hostname String Required
username String Required. Username of the account. Value can be null
password String Required. Value can be null
use_ssl Boolean Optional true
port Integer Optional 8443
principal_url String Required. Value can be null

The webclip dictionary can contain the following keys:

Argument Type Description Default value
label String Required. Name of the webclip
is_removable Boolean Optional true
url Boolean Required
precomposed_icon Boolean Optional false
fullscreen_icon Boolean Optional false
icon String Required. Base64 encoded image

The access_point dictionary can contain the following keys:

Argument Type Description Default value
apn_name String Required
apn_username String Required. Value can be null
apn_password String Required. Value can be null
proxy_server String Optional. Value can be null
proxy_server_port Integer Optional 0

 
The applock dictionary can contain the following keys:

Argument Type Description Default value
app Integer Required. App ID
disable_touch Boolean Optional false
disable_device_rotation Boolean Optional false
disable_volume_buttons Boolean Optional false
disable_ringer_switch Boolean Optional false
disable_ringer_switch Boolean Optional false
disable_ringer_switch Boolean Optional false
disable_sleep_wake_button Boolean Optional false
disable_auto_lock Boolean Optional false
enable_voice_over Boolean Optional false
enable_zoom Boolean Optional false
enable_invert_colors Boolean Optional false
enable_assistive_touch Boolean Optional false
enable_speak_selection Boolean Optional false
voice_over Boolean Optional false
zoom Boolean Optional false
invert_colors Boolean Optional false
assistive_touch Boolean Optional false

The wallpaper dictionary can contain the following keys:

Argument Type Description
home_screen_wallpaper String Required. Base64 encoded image
lock_screen_wallpaper String Required. Base64 encoded image. Value can be null

The globalproxy dictionary can contain the following keys:

Argument Type Description Default value
proxy_type String Required. Values can be Manual, Auto
proxyserver String Required when proxy_type is set to Manual
proxy_server_port Integer Required when proxy_type is set to Manual
proxy_user_name String Required when proxy_type is Manual. Value can be null
proxy_password String Required when proxy_type is Manual. Value can be null
proxy_pac_url String Required when proxy_type is set to Auto
proxy_pac_fallback_allowed Boolean false
proxy_captive_login_allowed Boolean false

The lock_screen_msg dictionary can contain the following keys:

Argument Type Description
lock_screen_footnote String Required
asset_tag_information String Required. Value can be null

7.2.2. Android Policies

The password dictionary can contain the following keys:

Argument Type Description Default value
passcode_requirement String Optional.Possible values can be simple, numbers, alphanumeric, alphabets, complexvalue simple
min_length Integer Optional. Possible values are from 4 to 16. Ignored if passcode_requirement is set to simple or numbers
max_pinage_in_days Integer Optional. Specifies the number of days for which the passcode can remain unchanged. Minimum value is 1 and maximum value is 730
max_inactivity Integer Optional. Possible values are 1, 2, 3, 4, 5, 10 and 15
pin_history Integer Optional. Possible values are from 1 to 50
max_failed_attempts Integer Optional. Possible values are from 4 to 10

If passcode_requirement is set to complexvalue, the following fields may be required:

Argument Type Description
min_uppercase_letters Integers Optional. Possible values are from 1 to 5
min_lowercase_letters Integer Optional. Possible values are from 1 to 5
min_non_alphapets Integer Optional. Possible values are from 1 to 5
min_num_letters Integer Optional. Possible values are from 1 to 5
min_symbols Integer Optional. Possible values are from 1 to 5

The restrictions dictionary can contain following keys:

Argument Type Description Default value
allow_camera Boolean Optional true
allow_usb_mass_storage Boolean Optional true
allow_network_time Boolean Optional true
allow_wifi Boolean Optional true
enforce_wifi Boolean Optional true
allow_bluetooth Boolean Optional true
allow_data_network Boolean Optional true
allow_bgdata_sync Boolean Optional true
allow_auto_background_sync Boolean Optional true
allow_mobile_app Boolean Optional true
allow_usb_tethering Boolean Optional true
allow_mock_locations Boolean Optional true
allow_wireless_location Boolean Optional true
allow_gps_location Boolean Optional true
allow_non_google_app Boolean Optional true
enforce_app_verification Boolean Optional true
allow_backup_google Boolean Optional true
allow_auto_restore Boolean Optional true
allow_roaming Boolean Optional true
enforce_device_encrypt Boolean Optional true
disable_keyguard Boolean Optional true
allow_password_visible Boolean Optional true
enforce_gps_location Boolean Optional false
allow_mdm_removal Boolean Optional true

The wifi dictionary contains the following keys:

Argument Type Description Default value
service_set_identifier String Required
autojoin Boolean true
hidden_network Boolean false
security_type String Required. Possible values are none, wep, wpa, eap
password String Required if security_type is set to wep or wpa
eap_type String Required if security_type is set to eap.Possible values are peap, ttls, pwd
user_name String Required if security_type is set to eap
enterprise_password String Optional. Value can be set to null
phase2_authentication String Required if eap_type is set to peap. Possible values are None, PAP, MSCHAP, MSCHAPv2, GTC
outer_identity String Required if eap_type is set to peap

The email dictionary contains the following keys:

Argument Type Description Default value
account_name String Value can be null
account_description String Required. Account description
incoming_account_type String Optional. Possible values are pop3 and imap pop3
email_address String Optional. Email address for the account. Value can be set to null
incoming_server_host_name String Required
incoming_server_port Integer Optional 143
incoming_server_username Integer Optional. Value can be null
incoming_password String Optional. Value can be null
incoming_server_use_ssl Boolean Optional true
incoming_server_use_tls Boolean Optional false
incoming_server_use_certificate Boolean Optional false
out_account_type Boolean Required. Possible values are pop3 or smtp
out_server_host_name String Required
out_server_port Integer Optional 587
out_server_username String Optional. Outgoing username for the email. Value can be null
out_password String Optional. Password for account authentication. Value can be null
out_server_use_ssl Boolean Optional true
out_server_use_tls Boolean Optional false
out_server_use_certificate Boolean Optional false

The activesync dictionary contains the following keys:

Argument Type Description Default value
account_name String Optional. Visible account description
host String Required. Exchange ActiveSync Host
domain String Optional. Use %domain% as user’s domain. Value can be null
email_address String Required. Email address for the account. Use %email% for users’ email address.
username String Required. Use %username% for the username
password String Optional. Value can be null
no_past_days_to_sync String Optional. Possible values are auto, manual, 15, 30, 60, 120, 240 auto
use_ssl Boolean Optional true

 

The applock dictionary contains the following keys:

Argument Type Description Default value
apps Array Optional. Apps array have dictionaries which contain keys id whose value is the app ID and hide whose value is boolean
toggle_wifi Boolean Optional true
allow_wifi Boolean Optional true
enable_hexnode_browser Boolean Optional false
auto_launch_app Integer Optional. ID of app added in apps. Ignored if apps key is missing
auto_launch_delay Integer Optional. Delay in seconds. Ignored if apps key is missing
allow_change_brightness Boolean Optional true
brightness_level Integer Required if allow_change_brightness is set to false 0
keep_screen_on Boolean Optional false
allow_bluetooth Boolean Optional true
allow_user_location_checkin Boolean Optional true
kiosk_password String Optional. Password to exit kiosk

The wallpaper dictionary may contain the following keys:

Argument Type Description
mobile_wallpaper String Required. Base64 image
tablet_wallpaper String Required. Base64 image

 

7.3. Policy Details

Get policy details.

HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/policy/{POLICY_ID}/

Shell command:

curl -H "Authorization:" https://<portal>.hexnodemdm.com/api/v1/policy/{POLICY_ID}/

7.4. Edit Policy

Change the policy details.

HTTP Request:

PUT https://<portal>.hexnodemdm.com/api/v1/policy/{POLICY_ID}/

Shell command:

curl  -H "Authorization: <your API key>" -H "Content-Type: application/json" -d '{ "policyName": Sales Team Policy","policyDescription":"", "ios":{"password":{"allow_simple":true,"force_pin":true,"forcePIN":false,"max_failed_attempts":-1, "max_grace_period":-1,"max_inactivity":-1,"max_pinage_in_days":"","min_complex_chars":-1,"min_length":-1,"pin_history":"","require_alphanumeric":false},"delete_credentials":[]},"ios_configured":true }' https://<portal>.hexnodemdm.com/api/v1/policy/{POLICY_ID}/  -X PUT

 

7.5. Delete Policy

Remove policy from Hexnode MDM as well as the devices.

HTTP Request:

DELETE https://<portal>.hexnodemdm.com/api/v1/policy/{POLICY_ID}/

Shell command:

curl  -H "Authorization: <your API key>" https://<portal>.hexnodemdm.com/api/v1/policy/{POLICY_ID}/ -X DELETE

HTTP Response:

HTTP/1.1 204 No Content

 

8. Applications

8.1. List all Apps

List all applications.

HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/applications/

Shell command:

curl -H "Authorization: <your API key>" https://<portal>.hexnodemdm.com/api/v1/applications/
Parameters Type Description Default value
order_by String Optional. Order the result by application name. Use asc or desc asc
app_type String Optional. Values can be store, web or enterprise
platform String Optional. Values can be ios or android
page Integer Optional 1
per_page Integer Optional 100

HTTP Response:

{

"count": 34,

"next": "https://<portal>.hexnodemdm.com/api/v1/applications/?page=23",

"previous": https://<portal>.hexnodemdm.com/api/v1/applications/?page=1,

"results": [

{

"id": 8,

"name": "Google Maps - Navigation & Transit",

"identifier": "com.google.Maps",

"platform": "ios",

"version": "4.29.0",

"bundle_size": 109497344,

"description": "Google Maps makes navigating your world faster",

"vendor": "Google, Inc.",

"app_type": "store",

"webapp_url": null,

"license": "Free",

"category": "Navigation",

"price": "Free",

"icon": "http://is1.mzstatic.com/image/thumb/Purple122/v4/1f/70/69/1f706921-c385-ffd7-b556-9f65d338a884/source/60x60bb.jpg",

"average_user_rating": null

},

...

]

}

 

8.2. Search App

Search ios and android apps, choose platform as ios or android for App Store or Play Store search, respectively.

HTTP Request:

curl  -H "Authorization: <your API key>" -H  https://<portal>.hexnodemdm.com/api/v1/applications/searchapp/?keyword = google&platform=ios
Parameter Type Description
keyword String Required. Name of the app to be searched
platform String Required. Use ios for App Store app search and android for Play Store app search
country String Optional. ISO alpha-2 country code. For example, us,ca

HTTP Response:

{

"count": 50,

"results": [

{

"name": "Google Drive - free online storage",

"identifier": "com.google.Drive",

"appstore_id": 507874739,

"platform": "ios",

"version": "4.2017.13204",

"bundle_size": "190176256",

"description": "Get started with Google Drive for free and have all your files within reach from any smartphone, tablet, or computer. ",

"vendor": "Google, Inc.",

"app_type": "store",

"category": "Productivity",

"primaryGenreId": 6007,

"supported_devices": [

"iPad23G-iPad23G",

"iPhone4S-iPhone4S"

],

"price": "Free",

"icon": "http://is3.mzstatic.com/image/thumb/Purple117/v4/19/6c/5a/196c5a62-a895-ece6-50b9-256213d3b48a/source/60x60bb.jpg",

"appstore_url": "https://itunes.apple.com/us/app/google-drive-free-online-storage/id507874739?mt=8&uo=4",

"average_user_rating": null,

"content_rating": "4+",

"added": false

},

...

]

}

 

8.3. Add App to List

Add an app to Applications list.

HTTP Request:

curl  -H "Authorization: <your API key>" -H "Content-Type: application/json" -d '{  "rating":" Rated 4.4 stars out of five stars ","description":"  The smarter way to search on the go. ",   "price":"Free",

"smallImageUrl":"//lh3.googleusercontent.com/DKoidc0T3T1KvYC2stChcX9zwmjKj1pgmg3hXzGBDQXM8RG_7JjgiuS0CLOh8DUa7as=w170","name":"Google","identifier":"com.google.android.googlequicksearchbox","developer":"Google Inc.",platform":"ios","vendor":"google inc"}'

https://<portal>.hexnodemdm.com/api/v1/applications/ -X POST
Arguments Type Description Default value
name String Required. Name of the app
app_type String Required. Use store, enterprise or web
price String Optional. For example, $5
category String Required. Category for the app. For example, entertainment
vendor String Optional
icon String Required. URL or base64 encoded data of the icon
average_user_rating String Optional. For example, rating 3 out of 5
content_rating String Optional
remove_with_mdm Boolean Optional false
prevent_backup Boolean Optional true

If app_type is set to storeand platform to ios, the following keys are also supported:

Arguments Type Description
identifier String Required. Identifier of the app. For example, com.hexnode.hexnodeMDM
appstore_id Integer Required. App Store ID of the app
version String Required. The version of the app
bundle_size Float Required. The size of the app
description String Required. Values can be null
primaryGenreId Integer Required. Value can be null
appstore_ulr String Required. URL for the app in the App Store

If app_type is set to store and platform to android,the following keys might also be required:

Arguments Type Description
identifier String Required. Identifier of the app
version String Optional. The version of the app
bundle_size Float Optional. Size of the app

If app_type is set to web,the following keys are supported:

Argument Type Description
webapp_url String Required. URL for the web app

HTTP Response:

HTTP/1.1 201 Created

 

8.4. Retrieve App Details

Get the details of the App.

HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/applications/{APP_ID}/

Shell command:

curl -H "Authorization: <your API key>" https://<portal>.hexnodemdm.com/api/v1/applications/{APP_ID}/

HTTP Response:

{

"id": 1,

"name": "Google Chrome – The Fast and Secure Web Browser",

"identifier": "com.google.chrome.ios",

"appstore_id": 535886823,

"platform": "ios",

"version": "57.0.2987.137",

"bundle_size": 94281728,

"vendor": "Google, Inc.",

"app_type": "store",

"webapp_url": null,

"manifest_url": null,

"license": "Free",

"category": "Utilities",

"price": "Free",

"icon": "http://is5.mzstatic.com/image/thumb/Purple91/v4/c1/e9/48/c1e948b2-d0ad-feaa-4cea-fec3ead8c409/source/60x60bb.jpg",

"appstore_url": "https://itunes.apple.com/us/app/google-chrome-the-fast-and-secure-web-browser/id535886823?mt=8&uo=4",

"uploaded_date": "2017-04-17T07:04:52.306000Z",

"average_user_rating": null,

"content_rating": null,

"remove_with_mdm": null,

"prevent_backup": null

}

8.5. Remove App

Remove an app from both Hexnode MDM and the devices if the app was deployed to the devices via a policy.

HTTP Request:

DELETE https://<portal>.hexnodemdm.com/api/v1/applications/{APP_ID}/

HTTP Response:

HTTP/1.1 204 No Content

9. App Groups

9.1. List App Groups

List all App Groups.

HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/appgroups/

Shell command:

curl -H "Authorization: <your API key>" https://<portal>.hexnodemdm.com/api/v1/appgroups/
Parameters Type Description Default value
order_by String Optional. Order the result by app group name. Use asc or desc asc
page Integer Optional 1
per_page Integer Optional 100

HTTP Response:

{

"count": 2,

"next": null,

"previous": null,

"results": [

{

"id": 1,

"name": "app group1",

"description": "hello",

"created_time": "2017-05-22T13:59:23.118Z",

"apps_count": 3

},

...

]

}

9.2. Create App Group

Create an App Group.

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/appgroups/

Shell command:

curl  -H "Authorization: <your API key>" -H "Content-Type: application/json" -d '{  "name":" ios apps ","description":"  ios store free apps ","apps":[2,4,5]}'

https://<portal>.hexnodemdm.com/api/v1/appgroups/ -X POST

 

Arguments Type Description
name String Required. Name of the app group
description String Optional.
apps Array Optional. IDs of the applications

HTTP Response:

{

"id": 1,

"name": "Ios apps",

"description": "ios store free apps",

"created_time": "2017-05-22T13:59:23.118Z",

"apps": [

{

"id": 2,

"name": "Google Chrome – The Fast and Secure Web Browser",

"publisher": "Google, Inc.",

"category": "Utilities",

"price": "Free",

"icon": "http://is5.mzstatic.com/image/thumb/Purple91/v4/c1/e9/48/c1e948b2-d0ad-feaa-4cea-fec3ead8c409/source/60x60bb.jpg"

},

...

]

}

9.3. Retrieve App Group Details

Get the details of an App Group.

HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/appgroups/{APPGROUP_ID}/

Shell command:

curl -H "Authorization: <your API key>" https://<portal>.hexnodemdm.com/api/v1/appgroups/{APPGROUP_ID}/

HTTP Response:

{

"id": 1,

"name": "Ios apps",

"description": "ios store free apps",

"created_time": "2017-05-22T13:59:23.118Z",

"apps": [

{

"id": 2,

"name": "Google Chrome – The Fast and Secure Web Browser",

"publisher": "Google, Inc.",

"category": "Utilities",

"price": "Free",

"icon": "http://is5.mzstatic.com/image/thumb/Purple91/v4/c1/e9/48/c1e948b2-d0ad-feaa-4cea-fec3ead8c409/source/60x60bb.jpg"

},

...

]

}

 

9.4. Update App Group

Update the App Group.

HTTP Request:

PUT https://<portal>.hexnodemdm.com/api/v1/appgroups/{APPGROUP_ID}/

Shell command:

curl  -H "Authorization:<your API key>"  -H "Content-Type: application/json" -d '{ "name": ios apps","description":"ios free apps",  "apps":[1,2,3]}'  https://<portal>.hexnodemdm.com/api/v1/appgroups/{APPGROUP_ID}/ -X PUT
Arguments Type Description
name String Required. Name of the app group
description String Required. Description for the group
apps Integer array Optional. IDs of the app

HTTP Response:

{

"id":1,

"name": "ios apps",

"description":" "ios free apps",

"apps":[

{

"id": 1,

"name": "Google Chrome – The Fast and Secure Web Browser",

"publisher": "Google, Inc.",

"category": "Utilities",

"price": "Free",

"icon": "http://is5.mzstatic.com/image/thumb/Purple91/v4/c1/e9/48/c1e948b2-d0ad-feaa-4cea-fec3ead8c409/source/60x60bb.jpg"

},

]

}

 

9.5. Add/Remove Apps

Add new apps to the group.

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/appgroups/{APPGROUP_ID}/

Shell command:

curl  -H "Authorization:<your API key>"  -H "Content-Type: application/json" -d '{ "add_apps":[1,2,3],'remove_apps':[4]}' https://<portal>.hexnodemdm.com/api/v1/appgroups/{APPGROUP_ID}/
Arguments Type Description
add_apps Integer array Required. An array of app IDs
remove_apps Integer array Required. An array of app IDs

Note: If add_apps and remove_apps contain same IDs, then those IDs will be added to the group.

HTTP Response:

{

"id":1,

"name": "ios apps",

"description":" "ios free apps",

"apps":[

{

"id": 1,

"name": "Google Chrome – The Fast and Secure Web Browser",

"publisher": "Google, Inc.",

"category": "Utilities",

"price": "Free",

"icon": "http://is5.mzstatic.com/image/thumb/Purple91/v4/c1/e9/48/c1e948b2-d0ad-feaa-4cea-fec3ead8c409/source/60x60bb.jpg"

},

...

]

}

 

9.6. Delete App Group

Delete an app group.

HTTP Request:

DELETE https://<portal>.hexnodemdm.com/api/v1/appgroups/{APPGROUP_ID}/

Shell command:

curl  -H "Authorization:<your API key>" https://<portal>.hexnodemdm.com/api/v1/appgroups/{APPGROUP_ID}/ -X DELETE

HTTP Response:

HTTP/1.1 204 No Content

10. App Catalogs

10.1. List App Catalogs

List all app catalogs.

HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/appcatalogues/

Shell command:

curl -H "Authorization: <your API key>" https://<portal>.hexnodemdm.com/api/v1/appcatalogues/
Parameters Type Description Default value
order_by String Optional. Order the result by app catalog name. Use asc or desc asc
page Integer Optional 1
per_page Integer Optional 100

HTTP Response:

{

"count": 2,

"next": null,

"previous": null,

"results": [

{

"id": 1,

"name": "app catalogue",

"description": "ios app and group",

"created_time": "2017-05-22T13:59:23.118Z",

"apps_count": 3,

"app_groups_count":1

},

...

]

}

 

10.2. Create a Catalog

Create an app catalog.

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/appcatalogues/

Shell command:

curl  -H "Authorization: <your API key>" -H "Content-Type: application/json" -d '{  "name":" ios app catalogue ","description":"  ios store free apps ","apps":[153],"app_groups":[1]}'

https://<portal>.hexnodemdm.com/api/v1/appcatalogues/  -X POST

 

Arguments Type Description
name String Required. Name of the app catalog
description String Optional
apps Integer array Optional. The applications IDs
app_groups Integer array Optional. The App group IDs

HTTP Response:

{

"id": 1,

"name": " ios apps ",

"description": "ios store free apps",

"created_time": "2017-05-22T13:59:23.118Z",

"apps": [

{

"id": 153,

"name": "Angry",

"publisher": "Rovio Entertainment Ltd",

"category": "Entertainment",

"price": "Free",

"icon": "http://is5.mzstatic.com/image/thumb/Purple82/v4/88/95/cd/8895cd2f-e532-3792-2b95-3a949a916cf1/source/60x60bb.jpg"

},

...

],

"app_groups": [

{

"id": 1,

"name": "ios app group",

"description": "hello",

"created_time": "2017-05-22T13:59:23.118Z",

"apps": [

{

"id": 1,

"name": "Google Chrome – The Fast and Secure Web Browser",

"publisher": "Google, Inc.",

"category": "Utilities",

"price": "Free",

"icon": "http://is5.mzstatic.com/image/thumb/Purple91/v4/c1/e9/48/c1e948b2-d0ad-feaa-4cea-fec3ead8c409/source/60x60bb.jpg"

},

...

]

}

]

}

10.3. Retrieve App Catalog Details

Get the details of an app catalog

HTTP Request:

GET https://<portal>.hexnodemdm.com/api/v1/appcatalogues/{APPCATALOGUE_ID}/

Shell command:

curl -H "Authorization: <your API key>" https://<portal>.hexnodemdm.com/api/v1/appcatalogues/{APPCATALOGUE_ID}/

HTTP Response:

{

"id": 1,

"name": " ios apps ",

"description": "ios store free apps",

"created_time": "2017-05-22T13:59:23.118Z",

"apps": [

{

"id": 153,

"name": "Angry",

"publisher": "Rovio Entertainment Ltd",

"category": "Entertainment",

"price": "Free",

"icon": "http://is5.mzstatic.com/image/thumb/Purple82/v4/88/95/cd/8895cd2f-e532-3792-2b95-3a949a916cf1/source/60x60bb.jpg"

},

...

],

"app_groups": [

{

"id": 1,

"name": "ios app group",

"description": "hello",

"created_time": "2017-05-22T13:59:23.118Z",

"apps": [

{

"id": 1,

"name": "Google Chrome – The Fast and Secure Web Browser",

"publisher": "Google, Inc.",

"category": "Utilities",

"price": "Free",

"icon": "http://is5.mzstatic.com/image/thumb/Purple91/v4/c1/e9/48/c1e948b2-d0ad-feaa-4cea-fec3ead8c409/source/60x60bb.jpg"

},

...

]

}

]

}

10.4. Update App Group

Update the app group.

HTTP Request:

PUT https://<portal>.hexnodemdm.com/api/v1/appgroups/{APPGROUP_ID}/

Shell command:

curl  -H "Authorization:<your API key>"  -H "Content-Type: application/json" -d '{ "name": ios apps","description":"ios free apps",  "apps":[153],"app_groups":[1]}'  https://<portal>.hexnodemdm.com/api/v1/appgroups/{APPGROUP_ID}/ -X PUT
Arguments Type Description
name String Required. Name of the app group
description String Required. Description for the group
apps Integer array Optional. IDs of the applications
app_groups Integer Array Optional. IDs of the app group

 

HTTP Response:

{

"id": 1,

"name": " ios apps ",

"description": "ios store free apps",

"created_time": "2017-05-22T13:59:23.118Z",

"apps": [

{

"id": 153,

"name": "Angry",

"publisher": "Rovio Entertainment Ltd",

"category": "Entertainment",

"price": "Free",

"icon": "http://is5.mzstatic.com/image/thumb/Purple82/v4/88/95/cd/8895cd2f-e532-3792-2b95-3a949a916cf1/source/60x60bb.jpg"

},

...

],

"app_groups": [

{

"id": 1,

"name": "ios app group",

"description": "hello",

"created_time": "2017-05-22T13:59:23.118Z",

"apps": [

{

"id": 1,

"name": "Google Chrome – The Fast and Secure Web Browser",

"publisher": "Google, Inc.",

"category": "Utilities",

"price": "Free",

"icon": "http://is5.mzstatic.com/image/thumb/Purple91/v4/c1/e9/48/c1e948b2-d0ad-feaa-4cea-fec3ead8c409/source/60x60bb.jpg"

},

...

]

}

]

}

 

10.5. Add/Remove Apps

Add/remove apps to/from the app catalog.

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/appcatalogues/{APPCATALOGUE_ID}/

Shell command:

curl  -H "Authorization:<your API key>"  -H "Content-Type: application/json" -d '{ "add_apps":[1,2,3],'remove_apps':[4],"add_groups":[1],"remove_groups":[]}' https://<portal>.hexnodemdm.com/api/v1/appcatalogues/{APPCATALOGUE_ID}/
Arguments Type Description
add_apps Integer array Required. An array of app IDs
remove_apps Integer array Required. An array of app IDs
add_groups Integer Array Required. An array of app group IDs
remove_groups Integer Array Required. An array of app group IDs

Note: If add_apps and remove_apps contain the same IDs, then those IDs will be added to the catalog.

HTTP Response:

{

"id": 1,

"name": " ios apps ",

"description": "ios store free apps",

"created_time": "2017-05-22T13:59:23.118Z",

"apps": [

{

"id": 153,

"name": "Angry",

"publisher": "Rovio Entertainment Ltd",

"category": "Entertainment",

"price": "Free",

"icon": "http://is5.mzstatic.com/image/thumb/Purple82/v4/88/95/cd/8895cd2f-e532-3792-2b95-3a949a916cf1/source/60x60bb.jpg"

},

...

],

"app_groups": [

{

"id": 1,

"name": "ios app group",

"description": "hello",

"created_time": "2017-05-22T13:59:23.118Z",

"apps": [

{

"id": 1,

"name": "Google Chrome – The Fast and Secure Web Browser",

"publisher": "Google, Inc.",

"category": "Utilities",

"price": "Free",

"icon": "http://is5.mzstatic.com/image/thumb/Purple91/v4/c1/e9/48/c1e948b2-d0ad-feaa-4cea-fec3ead8c409/source/60x60bb.jpg"

},

...

]

}

]

}

 

10.6. Delete App Catalog

Delete an app catalog.

HTTP Request:

DELETE https://<portal>.hexnodemdm.com/api/v1/appcatalogues/{APPCATALOGUE_ID}/

Shell command:

curl  -H "Authorization:<your API key>" https://<portal>.hexnodemdm.com/api/v1/appcatalogues/{APPCATALOGUE_ID}/ -X DELETE

HTTP Response:

HTTP/1.1 204 No Content

11. Actions

11.1. Associate policy

Associate policy to the target devices.

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/actions/associate_policy/

Shell command:

curl  -H "Authorization: <your API key>" -H "Content-Type: application/json" -d '{"policies":[15],"users":[0],"usergroups":[4],"devices":[5,6],"devicegroups":[12]}'  https://<portal>.hexnodemdm.com/api/v1/actions/associate_policy/
Arguments Type Description
policies Array Required. IDs of the policy
users Array Optional. IDs of the users
usergroups Array Optional. IDs of the user groups
devices Array Optional. IDs of the devices
devicegroups Array Optional. IDs of the device groups

 

HTTP Response:

HTTP/1.1 200 ok

11.2. Remove Policy

Remove policy from the target devices.

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/actions/remove_policy/

Shell command:

curl  -H "Authorization: <your API key>" -H "Content-Type: application/json" -d '{"policies":[15],"users":[0],"usergroups":[4],"devices":[5,6],"devicegroups":[12]}'  https://<portal>.hexnodemdm.com/api/v1/actions/remove_policy/
Arguments Type Description
policies Array Required. IDs of the policy
users Array Optional. IDs of the users
usergroups Array Optional. IDs of the user groups
devices Array Optional. IDs of the devices
devicegroups Array Optional. IDs of the device groups

 

HTTP Response:

HTTP/1.1 200 ok

11.3. Install Application

Install an application to associated target devices.

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/actions/install_applications/

Shell command:

curl  -H "Authorization: <your API key>" -H "Content-Type: application/json" -d '{"apps":[15],"users":[0],"usergroups":[4],"devices":[5,6],"devicegroups":[12]}'  https://<portal>.hexnodemdm.com/api/v1/actions/install_applications/
Arguments Type Description
apps Array Required. IDs of the apps to be installed
users Array Optional. IDs of the users
usergroups Array Optional. IDs of the user groups
devices Array Optional. IDs of the devices
devicegroups Array Optional. IDs of the device groups

HTTP Response:

HTTP/1.1 200 ok

11.4. Uninstall Applications

Remove managed applications from iOS devices.

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/actions/uninstall_applications/

Shell command:

curl  -H "Authorization: <your API key>" -H "Content-Type: application/json" -d '{"apps":[15],"users":[0],"usergroups":[4],"devices":[5,6],"devicegroups":[12]}'  https://<portal>.hexnodemdm.com/api/v1/actions/uninstall_applications/
Arguments Type Description
apps Array IDs of the apps to be removed
user Array IDs of the users
usergroup Array IDs of the user groups
device Array IDs of the devices
devicegroup Array IDs of the device groups

HTTP Response:

HTTP/1.1 200 ok

 

11.5. Lock Device

Lock a device.

HTTP Request:

 POST https://<portal>.hexnodemdm.com/api/v1/actions/lock_devices/

Shell command:

curl  -H "Authorization: <your API key>" -H "Content-Type: application/json" -d '{"users":[0],"usergroups":[4],"devices":[5,6],"devicegroups":[12],"message":"Hai","phone_number":"999}'  https://<portal>.hexnodemdm.com/api/v1/actions/lock_devices/
Arguments Type Description
message String Optional. Message to be displayed on the device
phone_number String Required. Phone number
user Array Optional. IDs of the users
usergroups Array Optional. IDs of the user groups
devices Array Optional. IDs of the devices
devicegroups Array Optional. IDs of the device groups

HTTP Response:

HTTP/1.1 200 ok

11.6. Scan Location

Scan the location of a device.

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/actions/scan_location/

Shell command:

curl  -H "Authorization: <your API key>" -H "Content-Type: application/json" -d '{"users":[0],"usergroups":[4],"devices":[5,6],"devicegroups":[12]}'  https://<portal>.hexnodemdm.com/api/v1/actions/scan_location/
Arguments Type Description
users Array Optional. IDs of the users
usergroups Array Optional. IDs of the user groups
devices Array Optional. IDs of the devices
devicegroups Array Optional. IDs of the device groups

HTTP Response:

HTTP/1.1 200 ok

11.7. Scan Device

Scan a device

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/actions/scan_device/

Shell command:

curl  -H "Authorization: <your API key>" -H "Content-Type: application/json" -d '{"users":[0],"usergroups":[4],"devices":[5,6],"devicegroups":[12]}'  https://<portal>.hexnodemdm.com/api/v1/actions/scan_device/
Arguments Type Description
users Array Optional. IDs of the users
usergroups Array Optional. IDs of the user groups
devices Array Optional. IDs of the devices
devicegroups Array Optional. IDs of the device groups

HTTP Response:

 HTTP/1.1 200 ok

11.8. Clear Passcode

Clear the passcode of the devices.

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/actions/clear_passcode/

Shell command:

curl  -H "Authorization: <your API key>" -H "Content-Type: application/json" -d '{"users":[0],"usergroups":[4],"devices":[5,6],"devicegroups":[12]}'  https://<portal>.hexnodemdm.com/api/v1/actions/clear_passcode/
Arguments Type Description
users Array IDs of the users
usergroups Array IDs of the user groups
devices Array IDs of the devices
devicegroups Array IDs of the device groups

HTTP Response:

HTTP/1.1 200 ok

 

11.9. Wipe Device

Wipe the device.

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/actions/wipe_device/

Shell command:

curl  -H "Authorization: <your API key>" -H "Content-Type: application/json" -d '{"users":[1],"usergroups":[4],"devices":[5,6],"devicegroups":[12]}'  https://<portal>.hexnodemdm.com/api/v1/actions/wipe_device/
Arguments Type Description
users Array Optional. IDs of the users
usergroups Array Optional. IDs of the user groups
devices Array Optional. IDs of the devices
devicegroups Array Optional. IDs of the device groups

HTTP Response:

HTTP/1.1 200 ok

11.10. Disenroll Devices

Disenroll selected devices.

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/actions/disenroll/

Shell command:

curl  -H "Authorization: <your API key>" -H "Content-Type: application/json" -d '{"users":[1],"usergroups":[4],"devices":[5,6],"devicegroups":[12]}'  https://<portal>.hexnodemdm.com/api/v1/actions/disenroll/
Arguments Type Description
users Array Optional. IDs of the users
usergroups Array Optional. IDs of the user groups
devices Array Optional. IDs of the devices
devicegroups Array Optional. IDs of the device groups

HTTP Response:

HTTP/1.1 200 ok

11.11. Enable Lost Mode

Enable lost mode for the devices if the devices are compromised (Supervised iOS devices only).

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/actions/enable_lostmode/

Shell command:

curl  -H "Authorization: <your API key>" -H "Content-Type: application/json" -d '{"users":[0],"usergroups":[4],"devices":[5,6],"devicegroups":[12]}' https://<portal>.hexnodemdm.com/api/v1/actions/enable_lostmode/
Arguments Type Description
users Array Optional. IDs of the users
usergroups Array Optional. IDs of the user groups
devices Array Optional. IDs of the devices
devicegroups Array Optional. IDs of the device groups

HTTP Response:

HTTP/1.1 200 ok

Note: Device will send its location coordinates if scan device location action is initiated for Lost Mode-enabled devices.

11.12. Disable Lost Mode

Disable Lost Mode works only for Lost mode enabled devices (Supervised iOS devices only).

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/actions/disable_lostmode/

Shell command:

curl  -H "Authorization: <your API key>" -H "Content-Type: application/json" -d '{"users":[0],"usergroups":[4],"devices":[5,6],"devicegroups":[12]}'  https://<portal>.hexnodemdm.com/api/v1/actions/disable_lostmode/
Arguments Type Description
users Array Optional. IDs of the users
usergroups Array Optional. IDs of the user groups
devices Array Optional. IDs of the devices
devicegroups Array Optional. IDs of the device groups

HTTP Response:

HTTP/1.1 200 ok

 

11.13. Change Owner

Change the owner of the devices.

HTTP Request:

POST https://<portal>.hexnodemdm.com/api/v1/actions/change_owner/

Shell command:

curl  -H "Authorization: <your API key>" -H "Content-Type: application/json" -d '{"devices":[],user:1}' https://<portal>.hexnodemdm.com/api/v1/actions/change_owner/ -X POST
Argument Type Description
devices Array Required. IDs of the devices
user String Required. IDs of the user

HTTP Response:

HTTP/1.1 200 ok
Desktop or Mobile, Hexnode MDM Got You Covered!
FREE 30-DAY TRIAL