IDrive® 360 API's Collection
IDrive® 360 API's Collection
The IDrive® 360 API is built on REST architecture and supports JSON for both request and response bodies.
Authentication is handled through an API Key. You can generate this key from My Account > API Keys in your IDrive® 360 Management Console.
Include the generated key in every API request by adding it to the HTTP header under Authorization.
Authorization Header API Key
| Key | Authorization |
|---|---|
| Value | Bearer <YOUR-API-KEY> |
Base Endpoint:
https://api.idrive360.com/api/msp
Device and Company Operations
Fetch Company Summary:
GET /company
Consumes: application/json
Produces: application/json
Request Headers:
- Authorization: Bearer `api-key`
Success Response:
{
"name": "default",
"status": 1,
"company_id": 15020,
"status_description": "Active",
"configuration_id": "ATVAWQ17242",
"sub_company_list": [
{
"name": "Test Company",
"status": 1,
"company_id": 15806,
"status_description": "Active",
"configuration_id": "FAOBZ417242"
},
{
"name": "MSP-1",
"status": 1,
"company_id": 15816,
"status_description": "Active",
"configuration_id": "MYHCJP17242"
},
{
"name": "MSP-2",
"status": 1,
"company_id": 15817,
"status_description": "Active",
"configuration_id": "NJPHH917242"
}
]
}
Fetch Configuration ID:
GET/company/fetch_config_id
Consumes: application/json
Produces: application/json
Request Headers:
- Authorization: Bearer `api-key`
Request Parameters:
- company_id (not-required, number): The company ID
Success Response:
{
"name": "default",
"company_id": 123,
"configuration_id": "ATVAWQ17242",
}
- In the request body, if the `company_id` field is not specified, then the user’s company associated with the API key will be taken as parameter
Create Company:
POST /company
Consumes: application/json
Produces: application/json
Request Headers:
- Authorization: Bearer `api-key`
Request Body:
{
"name": "idrive"
}
Success Response: 201 Created
{
"name": "idrive",
"status": 1,
"company_id": 12223,
"status_description": "Active",
"configuration_id": "BK96AK17242"
}
- The name field is mandatory in the payload
- The response after successful creation will contain the details of the company
Fetch Device Summary:
GET /device/summary
Consumes: application/json
Produces: application/json
Request Headers:
- Authorization: Bearer `api-key`
Request Parameters:
- company_id (not-required, number): The company ID
- device_id (not-required, string): The device ID
Success Response:
[
{
"name": "test-office",
"status": "offline",
"device_id": wvlgllxuuaomn4bk4atfljznjyvsfhfeo5g6wgyart3osefi",
"company_id": "1111",
"custom_tag": " ",
"os": "linux",
"backup_status": "Success",
"version": "1.0.21",
"last_backup": "2025-06-11T11:12:58.000",
"next_backup": null,
"group_name": "Linux"
}
]
- In the request body, if the `company_id` field is not specified, then the user’s company associated with the API key will be taken as parameter
- If `device_id` field is specified, the device summary of only that device will be returned in the response array
- The response will contain the device details of all devices accessible by the user corresponding to the API key
| Field Name | Description |
|---|---|
| name | The name of the device |
| status | The current status of the device (e.g., online, offline, blocked, archived) |
| device_id | The device ID associated with the device |
| company_id | The company ID associated with the device |
| custom_tag | Any custom tag assigned to the device |
| os | The operating system of the device |
| backup_status | The status of the last backup (e.g., Success, Failed, In Progress, Cancelled) |
| version | The version of the backup application installed on the device |
| last_backup | The timestamp of the last successful backup |
| next_backup | The timestamp of the next scheduled backup |
| group_name | The name of the group the device belongs to |
Update Email Notification for a Device:
PUT/device/backup_plan/email_notification
Consumes:application/json
Produces:application/json
Request Headers:
- Authorization: Bearer `api-key`
Request Body:
{
"device_id": "wtrp2zjidqr4hlsfz9vmebvtmudrpdfkayaskeunmq4civffo9",
"backup_set": "DEFAULT",
"status": true,
"type": "ALWAYS",
"emails": [
"test@idrive.com",
"support@idrive.com"
]
}
| Field Name | Description |
|---|---|
| device_id | The device ID associated with the device |
| backup_set | The name of the backup set (e.g., “DEFAULT”, “LOCAL”, “ENTIRE_MACHINE”, “MAPPED_DRIVE”, “EXPRESS”) |
| status | Boolean indicating whether email notification is to be enabled (true) or disabled (false) |
| type | The frequency of the notification (e.g., "ALWAYS", "ON_FAILURE") |
| emails | An array of email addresses to receive the notification |
Success Response:
{
"ok": true,
"message": "Email notification settings updated successfully"
}
- When the request is successful a 200 status code will be returned with the above response payload
HTTP Response codes:
- 200 - Request Success
- 201 - Created resource
- 401 - Unauthorized
- 400 - Invalid request/ Invalid parameters
- 429 - Dependency error
- 500 - Internal Server Error
Error Response:
- The base/top level error "type" is the generic cause for request failure and the request specific "errors" are specified in an array format
- The base/top level "message" field is irrelevant for processing, present for readability which describes the base/top level error "type"
- If the inner "errors" field is not present, handle the request failure using the base/top level error "type"
- The inner "errors" field contains the array of errors encountered while performing the request operation which contains the individual error "type", "field" and "message"/description
- In certain cases, a "field" will also be returned with the "errors" content, which indicates that the request execution failed due to an operation performed with that "field"
{
"ok": false,
"type": "entity_not_found",
"message": "The specified entity being addressed either does not exist or is invalid. The request should not be retried without modification or until the indicated entity is set up.",
"code": 400,
"errors": [
{
"type": "entity_not_found",
"field": "device_id",
"message": "The entity corresponding to the device id specified cannot be found, not-active or not-configured"
}
]
}
Error Types:
| Error Type | Base Error Type | Status Code | Description |
|---|---|---|---|
| missing_authorization_header | authentication_failed | 401 | The authorization header with the API_KEY is missing |
| malformed_authorization_header | authentication_failed | 401 | The authorization header is malformed, the accepted format is `Bearer <API_KEY>` |
| admin_company_not_active | invalid_state | 400 | The company of the administrator associated with the API_KEY is inactive |
| admin_not_active | invalid_state | 400 | The administrator associated with the API_KEY is inactive |
| insufficient_privileges | authentication_failed | 401 | The user associated with the API_KEY is not permitted to access this resource due to insufficient privileges, contact administrator |
| access_restricted | invalid_request | 400 | Custom description based on request execution failure |
| processing_fault | processing_fault | 500 | An internal processing error occurred while parsing JSON object |
| internal_error | internal_error | 500 | An internal error occurred while processing the request |
| entity_creation_failed | internal_error | 500 | Failed to create the entity in the system |
| entity_not_found | entity_not_found | 400 | The requested entity was not found in the system |
| invalid_request | invalid_request | 400 | Custom description based on request execution failure |
| invalid_parameter | invalid_parameter | 400 | Custom description based on request execution failure |
| same_state | same_state | 400 | Custom description based on request execution failure |
| dependency_exception | dependency_exception | 429 | Custom description based on request execution failure |
Error Fields:
- A list of "field" types returned in the inner "errors" payload along with the scenarios in which the "field" might be returned are listed below
| Field | Scenarios |
|---|---|
| device_id | The device ID specified in the request |
| company_id | The company ID specified in the request or the admin’s company ID corresponding to the API_KEY |
| notification_server | Any dependency issue when accessing our backup servers |
| emails | Email addresses specified in the request |
| backup_set | Any action triggering changes to the backup plan of a device |
| backup_policy | Any action triggering changes to the backup plan of a device |
| backup_policy_schedule | Any action triggering changes to the backup plan schedule of a device |
| status | Status specified in the request |
| name | Names specified in the request |