API Documentation

Query domain availability and RDAP data from your own applications. No account required for basic use.

Base URLhttps://api.domain-sentinel.com

Endpoint

GET/v1/lookup/{domain}
Returns RDAP data for a domain. Results are cached for up to one week; the cache is shared across all callers.
ParameterLocationDescription
domainpathFull domain name including TLD (e.g. github.com).
AuthorizationheaderOptional. Bearer <api_key> to authenticate and bypass IP rate limits.

Response schema

interface DomainLookup {
  // Registry-derived fields below are omitted when available is true.
  id?:               string;
  domain:            string;
  available:         boolean;
  ldhName?:          string | null;
  unicodeName?:      string | null;
  handle?:           string | null;
  rdapServer?:       string | null;
  secureDNS?:        boolean | null;
  delegationSigned?: boolean | null;
  lookedUpAt?:       string; // ISO 8601
  entities:          Entity[];
  nameservers:       Nameserver[];
  statuses:          string[];
  events:            Event[];
}

interface Entity {
  role:         string;
  handle:       string | null;
  name:         string | null;
  organization: string | null;
  ianaId:       string | null;
  abuseEmail:   string | null;
  abusePhone:   string | null;
}

interface Nameserver {
  ldhName: string;
  ipv4:    string[];
  ipv6:    string[];
}

interface Event {
  eventAction: string;
  eventDate:   string | null; // ISO 8601
}

When available is true (the domain is unregistered), the response contains only domain, available, and the four arrays. The registry-derived fields (id, ldhName, unicodeName, handle, rdapServer, secureDNS, delegationSigned, lookedUpAt) are omitted.

FieldTypeDescription
availablebooleantrue if the domain is not currently registered.
ldhNamestring | nullDomain name in LDH (letters-digits-hyphens) form.
unicodeNamestring | nullDomain name in Unicode (IDN) form.
handlestring | nullRegistry handle (unique identifier at the registry).
rdapServerstring | nullRDAP server URL used for this lookup.
secureDNSboolean | nulltrue if the domain has DNSSEC records.
delegationSignedboolean | nulltrue if the delegation is signed (subset of secureDNS).
lookedUpAtstringISO 8601 timestamp of when the data was fetched.
entitiesEntity[]Registrar, registrant and contacts.
nameserversNameserver[]Name servers with optional IP addresses.
statusesstring[]EPP status codes (e.g. clientTransferProhibited).
eventsEvent[]Registry events: registration, expiration, last changed, etc.

Code examples

# Anonymous (rate-limited)
curl https://api.domain-sentinel.com/v1/lookup/github.com

# With API key (unlimited)
curl -H "Authorization: Bearer ds_your_api_key" \
  https://api.domain-sentinel.com/v1/lookup/github.com

Rate limiting

Anonymous requests are rate-limited by IP address. Authenticate with an API key to remove the limit.

ModeLimitOn exceed
Anonymous (no key)5 req/min and 50 req/day per IPHTTP 429
Authenticated (API key)UnlimitedN/A

The 429 response body includes a retryAfter timestamp (Unix ms).

HTTP status codes

200Success. Domain object returned.
400Bad request: malformed domain name.
401API key provided but invalid or revoked.
404Unsupported TLD: no RDAP server is listed for this extension in the IANA bootstrap.
429Rate limit exceeded. See the retryAfter field in the response.
502The TLD's RDAP server is unreachable.

Authentication

Create a free API key in your dashboard. Pass it in the Authorization header as a Bearer token. Keys can have an optional expiry date and can be revoked at any time.

Create an API key

FAQ

Which TLDs are supported?

Any TLD that has a public RDAP server listed in the IANA bootstrap file. The list is refreshed daily. Browse it on the TLDs page.

How fresh is the data?

Results are cached for up to 7 days. Authenticated users can force a refresh via the dashboard lookup page once per 24 hours.

What does a 502 error mean?

The registry's RDAP server did not respond. This is a temporary issue on the registry side, not a Domain Sentinel outage. Retry after a few minutes.

Is the API free?

Yes. All accounts have unlimited access. Rate limits apply only to anonymous (keyless) requests.

Looking for the list of supported extensions? Browse all TLDs