Using checkDomain to Pre-check Provider Support
Last updated: March 31, 2026
The checkDomain method lets you determine in advance whether Entri can automatically configure DNS for a given domain. This guide covers how to use it effectively, how to interpret the response, and how to build a better user experience based on the result.
Overview
When a user enters their domain into your app, you have two options: launch the Entri modal immediately and let Entri figure out the provider, or call checkDomain first to know what to expect.
Pre-checking the domain lets you:
Set accurate expectations before the modal opens ("We'll set this up automatically for you" vs. "You'll need to configure a few DNS records manually")
Conditionally show or hide the Entri modal based on whether automatic setup is supported
Route users to alternative flows—such as manual DNS instructions—when their provider is not supported
Using checkDomain is optional, but it's a meaningful upgrade to the user experience, especially in products where domain setup is a critical onboarding step.
1. How to Call checkDomain
The method takes two arguments: the domain string you want to check, and your standard Entri configuration object.
It is asynchronous, so handle it with await or .then().
JavaScript
const config = {
applicationId: "your-app-id",
token: yourToken,
dnsRecords: [...],
};
const result = await entri.checkDomain("example.com", config);
console.log(result);
React (NPM package)
import { checkDomain } from 'entrijs';
const result = await checkDomain("example.com", config);
console.log(result);
Note: Pass a naked domain (e.g. example.com) — do not include www. or a protocol like https://.
2. Understanding the Response
A successful call returns an object like this:
{
"provider": "Namecheap",
"setupType": "Automatic",
"NSSupport": {
"root": true,
"subdomains": true
}
}
provider
The detected DNS provider for the domain. If the provider cannot be detected, this will be "unknown". Detection is based on NS records, reseller patterns, and other signals — it is more accurate than a plain WHOIS lookup.
setupType
Tells you how DNS will be configured for this user inside the Entri modal. Possible values:
ValueWhat it means | |
| Entri will configure DNS without any manual steps from the user. |
| The user will need to manually add DNS records inside their provider. Entri will guide them, but they must act. |
NSSupport
Only relevant when your dnsRecords config includes NS records. Indicates whether Entri can make nameserver changes at the root domain level and/or subdomains level for this provider.
3. Using the Result to Build a Conditional UI
The most common use case is showing different messaging or flows depending on whether automatic setup is available.
const result = await entri.checkDomain(userDomain, config);
if (result.setupType === "Automatic") {
// Highlight that setup will be seamless
showMessage("Great news — we can connect your domain automatically.");
showEntriButton();
} else {
// Set expectations for a manual flow
showMessage("We'll walk you through adding a few DNS records manually.");
showEntriButton(); // still launch Entri — it guides manual setup too
}
Important: Even when setupType is "Manual", you can still launch the Entri modal. Entri provides a guided manual setup experience with step-by-step instructions for the detected provider. You do not need to build a separate manual flow.
4. What to Do When the Provider Is Unknown
If provider returns "unknown" and setupType is "Manual", it means Entri was unable to identify the DNS provider for the domain. This can happen when:
The NS records do not match a supported provider in Entri's database
The domain has custom or private nameservers
In these cases, the Entri modal will still open and prompt the user to select their provider manually. You can improve the experience by surfacing your own DNS documentation link using the manualSetupDocumentation parameter in the config:
const config = {
applicationId: "your-app-id",
token: yourToken,
dnsRecords: [...],
manualSetupDocumentation: "https://yourapp.com/help/dns-setup",
};
This link will be shown inside the Entri modal when users are in the manual setup flow.
5. Using checkDomain as an HTTP Endpoint
If you need to call this check from your backend (e.g., to log provider data or make server-side routing decisions), checkDomain is also available as an HTTP endpoint.
POST https://api.goentri.com/checkDomain
Request body:
{
"applicationId": "your-app-id",
"token": "your-jwt-token",
"domain": "example.com",
"dnsRecords": [...]
}
Sample response:
{
"provider": "GoDaddy",
"setupType": "Automatic",
"NSSupport": {
"root": false,
"subdomains": true
}
}
The response shape is identical to the frontend method. See the API Reference for full details.
6. Detecting DNS Record Conflicts (checkConflicts)
If your DNS records might conflict with records already set on the domain (for example, if the user already has an MX or TXT record that your config would overwrite), you can enable conflict detection by passing checkConflicts: true in the config:
const config = {
applicationId: "your-app-id",
token: yourToken,
dnsRecords: [...],
checkConflicts: true,
};
const result = await entri.checkDomain("example.com", config);
When enabled, the response will include an additional conflicts array that lists any records in your config that would collide with existing DNS records on the domain. You can use this information to warn users before proceeding or to adjust your record configuration.
See the API Reference for the full response shape when checkConflicts is enabled.
7. Frequently Asked Questions
Does
checkDomainconsume any API quota or count against my usage? No.checkDomainis a read-only lookup and does not affect usage billing or domain limits.
Is
checkDomainaccurate for all providers? Detection accuracy is very high for all providers in Entri's supported list. For providers not in the list, the response will indicate"unknown"and fall back to manual setup. You can check the full list of supported providers at developers.entri.com/provider-list.Should I call
checkDomainbefore everyshowEntri()call? It's optional, but recommended when domain setup is a key step in your user onboarding. If you have a prefilled domain and want to show the right UI before the user even opens the modal, pre-checking avoids a jarring experience if the flow turns out to be manual.What if the user changes their domain after I called
checkDomain? The result is specific to the domain you passed. If your UI allows the user to change or type their domain, callcheckDomainagain with the updated value before launching the modal.
For the full method signature and all response parameters, see the Entri API Reference. For questions about your integration, contact Entri Support.