# DNSRecord.checked

URL: /business/events/DNSRecord.checked · Id: `event:DNSRecord.checked`

> The daily check read what public DNS answers for a DNS Record and compared it with the declared value.

The daily check read what public DNS answers for a [DNS Record](/business/nouns/dns-record) and compared it with the declared value.

| Property | Value |
| --- | --- |
| Raised by | No Verb: a clock raises it |
| Noun | [DNS Record](/business/nouns/dns-record) |
| Moves | [DNS Record](/business/nouns/dns-record) `missing` to `ok` when public DNS answers the declared value; [DNS Record](/business/nouns/dns-record) `missing` to `dangling` when the record answers and its target does not; [DNS Record](/business/nouns/dns-record) `ok` to `missing` when public DNS gives no answer; [DNS Record](/business/nouns/dns-record) `ok` to `drifted` when public DNS answers another value; [DNS Record](/business/nouns/dns-record) `ok` to `dangling` when the record answers and its target does not; [DNS Record](/business/nouns/dns-record) `drifted` to `ok` when public DNS answers the declared value again; [DNS Record](/business/nouns/dns-record) `dangling` to `ok` when its target answers again |
| Wakes | None. |

### Payload
Each delivery is an [Event](/business/nouns/event) record. `data` holds the DNS Record as it stands.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `name` | `string` | Yes | `DNSRecord.checked`. |
| `at` | `datetime` | Yes | When it happened. |
| `seq` | `integer` | No | Its position in the namespace, one more than the Event before; any seq is a cursor into the history. |
| `data` | `json` | Yes | The Thing as the Action left it. |
| `data.dnsRecord` | [DNS Record](/business/nouns/dns-record) | Yes | The DNS Record as the change left it. |
| `data.dnsRecord.type` | `string` | Yes | The record type, written in lowercase. |
| `data.dnsRecord.name` | `string` | Yes | The label under the Domain, such as `@`, `www` or `_dmarc`. |
| `data.dnsRecord.value` | `string` | Yes | The declared answer. |
| `data.dnsRecord.owner` | `string` | Yes | `platform` records serve the Site, authenticate mail and validate certificates, and refuse edits; `startup` records change freely. |
| `data.dnsRecord.observed` | `string` | No | What public DNS answered at the last daily check. |
| `data.dnsRecord.status` | `string` | No | `dangling` means the target no longer answers, the opening for a subdomain takeover; `removed` means it no longer answers at all. |

### Example
```json
{
  "$id": "https://api.sb/leaseline.app/events/evt_3jN8jCSVty",
  "$type": "Event",
  "name": "DNSRecord.checked",
  "at": "2026-10-22T12:00:00Z",
  "data": {
    "dnsRecord": {
      "$id": "https://api.sb/leaseline.app/dns-records/dns_66ja94YImd",
      "$type": "DNSRecord",
      "type": "a",
      "name": "_dmarc",
      "value": "192.0.2.10",
      "owner": "platform",
      "observed": "192.0.2.10",
      "status": "missing"
    }
  },
  "seq": 1942
}
```