> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bunny.build/llms.txt
> Use this file to discover all available pages before exploring further.

# GET /domain-availability/:domain

> Check whether a domain name is available for registration, including registrar, registration date, expiry date, and ICANN status flags.

## Endpoint

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

## Authentication

| Header      | Required | Value                    |
| ----------- | -------- | ------------------------ |
| `X-API-Key` | Yes      | Your 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

| Parameter | Type   | Required | Description                               |
| --------- | ------ | -------- | ----------------------------------------- |
| `domain`  | string | Yes      | Domain name to check (e.g. `example.com`) |

## Response

### 200 OK

| Field           | Type           | Description                                                                        |
| --------------- | -------------- | ---------------------------------------------------------------------------------- |
| `domain`        | string         | The domain that was checked                                                        |
| `available`     | boolean        | `true` if no registration record was found                                         |
| `registrar`     | string or null | Registrar name (null if available or not found in RDAP data)                       |
| `registered_at` | string or null | ISO 8601 registration date (null if available)                                     |
| `expires_at`    | string or null | ISO 8601 expiry date (null if available)                                           |
| `updated_at`    | string or null | ISO 8601 date of last registry update (null if available)                          |
| `status`        | string\[]      | ICANN EPP status codes (e.g. `clientTransferProhibited`); empty array if available |

**Example — domain taken**

```json theme={null}
{
  "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**

```json theme={null}
{
  "domain": "myrandomdomain12345.com",
  "available": true,
  "registrar": null,
  "registered_at": null,
  "expires_at": null,
  "updated_at": null,
  "status": []
}
```

### 401 Unauthorized

```json theme={null}
{
  "detail": "Missing API key. Include X-API-Key header."
}
```

### 402 Payment Required

```json theme={null}
{
  "detail": "Monthly quota exceeded. Upgrade your plan."
}
```

### 422 Unprocessable Entity

Invalid domain format.

```json theme={null}
{
  "detail": "Invalid domain format"
}
```

### 429 Too Many Requests

```json theme={null}
{
  "detail": "Rate limit exceeded. Try again in 60 seconds."
}
```

## cURL example

```bash theme={null}
curl https://api.bunny.build/api/v1/domain-availability/example.com \
  -H "X-API-Key: bun_your_api_key"
```
