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:

Device and Company Operations

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"
}
]
}
  1. 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
  2. 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'
  3. 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
  4. The response will contain the details of the API key user’s company and its sub companies
  5. The 'configuration_id' returned for each company will have 'private_encryption', 'full_client' options disabled by default
  6. 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
  7. 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
  8. 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

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"
}
  1. 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
  2. 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
  3. In the request parameter list, if 'build_type' is not specified, then the default value of WIN will be taken as parameter value

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"
}
  1. 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
  2. The name field is mandatory in the payload
  3. The response after successful creation will contain the details of the company
  4. The 'configuration_id' returned for the newly created company will have 'private_encryption', 'full_client' options disabled by default
  5. 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
  6. 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
  7. 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

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"
}
]
  1. 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
  2. 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
  3. 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
  4. 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

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"
}
]
  1. 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
  2. If 'device_id' field is specified, the device summary of only that device will be returned in the response array
  3. 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

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"
}
  1. When the request is successful a 200 status code will be returned with the above response payload

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
email 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
}
  1. If the request is successful, a response with status code 201 will be returned
  2. 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
  3. The field applied_to contains the string of comma separated device_id of devices to which the backup plan has been applied to
  4. 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)

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"
}
}
}
]
}
]
  1. 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.
  2. 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
  3. 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).
  4. 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.
  5. 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:

  1. The base/top level error "type" is the generic cause for request failure and the request specific "errors" are specified in an array format
  2. The base/top level "message" field is irrelevant for processing, present for readability which describes the base/top level error "type"
  3. If the inner "errors" field is not present, handle the request failure using the base/top level error "type"
  4. 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
  5. 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