Migrate to new API Gateway

Overview

Druva offers APIs to enable the integration of other applications with Druva products. Druva initially introduced APIs for a small set of features in Druva inSync that enabled applications to consume data from inSync Legal Hold, Reports, and Events.

Druva has recently released a large set of APIs for its products - inSync and Phoenix. These APIs expose extensive product functionalities that could be leveraged for automating and reporting workflows either via third-party integrations or via stand-alone REST API calls.

The new APIs are offered over the new API Gateway that is designed to offer you more secure access to data with Druva and interact with it using APIs. This article lists the changes and instructions to migrate from the​ earlier version of APIs to the latest version.

To whom does this article apply to?

This article applies to Druva customers who are currently using the following APIs:

API versions

API Endpoint

inSync Reports APIs v1, v2, and v3

https://insyncapi-cloud.druva.com/api/reports

inSync Legal Hold APIs v1 and v2

https://insyncapi-cloud.druva.com/api/legalhold

inSync Events API v1

https://insyncapi-cloud.druva.com/api/events

What has changed with new APIs?

With the introduction of new APIs, Druva has made the following updates to enable customers or applications integrate with APIs in a secure and seamless manner.

  • Authentication is common across products and has a new URL -https://apis.druva.com/token. All the requests to Druva APIs are authenticated using OAuth 2.0 access token.
  • New common URL to access APIs for all Druva products - https://apis.druva.com. Product-specific APIs are classified as follows:
  • Under each product, the APIs have been identified and grouped based on specific use-cases such as ‘User Management’, ‘Profile Management’, ‘Storage Management’, ‘Legal Hold’, ‘Event Management’, and so on.

For the entire list of available product-wise APIs, see the API Reference tab.

What should I do to use new APIs?

If you have configured applications to consume data using the earlier version of Druva APIs, you need to update their configuration for the following -

  • Update URL to access APIs
  • Update credentials to use the OAuth 2.0 Access token for authentication. To know more about Access token, see FAQs.
  • Update your older API scripts to hit the new API endpoints. Since the response parameters vary considerably in the new API endpoints, in most cases, you might have to perform multiple API calls and merge those results if you are looking for exactly the same responses that you were getting with your older APIs. Kindly refer this section here for detailed mapping of response parameters in old and new APIs and steps to get required response parameters.

Are there any sample scripts to help with migration to the new API Gateway?

Yes. Druva provides sample scripts using which you can migrate to the new API Gateway. For more information, see Sample scripts.

Whom do I contact for more information?

For any queries or concerns about API migration, kindly submit a case with Druva Support.

Mapping of response parameters in old vs new APIs

This section maps the response parameters in old vs new APIs. It also lists the steps that the customers need to follow in-order to get the equivalent information from the new API endpoints under the Druva API gateway.

📘

Note

  • There is no change in the response parameters or schema for the following APIs:
    • Legal Hold APIs
    • Event API
  • Few response parameters that are returned in old Reporting APIs are not available in the new APIs.
  • Additionally, the following old APIs are currently not available with the new API Gateway:
    • First Backup Details API
    • Share Details API
    • Restore Details API

We are continuously working on enhancing the new APIs to add information based on the feedback and use-cases.

