Skip to main content

Endpoint

GET https://api.bunny.build/api/v1/domain-availability/:domain

Authentication

HeaderRequiredValue
X-API-KeyYesYour API key (bun_...)

Overview

Check whether a domain name is available for registration or already taken. Bunny returns availability status, current registrar, registration date, expiry date, and status flags, all in a single API call.

Use cases

  • Domain search and suggestion tools
  • Monitor competitor domain registrations
  • Validate user-provided domain names
  • Build domain marketplace integrations

Details

Supports any public TLD. Returns available: true if no registration record is found. The status array contains ICANN-standard EPP status codes (e.g. clientTransferProhibited).

Path parameters

ParameterTypeRequiredDescription
domainstringYesDomain name to check (e.g. example.com)

Response

200 OK

FieldTypeDescription
domainstringThe domain that was checked
availablebooleantrue if no registration record was found
registrarstring or nullRegistrar name (null if available or not found in RDAP data)
registered_atstring or nullISO 8601 registration date (null if available)
expires_atstring or nullISO 8601 expiry date (null if available)
updated_atstring or nullISO 8601 date of last registry update (null if available)
statusstring[]ICANN EPP status codes (e.g. clientTransferProhibited); empty array if available
Example — domain taken
{
  "domain": "example.com",
  "available": false,
  "registrar": "ICANN",
  "registered_at": "1995-08-14T04:00:00Z",
  "expires_at": "2025-08-13T04:00:00Z",
  "updated_at": "2023-08-14T07:01:38Z",
  "status": ["clientDeleteProhibited", "clientTransferProhibited", "clientUpdateProhibited"]
}
Example — domain available
{
  "domain": "myrandomdomain12345.com",
  "available": true,
  "registrar": null,
  "registered_at": null,
  "expires_at": null,
  "updated_at": null,
  "status": []
}

401 Unauthorized

{
  "detail": "Missing API key. Include X-API-Key header."
}

402 Payment Required

{
  "detail": "Monthly quota exceeded. Upgrade your plan."
}

422 Unprocessable Entity

Invalid domain format.
{
  "detail": "Invalid domain format"
}

429 Too Many Requests

{
  "detail": "Rate limit exceeded. Try again in 60 seconds."
}

cURL example

curl https://api.bunny.build/api/v1/domain-availability/example.com \
  -H "X-API-Key: bun_your_api_key"