Skip to content

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
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

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.

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.1
Authorization: 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 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.1
Authorization: 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