Free · No API Key · Vercel Ready

The Domain
API Toolkit

Three powerful APIs in one project — bulk availability, domain age, and social media checks. Deploy to Vercel in 60 seconds.

Try Live Demo View APIs
4
APIs
59
Platforms Checked
0
API Keys Needed
// apis

Three APIs.
One Deploy.

All backed by official registries and real-time data sources.

01 / Bulk Check

Bulk Availability

Check up to 100 domain names across multiple TLDs in a single request. Powered by Verisign — the .com/.net registry operator.

GET /api/bulk-check?names=Zynora,Veltrix&tlds=com,io,ai
Verisign 100 names/req Auto-batch Register links
02 / Domain Age

Age & RDAP Info

Get full domain registration history — age, registration date, expiry, registrar, nameservers, DNSSEC status and more via RDAP.

GET /api/domain-age?domain=admin.com
RDAP Official Free 30+ TLDs Auto-fallback
03 / Name Check

Domains + Social

Check a brand name across 28 domain extensions AND 31 social media platforms simultaneously. Available, taken, or unknown status.

GET /api/check?q=mybrand&type=all
28 TLDs 31 Social Profile URLs Parallel
04 / DNS History

DNS History & Timeline

Track full DNS change history — nameserver changes, domain drops, re-registrations, parking events. Uses 5 sources in parallel with Cloudflare bypass.

GET /api/dns-history?domain=example.com
5 Sources Live DNS NS Timeline IP History SecurityTrails
05 / Domain Info

Full Domain Intelligence NEW

All-in-one endpoint — aggregates WHOIS (RDAP), live DNS records, TLD availability variants, and HTTP reachability in a single call. Choose which modules to run via the include param.

GET /api/info?domain=example.com&include=whois,dns,availability,reachability
RDAP WHOIS Live DNS TLD Variants Reachability Smart Summary Modular
// live playground

Try It Now

Run live requests against the real API endpoints.

POST /api/bulk-check idle
// Press Run to check domain availability...
GET /api/domain-age idle
// Press Run to look up domain age...
GET /api/check idle
// Press Run to check brand availability...
GET /api/dns-history idle
// Press Run to fetch DNS history...
GET /api/info idle
// Press Run to fetch full domain intelligence...
// documentation

API Reference

01 — Bulk Domain Check

Check up to 100 names × 10 TLDs per request. Uses Verisign's official bulk-check API.

cURL
curl "https://your-app.vercel.app/api/bulk-check?names=Datafyno,Nexavo&tlds=com,io,ai"
JavaScript
const res  = await fetch('/api/bulk-check', {
  method : 'POST',
  headers: { 'Content-Type': 'application/json' },
  body   : JSON.stringify({ names: ['Datafyno','Nexavo'], tlds: ['com','io','ai'] })
});
const data = await res.json();
data.results.available.forEach(d => console.log(`✅ ${d.domain} → ${d.register_url}`));
ParamTypeRequiredDescription
namesstring/arrayrequiredComma-separated names (no TLD needed). Max 100.
tldsstring/arrayoptionalTLDs to check. Default: com. Max 10.
include-registeredbooloptionalInclude taken domains. Default: true

02 — Domain Age (RDAP)

Returns age, registration date, expiry, registrar, nameservers, DNSSEC status. No API key required.

cURL
curl "https://your-app.vercel.app/api/domain-age?domain=admin.com"
Response (key fields)
{
  "age": { "years": 31, "months": 5, "days": 15, "total_days": 11475, "category": "Mature" },
  "dates": { "registered_human": "November 17, 1994", "expiration_human": "November 16, 2031" },
  "expiry": { "days_remaining": 2038, "status": "active" },
  "registrar": { "name": "Amazon Registrar, Inc.", "iana_id": "468" },
  "nameservers": ["NS-89.AWSDNS-11.COM", ...],
  "dnssec": { "signed": false }
}
ParamTypeRequiredDescription
domainstringrequiredDomain to look up. Auto-strips https:// and www.

03 — Brand Name Check

Checks one brand name across 28 domain extensions + 31 social media platforms in parallel.

cURL
curl "https://your-app.vercel.app/api/check?q=mybrand&type=all"
ParamTypeRequiredDescription
qstringrequiredBrand name to check (min 2 chars)
typestringoptionalall | domains | social. Default: all
tldsstringoptionalCustom TLD list. Default: all 28

04 — DNS History & Timeline

Full DNS change history — NS changes, drops, re-registrations, parking detection. Uses 5 parallel sources. Add a free SecurityTrails key for full NS history (50 req/month).

