Domain age API
Registration date, expiry, registrar, and status from the registry itself over RDAP. Send a domain, a URL, or an email address.
1 credit per check · $4.95 per 1,000 on Starter, $2.00 on Volume. Billed for registered domains only. Unregistered domains are free.
Request
{
"domain": "https://shop.example-deals.com/checkout"
}Response review
{
"verdict": {
"status": "registered",
"reason": "new"
},
"risk": {
"score": 60,
"level": "high"
},
"details": {
"domain": "example-deals.com",
"age_days": 4,
"is_newly_registered": true,
"registrar": "NameCheap, Inc."
},
"recommendation": {
"action": "review"
}
}What you get back
Every response has a verdict, a risk score, and a recommended action. These are the fields specific to this check; the API reference lists them all.
- age_days / age_years
- How long ago the domain was registered
- age_band
- new, young, established, or veteran
- is_newly_registered
- Registered in the last 30 days
- expires_date
- When the registration runs out
- registrar
- Who the domain is registered through
- nameservers / dnssec
- Delegation details
What it checks
- Created, updated, and expiry dates
- Age in days and an age band
- Newly registered flag (under 30 days)
- Registrar, nameservers, DNSSEC
- Accepts URLs and email addresses
- Free when not registered
Try it in a minute
curl https://api.validationcheck.net/v1/domain/age \
-H "Authorization: Bearer $VC_KEY" \
-H "Content-Type: application/json" \
-d '{"domain":"https://shop.example-deals.com/checkout"}'const res = await fetch("https://api.validationcheck.net/v1/domain/age", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.VC_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"domain": "https://shop.example-deals.com/checkout"
}),
});
const { data } = await res.json();
console.log(data.recommendation.action);import os, requests
res = requests.post(
"https://api.validationcheck.net/v1/domain/age",
headers={"Authorization": f"Bearer {os.environ['VC_KEY']}"},
json={
"domain": "https://shop.example-deals.com/checkout"
},
timeout=15,
)
print(res.json()["data"]["recommendation"]["action"])Use a free test key to get documented answers without spending credits.
Where teams use it
Phishing triage
Score links in support tickets and inbound mail.
Merchant onboarding
A store whose domain is four days old deserves a closer look.
Lead quality
Old company domains are a strong legitimacy signal.
Questions
Where does the data come from?
The registry's own RDAP service, found through IANA's directory.
What if a TLD has no RDAP service?
The answer says so (`found: false`) and it's free.
Pairs well with
{
"status": "valid",
"reason": "mailbox_exists",
"smtp_check": "deliverable",
"is_disposable": false,
"is_role": false,
"action": "approve"
}Email validation
Know if an inbox is real before you send to it.
- Mailbox exists (SMTP)
- Disposable and burner domains
- Role inboxes like info@ and sales@
- Typo fixes: gmial.com → gmail.com
{
"status": "valid",
"reason": "carrier_confirmed",
"e164": "+14155552671",
"line_type": "mobile",
"ported": false,
"action": "approve"
}Phone validation
Valid, reachable, and what kind of line it is.
- Valid and possible, in 240+ regions
- Mobile, landline, VoIP, toll-free
- Carrier and porting (US/CA)
- E.164, national, and international formats
{
"status": "risky",
"reason": "tor_exit",
"connection_type": "datacenter",
"action": "block"
}IP intelligence
Where a visitor is, and whether they're hiding it.
- Country, region, city, time zone
- ASN, network, and ISP
- VPN, proxy, and Tor detection
- AWS, Google Cloud, Cloudflare, Oracle ranges
Get started in 60 seconds
50 free trial credits. Free test keys. No card needed.