Skip to content

reportSubmissionPolicies

User Reporting Policies. Configure how users report phishing and spam to admins. The reportSubmissionPolicies entity set lives under /exchange/v1.0/reportSubmissionPolicies in the Threat protection category.

Fact Value
Path /exchange/v1.0/reportSubmissionPolicies
Category Threat protection
Tier Tier 4, Threat protection
Read role ThreatPolicy.Read.All (Community)
Write role ThreatPolicy.ReadWrite.All (Enterprise)
Backing cmdlets Get-ReportSubmissionPolicy, Set-ReportSubmissionPolicy, New-ReportSubmissionPolicy, Remove-ReportSubmissionPolicy
Method Path Synopsis Role Plan
GET /exchange/v1.0/reportSubmissionPolicies List reportSubmissionPolicies entries. ThreatPolicy.Read Community
POST /exchange/v1.0/reportSubmissionPolicies Create a new reportSubmissionPolicies entry. Body keys map 1:1 to the cmdlet’s parameter names (camelCased). Returns 201 + Location + the freshly-fetched entity. Use ?dryRun=true to map to -WhatIf without applying. ThreatPolicy.ReadWrite Enterprise
GET /exchange/v1.0/reportSubmissionPolicies/{key} Get a single reportSubmissionPolicies entry by Identity. ThreatPolicy.Read Community
PATCH /exchange/v1.0/reportSubmissionPolicies/{key} Partial update of the reportSubmissionPolicies at /reportSubmissionPolicies/{key}. Only body fields present are passed to the cmdlet. Returns 200 + the post-Set entity (rename-aware re-fetch when name is in the body). ThreatPolicy.ReadWrite Enterprise
DELETE /exchange/v1.0/reportSubmissionPolicies/{key} Remove the reportSubmissionPolicies at /reportSubmissionPolicies/{key}. Returns 204 with no body. ThreatPolicy.ReadWrite Enterprise

GET /exchange/v1.0/reportSubmissionPolicies

Section titled “GET /exchange/v1.0/reportSubmissionPolicies”

List reportSubmissionPolicies entries.

Backing cmdlet: Get-ReportSubmissionPolicy. Role: ThreatPolicy.Read (Community).

Stub auto-generated example for the reportSubmissionPolicies collection. Backing cmdlet: Get-ReportSubmissionPolicy. Live-verify with ?$top=3&$select=Id,Name and replace the synthetic body before promoting to Tier 1.

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

Notes: Illustrative example derived from the cmdlet documentation, not a live capture: field names are real, values are placeholders.

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

POST /exchange/v1.0/reportSubmissionPolicies

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

Create a new reportSubmissionPolicies entry. Body keys map 1:1 to the cmdlet’s parameter names (camelCased). Returns 201 + Location + the freshly-fetched entity. Use ?dryRun=true to map to -WhatIf without applying.

Backing cmdlet: New-ReportSubmissionPolicy. Role: ThreatPolicy.ReadWrite (Enterprise).

