WHOIS API

API reference

WHOIS HTTP endpoints on api.syndaq.com.

All WHOIS endpoints are served from https://api.syndaq.com/v1/whois/.

Authenticated requests require a valid WHOIS key. Lookup routes require your wh_sec_ secret key.

Endpoints overview

MethodPathAuthPurpose
GET/v1/whois/lookupSecret keyLookup by ?domain= query parameter
GET/v1/whois/lookup/{domain}Secret keyLookup by domain in the URL path
GET/v1/whois/statusPublic or secret keyPlan limits and quota snapshot

Response headers

Successful and error responses may include:

HeaderDescription
X-Request-IdUnique ID for support and log correlation
X-RateLimit-LimitPlan requests per minute for this key
X-RateLimit-RemainingRequests left in the current minute window
X-RateLimit-ResetUnix timestamp when the minute window resets
X-Quota-LimitMonthly quota for the subscription
X-Quota-RemainingLookups left this calendar month (UTC)
X-Quota-PeriodCurrent quota month (YYYY-MM)
Retry-AfterSeconds to wait after HTTP 429

GET /v1/whois/lookup

Returns registration metadata for a single domain.

Request

Pass the target domain using one of these forms:

GET /v1/whois/lookup/example.com
GET /v1/whois/lookup?domain=example.com

Headers:

Authorization: Bearer wh_sec_YOUR_SECRET_KEY

Success response (200)

{
  "success": true,
  "domain": "example.com",
  "cached": true,
  "fetched_at": "2026-07-15 12:00:00.000",
  "registrar": "RESERVED-Internet Assigned Numbers Authority",
  "created_at": "1995-08-14T04:00:00Z",
  "updated_at": "2024-08-14T07:01:39Z",
  "expires_at": null,
  "domain_age_days": 11280,
  "status": [
    "client delete prohibited",
    "client transfer prohibited",
    "client update prohibited"
  ],
  "nameservers": [
    "a.iana-servers.net",
    "b.iana-servers.net"
  ],
  "request_id": "e6d04020be9b57b1e1069d6e483c0443"
}

Response fields

FieldTypeDescription
domainstringNormalized domain that was looked up
cachedbooleantrue when Syndaq already holds a recent result for this lookup
fetched_atstringWhen this result was last retrieved
registrarstring \nullRegistrar display name when available
created_atstring \nullRegistration / creation timestamp when available
updated_atstring \nullLast changed timestamp when available
expires_atstring \nullExpiration timestamp when available
domain_age_daysinteger \nullWhole days since created_at, if known
statusarrayStatus strings for the domain
nameserversarrayNameserver hostnames

Date fields are ISO-8601 strings when present. Some TLDs redact or omit fields; Syndaq returns null rather than inventing values.

GET /v1/whois/status

Returns key status, plan limits, and quota usage without performing a lookup.

Request

GET /v1/whois/status
Authorization: Bearer wh_sec_YOUR_SECRET_KEY

The public key (wh_pub_) is accepted on this route.

Success response (200)

{
  "success": true,
  "status": "active",
  "product": "whois",
  "plan": "starter",
  "rate_limit_per_minute": 120,
  "monthly_quota": 10000,
  "quota_unlimited": false,
  "quota_remaining": 9842,
  "quota_period": "2026-07",
  "database_records": 88000
}

Errors

Failed requests return JSON with success: false, error, error_code, and usually request_id.

HTTPerror_codeTypical cause
400invalid_domainMissing or malformed domain
401missing_credentialsNo API key provided
401invalid_api_keyUnknown, inactive, or revoked key
401wrong_key_typePublic key used on a lookup endpoint
403ip_not_allowedCaller IP not on the key allowlist
404domain_not_foundDomain could not be resolved
429rate_limit_exceededPer-minute limit exceeded
429quota_exceededMonthly quota exhausted
502lookup_failedTemporary lookup failure
500internal_errorUnexpected server error

Handle non-200 responses in your application and retry transient errors with exponential backoff.