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

# Custom domains

> Serve your short links from your own domain with automatic HTTPS, then keep them healthy with ongoing checks and email alerts.

<Info>
  A custom domain lets you serve short links from a hostname you own, like
  `links.acme.com`, instead of the default shortener host. You add the domain,
  point its DNS at the shortener, and run a verification check. Once the domain
  is verified it goes active, HTTPS is issued automatically, and your short
  links start resolving on it.
</Info>

Only account owners and admins can add, verify, or remove a domain. Every member
of the account can view domains and their check history.

## Add a domain and point DNS

<Steps>
  <Step title="Add the hostname">
    Go to your account's **Domains** settings and add a new domain. Enter the
    hostname you want to use, such as `links.acme.com`. The value is cleaned up
    for you: it is lowercased, any `https://` prefix is removed, and any trailing
    path is dropped, so `https://Links.Acme.com/go` becomes `links.acme.com`.

    The domain starts as **Pending verification** until its DNS is wired up and
    a check passes.
  </Step>

  <Step title="Point your DNS at the shortener">
    The domain's page shows the exact records to create, with the target values
    filled in for you. Use the record type that matches your hostname:

    * **Subdomain (recommended), for example `links.acme.com`:** add a `CNAME`
      record pointing the subdomain at the shortener target shown on the page.
    * **Apex or root domain, for example `acme.com`:** an apex cannot use a plain
      `CNAME`. Use your DNS provider's `ANAME` or `ALIAS` record pointing at the
      same target, or add `A` records pointing at the IP addresses shown on the
      page.

    The target values are specific to your environment, so always copy them from
    the domain's page rather than guessing.

    <Note>
      There is no `TXT` record in this flow. Ownership is proven over HTTP when
      you run the check, not through a DNS `TXT` record.
    </Note>
  </Step>

  <Step title="Run the verification check">
    After your DNS change has propagated, open the domain and click **Check now**.
    The shortener makes a request to your hostname to confirm it is wired to your
    account. When the check passes, the domain flips to **Verified** and goes
    active.

    The check is safe to run as often as you like. If it does not pass yet, the
    page shows the result and reason so you can fix the DNS and try again. A
    failed check does not change a domain that is already verified.
  </Step>
</Steps>

## Automatic HTTPS

You never upload or renew a certificate. Once a domain is verified, an HTTPS
certificate is issued for it automatically and renewed for you in the
background. There is nothing to configure and no expiry to track.

## Verified and active states

A domain shows one of two states:

* **Pending verification:** added but not yet confirmed. Its short links are not
  live yet, and the page shows the DNS records to create and the **Check now**
  button.
* **Verified:** a check has passed. The domain is active, HTTPS is in place, and
  short links resolve on it. Verification is sticky: once a domain is verified it
  stays verified, even if a later health check fails.

## Health checks and alerts

After a domain is verified, the shortener keeps re-checking it on a schedule so
you find out if it stops resolving.

* **Email alerts.** If a verified domain starts failing its checks, an alert
  email goes out once, to the account's owner and admins. When it recovers, a
  single recovery email follows. To avoid noise from a brief blip, a domain is
  reported as down only after several checks in a row fail, and it is reported as
  recovered on the first check that passes again.
* **Check history.** Each domain's page shows a **Check history** timeline: a row
  of segments, green for a passed check and red for a failed one. Hover a segment
  to see when it ran and, for a failure, the reason. History is kept for the last
  30 days.

## Plan limit

The number of custom domains you can add depends on your plan. On the **free**
plan there is a hard cap of one custom domain, so adding a second is blocked
until you upgrade. Paid plans allow more.

## Remove a domain

Owners and admins can remove a domain from its page. Removing it is immediate
and cannot be undone: short links on that domain stop resolving right away, so
only remove a domain once nothing depends on it.

## Gotchas

* **No `TXT` record.** Verification is HTTP based. Do not add a DNS `TXT` record
  expecting it to verify the domain. The only records you need are the `CNAME`
  (subdomain) or `ANAME`/`ALIAS`/`A` (apex) records shown on the domain's page.
* **Copy the DNS target from the page, not from docs.** The shortener target and
  IP addresses are environment specific, so read them from the domain's own page
  every time rather than reusing a value from elsewhere.
* **A failed check returns a result, not an error.** Clicking **Check now** always
  runs the check and reports the outcome on the page. A check that does not pass
  is a normal result with a reason, not a broken action.
* **A failed health check never un-verifies a domain.** Health-check failures flip
  the domain's health and send an alert, but the domain stays verified and its
  short links keep being served the moment it resolves again.
* **A hostname can only be live on one account.** If another account is already
  serving the same hostname, you cannot add it. An abandoned, never-verified
  registration on another account is released after about a week so the hostname
  becomes available again.
* **Apex domains under multi-part endings.** For a domain like `acme.co.uk` the
  page may label it as a subdomain. It is still an apex, so use the `ANAME`,
  `ALIAS`, or `A` record option, not the `CNAME`.

## Related

<CardGroup cols={2}>
  <Card title="Short URL field" icon="link" href="/reference/fields/short-url">
    How short links are generated and resolved, including on a custom domain.
  </Card>

  <Card title="Account overview" icon="settings" href="/account/overview">
    Account-level settings, plans, and where to manage your domains.
  </Card>
</CardGroup>