Parameter In Type Required Description
disableQuarantineReportingOption body
disableUserSubmissionOptions body
enableCustomizedMsg body
enableCustomNotificationSender body
enableOrganizationBranding body
enableReportToMicrosoft body
enableThirdPartyAddress body
enableUserEmailNotification body
junkReviewResultMessage body
multiLanguagePostSubmitMessageButtonLinkForJunk body
multiLanguagePostSubmitMessageButtonLinkForPhishing body
multiLanguagePostSubmitMessageButtonTextForJunk body
multiLanguagePostSubmitMessageButtonTextForPhishing body
multiLanguagePostSubmitMessageForJunk body
multiLanguagePostSubmitMessageForPhishing body
multiLanguagePostSubmitMessageTitleForJunk body
multiLanguagePostSubmitMessageTitleForPhishing body
multiLanguagePreSubmitMessageButtonLinkForJunk body
multiLanguagePreSubmitMessageButtonLinkForNotJunk body
multiLanguagePreSubmitMessageButtonLinkForPhishing body
multiLanguagePreSubmitMessageButtonTextForJunk body
multiLanguagePreSubmitMessageButtonTextForNotJunk body
multiLanguagePreSubmitMessageButtonTextForPhishing body
multiLanguagePreSubmitMessageForJunk body
multiLanguagePreSubmitMessageForNotJunk body
multiLanguagePreSubmitMessageForPhishing body
multiLanguagePreSubmitMessageTitleForJunk body
multiLanguagePreSubmitMessageTitleForNotJunk body
multiLanguagePreSubmitMessageTitleForPhishing body
multiLanguageSetting body
notificationFooterMessage body
notificationSenderAddress body
notificationsForCleanSubmissionAirInvestigationsEnabled body
notificationsForPhishMalwareSubmissionAirInvestigationsEnabled body
notificationsForSpamSubmissionAirInvestigationsEnabled body
notificationsForSubmissionAirInvestigationsEnabled body
notJunkReviewResultMessage body
onlyShowPhishingDisclaimer body
phishingReviewResultMessage body
postSubmitMessage body
postSubmitMessageEnabled body
postSubmitMessageForJunk body
postSubmitMessageForNotJunk body
postSubmitMessageForPhishing body
postSubmitMessageTitle body
postSubmitMessageTitleForJunk body
postSubmitMessageTitleForNotJunk body
postSubmitMessageTitleForPhishing body
preSubmitMessage body
preSubmitMessageEnabled body
preSubmitMessageForJunk body
preSubmitMessageForNotJunk body
preSubmitMessageForPhishing body
preSubmitMessageTitle body
preSubmitMessageTitleForJunk body
preSubmitMessageTitleForNotJunk body
preSubmitMessageTitleForPhishing body
reportChatMessageEnabled body
reportChatMessageToCustomizedAddressEnabled body
reportJunkAddresses body
reportJunkToCustomizedAddress body
reportNotJunkAddresses body
reportNotJunkToCustomizedAddress body
reportPhishAddresses body
reportPhishToCustomizedAddress body
thirdPartyReportAddresses body
userSubmissionOptions body
userSubmissionOptionsMessage body
dryRun query bool (switch)

Creates the tenant report submission policy via New-ReportSubmissionPolicy. EXO allows exactly one policy named DefaultReportSubmissionPolicy; the cmdlet takes no -Name and auto-names the singleton, so there are no required body fields.

POST /exchange/v1.0/reportSubmissionPolicies HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
{
"enableReportToMicrosoft": true,
"enableUserEmailNotification": true,
"reportJunkToCustomizedAddress": true,
"reportJunkAddresses": [
],
"reportPhishAddresses": [
],
"notificationSenderAddress": "[email protected]"
}
HTTP/1.1 201 Created
Location: /exchange/v1.0/reportSubmissionPolicies/DefaultReportSubmissionPolicy
{
"Id": "DefaultReportSubmissionPolicy",
"Identity": "DefaultReportSubmissionPolicy",
"EnableReportToMicrosoft": true,
"EnableUserEmailNotification": true,
"ReportJunkToCustomizedAddress": true,
"ReportJunkAddresses": [
],
"ReportPhishAddresses": [
],
"NotificationSenderAddress": "[email protected]"
}

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

Related: GET /exchange/v1.0/reportSubmissionPolicies

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

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

Get a single reportSubmissionPolicies entry by Identity.

Backing cmdlet: Get-ReportSubmissionPolicy. Role: ThreatPolicy.Read (Community).

Get a single reportSubmissionPolicies entry

Section titled “Get a single reportSubmissionPolicies entry”

Stub auto-generated example for GET /reportSubmissionPolicies/{key}. Backing cmdlet: Get-ReportSubmissionPolicy with -Identity {key}. Returns the full entity body; 404 if the identity doesn’t resolve.

GET /exchange/v1.0/reportSubmissionPolicies/{key} HTTP/1.1
Authorization: Bearer {token}
HTTP/1.1 200 OK
{
"@odata.context": "http://localhost:5043/exchange/v1.0/$metadata#reportSubmissionPolicies/$entity"
}

Notes: Illustrative example derived from the cmdlet documentation, not a live capture: field names are real, values are placeholders.

Related: GET /exchange/v1.0/reportSubmissionPolicies

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

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

Partial update of the reportSubmissionPolicies at /reportSubmissionPolicies/{key}. Only body fields present are passed to the cmdlet. Returns 200 + the post-Set entity (rename-aware re-fetch when name is in the body).

Backing cmdlet: Set-ReportSubmissionPolicy. Role: ThreatPolicy.ReadWrite (Enterprise).

