IDrive® 360 API's Collection
- IDrive® 360 API's Collection
- Authorization Header API Key
- Base Endpoint
- Device and Company Operations
- - Fetch Company Summary
- - Fetch Configuration ID
- - Create Company
- - Fetch Company by Name
- - Fetch Device Summary
- - Update Email Notification for a Device
- Create Backup Plan
- Fetch Backup Plan
- HTTP Response codes
- Error Response
- Error Types
- Error Fields
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'
Request Parameters:
- company_id (not-required, number): The company ID
Success Response:
{
"name": "default",
"status": 1,
"company_id": 15020,
"status_description": "Active",
"configuration_id": "eyJ0b2tlbiI6IkFUVkFXUTE3MjQyIiwiZW5jcnlwdGlvblJlcXVpcmVkIjpmYWxzZSwiZGVza3RvcEFwcFN0YXR1cyI6ZmFsc2V9",
"setup_link": "https://api.idrive360.com/api/v1/download/setup/win/ATVAWQ17242",
"sub_company_list": [
{
"name": "Test Company",
"status": 1,
"company_id": 15806,
"status_description": "Active",
"configuration_id": "eyJ0b2tlbiI6IkZBT0JaNDE3MjQyIiwiZW5jcnlwdGlvblJlcXVpcmVkIjpmYWxzZSwiZGVza3RvcEFwcFN0YXR1cyI6ZmFsc2V9",
"setup_link": "https://api.idrive360.com/api/v1/download/setup/win/FAOBZ417242"
},
{
"name": "MSP-1",
"status": 1,
"company_id": 15816,
"status_description": "Active",
"configuration_id": "eyJ0b2tlbiI6Ik1ZSENKUDE3MjQyIiwiZW5jcnlwdGlvblJlcXVpcmVkIjpmYWxzZSwiZGVza3RvcEFwcFN0YXR1cyI6ZmFsc2V9",
"setup_link": "https://api.idrive360.com/api/v1/download/setup/win/MYHCJP17242"
},
{
"name": "MSP-2",
"status": 1,
"company_id": 15817,
"status_description": "Active",
"configuration_id": "eyJ0b2tlbiI6Ik5KUEhIOTE3MjQyIiwiZW5jcnlwdGlvblJlcXVpcmVkIjpmYWxzZSwiZGVza3RvcEFwcFN0YXR1cyI6ZmFsc2V9",
"setup_link": "https://api.idrive360.com/api/v1/download/setup/win/NJPHH917242"
}
]
}
- In the request parameter list, if the 'company_id' field is not specified, then the user’s company associated with the API key will be taken as parameter
- If the 'company_id' corresponds to the API key user’s company, then sub companies of the user’s company will be returned in the payload with key 'sub_company_list'
- If the 'company_id' corresponds to any sub company of the API key user’s company, then only that target company details will be returned
- The response will contain the details of the API key user’s company and its sub companies
- The 'configuration_id' returned for each company will have 'private_encryption', 'full_client' options disabled by default
- If 'private_encryption' or 'full_client' option is to be included in the 'configuration_id' use the /company/fetch_config_id API with respective parameter values
- The 'setup_link' returned is the download link for the setup corresponding to the 'configuration_id' returned. Here by default the setup link for Windows is returned
- If the download link for the setup corresponding to another OS is to be downloaded, use the /company/fetch_config_id API with respective parameter value
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
- private_encryption (not-required, boolean): If client installed in device should have private encryption [Here explain or provide link for private encryption documentation]
- full_client (not-required, boolean): If client installed in device should have access to full-client features [Here explain or provide link for full-client documentation]
- build_type (not-required, string, case-insensitive): The target OS for which the setup link is to be used (WIN, MAC, RPM, DEB, MSI, PKG)
Success Response:
{
"name": "default",
"company_id": 123,
"configuration_id": "eyJ0b2tlbiI6IkFUVkFXUTE3MjQyIiwiZW5jcnlwdGlvblJlcXVpcmVkIjpmYWxzZSwiZGVza3RvcEFwcFN0YXR1cyI6ZmFsc2V9",
"setup_link": "https://api.idrive360.com/api/v1/download/setup/win/ATVAWQ17242"
}
- In the request parameter list, if the 'company_id' field is not specified, then the user’s company associated with the API key will be taken as parameter
- In the request parameter list, if the fields 'private_encryption', 'full_client' are not specified, then the default value of false will be taken as parameter value
- In the request parameter list, if 'build_type' is not specified, then the default value of WIN will be taken as parameter value
Create Company:
POST /company
Consumes: application/json
Produces: application/json
Request Headers:
- Authorization: Bearer 'api-key'
Request Body:
{
"name": "idrive",
"company_id": 1111
}
Success Response: 201 Created
{
"name": "idrive",
"status": 1,
"company_id": 12223,
"status_description": "Active",
"configuration_id": "eyJ0b2tlbiI6IkFUVkFXUTE3MjQyIiwiZW5jcnlwdGlvblJlcXVpcmVkIjpmYWxzZSwiZGVza3RvcEFwcFN0YXR1cyI6ZmFsc2V9",
"setup_link": "https://api.idrive360.com/api/v1/download/setup/win/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
- The name field is mandatory in the payload
- The response after successful creation will contain the details of the company
- The 'configuration_id' returned for the newly created company will have 'private_encryption', 'full_client' options disabled by default
- If 'private_encryption' or 'full_client' option is to be included in the 'configuration_id' use the /company/fetch_config_id API with respective parameter values
- The 'setup_link' returned is the download link for the setup corresponding to the 'configuration_id' returned. Here by default the setup link for Windows is returned
- If the download link for the setup corresponding to another OS is to be downloaded, use the /company/fetch_config_id API with respective parameter value
Fetch Company by Name:
GET /company/name
Consumes: application/json
Produces: application/json
Request Headers:
- Authorization: Bearer 'api-key'
Request Parameters:
- name (required, string): The company name
- case_sensitive (not-required, boolean): Value specifying if the matching should be case sensitive
- exact (not-required, boolean): Value specifying if the matching should be exact/partial
Success Response:
[
{
"name": "MSP-1",
"status": 1,
"company_id": 15816,
"status_description": "Active",
"configuration_id": "eyJ0b2tlbiI6Ik1ZSENKUDE3MjQyIiwiZW5jcnlwdGlvblJlcXVpcmVkIjpmYWxzZSwiZGVza3RvcEFwcFN0YXR1cyI6ZmFsc2V9",
"setup_link": "https://api.idrive360.com/api/v1/download/setup/win/MYHCJP17242"
},
{
"name": "MSP-2",
"status": 1,
"company_id": 15817,
"status_description": "Active",
"configuration_id": "eyJ0b2tlbiI6Ik5KUEhIOTE3MjQyIiwiZW5jcnlwdGlvblJlcXVpcmVkIjpmYWxzZSwiZGVza3RvcEFwcFN0YXR1cyI6ZmFsc2V9",
"setup_link": "https://api.idrive360.com/api/v1/download/setup/win/NJPHH917242"
}
]
- In the request parameter list, if the 'case_sensitive' field is not specified, then the default value of false (case insensitive) will be taken for this parameter
- In the request parameter list, if the 'exact' field is not specified, then the default value of true (exact matching) will be taken for this parameter
- The response will contain an array of company details matching the name with settings specified in the request parameter list within the hierarchy accessible by the API key
- If the array is empty, it signifies that no company in the hierarchy accessible by the API key is found matching the name with settings specified
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 parameter list, 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",
"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") |
| type | The frequency of the email notification (e.g., "ALWAYS", "ON_FAILURE", “NEVER”). If the frequency is “NEVER” then notifications will be disabled |
| 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
Create Backup Plan:
POST /backup_plan
Consumes:application/json
Produces:application/json
Request Headers:
- Authorization: Bearer 'api-key'
Request Parameters:
- dry_run (not-required, boolean): Flag specified to run the request without modifications, false by default
Request Body:
{
"company_id": 14366,
"device_ids": [
"1l3d3bxrgf2fpwblc5qoyiezihz5behf6lbab6ljsngkomgonx",
],
"group_ids": [],
"name": "namechange_new_1",
"backup_details": {
"what_to_backup": "FILE_FOLDER",
"where_to_backup": "CLOUD"
"items_to_backup": [
"[All Profiles Folder]"
],
"local_dest_path": "C:\\Users\\Mark\\IDrive360LocalDest"
},
"scheduler": {
"disable_schedule": false,
"start_missed_backup": false,
"frequency_type": "MONTHLY",
"time": "17:40:30",
"months": [
"JANUARY",
"FEBRUARY"
],
"dates": [
"23",
"25"
],
"days": [
"SUN",
"MON"
],
"cutoff_time": "07:00:00",
"email": [
"mark@idrive.com"
],
"send_email_notification": "ALWAYS"
},
"exclude_hidden": true,
"exclude_system": true,
"enable_cdp": true,
"cdp_frequency": "TEN_MINUTES",
"exclude_partial":
"*.appicon,*.appinfo,*.cab,*.dl_,*.dll,*.dmg,*.drk,*.exe,*.fdd,*.hdd,*.hds,*.iso,*.ithmb,*.log,*.mem,*.menudata,*.
msi,*.nvram,*.o,*.ost,*.pva,*.pvi,*.pvm,*.pvs,*.qtch,*.sparseimage,*.sys,*.vdi,*.vhd,*.vhdx,*.vmc,*.vmdk,*.vmem,*.vmsd,
*.vmsn,*.vmss,*.vmx,*.vmxf,*.vo1,*.vo2,*.vsv,*.vud,*.wab~,*.wim"
}
Base Request Fields:
| Field Name | Required/Optional | Description |
|---|---|---|
| company_id | Optional | The company ID under which the backup plan is to be created. If not specified, the API key user’s company will be taken |
| device_ids | Optional (Array) | An array of device IDs to which the backup plan will be applied |
| group_ids | Optional (Array) | An array of group IDs to which the backup plan will be applied |
| name | Required | The name of the new backup plan |
| backup_details | Required (Object) | Contains details about what to backup and the location where the backups are stored |
| scheduler | Required (Object) | Contains details about the backup schedule, frequency, and email notifications |
| exclude_hidden | Optional (Boolean) | If set to true, hidden files/folders will be excluded from the backup (N/A for ENTIRE_MACHINE backups, will be ignored if specified) |
| exclude_system | Optional (Boolean) | If set to true, system files/folders will be excluded from the backup (N/A for ENTIRE_MACHINE backups, will be ignored if specified) |
| enable_cdp | Optional (Boolean) | If set to true, Continuous Data Protection (CDP) will be enabled (N/A for ENTIRE_MACHINE backups, will be ignored if specified) |
| cdp_frequency | Optional (String) | The frequency for CDP. Required if enable_cdp is true. (e.g., "REAL_TIME", "TEN_MINUTES", "THIRTY_MINUTES", "SIXTY_MINUTES") (N/A for ENTIRE_MACHINE backups, will be ignored if specified) |
| exclude_partial | Optional (String) | A comma-separated string of file extensions to partially exclude from the backup (N/A for ENTIRE_MACHINE backups, will be ignored if specified) |
Nested Request Fields (backup_details):
| Field Name | Required/Optional | Description |
|---|---|---|
| what_to_backup | Required (String) | 1. File/Folder backup - Backup individual items, use pre-defined policy rules, or create custom policies in items_to_backup 2. Entire Machine backup - It is applicable only for Windows PC and it will backup all drives in the internal hard disk. In case the selected devices or groups include Mac or Linux, they will not be considered for backup (e.g., "FILE_FOLDER", "ENTIRE_MACHINE") |
| where_to_backup | Required (String) | The backup destination (e.g., "CLOUD", "LOCAL") |
| items_to_backup | Optional (Array) | An array of paths or predefined policy rules to be included in the backup (e.g., of predefined policy rules "[PROFILEDEFAULTFOLDERS]", "[All Profiles Folder]", "%ALLUSERSPROFILE%", "%PROGRAMFILES%", "%WINDIR%") (e.g., of custom paths "C:\Data\*.log", "C:\Data\Finance\", "C:\Data\Finance\F.log", "C:\Users\*\Desktop\", "/Users/JOHN/Desktop/*.txt", "/Users/JOHN/Desktop/F.txt", "/Users/*/Desktop/") Required if File/Folder backup is selected |
| local_dest_path | Optional (String) | The local destination path for the backup (if backup_set is LOCAL) When not specified, local backups will happen in default location |
Nested Request Fields (scheduler):
| Field Name | Required/Optional | Description |
|---|---|---|
| disable_schedule | Optional (Boolean) | If set to true, the backup schedule will be disabled. Defaults to false |
| start_missed_backup | Optional (Boolean) | If set to true, missed scheduled backups will start automatically when the device is back online. Defaults to false |
| frequency_type | Required (String) | The frequency type for the schedule (e.g., "MONTHLY", "WEEKLY", "DAILY", "HOURLY", "IMMEDIATE") |
| time | Required (String) | The time of day for the scheduled backup in HH:MM:SS format |
| months | Required (Array) | An array of months when the backup should run (if frequency_type is "MONTHLY", e.g., to apply to particular months "JANUARY", "FEBRUARY" or to apply to all months "ALL" ) |
| dates | Required (Array) | An array of days of the month when the backup should run (if frequency_type is "MONTHLY") (e.g., "1, 2, 3, 4, …, 31", to run on all days of the month "ALL_DAYS", to run on last day of the month "LAST_DAY" ) |
| days | Required(Array) | An array of week days when the backup should run (if frequency_type is "WEEKLY") (e.g., "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT", to run on all days "ALL") |
| daily_mode | Required(String) | The days on which backup should run (if frequency_type is "DAILY") (e.g., "ALL_DAYS","WEEKDAYS") |
| cutoff_time | Optional (Array) | The time of day after which a scheduled backup should be stopped in HH:MM:SS format |
| Optional (Array) | An array of email addresses to receive backup notifications | |
| send_email_notification | Optional (String) | The frequency for sending email notifications (e.g., "ALWAYS", "ON_FAILURE", "NEVER"). If frequency is "NEVER" then email notifications will be disabled |
Success Response:
{
"conflicts": [
{
"device_id": "1l3d3bxrgf2fpwblc5qoyiezihz5behf6lbab6ljsngkomgonx",
"plan_name": "Default backup plan"
}
],
"backup_id": "406717",
"where_to_backup": "CLOUD",
"not_applied_to": "",
"status": 201
}
- If the request is successful, a response with status code 201 will be returned
- In the success response, the field conflicts is an array of objects with device_id and existing plan_name which has been replaced with the backup plan created in the request
- The field applied_to contains the string of comma separated device_id of devices to which the backup plan has been applied to
- The field not_applied_to contains the string of comma separated device_id of devices to which the backup plan has not been applied to due to the device not being active i.e., (blocked, canceled or archived)
Fetch Backup Plan:
GET /backup_plan
Consumes:application/json
Produces:application/json
Request Headers:
- Authorization: Bearer 'api-key'
Request Parameters:
- company_id (not-required, number): The company ID
- backup_id (not-required, string): The backup plan ID
Success Response:
[
{
"backup_id": "679251",
"name": "testingplan",
"backup_set": "ENTIRE_MACHINE",
"is_backup_enabled": true,
"backup_pending_on": "hflafghwiv33fwbycnzfgnpbaocbrorndnakn6uqhmbbpsbua6",
"exclude_system": true,
"exclude_hidden": true,
"backup_details": {
"what_to_backup": "ENTIRE_MACHINE",
"where_to_backup": "CLOUD"
},
"cdp_enabled": false,
"schedule_info": {
"email": "mark@idrive.com",
"start_missed_backup": false,
"days": [
"MON",
"TUE",
"WED",
"THU",
"FRI"
],
"frequency_type": "DAILY",
"time": "16:45:00",
"cutoff_time": "09:00:00",
"send_email_notification": "NEVER",
"scheduler_disabled": falsev
},
"devices": [
{
"os": "windows",
"version": "6.8.2.11",
"name": "MARK-DAV1",
"status": "online",
"device_id": "hflafghwiv33fwbycnzfgnpbaocbrorndnakn6uqhmbbpsbua6",
"company_id": "51324",
"custom_tag": "Mark",
"backup_status": "Failure",
"last_backup": "2026-02-17T05:39:20.120",
"next_backup": "2026-02-17T11:15:00.000",
"backup_failure_reason": "NA",
"next_scheduled_backupset_name": "DEFAULT",
"user_backup_sets": {
"DEFAULT": {
"backup_id": "814757",
"backup_name": "CDPSIXTYMINUTESWithWIN"
},
"LOCAL": {
"backup_id": "367507",
"backup_name": "LOCALPLAN"
},
"ENTIRE_MACHINE": {
"backup_id": "679251",
"backup_name": "ENTIREPLAN"
}
}
}
]
}
]
- In the request parameter list, if the `company_id` field is not specified, then the user’s company associated with the API key will be taken as parameter.
- In the request parameter list, if the `company_id` is specified and not the `backup_id`, then all the backup plans present in the company corresponding to `company_id`will be returned
- If `backup_id`is specified in the parameter list, then that particular backup plan will be fetched from the company corresponding to `company_id`, if specified (else user’s company).
- If a backup plan is applied to devices, then the information corresponding to those devices will be present in the response under the "devices" array.
- If a backup plan is applied to groups, then group ids corresponding to those groups will be present in the response under the "groups" array.
| Field Name | Description |
|---|---|
| is_backup_enabled | The status of backup plan (enabled/disabled) |
| backup_applied_on | The device_ids to which the backup plan has been successfully applied |
| backup_pending_on | The device_ids to which the backup plan has not yet been applied |
| backup_failed_on | The device_ids for which the backup plan application failed |
| devices | The list of devices to which the backup plan has been applied |
| groups | The list of group IDs to which backup plan has been applied |
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 |