---
title: "DNS Monitor erstellen"
description: "Erstellt einen neuen DNS-Monitor für einen Kunden."
---

`POST /api/dns-monitors`

## Anfrage (Request Body)

```json
{
  "customerId": "6bfec6f6-245a-47ce-843b-157d97d56f88",
  "name": "Example DNS",
  "hostname": "deinkunde.com",
  "status": "active",
  "checkInterval": 30,
  "timeoutSeconds": 30,
  "dnsConfig": {
    "rrtypes": ["A", "AAAA"],
    "matchMode": "exact",
    "expectedValues": {
      "A": ["93.184.216.34"],
      "AAAA": ["2606:2800:220:1:248:1893:25c8:1946"]
    },
    "triggerOn": {
      "resolveError": true,
      "mismatch": true
    }
  }
}
```

Hinweise:

- `customerId`, `name`, `hostname`, `dnsConfig.rrtypes`, `dnsConfig.matchMode` und `dnsConfig.expectedValues` sind erforderlich.
- `customerId` akzeptiert entweder die interne numerische ID oder die `publicId`-UUID des Kunden.
- Global Supporter und Readonly-User dürfen keine DNS-Monitore erstellen.
- `hostname` muss ein Hostname sein (kein Protokoll, kein Pfad).
- `dnsConfig.expectedValues` muss für jeden RR-Type aus `dnsConfig.rrtypes` mindestens einen erwarteten Wert enthalten.

## Beispiel (cURL)

```bash
BASE_URL="https://uptimeify.io"
TOKEN="<dein-api-token>"

curl -X POST \
  "$BASE_URL/api/dns-monitors" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"customerId":"6bfec6f6-245a-47ce-843b-157d97d56f88","name":"Example DNS","hostname":"deinkunde.com","dnsConfig":{"rrtypes":["A"],"matchMode":"exact","expectedValues":{"A":["93.184.216.34"]},"triggerOn":{"resolveError":true,"mismatch":true}}}'
```

## Häufige Fehler

- `400 Invalid Customer identifier`
- `400 hostname must be a valid hostname (no protocol, no path)`
- `400 Expected values are required for RR type <TYPE>`
- `401 Unauthorized`
- `403 Forbidden` (Readonly/Global Supporter oder kein Zugriff)
- `404 Customer not found`

## Antwort (Response)

Gibt das erstellte DNS-Monitor-Objekt zurück. Siehe [Fehlerliste](/de/api/error-codes-and-known-pitfalls) für Fehlerantworten.
