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 |
Routes
Section titled “Routes”| 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).
List reportSubmissionPolicies
Section titled “List reportSubmissionPolicies”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.1Authorization: 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) |
Create the report submission policy
Section titled “Create the report submission policy”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.1Authorization: Bearer {token}Content-Type: application/json
{ "enableReportToMicrosoft": true, "enableUserEmailNotification": true, "reportJunkToCustomizedAddress": true, "reportJunkAddresses": [ "soc@contoso.com" ], "reportPhishAddresses": [ "soc@contoso.com" ], "notificationSenderAddress": "security@contoso.com"}HTTP/1.1 201 CreatedLocation: /exchange/v1.0/reportSubmissionPolicies/DefaultReportSubmissionPolicy
{ "Id": "DefaultReportSubmissionPolicy", "Identity": "DefaultReportSubmissionPolicy", "EnableReportToMicrosoft": true, "EnableUserEmailNotification": true, "ReportJunkToCustomizedAddress": true, "ReportJunkAddresses": [ "soc@contoso.com" ], "ReportPhishAddresses": [ "soc@contoso.com" ], "NotificationSenderAddress": "security@contoso.com"}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.1Authorization: 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) |
Update the report submission policy
Section titled “Update the report submission policy”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.1Authorization: Bearer {token}Content-Type: application/json
{ "enableReportToMicrosoft": false, "reportPhishToCustomizedAddress": true, "reportPhishAddresses": [ "phish-review@contoso.com" ]}HTTP/1.1 200 OK
{ "Id": "DefaultReportSubmissionPolicy", "Identity": "DefaultReportSubmissionPolicy", "EnableReportToMicrosoft": false, "ReportPhishToCustomizedAddress": true, "ReportPhishAddresses": [ "phish-review@contoso.com" ]}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) |
Delete the report submission policy
Section titled “Delete the report submission policy”Removes the report submission policy via Remove-ReportSubmissionPolicy. Returns 204 with no body.
DELETE /exchange/v1.0/reportSubmissionPolicies/{key} HTTP/1.1Authorization: Bearer {token}Content-Type: application/jsonHTTP/1.1 204 No ContentNotes: 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.

