DMARC Monitoring
Receive and analyze DMARC reports to identify potential sending issues. Create and manage monitors for your domains, retrieve aggregated and IP-specific reports, and track DMARC compliance across your email infrastructure.
List monitors
If you want to retrieve information about multiple DMARC monitors, use this GET request:
GET https://api.mailersend.com/v1/dmarc-monitoring
Request parameters
| Query parameter | Type | Required | Limitations | Details |
|---|---|---|---|---|
page | int | no | ||
limit | int | no | Min: 10, Max: 100 | Default: 25 |
Responses
Valid
Response Code: 200 OK
Response Headers:
content-type: application/json
{
"data": [
{
"id": "9dnxr7qvdqg6pm0e",
"dmarc_record": "v=DMARC1; p=reject; rua=mailto:dmarc_agg@dmarc.example.org,mailto:rua-dev@tests.example.org,mailto:rua@example.org; ruf=mailto:dmarc_fr@dmarc.example.org; fo=1; pct=100; rf=afrf",
"wanted_dmarc_record": "v=DMARC1; p=reject; rua=mailto:dmarc_agg@dmarc.example.org,mailto:rua-dev@tests.example.org,mailto:rua@example.org; ruf=mailto:dmarc_fr@dmarc.example.org; fo=1; pct=100; rf=afrf",
"dmarc_valid": true,
"dmarc_record_checked_at": "2025-11-05T09:06:35.000000Z",
"spf_record": "v=spf1 include:_spf.example.org include:_spf.example.org include:example.org include:_spf.example.org ip4:192.0.2.1 include:example.org -all",
"spf_status": "valid",
"created_at": "2025-11-05T09:06:35.000000Z",
"updated_at": "2025-11-05T09:06:35.000000Z",
"domain": {
"id": "5genxmqlgozlyvk7",
"name": "example.org",
"created_at": "2025-11-05T06:18:44.000000Z",
"updated_at": "2025-11-05T06:19:14.000000Z"
}
}
]
}
Error
Response Code: 422 Unprocessable Entity
See - Validation errors
Create a monitor
If you want to create a new DMARC monitor for a domain, use this POST request:
POST https://api.mailersend.com/v1/dmarc-monitoring
Request parameters
JSON parameters are provided in dot notation
| JSON Parameter | Type | Required | Limitations | Details |
|---|---|---|---|---|
domain_id | string | yes |
Request body
{
"domain_id": "0z76k5jg0o3yeg2d"
}
Responses
Valid
Response Code: 201 CREATED
Response Headers:
content-type: application/json
{
"data": {
"id": "lx1p78jk1o53rzn4",
"dmarc_record": "",
"wanted_dmarc_record": "rua=mailto:rua@example.org",
"dmarc_valid": false,
"dmarc_record_checked_at": null,
"spf_record": null,
"spf_status": "not_found",
"created_at": "2025-11-06T10:27:34.000000Z",
"updated_at": "2025-11-06T10:27:34.000000Z"
}
}
Error
Response Code: 422 Unprocessable Entity
See - Validation errors
Update a monitor
If you want to update a DMARC monitor, use this PUT request:
PUT https://api.mailersend.com/v1/dmarc-monitoring/{monitor_id}
Request parameters
| URL parameter | Type | Required | Limitations | Details |
|---|---|---|---|---|
monitor_id | string | yes |
JSON parameters are provided in dot notation
| JSON Parameter | Type | Required | Limitations | Details |
|---|---|---|---|---|
wanted_dmarc_record | string | yes |
Request body
{
"wanted_dmarc_record": "v=DMARC1; p=reject; rua=mailto:dmarc_agg@dmarc.example.org"
}
Responses
Valid
Response Code: 200 OK
Response Headers:
content-type: application/json
{
"data": {
"id": "lx1p78jk1o53rzn4",
"dmarc_record": "",
"wanted_dmarc_record": "v=DMARC1; p=reject; rua=mailto:dmarc_agg@dmarc.example.org,mailto:rua-ms@example.org",
"dmarc_valid": false,
"dmarc_record_checked_at": "2025-11-06T10:31:55.000000Z",
"spf_record": null,
"spf_status": "not_found",
"created_at": "2025-11-06T10:27:34.000000Z",
"updated_at": "2025-11-06T10:31:55.000000Z",
"domain": {
"id": "0z76k5jg0o3yeg2d",
"name": "example.org",
"created_at": "2025-11-06T10:24:03.000000Z",
"updated_at": "2025-11-06T10:25:47.000000Z"
}
}
}
Error
Response Code: 422 Unprocessable Entity
See - Validation errors
Delete a monitor
If you want to delete a DMARC monitor, use this DELETE request:
DELETE https://api.mailersend.com/v1/dmarc-monitoring/{monitor_id}
Request parameters
| URL parameter | Type | Required | Limitations | Details |
|---|---|---|---|---|
monitor_id | string | yes |
Responses
Valid
Response Code: 204 No Content
Error
Response Code: 404 Not Found
Get aggregated reports
If you want to retrieve aggregated DMARC reports for a monitor, use this GET request:
GET https://api.mailersend.com/v1/dmarc-monitoring/{monitor_id}/report
Request parameters
| URL parameter | Type | Required | Limitations | Details |
|---|---|---|---|---|
monitor_id | string | yes |
| Query parameter | Type | Required | Limitations | Details |
|---|---|---|---|---|
page | int | no | ||
limit | int | no | Min: 10, Max: 100 | Default: 25 |
Responses
Valid
Response Code: 200 OK
Response Headers:
content-type: application/json
{
"data": [
{
"ip_address": "192.0.2.1",
"total_volume": 2,
"passed_dmarc": "100%",
"passed_spf": "0%",
"passed_dkim": "100%",
"domain": "example.org",
"country": "United States",
"country_code": "US",
"city": null,
"is_favorite": true
},
{
"ip_address": "192.0.2.2",
"total_volume": 2,
"passed_dmarc": "100%",
"passed_spf": "100%",
"passed_dkim": "100%",
"domain": "example.org",
"country": "United States",
"country_code": "US",
"city": null
}
]
}
Error
Response Code: 404 Not Found
Get IP-specific reports
If you want to retrieve detailed DMARC reports for a specific IP address, use this GET request:
GET https://api.mailersend.com/v1/dmarc-monitoring/{monitor_id}/report/{ip}
Request parameters
| URL parameter | Type | Required | Limitations | Details |
|---|---|---|---|---|
monitor_id | string | yes | ||
ip | string | yes |
| Query parameter | Type | Required | Limitations | Details |
|---|---|---|---|---|
page | int | no | ||
limit | int | no | Min: 10, Max: 100 | Default: 25 |
Responses
Valid
Response Code: 200 OK
Response Headers:
content-type: application/json
{
"data": [
{
"id": "690b12b39dc30891fc35d3da",
"ip_address": "192.0.2.1",
"ip_domain": "example.org",
"total_volume": 2,
"passed_dmarc": "100%",
"passed_spf": "0%",
"spf_domain": null,
"aligned_spf": false,
"passed_dkim": "100%",
"aligned_dkim": true,
"dkim_domain": null,
"created_at": "2025-11-05T00:00:00.000000Z",
"applied_policy": "none",
"override_reason": null,
"override_comment": null,
"domain": null,
"country": null,
"country_code": null,
"city": null,
"report_source": "example.com",
"spf_auth": [
{
"type": "spf",
"result": "pass",
"domain": "example.org",
"selector": null
}
],
"dkim_auth": [
{
"type": "dkim",
"result": "fail",
"domain": "example.org",
"selector": "example"
}
]
}
]
}
Error
Response Code: 404 Not Found
Get report sources
If you want to retrieve a list of report sources for a monitor, use this GET request:
GET https://api.mailersend.com/v1/dmarc-monitoring/{monitor_id}/report-sources
Request parameters
| URL parameter | Type | Required | Limitations | Details |
|---|---|---|---|---|
monitor_id | string | yes |
Responses
Valid
Response Code: 200 OK
Response Headers:
content-type: application/json
{
"data": [
{
"report_source": "example.com",
"reports": 3
}
]
}
Error
Response Code: 404 Not Found
Mark IP as favorite
If you want to mark an IP address as a favorite for a monitor, use this PUT request:
PUT https://api.mailersend.com/v1/dmarc-monitoring/{monitor_id}/favorite/{ip}
Request parameters
| URL parameter | Type | Required | Limitations | Details |
|---|---|---|---|---|
monitor_id | string | yes | ||
ip | string | yes |
Responses
Valid
Response Code: 200 OK
Response Body: [EMPTY]
Error
Response Code: 404 Not Found
Remove IP from favorites
If you want to remove an IP address from favorites for a monitor, use this DELETE request:
DELETE https://api.mailersend.com/v1/dmarc-monitoring/{monitor_id}/favorite/{ip}
Request parameters
| URL parameter | Type | Required | Limitations | Details |
|---|---|---|---|---|
monitor_id | string | yes | ||
ip | string | yes |
Responses
Valid
Response Code: 200 OK
Response Body: [EMPTY]
Error
Response Code: 404 Not Found