MailerSend
Account

DMARC Monitoring

Receive and analyze DMARC reports and identify potential sending issues with MailerSend's DMARC Monitoring API. Create and fetch monitors and retrieve your DMARC reports.

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 parameterTypeRequiredLimitationsDetails
pageintnoMin: 1
limitintnoMin: 1, Max: 100Default: 25
querystringnoMax: 255Search/filter monitors
sort_bystringnoAllowed values: created_at, updated_at, dmarc_valid, spf_status
orderstringnoAllowed values: asc, desc

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 ParameterTypeRequiredLimitationsDetails
domain_idstringyesMust be a verified domain. Only one monitor can be created per domain.

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

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

JSON parameters are provided in dot notation

JSON ParameterTypeRequiredLimitationsDetails
wanted_dmarc_recordstringyesMax: 1000Must be a valid DMARC record format (e.g. v=DMARC1; p=none; rua=mailto:...).

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

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 parameterTypeRequiredLimitationsDetails
monitor_idstringyes
Query parameterTypeRequiredLimitationsDetails
pageintno
limitintnoMin: 1, Max: 100Default: 25
date_fromstringnoFilter by report date (from)
date_tostringnoFilter by report date (to). Must be after date_from and not in the future
searchstringnoMax: 255
categorystringno
report_sourcestringnoMax: 255Filter by reporting organization

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 parameterTypeRequiredLimitationsDetails
monitor_idstringyes
ipstringyes
Query parameterTypeRequiredLimitationsDetails
pageintno
limitintnoMin: 1, Max: 100Default: 25
date_fromstringnoFilter by report date (from)
date_tostringnoFilter by report date (to). Must be after date_from and not in the future
searchstringnoMax: 255
categorystringno
report_sourcestringnoMax: 255Filter by reporting organization

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 parameterTypeRequiredLimitationsDetails
monitor_idstringyes
Query parameterTypeRequiredLimitationsDetails
date_fromstringyesFilter start date
date_tostringyesFilter end date. Must be after date_from and not in the future
statusstringnoFilter by acceptance status. Allowed values: accepted, rejected, quarantined

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 parameterTypeRequiredLimitationsDetails
monitor_idstringyes
ipstringyes

Responses

Valid

Response Code: 200 OK
Response Headers:
	content-type: application/json
{}

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 parameterTypeRequiredLimitationsDetails
monitor_idstringyes
ipstringyes

Responses

Valid

Response Code: 204 No Content

Error

Response Code: 404 Not Found

On this page