ESC
Type to search...

BackupRestore-Restore.ReadWrite.All

Export JSON
Export CSV
Copy URL
Print
ApplicationDelegated Read/Write All Resources

Allows the app to search all backup snapshots for Microsoft 365 resources, and restore Microsoft 365 resources from a backed-up snapshot, without a signed-in user.

Permission data: April 6, 2026 at 4:06 AM UTC
Delegated Access App-Only Access

Permission Details

Application Permission

Read restore all sessions and start restore sessions from backups

Allows the app to search all backup snapshots for Microsoft 365 resources, and restore Microsoft 365 resources from a backed-up snapshot, without a signed-in user.

Delegated Permission Admin consent required

Read restore sessions and start restore sessions from backups

Allows the app to search the backup snapshots for Microsoft 365 resources, and restore Microsoft 365 resources from a backed-up snapshot, on behalf of the signed in user.

Properties

Microsoft Graph v1.0 endpoint-derived-docs

Properties is shown from stable Microsoft Graph v1.0 metadata.

Property Type Description
id String The unique identifier of the restore session created.
completedDateTime DateTimeOffsetNullable The time of creation of the restore session.
createdBy identitySet The identity of person who created the restore session.
createdDateTime DateTimeOffsetNullable The time of completion of the restore session.
error publicError Contains error details if the restore session fails or completes with an error.
lastModifiedBy identitySet Identity of the person who last modified this restore session.
lastModifiedDateTime DateTimeOffsetNullable Timestamp of last modification of this restore session.
restoreJobType restoreJobType Indicates whether the restore session was created normally or by a bulk job.
restoreSessionArtifactCount restoreSessionArtifactCount The number of metadata artifacts that belong to this restore session.
status restoreSessionStatus Status of the restore session. The value is an aggregated status of the restored artifacts. The possible values are: draft, activating, active, completedWithError, completed, unknownFutureValue, failed. Use the Prefer: include-unknown-enum-members request header to get the following members in this evolvable enum: failed.
granularMailboxRestoreArtifacts granularMailboxRestoreArtifact collection
mailboxRestoreArtifacts mailboxRestoreArtifact collection A collection of restore points and destination details that can be used to restore Exchange mailboxes.
mailboxRestoreArtifactsBulkAdditionRequests mailboxRestoreArtifactsBulkAdditionRequest collection A collection of user mailboxes and destination details that can be used to restore Exchange mailboxes.

JSON Representation

Microsoft Graph v1.0 endpoint-derived-docs

JSON representation is shown from stable Microsoft Graph v1.0 metadata.

JSON representation
{
  "@odata.type": "#microsoft.graph.exchangeRestoreSession",
  "id": "String (identifier)",
  "status": "String",
  "restoreJobType": "String",
  "restoreSessionArtifactCount": {
    "@odata.type": "microsoft.graph.restoreSessionArtifactCount"
  },
  "createdDateTime": "String (timestamp)",
  "createdBy": {
    "@odata.type": "microsoft.graph.identitySet"
  },
  "completedDateTime": "String (timestamp)",
  "lastModifiedDateTime": "String (timestamp)",
  "lastModifiedBy": {
    "@odata.type": "microsoft.graph.identitySet"
  },
  "error": {
    "@odata.type": "microsoft.graph.publicError"
  }
}

Relationships

Microsoft Graph v1.0 endpoint-derived-docs

Relationships is shown from stable Microsoft Graph v1.0 metadata.

Relationship Type Description
mailboxRestoreArtifacts mailboxRestoreArtifact collection A collection of restore points and destination details that can be used to restore Exchange mailboxes.
mailboxRestoreArtifactsBulkAdditionRequests mailboxRestoreArtifactsBulkAdditionRequest collection A collection of user mailboxes and destination details that can be used to restore Exchange mailboxes.
granularMailboxRestoreArtifacts granularMailboxRestoreArtifact collection Related granularMailboxRestoreArtifacts data exposed by this resource.

Graph Methods

Delegated access App-only access
Exact Microsoft Learn match

