---
title: "Get DMARC monitoring for a domain"
method: GET
path: "/domains/{id}/dmarc"
tags: ["Dmarc"]
---

# Get DMARC monitoring for a domain

`GET /domains/{id}/dmarc`

## Request

- Base URL: `https://api.groundmail.dev`
- URL: `https://api.groundmail.dev/domains/{id}/dmarc`
- Auth: HTTP bearer

Sending sources grouped by provider (with unknown senders flagged as possible spoofing), DMARC, SPF and DKIM pass rates over the last 30 days, and the readiness verdict (whether it is safe to move the policy to quarantine). When monitoring is off, `enabled` is false and only the current DMARC record is returned.

## Response `200`

DMARC monitoring status

- DmarcResponse
  - `dmarc` DmarcMonitoring, required
    - `domain` string, required
    - `enabled` boolean, required
    - `status` 'waiting' | 'receiving' | 'disabled': waiting until the first report arrives
    - `report_address` string
    - `rua` string
    - `dns` object
      - `host` string
      - `record` string, nullable
      - `rua_present` boolean
      - `policy` string, nullable
      - `suggested_record` string: The record to publish
    - `digest_enabled` boolean
    - `created_at` string, date-time
    - `last_report_at` string, date-time, nullable
    - `window_days` integer
    - `summary` object
      - `messages` integer
      - `dmarc_pass` integer
      - `dmarc_fail` integer
      - `pass_rate` number
      - `reports` integer
      - `reporters` string[]
    - `sources` DmarcSource[]
      - `key` string: Provider id (google, microsoft, groundmail, sendgrid…) or unknown:<reverse DNS domain>
      - `provider` string
      - `name` string
      - `status` 'passing' | 'failing' | 'unknown': unknown is an unrecognised server failing DMARC (possible spoofing)
      - `messages` integer
      - `dmarc_pass` integer
      - `pass_rate` number: 0 to 1
      - `spf_aligned_rate` number
      - `dkim_aligned_rate` number
      - `ips` string[]: Up to five source IPs, busiest first
      - `ip_count` integer
      - `first_seen` string, date-time
      - `last_seen` string, date-time
    - `daily` object[]
      - `date` string, date
      - `messages` integer
      - `dmarc_pass` integer
      - `pass_rate` number
    - `readiness` object
      - `verdict` 'no_data' | 'collecting' | 'fix_sources' | 'ready_quarantine' | 'ready_reject' | 'enforced'
      - `label` string
      - `detail` string
      - `days_of_data` integer
      - `blocking_sources` string[]

## Other responses

- `401`: Unauthorized
- `404`: Domain not found

---

[API](https://skmtc.dev/groundmail/apis/groundmail-api.md) · [All operations](https://skmtc.dev/groundmail/apis/groundmail-api/llms.txt) · [OpenAPI document](https://skmtc.dev/groundmail/apis/groundmail-api/revisions/479821c9fecf?raw)
