recoverableItems
Recover Deleted Items. Find and restore soft-deleted items from a mailbox’s Recoverable Items folder. The recoverableItems entity set lives under /exchange/v1.0/recoverableItems in the Migration & jobs category.
| Fact | Value |
|---|---|
| Path | /exchange/v1.0/recoverableItems |
| Category | Migration & jobs |
| Tier | Tier 5, Compliance |
| Read role | Mailbox.Read.All (Community) |
| Write role | Mailbox.ReadWrite.All (Pro) |
| Backing cmdlets | Get-RecoverableItems, Restore-RecoverableItems |
Routes
Section titled “Routes”| Method | Path | Synopsis | Role | Plan |
|---|---|---|---|---|
| GET | /exchange/v1.0/recoverableItems |
GET /recoverableItems?mailbox=<upn> - list a mailbox’s recoverable items. Requires the mailbox query param + optional filters. | Mailbox.Read |
Community |
| POST | /exchange/v1.0/recoverableItems/restore |
POST /recoverableItems/restore?mailbox=<upn> - restore items from a mailbox’s recoverable-items folder via Restore-RecoverableItems. Required QUERY param: ?mailbox=. Optional body: entryId (single item) OR filter criteria (subjectContains, filterStartTime, filterEndTime, sourceFolder, restoreTargetFolder, policyTag). Returns 204. | Mailbox.ReadWrite |
Pro |
GET /exchange/v1.0/recoverableItems
Section titled “GET /exchange/v1.0/recoverableItems”GET /recoverableItems?mailbox=<upn> - list a mailbox’s recoverable items. Requires the mailbox query param + optional filters.
Backing cmdlet: Get-RecoverableItems. Role: Mailbox.Read (Community).
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
mailbox |
query | string | Required: target mailbox UPN / Identity. | |
subjectContains |
query | string | Optional: substring match on Subject. | |
filterStartTime |
query | datetime | Optional: filter items deleted after this UTC timestamp. | |
filterEndTime |
query | datetime | Optional: filter items deleted before this UTC timestamp. | |
filterItemType |
query | string | Optional: only items of this type (e.g. IPM.Note). | |
sourceFolder |
query | string | Optional: source folder (DeletedItems / RecoverableItems). | |
entryId |
query | string | Optional: retrieve a single deleted item by its mailbox-unique EntryID (read counterpart to the Restore body’s entryId). | |
resultSize |
query | int | Optional: max rows returned (Get-RecoverableItems -ResultSize; default 1000). Omit to use the cmdlet default. | |
lastParentFolderID |
query | string | Optional: filter to items whose last parent folder matches this folder ID (Get-RecoverableItems -LastParentFolderID). |
POST /exchange/v1.0/recoverableItems/restore
Section titled “POST /exchange/v1.0/recoverableItems/restore”POST /recoverableItems/restore?mailbox=<upn> - restore items from a mailbox’s recoverable-items folder via Restore-RecoverableItems. Required QUERY param: ?mailbox=. Optional body: entryId (single item) OR filter criteria (subjectContains, filterStartTime, filterEndTime, sourceFolder, restoreTargetFolder, policyTag). Returns 204.
Backing cmdlet: Restore-RecoverableItems. Role: Mailbox.ReadWrite (Pro).
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
entryID |
body | |||
filterEndTime |
body | |||
filterItemType |
body | |||
filterStartTime |
body | |||
lastParentFolderID |
body | |||
maxParallelSize |
body | |||
policyTag |
body | |||
restoreTargetFolder |
body | |||
sourceFolder |
body | |||
subjectContains |
body | |||
mailbox |
query | string | Required: target mailbox UPN / Identity. | |
dryRun |
query | bool (switch) |
Restore a deleted item for a user
Section titled “Restore a deleted item for a user”Bound action - POST /recoverableItems/restore?mailbox=<upn> invokes Restore-RecoverableItems on the target mailbox. Body fields are filters: pass entryId for a single-item restore, or filterStartTime + filterEndTime + subjectContains + filterItemType for a batch. restoreTargetFolder defaults to the item’s original location; override to land everything in a single folder. Note: Restore-RecoverableItems Wiki SYNTAX does not include -Confirm or -WhatIf - the controller skips ApplyControlSwitches and routes dryRun client-side (early return with 204).
POST /exchange/v1.0/recoverableItems/restore HTTP/1.1Authorization: Bearer {token}Content-Type: application/json
{ "subjectContains": "Q1 Budget", "filterStartTime": "2026-03-01T00:00:00Z", "filterEndTime": "2026-03-31T23:59:59Z", "filterItemType": "IPM.Note", "sourceFolder": "RecoverableItems"}HTTP/1.1 204 No ContentRelated: GET /exchange/v1.0/recoverableItems?mailbox={upn}, GET /exchange/v1.0/mailboxes/{key}
?dryRun=true previews of any write stay on Community.