Microsoft Graph v1.0 endpoints are mapped directly from refreshed Microsoft Learn permissions tables.

Methods
GET /solutions/backupRestore/restoreSessions
POST /solutions/backupRestore/exchangeRestoreSessions
POST /solutions/backupRestore/exchangeRestoreSessions/{exchangeRestoreSessionId}/mailboxRestoreArtifactsBulkAdditionRequests
POST /solutions/backupRestore/oneDriveForBusinessRestoreSessions
POST /solutions/backupRestore/oneDriveForBusinessRestoreSessions/{oneDriveForBusinessRestoreSessionId}/driveRestoreArtifactsBulkAdditionRequests
POST /solutions/backupRestore/restoreSessions/{restoreSessionBaseId}/activate
POST /solutions/backupRestore/sharePointRestoreSessions
POST /solutions/backupRestore/sharePointRestoreSessions/{sharePointRestoreSessionId}/siteRestoreArtifactsBulkAdditionRequests
PATCH /solutions/backupRestore/exchangeRestoreSessions/{exchangeRestoreSessionId}
PATCH /solutions/backupRestore/oneDriveForBusinessRestoreSessions/{oneDriveForBusinessRestoreSessionId}
PATCH /solutions/backupRestore/sharePointRestoreSessions/{sharePointRestoreSessionId}
DELETE /solutions/backupRestore/exchangeRestoreSessions/{exchangeRestoreSessionId}/mailboxRestoreArtifactsBulkAdditionRequests/{mailboxRestoreArtifactsBulkAdditionRequestId}
DELETE /solutions/backupRestore/oneDriveForBusinessRestoreSessions/{oneDriveForBusinessRestoreSessionId}/driveRestoreArtifactsBulkAdditionRequests/{driveRestoreArtifactsBulkAdditionRequestId}
DELETE /solutions/backupRestore/restoreSessions/{restoreSessionBaseId}
DELETE /solutions/backupRestore/sharePointRestoreSessions/{sharePointRestoreSessionId}/siteRestoreArtifactsBulkAdditionRequests/{siteRestoreArtifactsBulkAdditionRequestId}
Exact Microsoft Learn match

Microsoft Graph beta endpoints are mapped directly from refreshed Microsoft Learn permissions tables.

Methods
GET /solutions/backupRestore/browseSessions
GET /solutions/backupRestore/oneDriveForBusinessBrowseSessions
GET /solutions/backupRestore/oneDriveForBusinessBrowseSessions/{oneDriveForBusinessBrowseSessionId}
GET /solutions/backupRestore/oneDriveForBusinessRestoreSessions/{oneDriveForBusinessRestoreSessionId}/granularDriveRestoreArtifacts
GET /solutions/backupRestore/restorePoints?$expand=protectionUnit($filter=id eq '{ProtectionUnitID}')&$filter=protectionDateTime lt YYYY-MM-DDTHH:mm:ssZ
GET /solutions/backupRestore/restoreSessions
GET /solutions/backupRestore/sharePointBrowseSessions
GET /solutions/backupRestore/sharePointBrowseSessions/{sharePointBrowseSessionId}
GET /solutions/backupRestore/sharePointRestoreSessions/{sharePointRestoreSessionId}/granularSiteRestoreArtifacts
POST /solutions/backupRestore/exchangeRestoreSessions
POST /solutions/backupRestore/exchangeRestoreSessions/{exchangeRestoreSessionId}/mailboxRestoreArtifactsBulkAdditionRequests
POST /solutions/backupRestore/oneDriveForBusinessBrowseSessions
POST /solutions/backupRestore/oneDriveForBusinessBrowseSessions/{oneDriveForBusinessBrowseSessionId}/browse
POST /solutions/backupRestore/oneDriveForBusinessRestoreSessions
POST /solutions/backupRestore/oneDriveForBusinessRestoreSessions/{oneDriveForBusinessRestoreSessionId}/driveRestoreArtifactsBulkAdditionRequests
POST /solutions/backupRestore/restoreSessions/{restoreSessionBaseId}/activate
POST /solutions/backupRestore/sharePointBrowseSessions
POST /solutions/backupRestore/sharePointBrowseSessions/{sharePointBrowseSessionId}/browse
POST /solutions/backupRestore/sharePointRestoreSessions
POST /solutions/backupRestore/sharePointRestoreSessions/{sharePointRestoreSessionId}/siteRestoreArtifactsBulkAdditionRequests
PATCH /solutions/backupRestore/exchangeRestoreSessions/{exchangeRestoreSessionId}
PATCH /solutions/backupRestore/oneDriveForBusinessRestoreSessions/{oneDriveForBusinessRestoreSessionId}
PATCH /solutions/backupRestore/sharePointRestoreSessions/{sharePointRestoreSessionId}
DELETE /solutions/backupRestore/exchangeRestoreSessions/{exchangeRestoreSessionId}/mailboxRestoreArtifactsBulkAdditionRequests/{mailboxRestoreArtifactsBulkAdditionRequestId}
DELETE /solutions/backupRestore/oneDriveForBusinessRestoreSessions/{oneDriveForBusinessRestoreSessionId}/driveRestoreArtifactsBulkAdditionRequests/{driveRestoreArtifactsBulkAdditionRequestId}
DELETE /solutions/backupRestore/restoreSessions/{restoreSessionBaseId}
DELETE /solutions/backupRestore/sharePointRestoreSessions/{sharePointRestoreSessionId}/siteRestoreArtifactsBulkAdditionRequests/{siteRestoreArtifactsBulkAdditionRequestId}
Exact Microsoft Learn PowerShell match

