Check domain availability
Checks availability of specific domain names via Server-Sent Events (SSE).
Use this endpoint when you have specific FQDNs to check, such as domains from a user's cart or watchlist.
Request format: {"domains": ["example.com", "test.net"]}
The response is streamed as SSE with the following event types:
check: Emitted for each domain with availability result (DomainCheck)complete: Emitted when all checks finish (DomainCheckComplete)error: Emitted if an error occurs during streaming
Permissions
| Key type | Accepted | Permission required | Notes |
|---|---|---|---|
| Org API key | yes | domain:read |
— |
| Personal API key | yes | domain:read |
X-Org-ID is not required for this endpoint |
Error Codes
| Code | HTTP | Description |
|---|---|---|
| authorize.unauthenticated | 401 | No valid API key credentials |
| authorize.forbidden | 403 | Missing domain:read permission |
| request.decode_failed | 400 | Failed to decode request body |
| request.validation_failed | 400 | Request validation failed |
| domains.empty | 400 | Domains array is empty |
| domains.exceeds_max | 400 | Domains array exceeds 100 |
| domain.invalid | 400 | Domain format is invalid |
| domain.tld_unknown | 400 | Domain has unknown TLD |
| domain.tld_disabled | 400 | Domain has disabled TLD |
| domain.currency.unsupported | 422 | Currency is valid ISO 4217 but not supported by the platform |
| domain.check.rate_limited | 429 | Per-tier rate limit exceeded — Retry-After header carries the wait |
| domain.check.stream_error | 500 | Streaming not supported |
Domain check request with FQDNs
Request body for checking availability of specific domain names
- Type: array string[] 1…100domainsrequired
Domains is an array of full domain names (FQDNs) to check. Each domain must include a TLD that is configured and enabled. Minimum 1, maximum 100 domains.
- Type: stringcurrency
Currency optionally selects the ISO 4217 currency the priced results are returned in. When omitted, the currency is resolved from the caller's active org (billing currency) or the platform default for visitors. A valid code outside the platform's supported set is rejected with 422.
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
- application/json
curl https://api.nametrust.com/domains/check \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"domains": [
"example.com",
"test.net"
],
"currency": "EUR"
}'
{
"object": "domain_check",
"max_period": 10,
"reason": "already_registered",
"checked_at": "2024-01-20T15:30:00Z",
"domain": "example.com",
"label": "example",
"tld": "com",
"available": true,
"premium": false,
"price": {
"object": "domain_price",
"original_transfer_amount": 1499,
"promo": false,
"class": "standard",
"currency": "USD",
"register_amount": 1299,
"renew_amount": 1299,
"transfer_amount": 1299,
"icann_fee_amount": 18,
"original_register_amount": 1499,
"original_renew_amount": 1499
},
"period_unit": "y",
"min_period": 1
}