Mapping
Old API Name - User List API (https://insyncapi-cloud.druva.com/api/reports/v3/users)
New API Name - List all users (https://apis.druva.com/insync/usermanagement/v1/users)

Old response parameters

New response parameters

user_name

userName

email_id

emailID

added_on

addedOn

user_status

status

allocated_quota

quota

user_id

userID

Not available

profileID

Not available

storageID

storage_usage

To get the storage usage of a user,

  1. Call the List all users API and record the userID parameter value of the user.
  2. Call the List all devices API and use the userID parameter to get the list of all the devices associated with a user. Record the deviceID for every device.
  3. For every device, call the Get Device Information API and use the deviceID to fetch the record of the totalBackupData.
  4. Perform sum of all the totalBackupData for all the devices of the user.

profile

To get the profile name associated with a user,

  1. Call the List all users API and record the profileID parameter value.
  2. Call the Get Profile Information API and use the profileID value to get the profile name.

storage

To get the storage name associated with a user,

  1. Call the List all users API and record the storageID parameter value.
  2. Call the Get Storage Information API and use the storageID to get the storage name.

Old API Name - Device List API (https://insyncapi-cloud.druva.com/api/reports/v3/devices)
New API Name - List all devices (https://apis.druva.com/insync/endpoints/v1/devices)

Old response parameters

New response parameters

device_name

deviceName

device_status

deviceStatus

client_version

clientVersion

OS_platform

platformOS

last_upgrade_on

lastUpgradedON

device_OS

deviceOS

Upgrade_state

upgradeState

added_on

addedON

total_backup_data

totalBackupData

serial_number

serialNumber

uuid

uuid

user_id

userID

device_id

deviceID

system_settings_backed_up

To get the System Settings Backed Up value for a device,

  1. Call the List all Devices API and record the deviceID value of each device.
  2. For each device, call the List endpoint backups API using deviceID as a query parameter. It returns the systemSettingsBackedUp field which specifies whether the system settings were backed up as part of the backup.

email_id

To get the email address of the user associated with a device,

  1. Call the List all Devices API and record the userID of the user.
  2. Call the Get user information API using the userID as a query parameter to get the email address of the user.

first_backup_status

Currently not available

first_backup_size

Currently not available

Old API Name - Last Backup Details API (https://insyncapi-cloud.druva.com/api/reports/v3/lastbackupdetails)
New API Name - List Endpoint Backups (https://apis.druva.com/insync/endpoints/v1/devices)

Old response parameters

New response parameters

last_backup_status

backupStatus

bytes_transferred

bytesTransferred

files_missed

filesMissed

files_backed_up

filesBackedup

system_settings_backed_up

systemSettingsBackup

backup_start_time

startTime

backup_end_time

endTime

device_id

deviceID

email_id

To get the email address of the user,

  1. Call the List Endpoint Backups API and record the deviceID of the user.
  2. Call the Get Device Information API using the deviceID as a query parameter. Record the userID parameter of the user.
  3. Call the Get user information API using the userID as a query parameter to get the email address of the user.

device_name

To get the device name,

  1. Call the List Endpoint Backups API and record the deviceID of the user.
  2. Call the Get Device Information API using the deviceID as a query parameter to get the deviceName in response.

backup_data

snapshotSize

OS_platform

To get the OS platform details,

  1. Call the List Endpoint Backups API and record the deviceID of the user.
  2. Call the Get Device Information API using the deviceID as a query parameter to get the platformOS in response.

serial_number

To get the serial number of the device,

  1. Call the List Endpoint Backups API and record the deviceID.
  2. Call the Get Device Information API using the deviceID as a query parameter to get the serialNumber in response.

uuid

To get the uuid of the device,

  1. Call the List Endpoint Backups API and record the deviceID.
  2. Call the Get Device Information API using the deviceID as a query parameter to get the uuid in response.

last_connected

To get the last connected time of the device,

  1. Call the List Endpoint Backups API and record the deviceID.
  2. Call the Get Device Information API using the deviceID as a query parameter to get the lastConnected time in response.

user_id

To get the userId of the user,

  1. Call the List Endpoint Backups API and record the deviceID.
  2. Call the Get Device Information API using the deviceID as a query parameter to get the userID in response.

Old API Name - Cloud Storage Details API (https://insyncapi-cloud.druva.com/api/reports/v3/storages)
New API Name - Get Storage Information (https://apis.druva.com/insync/storagemanagement/v1/storages/)

Old response parameters

New response parameters

storage_name

Storage Name

total_size_of_backed_up_files

total_size_of_backed_up_files

storage_usage

Storage Usage

no_of_users

Currently not available

Old API Name - CloudCache Details API (https://insyncapi-cloud.druva.com/api/reports/v3/cloudcachedetails)
New API Name - Get CloudCache Server Information (https://apis.druva.com/insync/storagemanagement/v1/cloudcaches)

Old response parameters

New response parameters

cloudcache_name

cloudCacheName

total_cache_size

totalCacheSize

cache_usage

cacheUsage

no_of_users

Currently not available

no_of_users_for_restore

Currently not available

Old API Name - Inactive Devices API (https://insyncapi-cloud.druva.com/api/reports/v3/inactivedevicesdetails)
New API Name - N.A. - Currently, the information can be aggregated by combining multiple API calls.

Old response parameters

New response parameters

last_backup_date

To get the last backup date for a device,

  1. Call the ‘List all devices’ API and record the deviceID.
  2. Call the ‘List Endpoint Backups’ API and do the following:
  • Set ‘lastSuccessful’ request parameter value to True
  • Enter the deviceID value recorded in Step 1 in the deviceID parameter.

In the API response, ‘endTime’ response parameter denotes the last time that the device was backed up.

email_id

To get the email address of a user with the associated device,

  1. Call the List all devices API and record the deviceID and userID response parameter values.
  2. Call the Get user information API using the userID as a query parameter to get the email address of the user.

auto_delete_on

Currently not available

profile_name

To get the name of the profile associated with a user,

  1. Call the List all devices API and record the deviceID and userID response parameter values.
  2. Call the Get user information API using the userID as a query parameter to get the profileID associated with the user.
  3. Call the Get Profile Information API using the profileID as a query parameter to get the profileName.

user_status

To get the status of the user account of the associated device,

  1. Call the List all devices API and record the deviceID and userID response parameter values.
  2. Call the Get user information API using the userID as a query parameter to get the 'status' of the user.

uuid

To get the uuid of a device, call the Get Device Information API using the deviceID query parameter.

last_connected

To get the information about when the device last connected, call the Get Device Information API using the deviceID query parameter.

device_status

To get the device status, call the Get Device Information API using the deviceID query parameter.

device_name

To get the device name, call the Get Device Information API using the deviceID query parameter.

serial_number

To get the serial number of a device, call the Get Device Information API using the deviceID query parameter.

user_name

To get the user name of a user with the associated device,

  1. Call the List all devices API and record the deviceID and userID response parameter values.
  2. Call the Get user information API using the userID as a query parameter to get the 'name' of the user.

user_id

To get user id of a user, call the List all users API.

device_id

To get device id of a device, call the List all devices API.