Microsoft Graph PowerShell v1.0 commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.

Commands
Get-MgSolutionBackupRestoreSession /solutions/backupRestore/restoreSessions
List restoreSessionBase objects
New-MgSolutionBackupRestoreExchangeRestoreSession /solutions/backupRestore/exchangeRestoreSessions
Create exchangeRestoreSession
New-MgSolutionBackupRestoreExchangeRestoreSessionMailboxRestoreArtifactBulkAdditionRequest /solutions/backupRestore/exchangeRestoreSessions/{exchangeRestoreSessionId}/mailboxRestoreArtifactsBulkAdditionRequests
Create mailboxRestoreArtifactsBulkAdditionRequest
New-MgSolutionBackupRestoreOneDriveForBusinessRestoreSession /solutions/backupRestore/oneDriveForBusinessRestoreSessions
Create oneDriveForBusinessRestoreSession
New-MgSolutionBackupRestoreOneDriveForBusinessRestoreSessionDriveRestoreArtifactBulkAdditionRequest /solutions/backupRestore/oneDriveForBusinessRestoreSessions/{oneDriveForBusinessRestoreSessionId}/driveRestoreArtifactsBulkAdditionRequests
Create driveRestoreArtifactsBulkAdditionRequest
New-MgSolutionBackupRestoreSharePointRestoreSession /solutions/backupRestore/sharePointRestoreSessions
Create sharePointRestoreSession
New-MgSolutionBackupRestoreSharePointRestoreSessionSiteRestoreArtifactBulkAdditionRequest /solutions/backupRestore/sharePointRestoreSessions/{sharePointRestoreSessionId}/siteRestoreArtifactsBulkAdditionRequests
Create siteRestoreArtifactsBulkAdditionRequests
Remove-MgSolutionBackupRestoreExchangeRestoreSessionMailboxRestoreArtifactBulkAdditionRequest /solutions/backupRestore/exchangeRestoreSessions/{exchangeRestoreSessionId}/mailboxRestoreArtifactsBulkAdditionRequests/{mailboxRestoreArtifactsBulkAdditionRequestId}
Delete mailboxRestoreArtifactsBulkAdditionRequest
Remove-MgSolutionBackupRestoreOneDriveForBusinessRestoreSessionDriveRestoreArtifactBulkAdditionRequest /solutions/backupRestore/oneDriveForBusinessRestoreSessions/{oneDriveForBusinessRestoreSessionId}/driveRestoreArtifactsBulkAdditionRequests/{driveRestoreArtifactsBulkAdditionRequestId}
Delete driveRestoreArtifactsBulkAdditionRequest
Remove-MgSolutionBackupRestoreSession /solutions/backupRestore/restoreSessions/{restoreSessionBaseId}
Delete restoreSessionBase
Remove-MgSolutionBackupRestoreSharePointRestoreSessionSiteRestoreArtifactBulkAdditionRequest /solutions/backupRestore/sharePointRestoreSessions/{sharePointRestoreSessionId}/siteRestoreArtifactsBulkAdditionRequests/{siteRestoreArtifactsBulkAdditionRequestId}
Delete siteRestoreArtifactsBulkAdditionRequest
Update-MgSolutionBackupRestoreExchangeRestoreSession /solutions/backupRestore/exchangeRestoreSessions/{exchangeRestoreSessionId}
Update exchangeRestoreSession
Update-MgSolutionBackupRestoreOneDriveForBusinessRestoreSession /solutions/backupRestore/oneDriveForBusinessRestoreSessions/{oneDriveForBusinessRestoreSessionId}
Update oneDriveForBusinessRestoreSession
Update-MgSolutionBackupRestoreSharePointRestoreSession /solutions/backupRestore/sharePointRestoreSessions/{sharePointRestoreSessionId}
Update sharePointRestoreSession
Exact Microsoft Learn PowerShell match

