Skip to main content
POST
/
monitors
/
bulk
Create multiple monitors
curl --request POST \
  --url https://api.dnsradar.dev/monitors/bulk \
  --header 'Content-Type: application/json' \
  --header 'X-Api-Key: <api-key>' \
  --data '
{
  "monitors": [
    {
      "record_type": "<string>",
      "expected_value": "<string>",
      "domain": "<string>",
      "subdomain": "<string>",
      "full_domain": "<string>",
      "is_exact_match": true,
      "is_active": true,
      "group": "<string>",
      "notify": "immediately"
    }
  ]
}
'
[
  {
    "id": "mon_abc123...",
    "created": "2023-11-07T05:31:56Z",
    "domain": "example.com",
    "subdomain": "www",
    "record_type": "A",
    "expected_value": [
      "192.168.1.1"
    ],
    "current_value": [
      "192.168.1.1"
    ],
    "is_exact_match": true,
    "state": "UNSET",
    "incidence_count": 123,
    "last_checked": "2023-11-07T05:31:56Z",
    "is_active": true,
    "notify": "immediately"
  }
]
Useful for initial bulk imports, this allows you to import up to 250 000 monitors per minutes.
Please note that the free plan limited to 50 total monitors.

Authorizations

X-Api-Key
string
header
required

API key used to authenticate yourself on DNSRadar. Obtain your API key from your DNSRadar dashboard.

Body

application/json
monitors
object[]
required
Required array length: 1 - 1000 elements
group
string

Default group slug for all monitors. If not provided, monitors will use their individual group or the default group.

notify
enum<string>
default:immediately

Default notification setting for all monitors. 'immediately' triggers events from first check, 'on_success' starts after monitor enters valid state, 'after_success' starts after first transition from valid to another state.

Available options:
immediately,
on_success,
after_success
ignore
boolean
default:false

When set to true, the request will not fail if a monitor already exists and will continue to add the other monitors

Response

Monitors created

id
string

Monitor identifier with 'mon_' prefix

Example:

"mon_abc123..."

created
string<date-time>

Monitor creation datetime in ISO 8601 format

domain
string

Domain name to monitor

Example:

"example.com"

subdomain
string

Subdomain to monitor (empty string for apex)

Example:

"www"

record_type
enum<string>

DNS record type to monitor

Available options:
A,
AAAA,
CNAME,
MX,
TXT,
NS,
PTR,
SPF,
CAA
expected_value
string[]

Expected DNS record values (up to 10)

Example:
["192.168.1.1"]
current_value
string[] | null

Current DNS record values

Example:
["192.168.1.1"]
is_exact_match
boolean

If set to false, special rules applies depending on the record_type. See documentation for details.

state
enum<string> | null

Current monitoring state

Available options:
UNSET,
VALID,
INVALID,
TIMEOUT,
MISMATCH,
NOT_FOUND,
NO_DATA,
BAD_SETUP
incidence_count
integer

Number of incidents/changes detected

last_checked
string<date-time> | null

Datetime of the last check in ISO 8601 format

is_active
boolean

Whether monitoring is active

notify
enum<string>

Notification timing: 'immediately' notifies as soon as the value changes, 'on_success' notifies only when the value becomes valid, 'after_success' notifies only when the value goes from valid to invalid

Available options:
immediately,
on_success,
after_success