API Documentation

API documentation for programmatic WHOIS and RDAP domain lookups: query registration data, parse domain input and browse recent domains.

Domain Lookup

Request URL

GET https://whois.litelake.com/api/public/whois?domain={domain}

Parameters

ParameterTypeRequiredDescription
domainstringYesDomain name to look up (e.g., example.com)
force_refreshbooleanNoForce refresh cached data

Response Example

{
  "code": 200,
  "message": "Query successful",
  "data": {
    "domain": "example.com",
    "tld": "com",
    "registrar": "Example Registrar, Inc.",
    "registry_domain_id": "123456789_DOMAIN_COM-VRSN",
    "created_date": "1995-08-14T04:00:00Z",
    "updated_date": "2023-08-14T04:00:00Z",
    "expiry_date": "2024-08-13T04:00:00Z",
    "status": ["clientTransferProhibited"],
    "name_servers": ["ns1.example.com", "ns2.example.com"],
    "query_count": 150,
    "last_queried_at": "2024-03-05T12:34:56Z"
  }
}

Error Response

400 Bad Request

{
  "code": 400,
  "message": "Missing domain parameter"
}

Non-registrable input (subdomain, URL) returns 400 with a suggested_domain correction hint:

{
  "code": 400,
  "message": "invalid registrable domain: www.example.com, did you mean: example.com?",
  "data": {
    "input": "www.example.com",
    "suggested_domain": "example.com"
  }
}

404 Not Found

{
  "code": 404,
  "message": "Domain not found"
}

429 Too Many Requests

{
  "code": 429,
  "message": "Rate limit exceeded, please try again later"
}

500 Internal Server Error

{
  "code": 500,
  "message": "Query failed, please try again later"
}

Domain Input Parse

Normalize any form of domain input (URL, subdomain, IDN, mixed case) to its registrable domain. Subdomain inputs return 200 with is_registrable: false; only IP addresses, bare public suffixes and unparseable input return 400.

Request URL

GET https://whois.litelake.com/api/public/domain/parse?input={input}

Parameters

ParameterTypeRequiredDescription
inputstringYesRaw domain input in any form (URL, subdomain, IDN, mixed case). Returns the normalized registrable domain.

Response Example

{
  "code": 200,
  "message": "Parse successful",
  "data": {
    "input": "https://www.example.com/path?q=1",
    "domain": "example.com",
    "is_registrable": false
  }
}

Error Response

400 Bad Request

{
  "code": 400,
  "message": "IP query is not supported: 1.2.3.4",
  "data": {
    "input": "1.2.3.4"
  }
}