Parameter In Type Required Description
disableQuarantineReportingOption body
disableUserSubmissionOptions body
enableCustomizedMsg body
enableCustomNotificationSender body
enableOrganizationBranding body
enableReportToMicrosoft body
enableThirdPartyAddress body
enableUserEmailNotification body
junkReviewResultMessage body
multiLanguagePostSubmitMessageButtonLinkForJunk body
multiLanguagePostSubmitMessageButtonLinkForPhishing body
multiLanguagePostSubmitMessageButtonTextForJunk body
multiLanguagePostSubmitMessageButtonTextForPhishing body
multiLanguagePostSubmitMessageForJunk body
multiLanguagePostSubmitMessageForPhishing body
multiLanguagePostSubmitMessageTitleForJunk body
multiLanguagePostSubmitMessageTitleForPhishing body
multiLanguagePreSubmitMessageButtonLinkForJunk body
multiLanguagePreSubmitMessageButtonLinkForNotJunk body
multiLanguagePreSubmitMessageButtonLinkForPhishing body
multiLanguagePreSubmitMessageButtonTextForJunk body
multiLanguagePreSubmitMessageButtonTextForNotJunk body
multiLanguagePreSubmitMessageButtonTextForPhishing body
multiLanguagePreSubmitMessageForJunk body
multiLanguagePreSubmitMessageForNotJunk body
multiLanguagePreSubmitMessageForPhishing body
multiLanguagePreSubmitMessageTitleForJunk body
multiLanguagePreSubmitMessageTitleForNotJunk body
multiLanguagePreSubmitMessageTitleForPhishing body
multiLanguageSetting body
notificationFooterMessage body
notificationSenderAddress body
notificationsForCleanSubmissionAirInvestigationsEnabled body
notificationsForPhishMalwareSubmissionAirInvestigationsEnabled body
notificationsForSpamSubmissionAirInvestigationsEnabled body
notificationsForSubmissionAirInvestigationsEnabled body
notJunkReviewResultMessage body
onlyShowPhishingDisclaimer body
phishingReviewResultMessage body
postSubmitMessage body
postSubmitMessageEnabled body
postSubmitMessageForJunk body
postSubmitMessageForNotJunk body
postSubmitMessageForPhishing body
postSubmitMessageTitle body
postSubmitMessageTitleForJunk body
postSubmitMessageTitleForNotJunk body
postSubmitMessageTitleForPhishing body
preSubmitMessage body
preSubmitMessageEnabled body
preSubmitMessageForJunk body
preSubmitMessageForNotJunk body
preSubmitMessageForPhishing body
preSubmitMessageTitle body
preSubmitMessageTitleForJunk body
preSubmitMessageTitleForNotJunk body
preSubmitMessageTitleForPhishing body
reportChatMessageEnabled body
reportChatMessageToCustomizedAddressEnabled body
reportJunkAddresses body
reportJunkToCustomizedAddress body
reportNotJunkAddresses body
reportNotJunkToCustomizedAddress body
reportPhishAddresses body
reportPhishToCustomizedAddress body
thirdPartyReportAddresses body
userSubmissionOptions body
userSubmissionOptionsMessage body
dryRun query bool (switch)

Partial update of the report submission policy via Set-ReportSubmissionPolicy. Only the body fields present are passed to the cmdlet; returns 200 with the post-Set entity.

PATCH /exchange/v1.0/reportSubmissionPolicies/{key} HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/json
{
"enableReportToMicrosoft": false,
"reportPhishToCustomizedAddress": true,
"reportPhishAddresses": [
]
}
HTTP/1.1 200 OK
{
"Id": "DefaultReportSubmissionPolicy",
"Identity": "DefaultReportSubmissionPolicy",
"EnableReportToMicrosoft": false,
"ReportPhishToCustomizedAddress": true,
"ReportPhishAddresses": [
]
}

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

Related: GET /exchange/v1.0/reportSubmissionPolicies

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

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

Remove the reportSubmissionPolicies at /reportSubmissionPolicies/{key}. Returns 204 with no body.

Backing cmdlet: Remove-ReportSubmissionPolicy. Role: ThreatPolicy.ReadWrite (Enterprise).

Parameter In Type Required Description
dryRun query bool (switch)

Removes the report submission policy via Remove-ReportSubmissionPolicy. Returns 204 with no body.

DELETE /exchange/v1.0/reportSubmissionPolicies/{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/reportSubmissionPolicies

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