Microsoft Graph PowerShell beta commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.

Commands
Get-MgBetaSolutionBackupRestoreBrowseSession /solutions/backupRestore/browseSessions
List browseSessions
Get-MgBetaSolutionBackupRestoreOneDriveForBusinessBrowseSession /solutions/backupRestore/oneDriveForBusinessBrowseSessions
List oneDriveForBusinessBrowseSessions
Get-MgBetaSolutionBackupRestoreOneDriveForBusinessBrowseSession /solutions/backupRestore/oneDriveForBusinessBrowseSessions/{oneDriveForBusinessBrowseSessionId}
Get oneDriveForBusinessBrowseSession
Get-MgBetaSolutionBackupRestoreOneDriveForBusinessRestoreSessionGranularDriveRestoreArtifact /solutions/backupRestore/oneDriveForBusinessRestoreSessions/{oneDriveForBusinessRestoreSessionId}/granularDriveRestoreArtifacts
List granularDriveRestoreArtifacts
Get-MgBetaSolutionBackupRestorePoint /solutions/backupRestore/restorePoints?$expand=protectionUnit($filter=id eq '{ProtectionUnitID}')&$filter=protectionDateTime lt YYYY-MM-DDTHH:mm:ssZ
List restorePoints
Get-MgBetaSolutionBackupRestoreSession /solutions/backupRestore/restoreSessions
List restoreSessionBase objects
Get-MgBetaSolutionBackupRestoreSharePointBrowseSession /solutions/backupRestore/sharePointBrowseSessions
List sharePointBrowseSessions
Get-MgBetaSolutionBackupRestoreSharePointBrowseSession /solutions/backupRestore/sharePointBrowseSessions/{sharePointBrowseSessionId}
Get sharePointBrowseSession
Get-MgBetaSolutionBackupRestoreSharePointRestoreSessionGranularSiteRestoreArtifact /solutions/backupRestore/sharePointRestoreSessions/{sharePointRestoreSessionId}/granularSiteRestoreArtifacts
List granularSiteRestoreArtifacts
New-MgBetaSolutionBackupRestoreExchangeRestoreSession /solutions/backupRestore/exchangeRestoreSessions
Create exchangeRestoreSession
New-MgBetaSolutionBackupRestoreExchangeRestoreSessionMailboxRestoreArtifactBulkAdditionRequest /solutions/backupRestore/exchangeRestoreSessions/{exchangeRestoreSessionId}/mailboxRestoreArtifactsBulkAdditionRequests
Create mailboxRestoreArtifactsBulkAdditionRequest
New-MgBetaSolutionBackupRestoreOneDriveForBusinessBrowseSession /solutions/backupRestore/oneDriveForBusinessBrowseSessions
Create oneDriveForBusinessBrowseSession
New-MgBetaSolutionBackupRestoreOneDriveForBusinessRestoreSession /solutions/backupRestore/oneDriveForBusinessRestoreSessions
Create oneDriveForBusinessRestoreSession
New-MgBetaSolutionBackupRestoreOneDriveForBusinessRestoreSessionDriveRestoreArtifactBulkAdditionRequest /solutions/backupRestore/oneDriveForBusinessRestoreSessions/{oneDriveForBusinessRestoreSessionId}/driveRestoreArtifactsBulkAdditionRequests
Create driveRestoreArtifactsBulkAdditionRequest
New-MgBetaSolutionBackupRestoreSharePointBrowseSession /solutions/backupRestore/sharePointBrowseSessions
Create sharePointBrowseSession
New-MgBetaSolutionBackupRestoreSharePointRestoreSession /solutions/backupRestore/sharePointRestoreSessions
Create sharePointRestoreSession
New-MgBetaSolutionBackupRestoreSharePointRestoreSessionSiteRestoreArtifactBulkAdditionRequest /solutions/backupRestore/sharePointRestoreSessions/{sharePointRestoreSessionId}/siteRestoreArtifactsBulkAdditionRequests
Create siteRestoreArtifactsBulkAdditionRequests
Remove-MgBetaSolutionBackupRestoreExchangeRestoreSessionMailboxRestoreArtifactBulkAdditionRequest /solutions/backupRestore/exchangeRestoreSessions/{exchangeRestoreSessionId}/mailboxRestoreArtifactsBulkAdditionRequests/{mailboxRestoreArtifactsBulkAdditionRequestId}
Delete mailboxRestoreArtifactsBulkAdditionRequest
Remove-MgBetaSolutionBackupRestoreOneDriveForBusinessRestoreSessionDriveRestoreArtifactBulkAdditionRequest /solutions/backupRestore/oneDriveForBusinessRestoreSessions/{oneDriveForBusinessRestoreSessionId}/driveRestoreArtifactsBulkAdditionRequests/{driveRestoreArtifactsBulkAdditionRequestId}
Delete driveRestoreArtifactsBulkAdditionRequest
Remove-MgBetaSolutionBackupRestoreSession /solutions/backupRestore/restoreSessions/{restoreSessionBaseId}
Delete restoreSessionBase
Remove-MgBetaSolutionBackupRestoreSharePointRestoreSessionSiteRestoreArtifactBulkAdditionRequest /solutions/backupRestore/sharePointRestoreSessions/{sharePointRestoreSessionId}/siteRestoreArtifactsBulkAdditionRequests/{siteRestoreArtifactsBulkAdditionRequestId}
Delete siteRestoreArtifactsBulkAdditionRequest
Update-MgBetaSolutionBackupRestoreExchangeRestoreSession /solutions/backupRestore/exchangeRestoreSessions/{exchangeRestoreSessionId}
Update exchangeRestoreSession
Update-MgBetaSolutionBackupRestoreOneDriveForBusinessRestoreSession /solutions/backupRestore/oneDriveForBusinessRestoreSessions/{oneDriveForBusinessRestoreSessionId}
Update oneDriveForBusinessRestoreSession
Update-MgBetaSolutionBackupRestoreSharePointRestoreSession /solutions/backupRestore/sharePointRestoreSessions/{sharePointRestoreSessionId}
Update sharePointRestoreSession

