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

# Custom domains

> Add, verify, and activate a custom hostname for an Embeddables hosted app

An app can have multiple custom domains. Each active domain serves the same production deployment
as the app's production `embd.co` hostname.

## Add a domain

<Steps>
  <Step title="Register the hostname">
    Open the app under **Hosting** in the Embeddables dashboard and add the full hostname you want
    to serve, such as `app.example.com`.

    The domain starts in `pending` and does not serve traffic.
  </Step>

  <Step title="Complete DNS verification">
    Configure DNS for the hostname as directed by Embeddables. Keep the domain pending while
    Embeddables attaches and verifies the hostname with Cloudflare.
  </Step>

  <Step title="Wait for activation">
    Embeddables activates the domain after verification. The domain begins serving the app when its
    status is `active`.
  </Step>
</Steps>

<Note>The project needs a live publishable key before a custom domain can be activated.</Note>

Use `listHostingDomains` in the [Admin SDK](/hosting/admin-sdk#custom-domains) or
`hosting_list_domains` in [MCP](/hosting/mcp#reads) to check the current `pending`, `active`, or
`failed` status.

## Allowed origins

Activation adds `https://<hostname>` to the project's allowed origins when that exact origin is not
already present. Moving the domain away from `active`, removing it, or deleting the app removes the
origin only when Hosting added it. An origin that was already configured remains in place.

Branch and commit preview origins on `embd.co` are added by deploys independently of custom domains.

## Production and removal

An active custom domain follows the app's production alias. A deploy from the production branch or
a manual preview promotion changes what the domain serves.

Removing a domain stops it from serving the app. This operation cannot be undone; add the hostname
again if you need to reconnect it.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.