Monitor domains for DNS changes
Entri Monitor allows you to monitor your customer’s domains for any DNS changes.
Overview
Entri Monitor allows you to monitor DNS record changes across multiple domains. This can be useful in a variety of scenarios, such as:
-
Notifying your customer that they inadvertently broke the DNS record configuration required to use your application
-
Detecting if a customer is at risk for churn or might be moving to a competing solution
If Entri Monitor detects a change (or deletion) of one of the records specified on a monitored domain, a notification is sent to the webhook URL that you provide on the App Settings page of the Entri Dashboard.
Entri Monitor runs an hourly check, 24x7.
Optionally, you can combine Entri Monitor with Entri Connect to help your user fix their DNS if Monitor detects a breaking change.
Adding monitoring using Entri Connect
When initializing a new domain using Entri Connect, you can pass a monitor: true
property in either the domain object or each record object to specify that it should be tracked with Entri Monitor.
Monitor everything:
Monitor only the CNAME record:
General API Guidelines
Base URL
Authentication
All requests require the following headers:
-
applicationId
: Your unique application ID. -
Authorization
: A bearer token generated using your client secret.
Example Headers:
Quickstart
Step 1: Add domains for monitoring
You’ll first need to tell Entri Monitor which domain you’d like to monitor. Send a POST
request to /monitor/domains
with the name of the domain, as well as a list of the records you want to monitor, including their type
, host
, value
, and ttl
properties.
Example request body:
You’ll recieve a response like this if you’re successful:
Step 2: Specify a webhook URL
Log into the Entri Dashboard and navigate to the App Settings page. Enter the URL of the webhook that you’ll use to recieve notifications about the DNS changes you specified.
Step 3: Set up your service to receive the webhook requests at the URL you specified
Your webhook URL will be sent requests if the DNS records you specified are modified or deleted. Example request:
Monitor API Reference
1. Manage DNS Records
Retrieve DNS Records
GET /monitor/domains/:domain_name/records
Description: Fetch all monitored DNS records for a specific domain.
Headers:
-
applicationId
: Your application ID (required). -
Authorization
: Bearer token (required).
Path Parameters:
domain_name
(string, required): The domain to retrieve records for.
Response Example:
Create DNS Records
POST /monitor/domains/:domain_name/records
Description: Add new DNS records to be monitored on an existing domain.
Request Body:
Key Descriptions:
-
dnsRecords
(array, required): List of DNS records to add.-
type
(string, required): Record type (e.g.,A
,CNAME
). -
host
(string, required): Hostname. -
value
(string, required): Record value. -
ttl
(integer, required): Time-to-live in seconds.
-
Response Example:
Update DNS Records
PUT /monitor/domains/:domain_name/records
Description: Update DNS records for a monitored domain.
Request Body:
Response Example:
Delete DNS Records
DELETE /monitor/domains/:domain_name/records
Description: Remove specific DNS records from the monitoring for a domain.
Request Body:
Response Example:
2. Global Domain Management
List All Domains
GET /monitor/domains
Query Parameters:
-
offset
(integer): Pagination offset. -
limit
(integer): Number of domains per page. -
from_date
(date): Filter start date. -
to_date
(date): Filter end date.
Response Example:
Retrieve Domain Details
GET /monitor/domains/:domain_name
Description: Get all the settings for a specific monitored domain.
Response Example:
Add a Domain
POST /monitor/domains
Description: Add a domain for monitoring.
Request Body:
Response Example:
Update Domain
PUT /monitor/domains
Description: Update details for an existing domain.
Request Body:
Response Example:
Delete a Domain
DELETE /monitor/domains
Description: Remove a domain from monitoring.
Request Body:
Response Example:
3. Batch Operations
Batch Create Domains
POST /monitor/domains/batch
Description: Add multiple domains in a single request. A maximum of 100 domains can be sent per request.
Request Body:
Response Example:
Batch Status
GET /monitor/domains/batch/status/:request_id
Description: Check the status of a batch operation.
Response Example:
Webhooks
To recieve webhook notifications about the target domains, log into the Entri Dashboard and navigate to the App Settings page. Enter the URL of the webhook that you’ll use to recieve notifications about the DNS changes you specified.
Your webhook URL will be sent requests if the DNS records you specified are modified or deleted.
Top-Level fields
id
: A unique identifier for the webhook event (e.g."e98d267b-84b8-4229-a94a-1933ed7f91ea"
).user_id
: The ID of the user who initiated the domain-related action (e.g."your-provided-user-id"
).domain
: The domain involved in the event (e.g."example.com"
).subdomain
: The subdomain associated with the event, if any (e.g."shop"
).type
: Defines the type of event. Possible values:"domain.record_missing"
: Used whenever there is a record missing from the records that are being monitored."domain.record_restored"
: Confirms that ALL records have been restored.
Example request: