---
title: "openemail app-host"
description: "Every command in this namespace, with its arguments, flags and examples."
url: "https://openemail.uk/docs/cli/reference/app-host"
area: "CLI"
category: "Reference"
---

# openemail app-host

Every command in this namespace, with its arguments, flags and examples.

## Commands

### `openemail app-host get`

Read the web app address of the workspace, its status and its DNS records

```bash
openemail app-host get [flags]
```

Returns the web app address of the workspace with everything the Branded app tab shows: the address, such as `mailbox.example.com`, the verified domain it sits under, its `status`, whether people can sign in there right now, the DNS records to publish and when it was last checked. A workspace has at most one.

The address can be on one of the verified domains of the workspace, where it needs only the CNAME record in `record`, or on any other domain the workspace controls, where it also needs the TXT record in `ownershipRecord` that proves the domain is yours. `domain` and `domainId` are null for an address on another domain.

With no address set, `status` is `none`, `host`, `record` and the other fields about the address are null, `domains` lists the verified domains of the workspace and `suggested` is the address the app would offer, `mailbox.` in front of the first of them.

Reading it checks the address again when its last check is more than 15 seconds old, so polling `get` is one way to wait for it to go live: `active` turns true on the read whose check finds it live. `verify` checks straight away.

Only the members of the workspace, the people who sign in with one of its addresses and anyone with a pending invitation can sign in at the address, and they see the workspace brand there. On the free plan the address is kept but paused: `paused` is true, `active` is false and nobody can sign in there until the workspace is on a paid plan again.

- Scopes: `domains:read`.
- Needs a sign-in.
- Aliases: `show`, `view`.

**Examples**

```bash
openemail app-host get
```

Print the raw JSON

```bash
openemail app-host get --json
```

Also available in: API [`GET /app-host`](https://openemail.uk/docs/api/reference/domains#get-app-host); SDK [`appHost.get()`](https://openemail.uk/docs/sdk/reference/app-host#get).

### `openemail app-host set`

Set or replace the web app address of the workspace

```bash
openemail app-host set --host <value> [flags]
openemail app-host set --data <json|@file|-> [flags]
```

Sets the web app address of the workspace, replacing any it had, and returns it in the same shape as `get`. `host` is a subdomain such as `mailbox.example.com`, on a verified domain of the workspace or on any other domain you control, and the workspace has to be on a paid plan. Setting the address it already has changes nothing and checks it again.

On a verified domain of the workspace the address is set up during the call. On any other domain it is set up once the TXT record in `ownershipRecord` answers, which proves the domain is yours. Either way it stays `pending` until its records answer and its certificate is issued, usually a few minutes after they are published. Publish `record`, and `ownershipRecord` when it is not null, at your DNS provider exactly as given, then call `verify` or poll `get` until `active` is true. The call writes no DNS record itself.

An address on another domain replaces the old one once it is set up, and an address on the same domain replaces it straight away. Everyone signed in at a replaced address is signed out.

Only the members of the workspace, the people who sign in with one of its addresses and anyone with a pending invitation can sign in at the address, under the workspace brand. Anyone else gets the usual wrong email or password answer, and an invited person can create their account there.

- Scopes: `domains:write`.
- Needs a sign-in.

**Flags**

- `--host <value>`: A subdomain such as `mailbox.example.com`, on a verified domain of the workspace or on any other domain you control, at most 253 characters. It is trimmed and lower cased, and a leading `https://` or `http://`, any path and any trailing dots are stripped. A bare domain cannot be used. Required, here or in `--data`.
- `--data <json|@file|->`: The whole `body` as JSON, inline, from a file with @path, or - for standard input. Flags override its keys.

**Examples**

```bash
openemail app-host set --host mailbox.example.com
```

Read the whole body from a JSON file

```bash
openemail app-host set --data @app-host.json
```

Also available in: API [`PUT /app-host`](https://openemail.uk/docs/api/reference/domains#put-app-host); SDK [`appHost.set()`](https://openemail.uk/docs/sdk/reference/app-host#set).

### `openemail app-host verify`

Check the web app address now

```bash
openemail app-host verify [flags]
```

Checks the web app address straight away, whether its DNS records answer and its certificate is issued, and returns it in the same shape as `get`.

When the last check ran less than 10 seconds ago, nothing new is checked and the address comes back as it stands, so calling it faster than that gains nothing. With no address set, nothing is checked and `status` comes back as `none`. A record published a moment ago can take a few minutes to show up in public DNS.

- Scopes: `domains:write`.
- Needs a sign-in.

**Examples**

```bash
openemail app-host verify
```

Print the raw JSON

```bash
openemail app-host verify --json
```

Also available in: API [`POST /app-host/verify`](https://openemail.uk/docs/api/reference/domains#post-app-host-verify); SDK [`appHost.verify()`](https://openemail.uk/docs/sdk/reference/app-host#verify).

### `openemail app-host delete`

Remove the web app address of the workspace

```bash
openemail app-host delete [flags]
```

Removes the web app address of the workspace. Everyone signed in there is signed out, the address stops opening the workspace, and emails link to openemail.uk again. People keep working at openemail.uk with the same accounts.

Its DNS records are left at your DNS provider, so remove them there when you no longer need them. Removing the address when none is set changes nothing and answers `deleted: false`. Setting the same address again later sets it up from scratch.

- Scopes: `domains:write`.
- Needs a sign-in.
- Asks you to confirm.
- Aliases: `rm`, `del`, `remove`.

**Examples**

```bash
openemail app-host delete
```

Skip the confirmation, for scripts

```bash
openemail app-host delete --yes
```

Also available in: API [`DELETE /app-host`](https://openemail.uk/docs/api/reference/domains#delete-app-host); SDK [`appHost.delete()`](https://openemail.uk/docs/sdk/reference/app-host#delete).
