Get mail app settings for a hosted domain

GET /api/v2/shared-hosting/{accountId}/mail-settings

Return the IMAP/POP3/SMTP client settings and webmail address for one domain hosted on the account.

The domain must be hosted on the account (main, addon, parked or sub domain), otherwise the request fails with 403 domain_not_owned.

Accounts on a legacy control panel return 409 account_not_eligible_cpanel.

The username for all servers and webmail is always the full email address; the password is the mailbox password.

alternativeHostname (mail.<domain>) can replace the server hostname when the domain's SSL certificate covers it — the server hostname always has a valid certificate and is the safe default.

Web Hosting Hosting Accounts

Authentication

Required API scopes: read:hostingconsole:services

Use Authorization: Bearer <token> for API keys. Dashboard sessions may also use hostup_session.

Context

Path Parameters

accountId string required Example: acct_01hxa3b4c5d6e7f8g9h0j1k2m3

Public shared-hosting account ID. Get it from GET /api/v2/shared-hosting data[].id. Do not invent this value; use the exact ID returned by the referenced API response.

Query Parameters

domain string required · Example: example.com

Hosted domain to return mail app settings for.

Headers

Authorization Bearer <token>
Accept application/json

Responses

200 Mail app settings for the domain.
domain string required · Example: example.com
incoming object required
incoming.imap object required
incoming.imap.hostname string required · Example: web12.hostup.se
incoming.imap.port integer required · Example: 993
incoming.imap.encryption string · enum required · Example: ssl_tls
ssl_tls
starttls
incoming.pop3 object required
incoming.pop3.hostname string required · Example: web12.hostup.se
incoming.pop3.port integer required · Example: 995
incoming.pop3.encryption string · enum required · Example: ssl_tls
ssl_tls
starttls
outgoing object required
outgoing.smtp array<object> required

Both supported submission endpoints; either works — port 465 uses implicit SSL/TLS (ssl_tls), port 587 uses STARTTLS (starttls).

outgoing.smtp[].hostname string required · Example: web12.hostup.se
outgoing.smtp[].port integer required · Example: 465
outgoing.smtp[].encryption string · enum required · Example: ssl_tls
ssl_tls
starttls
usernameFormat string · enum required · Example: full_email_address

The mail app username is always the full email address (never a bare local part).

full_email_address
webmailUrl string required · Example: https://web12.hostup.se:2096

Browser webmail login for the same mailboxes (sign in with the full email address and the mailbox password).

alternativeHostname string required · Example: mail.example.com

mail. — usable instead of the server hostname when the domain's SSL certificate covers it; on certificate warnings, use the server hostname.

notes array<string> required

Plain-English setup guidance to show the customer verbatim.

400 Invalid request. The response body is an RFC 7807 Problem Details document.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
401 Unauthorized. Authentication is required.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
403 The requested domain is not hosted on this account.

No response body

404 Not found. The resource does not exist or is not owned by the caller.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
409 The account is on a legacy control panel — mail app settings cannot be derived through the API.

No response body

429 Rate limited. Retry after the limit resets. 429 responses include Retry-After seconds plus X-RateLimit-* headers.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
500 Internal error. Retry later or contact support if the issue persists.
type string · Example: https://developer.hostup.se/errors/invalid_request
title string · Example: Validation failed
status integer · Example: 400
detail string · Example: The request body failed validation.
code string · Example: invalid_request

Stable machine-readable code. Branch on this field, not on detail.

instance string · Example: /api/v2/orders
requestId string · Example: req_01hxa3b4c5d6e7f8g9h0j1k2m3
timestamp string · Example: 2026-04-27T12:34:56.000Z
errors array<object>

Field-level validation errors when code is invalid_request.

errors[].pointer string required · Example: /items/0/eppCode
errors[].detail string required · Example: `eppCode` is required for this transfer.
errors[].code string required · Example: missing_required
extensions object
GET https://cloud.hostup.se/api/v2/shared-hosting/{accountId}/mail-settings
For AI assistants
View as Markdown
cURL
curl -X GET "https://cloud.hostup.se/api/v2/shared-hosting/acct_01hxa3b4c5d6e7f8g9h0j1k2m3/mail-settings?domain=example.com" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
Response
{
  "domain": "example.com",
  "incoming": {
    "imap": {
      "hostname": "web12.hostup.se",
      "port": 993,
      "encryption": "ssl_tls"
    },
    "pop3": {
      "hostname": "web12.hostup.se",
      "port": 995,
      "encryption": "ssl_tls"
    }
  },
  "outgoing": {
    "smtp": [
      {
        "hostname": "web12.hostup.se",
        "port": 465,
        "encryption": "ssl_tls"
      },
      {
        "hostname": "web12.hostup.se",
        "port": 587,
        "encryption": "starttls"
      }
    ]
  },
  "usernameFormat": "full_email_address",
  "webmailUrl": "https://web12.hostup.se:2096",
  "alternativeHostname": "mail.example.com",
  "notes": [
    "Sign in with the full email address as the username and the mailbox password as the password — the same login works for webmail.",
    "mail.example.com can be used instead of web12.hostup.se for the incoming and outgoing servers, but its certificate depends on the domain's SSL setup. If the mail app shows a certificate or security warning, use web12.hostup.se — it always has a valid certificate.",
    "Use IMAP rather than POP3 when the mailbox is read on more than one device — IMAP keeps mail on the server and in sync."
  ]
}