Uptimeify Docs
MonitorsDns monitors

List DNS Monitors

Lists DNS monitors for an organization (with pagination).

GET /api/dns-monitors

Each item contains the DNS monitor itself and does not embed the full customer record.

Query Parameters

  • organizationId (optional): defaults to your session organization
  • customerId (optional)
  • search (optional)
  • page (optional, default 1)
  • perPage (optional, default 50, max 200)

Example (cURL)

BASE_URL="https://uptimeify.io"
TOKEN="<your-api-token>"

curl -X GET \
  "$BASE_URL/api/dns-monitors?organizationId=1&page=1&perPage=50" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"

Example Response

{
  "items": [
    {
      "id": 5,
      "publicId": "79fbe9b0-f9c6-4026-86de-1dbebc84d9bb",
      "organizationId": 2,
      "customerId": 2,
      "customerName": "Zaskoku & Haupt GbR",
      "name": "Primary DNS Monitor",
      "hostname": "claas.sh",
      "checkInterval": 30,
      "timeoutSeconds": 30,
      "dnsConfig": {},
      "allowedCheckCountryCodes": null,
      "status": "active",
      "notificationPhoneNumber": null,
      "notificationEmail": null,
      "lastCheckedAt": "2026-04-03T14:54:56.561Z",
      "createdAt": "2026-04-03T14:54:56.383Z",
      "updatedAt": "2026-04-03T14:54:56.740Z",
      "uptimeDay": "100.00",
      "uptimeMonth": "99.87",
      "uptimeYear": "99.94",
      "avgResponseDay": 24,
      "avgResponseMonth": 27,
      "avgResponseYear": 26,
      "responseGraph": { "values": [24, 25, null], "avg": 24 },
      "upSinceAt": "2026-04-01T08:12:03.000Z",
      "isDown": false,
      "tags": []
    }
  ],
  "total": 0,
  "page": 1,
  "perPage": 50
}

Inline metrics

Every item carries the same rolled-up metrics the other monitor list endpoints return. They are computed per monitor over the calendar day, month and year in UTC.

FieldTypeMeaning
uptimeDay / uptimeMonth / uptimeYearstringUptime percentage with two decimals, e.g. "99.94"
avgResponseDay / avgResponseMonth / avgResponseYearnumber | nullAverage response time in milliseconds; null when nothing was measured in that window
responseGraphobject{ values, avg } for the last 24 hours, one entry per hour; an hour with no successful check is null
upSinceAtstring | nullISO timestamp the monitor has been up since, null while it is down
isDownbooleanWhether the monitor is currently in an unresolved incident

The day figures are read from the raw check data, the month and year from continuous aggregates, so a value may lag the newest check by a few minutes in the month and year windows.

Common errors

  • 400 Invalid organizationId when organizationId is invalid
  • 400 Invalid customerId when customerId is invalid
  • 401 Unauthorized when you are not logged in
  • 403 Forbidden when you cannot access the organization

On this page