Code Examples

C# / .NET SDK
Create driveRestoreArtifactsBulkAdditionRequest
// Code snippets are only available for the latest version. Current version is 5.x

// Dependencies
using Microsoft.Graph.Models;

var requestBody = new DriveRestoreArtifactsBulkAdditionRequest
{
	DisplayName = "ODB-BulkRestoreArtifacts",
	Drives = new List<string>
	{
		"[email protected]",
		"[email protected]",
		"[email protected]",
	},
	DirectoryObjectIds = new List<string>
	{
	},
	ProtectionUnitIds = new List<string>
	{
	},
	ProtectionTimePeriod = new TimePeriod
	{
		StartDateTime = DateTimeOffset.Parse("2021-01-01T00:00:00Z"),
		EndDateTime = DateTimeOffset.Parse("2021-01-08T00:00:00Z"),
	},
	DestinationType = DestinationType.New,
	Tags = RestorePointTags.FastRestore,
	RestorePointPreference = RestorePointPreference.Latest,
};

// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Solutions.BackupRestore.OneDriveForBusinessRestoreSessions["{oneDriveForBusinessRestoreSession-id}"].DriveRestoreArtifactsBulkAdditionRequests.PostAsync(requestBody);
JavaScript
Create driveRestoreArtifactsBulkAdditionRequest
const options = {
	authProvider,
};

