# Add a domain you already own

> Host the DNS for a domain registered elsewhere on Coritan, then point the domain's nameservers here.

Source: https://www.coritan.com/docs/websites/add-an-existing-domain/

In the dashboard:

- /dashboard/websites: https://www.coritan.com/dashboard/websites

Add a domain registered with another registrar when you want Coritan to host its DNS. Coritan creates a DNS zone for the domain, and the registration stays where it is. Once you set Coritan's nameservers at your registrar, the zone's records answer for the domain. To move the registration to Coritan as well, [transfer the domain](/docs/websites/domains/transfer-a-domain-to-coritan/).

## Before you begin

- Make sure you can change the domain's nameservers at its current registrar.
- Write down the records the domain uses today, such as its website address, its mail servers and any verification `TXT` records. Add them to the new zone before you change the nameservers, or the domain stops resolving until you do. If your current DNS provider can export a BIND zone file, you can [import it](/docs/websites/dns/import-and-export-a-zone-file/).

## Add the domain

1. In the dashboard, go to [Websites](https://www.coritan.com/dashboard/websites) and select **Add existing domain…**.
2. Enter the **Domain name**, such as `example.com`, and select **Add domain**.
3. The dialog now lists the nameservers to set at your registrar. Copy them.
4. Select **Open DNS** to go to the zone's **DNS** tab, and add the records the domain needs. [Add, edit and delete DNS records](/docs/websites/dns/manage-dns-records/) explains the form.
5. At your registrar, replace the domain's nameservers with Coritan's.

> [!NOTE]
> The dialog lists two nameservers. The zone's `NS` records, at `@` on its **DNS** tab, list every Coritan nameserver (`ns1.coritan.com` to `ns8.coritan.com`), and you can give your registrar the full set.

## Result

The domain appears in the Websites list as **DNS hosted here**. Coritan signs the new zone with DNSSEC from the start; [Set up DNSSEC](/docs/websites/dns/dnssec/) explains the step left at your registrar.

The switch happens once your registrar publishes the new nameservers, and resolvers keep the old ones until their cached answers expire. Check the delegation from a terminal:

```bash
dig NS example.com +short
```

When the answer lists Coritan's nameservers, the zone is live. The domain's **Overview** tab then starts to count queries ([View DNS query statistics](/docs/websites/dns-query-statistics/)).

## Troubleshooting

`Enter a domain, such as example.com.`
: The dashboard could not read the name as a domain. Enter the bare domain, without `https://` or a path.

`Domain already registered`
: A DNS zone for this domain already exists on Coritan. If it is yours, it is in your Websites list. If another account holds it, contact [support](/docs/support/).

`This domain is reserved by the platform`
: The domain is one of Coritan's own, or a name under one. For a name under `coritan.gg`, [claim a free name](/docs/proxies/coritan-gg-names/) instead.

`Conflicts with the existing zone example.com, which belongs to another account`
: Another account hosts a zone that contains your domain, or a zone inside it. Coritan refuses zones that overlap across accounts.

`Zone limit reached (100)`
: The account hosts as many zones as it may. [Delete a zone](/docs/websites/dns/delete-a-dns-zone/) you no longer use.

## Related

- [How DNS hosting works](/docs/websites/dns/)
- [Register a domain](/docs/websites/domains/register-a-domain/)
- [Troubleshoot websites and DNS](/docs/websites/troubleshooting/)

## With the API

Create the zone with an access token ([Authentication](/docs/api/authentication/)). The body takes one field, `domain`:

```bash
curl -X POST https://api.coritan.com/api/v1/dns/zones \
  -H "Authorization: Bearer $CORITAN_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"domain": "example.com"}'
```

The answer is `201` with the zone. Keep its `id`: every other DNS call names the zone by it.

```json
{
  "id": 42,
  "domain": "example.com",
  "status": "active",
  "dnssec_enabled": true,
  "serial": 2026092501,
  "soa_email": "hostmaster",
  "record_count": 8
}
```

The zone starts with its `NS` records, one for each Coritan nameserver. List your zones, sorted by domain, with `GET /api/v1/dns/zones`. It returns 25 zones a page by default; `per_page` takes up to 100, and `page` counts from 1.

```bash
curl "https://api.coritan.com/api/v1/dns/zones?per_page=100" \
  -H "Authorization: Bearer $CORITAN_TOKEN"
```

## API

- `POST /api/v1/dns/zones`: Create zone (https://www.coritan.com/docs/api/reference/client/dns/#op-post-api-v1-dns-zones)
- `GET /api/v1/dns/zones`: List zones (https://www.coritan.com/docs/api/reference/client/dns/#op-get-api-v1-dns-zones)