cURL
curl "https://your-app.vercel.app/api/dns-history?domain=constructionlawyerhouston.com"

# With SecurityTrails key for full NS history:
curl "https://your-app.vercel.app/api/dns-history?domain=example.com&st_key=YOUR_KEY"
Response (key fields)
{
  "summary": {
    "headline": "example.com — 5 changes and 2 drops recorded over 11 years",
    "is_parked_now": false,
    "has_parked_before": true,
    "current_registrar": "Spaceship Registrar",
    "current_ns": ["launch1.spaceship.net", "launch2.spaceship.net"],
    "has_email": false,
    "total_changes": 5,
    "total_drops": 2
  },
  "live": {
    "nameservers": ["launch1.spaceship.net"],
    "a_records": [],
    "mx_records": [],
    "meta": { "is_parked": false, "has_email": false }
  },
  "timeline": {
    "first_seen": "2014-06-07",
    "total_changes": 5,
    "total_drops": 2,
    "age_years": 11,
    "events": [
      { "date": "2014-06-07", "type": "created",   "label": "Domain first seen — nameservers added", "ns_after": "ns37.domaincontrol.com" },
      { "date": "2023-07-19", "type": "dropped",   "label": "Domain dropped — nameservers removed" },
      { "date": "2025-07-12", "type": "parked",    "label": "Domain parked at Afternic (GoDaddy Aftermarket)", "is_parking": true },
      { "date": "2026-04-15", "type": "created",   "label": "Domain re-registered — nameservers added" }
    ]
  },
  "ip_history": [ { "date": "2024-01-01", "ip": "1.2.3.4", "owner": "Cloudflare" } ],
  "sources": {
    "live_dns": true, "hackertarget": true, "viewdns": true,
    "dnshistory_org": false, "st_key_provided": false
  }
}
ParamTypeRequiredDescription
domainstringrequiredDomain to look up
st_keystringoptionalSecurityTrails API key for full NS history. Free at securitytrails.com (50 req/month)
Sources used in parallel: Google DNS (live records) · HackerTarget (DNS lookup) · SecurityTrails (NS history, optional key) · ViewDNS.info (IP history) · dnshistory.org (HTML scrape, best-effort)

Deploy in 60 seconds

bash
unzip domainkit.zip
cd domainkit
npx vercel --prod

05 — Domain Full Info NEW

All-in-one domain intelligence. Run 1 to 4 modules per request: whois, dns, availability, reachability. All run concurrently.

cURL
curl "https://your-app.vercel.app/api/info?domain=example.com"
# or specific modules only:
curl "https://your-app.vercel.app/api/info?domain=example.com&include=whois,dns"
JavaScript
// All modules (GET)
const res  = await fetch('/api/info?domain=example.com');
const data = await res.json();

console.log(data.summary);          // quick overview
console.log(data.whois.age);        // registration age
console.log(data.dns.records.mx);   // MX records
console.log(data.availability.available); // free TLD variants
console.log(data.reachability.reachable); // is site online?

// Specific modules (POST)
const res2 = await fetch('/api/info', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({ domain: 'example.com', include: ['whois','dns'] })
});
const data2 = await res2.json();
Response shape
{
  "success": true,
  "domain": "example.com",
  "modules_run": ["whois","dns","availability","reachability"],
  "elapsed_ms": 843,

  "summary": {
    "domain":                "example.com",
    "registered":            true,
    "age":                   "29 years, 8 months, 3 days",
    "age_category":          "Mature",
    "registrar":             "MarkMonitor Inc.",
    "expires":               "August 13, 2025",
    "expiry_status":         "active",
    "dns_provider":          "Cloudflare",
    "mail_provider":         "Google Workspace",
    "has_ipv6":              true,
    "reachable":             true,
    "https":                 true,
    "server":                "ECS (nyb/1D10)",
    "tld_variants_available":["example.io","example.xyz","example.app"]
  },

  "whois": { "registered": true, "age": {...}, "dates": {...}, "registrar": {...}, "nameservers": [...] },
  "dns":   { "records": { "a": [...], "mx": [...], "txt": [...], "ns": [...] }, "analysis": { "dns_provider": "...", "mail_provider": "..." } },
  "availability": { "available": [ { "domain": "example.io", "tld": "io", "register_url": "..." } ], "registered": [...] },
  "reachability": { "reachable": true, "status_code": 200, "uses_https": true, "server": "...", "response_ms": 213 }
}
ParamTypeRequiredDescription
domainstringrequiredDomain to query (e.g. example.com)
includestring / arrayoptionalComma-separated modules: whois,dns,availability,reachability. Defaults to all.