Skip to main content
POST
For server-to-server use, send a Pirehub API key with the domain:whois scope. See Authentication for OAuth support and credential handling. The response contains normalized public registry data. Optional fields depend on what the registry provides, and personally identifying WHOIS contact fields are removed. Set forceRefresh only when you need to attempt a fresh upstream lookup. If the provider fails and cached data exists, the API may return that data with meta.stale: true. Normal requests are faster and place less load on providers.

Subscription-backed API keys

Paid self-service keys use shared owner credits and the plan’s per-second and concurrent-job limits. Successful results, including cache hits, consume the configured action cost; errors release the reservation. Video jobs settle at completion. Inspect X-ApiKey-Credit-* and X-ApiKey-RateLimit-*. An optional Idempotency-Key prevents repeated synchronous execution/debits; repeated operations return 409 rather than replaying a response. Job starts use requestId instead. See API plans and idempotency for costs, billing periods, headers, error codes and retry rules.

Authorizations

Authorization
string
header
required

OAuth 2.0 Authorization Code with PKCE, issued by Pirehub's Clerk authorization server. Request only the scopes required by the operation.

Headers

Idempotency-Key
string

Self-service keys only. Owner-scoped operation identifier; reuse after admission returns 409 without another debit or execution. USAGE_CONCURRENCY_EXCEEDED retains no new reservation: wait and retry with the same identifier and payload. No response replay. Video jobs use requestId instead.

Required string length: 1 - 80
Pattern: ^[a-zA-Z0-9_-]+$

Body

application/json
domain
string
required

A domain, subdomain, or HTTP(S) URL. The API strips the URL path and normalizes the hostname before lookup.

Minimum string length: 1
Examples:

"example.com"

"www.example.com"

"https://www.example.com/about"

forceRefresh
boolean
default:false

Attempt a fresh upstream WHOIS lookup. If the provider fails and cached data exists, the API may return it with meta.stale: true.

Response

The WHOIS lookup completed. Check data.registered to determine whether the domain is registered.

success
boolean
required
data
object
required