complianceSearches
Content Searches. Search mailboxes and sites for eDiscovery content. The complianceSearches entity set lives under /exchange/v1.0/complianceSearches in the eDiscovery & audit category.
| Fact | Value |
|---|---|
| Path | /exchange/v1.0/complianceSearches |
| Category | eDiscovery & audit |
| Tier | Tier 5, Compliance |
| Read role | Compliance.IPPS.Read.All (Community) |
| Write role | none (read-only) |
| Backing cmdlets | Get-ComplianceSearch, Set-ComplianceSearch, New-ComplianceSearch, Start-ComplianceSearch, Stop-ComplianceSearch, Remove-ComplianceSearch |
Routes
Section titled “Routes”| Method | Path | Synopsis | Role | Plan |
|---|---|---|---|---|
| GET | /exchange/v1.0/complianceSearches |
List complianceSearches entries. | Compliance.IPPS.Read |
Community |
| GET | /exchange/v1.0/complianceSearches/{key} |
Get a single complianceSearches entry by Identity (GUID or Name). | Compliance.IPPS.Read |
Community |
GET /exchange/v1.0/complianceSearches
Section titled “GET /exchange/v1.0/complianceSearches”List complianceSearches entries.
Backing cmdlet: Get-ComplianceSearch. Role: Compliance.IPPS.Read (Community).
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
case |
query | string | Scope to a specific compliance case (case Name or GUID). Optional. | |
resultSize |
query | int | Limit on rows returned. Honors EXO -ResultSize. |
List compliance searches
Section titled “List compliance searches”Lists all eDiscovery (Microsoft Purview) compliance searches in the tenant via Get-ComplianceSearch on the IPPS pool. Optional ?case=<name|guid> scopes to one compliance case. Tier 5 IPPS - backed by the Compliance.IPPS.Read.All role.
GET /exchange/v1.0/complianceSearches HTTP/1.1Authorization: Bearer {token}HTTP/1.1 200 OK
{ "@odata.context": "https://api.contoso.com/exchange/v1.0/$metadata#complianceSearches(Id,Identity,Name,Status,Items)", "value": [ { "Id": "search-incident-12345", "Name": "INC12345", "Identity": "search-incident-12345", "Status": "Completed", "Items": 0 }, { "Id": "search-archive-export", "Name": "Archive Export", "Identity": "search-archive-export", "Status": "NotStarted", "Items": 0 } ]}Related: GET /exchange/v1.0/complianceSearches/{key}, GET /exchange/v1.0/complianceSearchActions, GET /exchange/v1.0/caseHoldPolicies
GET /exchange/v1.0/complianceSearches/{key}
Section titled “GET /exchange/v1.0/complianceSearches/{key}”Get a single complianceSearches entry by Identity (GUID or Name).
Backing cmdlet: Get-ComplianceSearch. Role: Compliance.IPPS.Read (Community).
Get a compliance search by Identity
Section titled “Get a compliance search by Identity”Get a single eDiscovery search by Identity (the GUID) or by Name. The cmdlet’s -Identity accepts both. Use $select to narrow returned fields when the full ~54-field response is more than you need.
GET /exchange/v1.0/complianceSearches/{key} HTTP/1.1Authorization: Bearer {token}HTTP/1.1 200 OK
{ "@odata.context": "https://api.contoso.com/exchange/v1.0/$metadata#complianceSearches/$entity", "Id": "search-incident-12345", "Name": "INC12345 Purge", "Identity": "search-incident-12345", "Status": "Completed", "CreatedBy": "John Woods", "ContentMatchQuery": "(Received:2026-02-10..2026-02-12) AND (Subject:\"[Houston]\")", "IncludeUnindexedItems": true, "JobProgress": 100, "Items": 0, "CreatedTime": "2026-02-11T12:04:27.92Z", "JobStartTime": "2026-02-11T12:04:37.343Z", "JobEndTime": "2026-02-11T12:05:16Z"}Related: GET /exchange/v1.0/complianceSearches, GET /exchange/v1.0/complianceSearchActions

