View Monitor Event History

Every DNS change detected by a monitor creates an event. The events API provides access to this history for analysis, debugging, and compliance.

Listing Events for a Monitor

Get all events for a specific monitor:

curl -X GET https://api.dnsradar.dev/monitors/mon_abc123/events \
  -H "X-API-Key: YOUR_API_KEY"

Response

{
  "limit": 20,
  "after": "evt_xyz789",
  "before": null,
  "has_more": true,
  "data": [
    {
      "uuid": "evt_def456",
      "monitor_uuid": "mon_abc123",
      "domain": "piedpiper.com",
      "subdomain": "www",
      "record_type": "A",
      "expected_value": ["1.2.3.4"],
      "occurred": "2026-01-08T14:22:10Z",
      "previous_value": ["1.2.3.4"],
      "current_value": ["5.6.7.8"],
      "old_state": "VALID",
      "new_state": "MISMATCH",
      "incidence_count": 3
    }
  ]
}

Pagination

Events use cursor-based pagination:

Next Page

curl -X GET https://api.dnsradar.dev/monitors/mon_abc123/events?after=evt_xyz789&limit=50 \
  -H "X-API-Key: YOUR_API_KEY"

Previous Page

curl -X GET https://api.dnsradar.dev/monitors/mon_abc123/events?before=evt_abc123&limit=50 \
  -H "X-API-Key: YOUR_API_KEY"

Query Parameters

ParameterTypeDescription
limitintegerResults per page (1-100, default: 20)
afterstringCursor for next page
beforestringCursor for previous page
order_bystringSort field (e.g., occurred)
order_waystringSort direction (asc or desc)
occurred_afterintegerUnix timestamp - events after this time
occurred_beforeintegerUnix timestamp - events before this time
old_statestringFilter by state (VALID, MISMATCH, NOT_FOUND, TIMEOUT, INVALID)
new_statestringFilter by state (VALID, MISMATCH, NOT_FOUND, TIMEOUT, INVALID)

Filtering Events

Filter by Time Range

Get events within a specific time period using Unix timestamps (seconds since epoch).

Events after a specific time:

curl -X GET https://api.dnsradar.dev/monitors/mon_abc123/events?occurred_after=1767793661 \
  -H "X-API-Key: YOUR_API_KEY"

Events before a specific time:

curl -X GET https://api.dnsradar.dev/monitors/mon_abc123/events?occurred_before=1767880061 \
  -H "X-API-Key: YOUR_API_KEY"

Events within a time range:

curl -X GET https://api.dnsradar.dev/monitors/mon_abc123/events?occurred_after=1767793661&occurred_before=1767880061 \
  -H "X-API-Key: YOUR_API_KEY"

Filter by State

Get only events with a specific state.

DNS mismatches only:

curl -X GET https://api.dnsradar.dev/monitors/mon_abc123/events?new_state=MISMATCH \
  -H "X-API-Key: YOUR_API_KEY"

Missing DNS records:

curl -X GET https://api.dnsradar.dev/monitors/mon_abc123/events?new_state=NOT_FOUND \
  -H "X-API-Key: YOUR_API_KEY"

Valid states (back to normal):

curl -X GET https://api.dnsradar.dev/monitors/mon_abc123/events?new_state=VALID \
  -H "X-API-Key: YOUR_API_KEY"

Timeout errors:

curl -X GET https://api.dnsradar.dev/monitors/mon_abc123/events?new_state=TIMEOUT \
  -H "X-API-Key: YOUR_API_KEY"

Invalid DNS responses:

curl -X GET https://api.dnsradar.dev/monitors/mon_abc123/events?new_state=INVALID \
  -H "X-API-Key: YOUR_API_KEY"

Sorting Options

Sort by occurred timestamp (descending):

curl -X GET https://api.dnsradar.dev/monitors/mon_abc123/events?order_by=occurred&order_way=desc \
  -H "X-API-Key: YOUR_API_KEY"

Sort by occurred timestamp (ascending):

curl -X GET https://api.dnsradar.dev/monitors/mon_abc123/events?order_by=occurred&order_way=asc \
  -H "X-API-Key: YOUR_API_KEY"

Combining Filters

You can combine multiple filters to create powerful queries.

Recent MISMATCH events (last 24 hours):

curl -X GET https://api.dnsradar.dev/monitors/mon_abc123/events?new_state=MISMATCH&occurred_after=1767793661&order_by=occurred&order_way=desc&limit=50 \
  -H "X-API-Key: YOUR_API_KEY"

All errors in a specific time range:

curl -X GET https://api.dnsradar.dev/monitors/mon_abc123/events?new_state=TIMEOUT&occurred_after=1767793661&occurred_before=1767880061&order_by=occurred&order_way=asc \
  -H "X-API-Key: YOUR_API_KEY"

Latest 100 events, sorted newest first:

curl -X GET https://api.dnsradar.dev/monitors/mon_abc123/events?order_by=occurred&order_way=desc&limit=100 \
  -H "X-API-Key: YOUR_API_KEY"

Recovery events (state changed to VALID):

curl -X GET https://api.dnsradar.dev/monitors/mon_abc123/events?new_state=VALID&occurred_after=1767793661&limit=20 \
  -H "X-API-Key: YOUR_API_KEY"

Get Single Event

Retrieve details for a specific event:

curl -X GET https://api.dnsradar.dev/monitors/mon_abc123/events/evt_def456 \
  -H "X-API-Key: YOUR_API_KEY"

Event Fields

FieldDescription
uuidUnique event identifier (evt_)
monitor_uuidAssociated monitor ID
domainDomain name
subdomainSubdomain (if applicable)
record_typeDNS record type
expected_valueExpected DNS values
occurredISO 8601 timestamp
previous_valueDNS value before change
current_valueDNS value after change
old_statePrevious monitor state
new_stateCurrent monitor state
incidence_countTotal incidents for this monitor

Monitor States

Events track state transitions:

StateMeaning
VALIDDNS matches expected value
MISMATCHDNS doesn't match
NOT_FOUNDDNS record missing
TIMEOUTDNS query timeout
INVALIDInvalid DNS response

Next Steps