Druva Microsoft 365 API
App management and restore operations for Druva-protected Microsoft 365 data - OneDrive and Exchange Online restores, and SharePoint Online restores.
App management and restore operations for Druva-protected Microsoft 365 data - OneDrive and Exchange Online restores, and SharePoint Online restores.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/microsoft-365"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
{"openapi":"3.0.3","info":{"version":"1.0.0","title":"Microsoft 365","description":"This document lists M365 APIs for data protection using Druva inSync."},"servers":[{"url":"https://apis.druva.com"}],"tags":[{"name":"App Management","description":"Lists the APIs to get information and perform operations on M365 Apps managed in Druva SaaS Apps."}],"paths":{"/insync/cappmaster/v1/apps/status":{"get":{"tags":["App Management"],"summary":"Get Microsoft 365 Apps Status","description":"Provides the App Connection Status for M365.","operationId":"getCloudAppStatus","security":[{"bearerAuth":[]}],"parameters":[{"$ref":"#/components/parameters/tenantType"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudAppStatus"},"examples":{"M365":{"$ref":"#/components/examples/CloudAppStatus"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"BadRequest":{"$ref":"#/components/examples/BadRequest"}}}}},"401":{"description":"The request did not include an authentication token or an expired authentication token was supplied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"Unauthorized":{"$ref":"#/components/examples/Unauthorized"}}}}},"403":{"description":"Access denied: Insufficient permissions. User requires specific access rights and minimum permissions. Details: https://help.druva.com/en/articles/15069296","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"Forbidden":{"$ref":"#/components/examples/Forbidden"},"GARError":{"$ref":"#/components/examples/GARError"}}}}},"404":{"description":"The requested resource was not found.","content":{"application/json":{"schema":{},"examples":{"NotFound":{"$ref":"#/components/examples/NotFound"}}}}},"500":{"description":"The request was not processed due to an internal error on server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"InternalServerError":{"$ref":"#/components/examples/InternalServerError"}}}}},"501":{"description":"Requested HTTP method is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"NotImplemented":{"$ref":"#/components/examples/NotImplemented"}}}}}}}},"/insync/sharepointmaster/v3/sites":{"get":{"tags":["Restore SharePoint Online data"],"summary":"List All SharePoint Site Collections","description":"Retrieve the list of SharePoint site collections.","operationId":"getSites","security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"lastBackupStatus","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Backup Failed","Backed Up With Errors","Backed Up Successfully","Never Backed Up","Backup Cancelled"]},"description":"Specify the backup status of the SharePoint site for filtering. Set this value to one of the following: `Backup Failed`, `Backed Up With Errors`, `Backed Up Successfully`, `Successful with errors`, `Never Backed Up`, or `Backup Cancelled`. Leave empty to return all sites."}},{"in":"query","name":"searchTerm","required":false,"schema":{"type":"string","description":"Specify the title or URL of the SharePoint site for filtering."}},{"in":"query","name":"sortOrder","required":false,"schema":{"type":"string","enum":["asc","desc"],"description":"Specify the sorting order for the results. Use `asc` for ascending or `desc` for descending."}},{"in":"query","name":"sortByColumn","required":false,"schema":{"type":"string","enum":["siteCollectionId","title","siteStatus","lastBackupStatus","statusDetails","siteType","bulkExportStatus","lastBulkExportStatus","lastCompletedBulkExport","lastSync","backupData","siteCollectionUrl","configurationStatus","appState"],"description":"Specify the column name to sort the results. Example: Choose `lastSync` to arrange the results based on the last synchronization time of the SharePoint site."}},{"in":"query","name":"pageSize","required":false,"schema":{"type":"integer","maximum":1000,"description":"Specify the number of records to retrieve per request.\nFor example, if you want to retrieve 100 records in each request, set the `pageSize` as `100`."}},{"in":"query","name":"nextPageToken","required":false,"schema":{"type":"string","description":"Specify the token to access the next page of results. Keep this field blank in the first request. Use the token value received in the previous response's parameter 'nextPageToken'."}},{"in":"query","name":"appState","required":false,"schema":{"type":"string","enum":["Enabled","Disabled"],"description":"Specify the status of the SharePoint site for filtering. Set this value to one of the following: `Enabled` or `Disabled`."}},{"in":"query","name":"configurationStatus","required":false,"schema":{"type":"string","enum":["Configured","Not Configured"],"description":"Specify the configuration status of the SharePoint site for filtering. Set this value to one of the following: `Configured` or `Not Configured`"}},{"in":"query","name":"siteType","required":false,"schema":{"type":"array","items":{"type":"string","enum":["MS Teams Site","M365 Groups Site","MS Teams Private Channel Site","Other Site"]},"description":"Specify the type of SharePoint site for filtering.\nSet this value to one of the following: `MS Teams Site`, `M365 Groups Site`, `MS Teams Private Channel Site` or `Other Site.`"}},{"in":"query","name":"bulkExportStatus","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Enabled","Disabled"]},"description":"Specify the Bulk Export Status of the SharePoint site for filtering.\nSet this value to one of the following: `Enabled` or `Disabled`."}},{"in":"query","name":"lastBulkExportStatus","required":false,"schema":{"type":"array","items":{"type":"string","enum":["Completed Successfully","Failed","Completed With Errors","Never Exported"]},"description":"Specify the Last Bulk Export Status of the SharePoint site for filtering. Set this value to one of the following: `Completed Successfully`, `Failed`, `Completed With Errors` or `Never Exported.`"}},{"in":"query","name":"pageNumber","required":false,"schema":{"type":"integer","description":"Specify the `pageNumber` parameter to indicate the page of results to retrieve in paginated API requests.\n\n For example, when initially calling the API with a `pageSize` of `100`, the first request returns records 1 to 100. Subsequent pages can be fetched using either the `nextPageToken` or `pageNumber` parameter.\n\n This parameter allows you to directly retrieve records from a specific page (e.g., records `401` to `500`) by providing the desired page number (e.g., `5`)."}},{"in":"query","name":"errors","required":false,"schema":{"type":"array","items":{"type":"string","enum":["MS-01","MS-247","MS-11","MS-17","MS-10","MS-22","MS-70","MS-135","MS-75","SPO-01","SPO-02","SPO-03","SPO-04","SPO-05","SPO-06","SPO-07","SPO-09","SPO-11","SPO-12","SPO-13","SPO-15","SPO-16","SPO-17","SPO-18","SPO-19","SPO-20","SPO-21","SPO-22","SPO-23","SPO-24","SPO-25","SPO-26","SPO-27","SPO-28","SPO-29","SPO-31","SPO-32","SPO-35"]},"example":["MS-01","SPO-22"],"description":"Specify a comma-separated list of specific error codes to filter the results.\nExample: use codes like `SPO-01`, `SPO-02`, and so on."}}],"responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/200_list_sites"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"BadRequest":{"$ref":"#/components/examples/BadRequest"}}}}},"401":{"description":"The request did not include an authentication token or an expired authentication token was supplied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"Unauthorized":{"$ref":"#/components/examples/Unauthorized"}}}}},"403":{"description":"Access denied: Insufficient permissions. User requires specific access rights and minimum permissions. Details: https://help.druva.com/en/articles/15069296","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"Forbidden":{"$ref":"#/components/examples/Forbidden"},"GARError":{"$ref":"#/components/examples/GARError"}}}}},"404":{"description":"The requested resource was not found.","content":{"application/json":{"schema":{},"examples":{"NotFound":{"$ref":"#/components/examples/NotFound"}}}}},"500":{"description":"The request was not processed due to an internal error on server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"InternalServerError":{"$ref":"#/components/examples/InternalServerError"}}}}},"501":{"description":"Requested HTTP method is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"NotImplemented":{"$ref":"#/components/examples/NotImplemented"}}}}}}}},"/insync/sharepointmaster/v2/siteCollections/{site_collection_id}/restorePoints":{"get":{"tags":["Restore SharePoint Online data"],"summary":"List All SharePoint Site Restore Points","description":"Retrieve the list of restore points for SharePoint sites protected by Druva.","security":[{"bearerAuth":[]}],"parameters":[{"name":"site_collection_id","in":"path","description":"Specify the unique identifier associated with a specific SharePoint site collection for filtering. Get the ID of a site using the `List all SharePoint Site Collections` API.","required":true,"schema":{"type":"integer"}},{"name":"include_virtual","in":"query","description":"Specify the flag indicating whether to include a curated snapshot in the result. Use `true` to include or `false` to exclude the curated snapshot.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/200_list_spo_restore_points"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"BadRequest":{"$ref":"#/components/examples/BadRequest"}}}}},"401":{"description":"The request did not include an authentication token or an expired authentication token was supplied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"Unauthorized":{"$ref":"#/components/examples/Unauthorized"}}}}},"403":{"description":"Access denied: Insufficient permissions. User requires specific access rights and minimum permissions. Details: https://help.druva.com/en/articles/15069296","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"Forbidden":{"$ref":"#/components/examples/Forbidden"},"GARError":{"$ref":"#/components/examples/GARError"}}}}},"404":{"description":"The requested resource was not found.","content":{"application/json":{"schema":{},"examples":{"NotFound":{"$ref":"#/components/examples/NotFound"}}}}},"500":{"description":"The request was not processed due to an internal error on server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"InternalServerError":{"$ref":"#/components/examples/InternalServerError"}}}}},"501":{"description":"Requested HTTP method is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"NotImplemented":{"$ref":"#/components/examples/NotImplemented"}}}}}}}},"/insync/sharepointmaster/v2/restores":{"post":{"tags":["Restore SharePoint Online data"],"summary":"Restore a SharePoint Site","description":"Performs a restore of a SharePoint site to a new or existing site.","operationId":"restorePoints","security":[{"bearerAuth":[]}],"requestBody":{"content":{"application/json":{"schema":{"properties":{"site_collection_id":{"type":"integer","example":123,"required":["site_collection_id"],"description":"Specify the unique identifier associated with a specific SharePoint site collection for filtering. \n\nGet the ID of a site using the `List all SharePoint Site Collections` API."},"path":{"type":"string","example":"[{\"minor_type\": 1, \"handle\": \"/Thu Mar 7 13:18:43 2024/shan_dl_restore\", \"parent\": \"root\"}]","required":["path"],"description":"Specify the list of paths to be restored, including the minor type, handle, and root for each path. \n\n The format for each path is as follows: \n `{\"minor_type\": 1,\n\"handle\": \"/Thu Mar 7 13:18:43 2024/shan_dl_restore\",\n\"parent\": \"root\"}` \n\n - **Minor Type**: The minor type represents the type of item being restored. The possible values are:`0-Folder`, `1-File`, `2-Document List`, `9-Settings File`, `10-List`, `11-Subsite`\n\n - **Handle**: The handle is the path to the specific item being restored relative to the snapshot. It follows this format: `</snapshot_name/snapshot_title/item_to_restore>`\n\n - **Parent/Root**: The root specifies the parent directory or root context for the item being restored. Multiple paths can be provided as a comma-separated list. It follows this format: `</snapshot_name/snapshot_title/parent_dir>`"},"in_place":{"type":"boolean","example":"true/false","description":"Specify the flag indicating if the restore operation is an in-place restore. \n\n - If param `restore_to` is set to `new` then `<in_place>` should be `false`. \n\n - If param `restore_to` is set to `existing`, then `in_place` should be `true`.","required":["in_place"]},"sid":{"type":"integer","example":1,"required":["sid"],"description":"Specify the ID of the storage assigned to the site collection. \nGet the ID of storage using the `List all storages API`. This API returns the list of all storage that the customer is using. \n\nThe list will provide the ID - Storage name mapping for each region that the customer is using. To know a SharePoint site's storage name, customers can see a SharePoint site's summary."},"restore_to":{"type":"string","example":"new","description":"Specify the flag indicating if the data should be restored to a new or an existing site. \nUse `new` to restore data to a new site collection or `existing` to restore data to an existing site collection.\n\nⓘ Note: If param `restore_to` is set to `new`, then `in_place` should be `false`. If param `restore_to` is set to `existing` then `in_place` should be `true`."},"destination_site_url":{"type":"string","example":"/sites/example","description":"Specify the URL of the destination site to be used in case of restoring data to an existing site."},"destination_site_title":{"type":"string","example":"Hello","description":"Specify the title of the destination site to be used in case of restoring data to an existing site."},"use_source_site_params":{"type":"boolean","example":false,"description":"Specify the flag indicating if the parameters from the source site should be used when restoring data to a new or existing site. \n\n - When set to `true`, the restore operation will apply the site configuration parameters (e.g., site templates, language settings, regional settings, etc.) from the original source site to the destination site. \n\n - If set to `false`, the operation will use the default site configuration parameters for the destination site, ignoring the source site's settings."},"new_site_params":{"type":"string","description":"Specify the site title and description containing the details for the new site to be created during a restore operation to a new site.\n\n `{\"new_site_title\": Title of the new site,\"new_site_description\": Description of the new site}` \n\nⓘNote: If param `restore_to` is set to an `existing`, the `new_site_params` is not required.","example":"{\"new_site_title\":\"RestoreNewprasadtestsite824\",\"new_site_description\":\"Whole site restore to a new site with site settings\"}"},"spo_settings_restore_option":{"type":"integer","example":1,"description":"Specify whether the SharePoint Online settings need to be restored or not during the restore operation. \n\n - Set it to `1` to include SharePoint Online settings in the restore process. These settings may include site configurations, regional settings, language settings, and other SharePoint Online-specific settings. \n\n - Set it to `0` to skip restoring SharePoint Online settings and only restore the content and data."},"teams_restore_params":{"type":"string","example":"","description":"Specify the parameters required for restoring a team. \n\n `{\"destination_site_collection_url\": \"/sites/example\", \"restore_to\": \"new\", \"restore_paths\": \"[{\"minor_type\": 1, \"handle\": \"/Thu Mar 7 13:18:43 2024/shan_dl_restore\", \"parent\": \"root\"}]\", \"is_wiki_restore\": \"false\"}`\n\n ⓘ Note: This is required only if `is_team_triggered` parameter is set to `true`"}}}}}},"responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/200_trigger_spo_restore_resp"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"BadRequest":{"$ref":"#/components/examples/BadRequest"}}}}},"401":{"description":"The request did not include an authentication token or an expired authentication token was supplied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"Unauthorized":{"$ref":"#/components/examples/Unauthorized"}}}}},"403":{"description":"Access denied: Insufficient permissions. User requires specific access rights and minimum permissions. Details: https://help.druva.com/en/articles/15069296","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"Forbidden":{"$ref":"#/components/examples/Forbidden"},"GARError":{"$ref":"#/components/examples/GARError"}}}}},"404":{"description":"The requested resource was not found.","content":{"application/json":{"schema":{},"examples":{"NotFound":{"$ref":"#/components/examples/NotFound"}}}}},"500":{"description":"The request was not processed due to an internal error on server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"InternalServerError":{"$ref":"#/components/examples/InternalServerError"}}}}},"501":{"description":"Requested HTTP method is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"NotImplemented":{"$ref":"#/components/examples/NotImplemented"}}}}}}}},"/insync/usermanagement/v1/users":{"get":{"tags":["Restore OneDrive/Exchange Online data"],"summary":"List users based on query filters","description":"Retrieve a filtered list of users based on query filters.","operationId":"getUserList","security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"profileID","schema":{"type":"integer"},"required":false,"description":"Specify the unique ID of a profile to retrieve the list of users associated with that profile. Obtain the profile ID using the `List all profiles` API."},{"in":"query","name":"status","schema":{"type":"string","enum":["active","preserved"]},"required":false,"description":"Specify the flag indicating the desired user account status to filter the list of users based on the current status of their accounts. \n Set it to `active` to list active users or `Preserved` to list the preserved users."},{"in":"query","name":"storageID","schema":{"type":"integer","minimum":1},"required":false,"description":"Specify the ID of the storage assigned to the site collection. Get the ID of storage using the `List all storages API`. This API returns the list of all storage that the customer is using. \n\nThe list will provide the ID - Storage name mapping for each region that the customer is using. To know a SharePoint site's storage name, customers can see a SharePoint site's summary"},{"in":"query","name":"minAddedOn","schema":{"type":"string","pattern":"([12]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01]))T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]Z"},"required":false,"description":"Specify the date/time to filter the list of users to include only those who were added to Druva inSync after the specified date and time. Provide the UTC date and time using the `YYYY-MM-DDTHH:MM:SSZ` format."},{"in":"query","name":"maxAddedOn","schema":{"type":"string","pattern":"([12]\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01]))T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]Z"},"required":false,"description":"Specify the date/time to filter the list of users to include only those who were added to Druva inSync before the specified date and time. Provide the UTC date and time using the `YYYY-MM-DDTHH:MM:SSZ` format."},{"in":"query","name":"emailID","schema":{"type":"string","pattern":"^(([^<>()\\[\\]\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$"},"required":false,"description":"Specify the email address of a user to retrieve their details."},{"in":"query","name":"cacheID","schema":{"type":"integer"},"required":false,"description":"Specify the ID of a CloudCache Server to retrieve the list of users associated with that server. \n\nObtain theCloudCache Server ID using the `List all CloudCache Servers` API."},{"in":"query","name":"userIDs","schema":{"type":"array","items":{"type":"integer"}},"required":false,"description":"Specify an array of unique user IDs to retrieve the details of specific users. Separate multiple user IDs with commas. /n/n - When this parameter is provided, the API will return information for only the users whose IDs are included in the array. /n - If it is not provided, the API returns the details of all the users."},{"in":"query","name":"searchPrefixUserName","schema":{"type":"string"},"required":false,"description":"Specify a prefix string to search and list users whose usernames begin with that prefix. The search is case-insensitive. \n\nExample: To search for users with usernames that start with `Ern` (such as `Ernie` or `Ernest`), set `searchPrefixUserName=Ern`."},{"in":"query","name":"searchPrefixEmailID","schema":{"type":"string"},"required":false,"description":"Specify a prefix string to search and list users whose email addresses begin with that prefix. The search is case-insensitive. \n\n Example: To search for users with email addresses that start with `ernie.carter` (such as `ernie.carter@example.com`), set `searchPrefixEmailID=ernie.carter`."},{"in":"query","name":"ldapGUID","schema":{"type":"string"},"required":false,"description":"Specify the Active Directory (AD) or Lightweight Directory Access Protocol (LDAP) object globally unique identifier (GUID) to retrieve a list of users associated with it. \n\nPass the parameter value as a hexadecimal string. For example: 'B1C47201C67910458867BA19982E353E'."},{"in":"query","name":"privacySettingsEnabled","schema":{"type":"boolean"},"required":false,"description":"Specify the privacy flag to filter the list of users based on the status of their privacy settings. \n\n - Set it to true to list users who have their privacy settings enabled or \n\n - Set it to false to list users who have their privacy settings disabled."},{"in":"query","name":"orderBy","schema":{"type":"string","enum":["userName","emailID","deviceCount","customUniqueID","totalDeviceUsage","m365Usage","googleUsage","cloudappCount","userID"]},"required":false,"description":"Specify the column name that Druva should use for sorting the data. Druva will sort the results using the data in the column and the sorting order that you specify in the next field. \n\nFor example, to sort the data using the `emailID` column, set `orderBy=emailID.`"},{"in":"query","name":"order","schema":{"type":"string","enum":["asc","desc"]},"required":false,"description":"Specify the sorting order for the data. \n\n - Set it to asc to sort the data in ascending order or \n\n - Set it as desc to sort the data in descending order."}],"responses":{"200":{"description":"success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/200_list_users"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"BadRequest":{"$ref":"#/components/examples/BadRequest"}}}}},"401":{"description":"The request did not include an authentication token or an expired authentication token was supplied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"Unauthorized":{"$ref":"#/components/examples/Unauthorized"}}}}},"403":{"description":"Access denied: Insufficient permissions. User requires specific access rights and minimum permissions. Details: https://help.druva.com/en/articles/15069296","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"Forbidden":{"$ref":"#/components/examples/Forbidden"},"GARError":{"$ref":"#/components/examples/GARError"}}}}},"404":{"description":"The requested resource was not found.","content":{"application/json":{"schema":{},"examples":{"NotFound":{"$ref":"#/components/examples/NotFound"}}}}},"500":{"description":"The request was not processed due to an internal error on server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"InternalServerError":{"$ref":"#/components/examples/InternalServerError"}}}}},"501":{"description":"Requested HTTP method is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"NotImplemented":{"$ref":"#/components/examples/NotImplemented"}}}}}}}},"/insync/cadevice/v1/devices":{"get":{"tags":["Restore OneDrive/Exchange Online data"],"summary":"List All Protected Cloud Apps","description":"Retrieve the list of all protected SaaS apps.","operationId":"getDeviceList","security":[{"bearerAuth":[]}],"parameters":[{"name":"appName","in":"query","description":"Specify the name of the application for which you want to retrieve a list of associated devices. \n\nExample: Exchange Online","required":false,"schema":{"type":"string"}},{"name":"sortByColumn","in":"query","description":"Specify the column name to use for sorting the list of devices that the API returns. \n\nxample: To sort the device list by the application name, set `sortByColumn`=appName.","required":false,"schema":{"type":"string"}},{"name":"sortOrder","in":"query","description":"Specify the order in which to sort the results based on the column specified in the `sortByColumn` parameter. \n\n - Set it to `asc` to sort the data in ascending order or \n\n - Set it to desc to sort the data in descending order.","required":false,"schema":{"type":"string"}},{"name":"searchTerm","in":"query","description":"Specify a search term to filter the list of devices returned. The results will include devices whose `appName` partially matches the provided search term (case-insensitive). \n\nExample: To search for devices with application names containing `Test`, set `searchTerm`=Test. This would match applications like \"TestApp\", \"MyTestApplication\", and \"ProductionTestSuite\".","required":false,"schema":{"type":"string"}},{"name":"userID","in":"query","description":"Specify the user IDs for which to retrieve device lists. \n\n - If provided, the API will return the list of devices associated with the specified user(s). \n\n - If not provided, the API will return the list of devices for all users. \n\nExample: To retrieve the device list for the user with ID 123, set `userID`=[123]. To retrieve device lists for multiple users, such as 123 and 456, set `userID`=[123, 456].","required":false,"schema":{"type":"array","items":{"type":"number"}}},{"name":"profileID","in":"query","description":"Specify an array of profile IDs for which to retrieve device lists. \n\n - If provided, the API will return the list of devices associated with the specified profile(s). \n\n - If not provided, the API will return the list of devices for all profiles. \n\n Example: To retrieve the device list for the profile with ID 123, set `profileID`=[123]. To retrieve device lists for multiple profiles, such as 123 and 456, set `profileID`=[123, 456].","required":false,"schema":{"type":"array","items":{"type":"number"}}},{"name":"pageSize","in":"query","description":"Specify the number of devices to include in each page of the paginated response. This value must be an integer between 1 and 1000. \n\n If not provided, the default page size is 1000.\n\nExample: To retrieve the device list in pages of 25 devices at a time, set `pageSize=25`.","required":false,"schema":{"type":"string"}},{"name":"nextPageToken","in":"query","description":"Specify the token to access the next page of results. Keep this field blank in the first request. Use the token value received in the previous response's parameter `nextPageToken`","required":false,"schema":{"type":"string"}},{"name":"workload","in":"query","description":"Specify the workload for which to retrieve the list of devices. Each workload identifier corresponds to the `cplatform` value stored in the device table.","required":true,"schema":{"type":"array","items":{"type":"string"}}},{"name":"lastBackupStatus","in":"query","description":"Specify the backup status flag to filter the list of devices based on their last backup status.The provided value must match the backup status exactly (case-sensitive), and partial matches are not accepted.","required":false,"schema":{"type":"string"}},{"name":"lastBackupTime","in":"query","description":"Specify the `lastBackupTime` flag as an date (epochtime) to filter out the devices based on their last successful backup time.","required":false,"schema":{"type":"integer"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/200_DeviceList"},"examples":{"example":{"value":{"totalResults":1,"nextPageToken":"","devices":[{"id":1,"appName":"OneDrive","userID":1,"userUrl":"https://insync.druva.com/admin/app/#/user/users/1","workload":"Office 365 OneDrive","createdOn":"2021-10-25T00:00:00.000Z","lastCompacted":1640076452,"profileID":1,"customerID":1,"lastBackupStatus":"Backed Up Successfully","lastBackupJob":1640076452,"lastSuccessfulBackup":1640076452,"deviceDisabled":false}]}}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"BadRequest":{"$ref":"#/components/examples/BadRequest"}}}}},"401":{"description":"The request did not include an authentication token or an expired authentication token was supplied.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"Unauthorized":{"$ref":"#/components/examples/Unauthorized"}}}}},"403":{"description":"Access denied: Insufficient permissions. User requires specific access rights and minimum permissions. Details: https://help.druva.com/en/articles/15069296","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"Forbidden":{"$ref":"#/components/examples/Forbidden"},"GARError":{"$ref":"#/components/examples/GARError"}}}}},"404":{"description":"The requested resource was not found.","content":{"application/json":{"schema":{},"examples":{"NotFound":{"$ref":"#/components/examples/NotFound"}}}}},"500":{"description":"The request was not processed due to an internal error on server.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"InternalServerError":{"$ref":"#/components/examples/InternalServerError"}}}}},"501":{"description":"Requested HTTP method is not implemented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"examples":{"NotImplemented":{"$ref":"#/components/examples/NotImplemented"}}}}}}}},"/insync/cloudapp/v1/restorePoints":{"get":{"tags":["Restore OneDrive/Exchange Online data"],"summary":"List All OneDrive/Exchange Online Restore points","description":"Retrieve the list of OneDrive/Exchange Online restore points.","operationId":"getRestorePoints","security":[{"bearerAuth":[]}],"parameters":[{"name":"deviceId","description":"Specify the device ID associated with the OneDrive or Exchange account for which restore points are required.","schema":{"type":"integer","example":10001},"required":true,"in":"query"},{"name":"userId","description":"Specify the user ID associated with the OneDrive or Exchange account for which restore points are required.","schema":{"type":"integer","example":10001},"required":true,"in":"query"},{"name":"storageId","description":"Specify the ID of the storage assigned to the account. Get the ID of storage using the `List all storages API`. \n\nThis API returns the list of all storage that the customer is using. The list will provide the ID - Storage name mapping for ea
# --- truncated at 32 KB (62 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/druva/refs/heads/main/openapi/druva-microsoft-365-openapi.json