const client = Client.init(options);

const driveRestoreArtifactsBulkAdditionRequest = {
  displayName: 'ODB-BulkRestoreArtifacts',
  drives: [
    '[email protected]',
    '[email protected]',
    '[email protected]'
  ],
  directoryObjectIds: [],
  protectionUnitIds: [],
  protectionTimePeriod: {
    startDateTime: '2021-01-01T00:00:00Z',
    endDateTime: '2021-01-08T00:00:00Z'
  },
  destinationType: 'new',
  tags: 'fastRestore',
  restorePointPreference: 'latest'
};

await client.api('/solutions/backupRestore/oneDriveForBusinessRestoreSessions/493635f0-b8c0-4c7f-bcb7-b20c85d97efe/driveRestoreArtifactsBulkAdditionRequests')
	.post(driveRestoreArtifactsBulkAdditionRequest);
PowerShell
Create driveRestoreArtifactsBulkAdditionRequest
Import-Module Microsoft.Graph.BackupRestore

$params = @{
	displayName = "ODB-BulkRestoreArtifacts"
	drives = @(
	"[email protected]"
"[email protected]"
"[email protected]"
)
directoryObjectIds = @(
)
protectionUnitIds = @(
)
protectionTimePeriod = @{
startDateTime = [System.DateTime]::Parse("2021-01-01T00:00:00Z")
endDateTime = [System.DateTime]::Parse("2021-01-08T00:00:00Z")
}
destinationType = "new"
tags = "fastRestore"
restorePointPreference = "latest"
}

New-MgSolutionBackupRestoreOneDriveForBusinessRestoreSessionDriveRestoreArtifactBulkAdditionRequest -OneDriveForBusinessRestoreSessionId $oneDriveForBusinessRestoreSessionId -BodyParameter $params
Python
Create driveRestoreArtifactsBulkAdditionRequest
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.drive_restore_artifacts_bulk_addition_request import DriveRestoreArtifactsBulkAdditionRequest
from msgraph.generated.models.time_period import TimePeriod
from msgraph.generated.models.destination_type import DestinationType
from msgraph.generated.models.restore_point_tags import RestorePointTags
from msgraph.generated.models.restore_point_preference import RestorePointPreference
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = DriveRestoreArtifactsBulkAdditionRequest(
	display_name = "ODB-BulkRestoreArtifacts",
	drives = [
		"[email protected]",
		"[email protected]",
		"[email protected]",
	],
	directory_object_ids = [
	],
	protection_unit_ids = [
	],
	protection_time_period = TimePeriod(
		start_date_time = "2021-01-01T00:00:00Z",
		end_date_time = "2021-01-08T00:00:00Z",
	),
	destination_type = DestinationType.New,
	tags = RestorePointTags.FastRestore,
	restore_point_preference = RestorePointPreference.Latest,
)

result = await graph_client.solutions.backup_restore.one_drive_for_business_restore_sessions.by_one_drive_for_business_restore_session_id('oneDriveForBusinessRestoreSession-id').drive_restore_artifacts_bulk_addition_requests.post(request_body)

App Registration

1

Navigate to Azure Portal

Go to App registrations in Microsoft Entra admin center

2

Add API Permission

Select your app → API permissions → Add a permission → Microsoft Graph

3

Select Permission Type

Choose Application permissions or delegated permissions and search for BackupRestore-Restore.ReadWrite.All

4

Grant Admin Consent

Application permissions always require admin consent.