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.
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 -X PUT "$OE/app-host" -H "$AUTH" -H "Content-Type: application/json" \ -d '{ "host": "mailbox.acme.com" }'{ "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.