Skip to content

dlpKeywordDictionaries

DLP Keyword Dictionaries. Custom keyword lists that data loss prevention rules match against. The dlpKeywordDictionaries entity set lives under /exchange/v1.0/dlpKeywordDictionaries in the Governance & protection category.

Fact Value
Path /exchange/v1.0/dlpKeywordDictionaries
Category Governance & protection
Tier Tier 5, Compliance
Read role Compliance.IPPS.Read.All (Community)
Write role Compliance.IPPS.ReadWrite.All (Enterprise)
Backing cmdlets Get-DlpKeywordDictionary, New-DlpKeywordDictionary, Set-DlpKeywordDictionary, Remove-DlpKeywordDictionary
Method Path Synopsis Role Plan
GET /exchange/v1.0/dlpKeywordDictionaries List DLP keyword dictionaries - curated keyword sets used by DLP rules to detect sensitive content. Compliance.IPPS.Read Community
POST /exchange/v1.0/dlpKeywordDictionaries POST /dlpKeywordDictionaries - create a dictionary. Required: name. Optional: fileData (base64), description, matchStyle. Returns 201 + Location. Compliance.IPPS.ReadWrite Enterprise
GET /exchange/v1.0/dlpKeywordDictionaries/{key} Get a single DLP keyword dictionary by Name. Returns 404 if absent. Compliance.IPPS.Read Community
PATCH /exchange/v1.0/dlpKeywordDictionaries/{key} PATCH /dlpKeywordDictionaries/{key} - partial update. Optional fileData (base64) to replace the keyword corpus. Returns 200 + post-Set dictionary. Compliance.IPPS.ReadWrite Enterprise
DELETE /exchange/v1.0/dlpKeywordDictionaries/{key} DELETE /dlpKeywordDictionaries/{key} - remove a dictionary. Returns 204. Compliance.IPPS.ReadWrite Enterprise

List DLP keyword dictionaries - curated keyword sets used by DLP rules to detect sensitive content.

Backing cmdlet: Get-DlpKeywordDictionary. Role: Compliance.IPPS.Read (Community).

Returns the tenant’s DLP keyword dictionaries, the named keyword corpora used by data loss prevention rules to match sensitive content. The collection is empty when no custom dictionaries have been created.

GET /exchange/v1.0/dlpKeywordDictionaries HTTP/1.1
Authorization: Bearer {token}
HTTP/1.1 200 OK
{
"@odata.context": "http://localhost:5043/exchange/v1.0/$metadata#dlpKeywordDictionaries",
"value": []
}

Related: GET /exchange/v1.0/dlpKeywordDictionaries/{key}

POST /exchange/v1.0/dlpKeywordDictionaries

Section titled “POST /exchange/v1.0/dlpKeywordDictionaries”

POST /dlpKeywordDictionaries - create a dictionary. Required: name. Optional: fileData (base64), description, matchStyle. Returns 201 + Location.

Backing cmdlet: New-DlpKeywordDictionary. Role: Compliance.IPPS.ReadWrite (Enterprise).

Parameter In Type Required Description
name body yes
description body
fileData body
matchStyle body
dryRun query bool (switch)

Provision a custom keyword dictionary for DLP rules via New-DlpKeywordDictionary on the IPPS pool. Required: name. Optional: description, fileData (base64-encoded UTF-16 LE keyword file, one term per line), matchStyle (‘word’ | ‘string’). Pass doNotPersistKeywords: true to store only a content fingerprint instead of the keyword list (privacy mode). Look up the new dictionary via GET /dlpKeywordDictionaries (Get-DlpKeywordDictionary uses -Name, not -Identity - the controller handles the param-name asymmetry transparently).

POST /exchange/v1.0/dlpKeywordDictionaries HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
{
"name": "Internal-Project-Codenames",
"description": "Customer-confidential project codenames (Atlas, Phoenix, Helios).",
"matchStyle": "word",
"fileData": "QXRsYXMNClBob2VuaXgNCkhlbGlvcw0K"
}
HTTP/1.1 201 Created
Location: /exchange/v1.0/dlpKeywordDictionaries/Internal-Project-Codenames
{
"@odata.context": "https://api.contoso.com/exchange/v1.0/$metadata#dlpKeywordDictionaries/$entity",
"Id": "kwd-internal-project-codenames",
"Name": "Internal-Project-Codenames",
"Identity": "kwd-internal-project-codenames",
"Description": "Customer-confidential project codenames (Atlas, Phoenix, Helios).",
"MatchStyle": "word",
"KeywordCount": 3,
"CreatedDateTime": "2026-05-26T10:00:00Z"
}

Related: GET /exchange/v1.0/dlpKeywordDictionaries, PATCH /exchange/v1.0/dlpKeywordDictionaries/{key}, DELETE /exchange/v1.0/dlpKeywordDictionaries/{key}

GET /exchange/v1.0/dlpKeywordDictionaries/{key}

Section titled “GET /exchange/v1.0/dlpKeywordDictionaries/{key}”

Get a single DLP keyword dictionary by Name. Returns 404 if absent.

Backing cmdlet: Get-DlpKeywordDictionary. Role: Compliance.IPPS.Read (Community).

PATCH /exchange/v1.0/dlpKeywordDictionaries/{key}

Section titled “PATCH /exchange/v1.0/dlpKeywordDictionaries/{key}”

PATCH /dlpKeywordDictionaries/{key} - partial update. Optional fileData (base64) to replace the keyword corpus. Returns 200 + post-Set dictionary.

Backing cmdlet: Set-DlpKeywordDictionary. Role: Compliance.IPPS.ReadWrite (Enterprise).

Parameter In Type Required Description
description body
fileData body
matchStyle body
name body
dryRun query bool (switch)

Partially updates an existing DLP keyword dictionary by Name via Set-DlpKeywordDictionary. Send only the fields you want to change; fileData (base64) replaces the keyword corpus. Returns the post-update dictionary.

PATCH /exchange/v1.0/dlpKeywordDictionaries/{key} HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
{
"description": "Exonaut internal project codenames - updated 2026 Q2",
"matchStyle": "word"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"Id": "exonaut-sample-dlpKeywordDictionaries",
"Identity": "exonaut-sample-dlpKeywordDictionaries",
"Name": "exonaut-sample-dlpKeywordDictionaries",
"Description": "Exonaut internal project codenames - updated 2026 Q2",
"MatchStyle": "word"
}

Notes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative.

Related: GET /exchange/v1.0/dlpKeywordDictionaries

DELETE /exchange/v1.0/dlpKeywordDictionaries/{key}

Section titled “DELETE /exchange/v1.0/dlpKeywordDictionaries/{key}”

DELETE /dlpKeywordDictionaries/{key} - remove a dictionary. Returns 204.

Backing cmdlet: Remove-DlpKeywordDictionary. Role: Compliance.IPPS.ReadWrite (Enterprise).

Parameter In Type Required Description
dryRun query bool (switch)

Removes a DLP keyword dictionary by Name via Remove-DlpKeywordDictionary. Returns 204 No Content on success.

DELETE /exchange/v1.0/dlpKeywordDictionaries/{key} HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
HTTP/1.1 204 No Content

Notes: Doc-derived from Wiki + write-param allowlist; not live-captured. Body fields are Wiki-valid; values are illustrative.

Related: GET /exchange/v1.0/dlpKeywordDictionaries

?dryRun=true previews of any write stay on Community.