Skip to the documentation
API

Set the web app address

Sets the web app address of the workspace, replacing any it had, and returns it with the CNAME record to publish.

PUT/app-host

Runs the real call on your workspace.

PUT /app-host

Sets the web app address of the workspace, replacing any it had, and returns it with the CNAME record to publish.

The request

Parameters

hoststringrequired
A subdomain of a verified domain of this workspace, such as `mailbox.acme.com`, at most 253 characters. It is lowercased, and an `https://` prefix, a path and a trailing dot are stripped. The bare domain cannot be used.

Example

Needs domains:write, a paid plan, and a key with no address or domain restriction.

curl
curl -X PUT "$OE/app-host" -H "$AUTH" -H "Content-Type: application/json" \  -d '{ "host": "mailbox.acme.com" }'
Response
{  "object": "app_host",  "id": "ahost_3f9c2a71d0b84e56a1c7f2e9",  "host": "mailbox.acme.com",  "domainId": "b3e1f0a4-6c2d-4e8a-9f17-2d5c8a0b4e6f",  "domain": "acme.com",  "status": "pending",  "active": false,  "paused": false,  "target": "cname.openemail.uk",  "record": {    "type": "CNAME",    "name": "mailbox.acme.com",    "value": "cname.openemail.uk"  },  "error": null,  "checkedAt": "2026-10-01T09:12:30.000Z",  "verifiedAt": null,  "available": true,  "paidPlan": true,  "domains": ["acme.com"],  "suggested": "mailbox.acme.com"}

The address starts pending. Publish record at your DNS provider exactly as given, then poll GET /app-host or call POST /app-host/verify. It goes live a few minutes after the record answers, once its certificate is issued.

Setting the address it already has changes nothing and checks it again. An address on another domain replaces the old one once it is set up, and one on the same domain replaces it straight away. Everyone signed in at a replaced address is signed out.

A free workspace answers 403 plan_required. An address outside the workspace’s domains answers 422 invalid_app_host, one on an unverified domain 409 domain_not_verified, and one another workspace uses 409 app_host_in_use.

Your inbox,
on your own terms.

Email infrastructure for businesses, AI, agents and personal email. Built for scale, privacy and control. Everything email should have had from day one.

© 2026 OpenEmail. All rights reserved.