Look up domain WHOIS

GET /api/v2/whois

Return parsed WHOIS research data for a domain.

The endpoint requires an authenticated caller with read:domains.

Results are cached for up to 5 minutes, so recent registry changes may not appear immediately.

Pass sourceText=true only when diagnostics require the raw response from the upstream WHOIS server; normal callers should use the parsed fields instead of scraping that text.

Domains & DNS WHOIS

Authentication

Required API scope: read:domains

Authenticate with an API key in the Authorization: Bearer <token> header.

Context

Query Parameters

domain string required · Example: example.com

Domain name to look up. The server normalizes and punycodes the value before querying WHOIS.

sourceText boolean · default: false · Example: true

When true, include sourceText with the raw response from the upstream WHOIS server when one is available. sourceText is still omitted when the registry returns no raw text or the domain is unregistered.

Headers

Authorization Bearer <token>
Accept application/json

Responses

200 WHOIS lookup result.
domain string required · Example: example.com
available boolean required · Example: false
reason string · nullable required · Example: Domain is currently registered.

registrar string · nullable required · Example: Hostup AB

registrarUrl string · nullable required · Example: null

registrant object | null required · Example: null
registrant.organization string · nullable required · Example: null

Nullable: may be null when not applicable.

registrant.countryCode string · nullable required · Example: SE

Nullable: may be null when not applicable.

nameservers array<string> required · Example: ["primary.ns.hostup.se","secondary.ns.hostup.se"]
dates object required
dates.registeredAt string · nullable required · Example: 2017-07-16T00:00:00.000Z

Nullable: may be null when not applicable.

dates.expiresAt string · nullable required · Example: 2034-07-16T00:00:00.000Z

Nullable: may be null when not applicable.

dates.updatedAt string · nullable required · Example: 2026-05-13T00:00:00.000Z

Nullable: may be null when not applicable.

statuses array<string> required · Example: ["active","ok"]
dnssec boolean · nullable required · Example: true

sourceText string · Example: Domain Name: EXAMPLE.COM Registry Domain ID: 2336799_DOMAIN_COM-VRSN Registrar: Example...

Raw response from the upstream WHOIS server. May be present when sourceText=true; omitted when the registry returns no raw text or the domain is unregistered.

400 Invalid request. The response body is an RFC 7807 Problem Details document.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
401 Unauthorized. Authentication is required.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
403 Forbidden. The caller lacks a required scope or does not own the resource.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
404 Not found. The resource does not exist or is not owned by the caller.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
422 TLD not supported (tld_not_supported): WHOIS lookup is not available for this domain's TLD.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
429 Rate limited. Retry after the limit resets. 429 responses include Retry-After seconds plus X-RateLimit-* headers.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
500 Internal error. Retry later or contact support if the issue persists.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
502 Upstream failure (upstream_failed): the upstream WHOIS server did not respond. Retry in a moment.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
GET https://cloud.hostup.se/api/v2/whois
For AI assistants
View as Markdown
cURL
curl -X GET "https://cloud.hostup.se/api/v2/whois?domain=example.com" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
Response
{
  "domain": "example.com",
  "available": false,
  "reason": "Domain is currently registered.",
  "registrar": "Example Registrar, LLC",
  "registrarUrl": null,
  "registrant": null,
  "nameservers": [
    "primary.ns.hostup.se",
    "secondary.ns.hostup.se"
  ],
  "dates": {
    "registeredAt": "2017-07-16T00:00:00.000Z",
    "expiresAt": "2034-07-16T00:00:00.000Z",
    "updatedAt": "2026-05-13T00:00:00.000Z"
  },
  "statuses": [
    "active",
    "ok"
  ],
  "dnssec": true,
  "sourceText": "Domain Name: EXAMPLE.COM\nRegistry Domain ID: 2336799_DOMAIN_COM-VRSN\nRegistrar: Example Registrar, LLC"
}