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>"
    }
  ]
}
'
[
  {
    "id": "mon_abc123...",
    "created": "2023-11-07T05:31:56Z",
    "domain": "example.com",
    "subdomain": "www",
    "expected_value": [
      "192.168.1.1"
    ],
    "current_value": [
      "192.168.1.1"
    ],
    "is_exact_match": true,
    "incidence_count": 123,
    "last_checked": "2023-11-07T05:31:56Z",
    "is_active": true
  }
]

Documentation Index

Fetch the complete documentation index at: https://developers.dnsradar.dev/llms.txt

Use this file to discover all available pages before exploring further.

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