Check e-mail delivery to your account address
GET /api/v2/me/email-deliverability
Check whether e-mail from Hostup reaches the account’s e-mail address. Invoices, renewal warnings and ticket replies go to this address. status is based on the delivery results of the last 90 days and on whether sending to the address is blocked:
ok: the last message was delivered.transient: the mail server refused at least two messages in the last seven days, for example because the mailbox is full.undeliverable: the mail server rejected the address for good.suppressed: sending is blocked after an earlier bounce. A test e-mail withPOST /api/v2/me/email-deliverability/actions/send-testlifts the block, at most once every 30 days.complaint: a message was reported as spam and sending has stopped. Change the address.mailbox_moved: mail is delivered to a mailbox on your web hosting with Hostup. This is information only.mail_lost: the address’s domain uses Hostup’s nameservers but has no MX record. Mail to it does not arrive.unknown: there is no delivery data.
reason explains a status that needs attention. actions says whether a test e-mail can be sent and whether the notice can be closed.
Authentication: An API key with the scope read:account. About keys and scopes
Example
curl "https://cloud.hostup.se/api/v2/me/email-deliverability" \ -H "Authorization: Bearer $HOSTUP_API_KEY"Responses
200 Delivery status of the account e-mail address.
{ "status": "ok", "reason": null, "lastBounceAt": null, "lastBounceKind": null, "lastDeliveredAt": "2026-08-20T14:05:24.000Z", "lastTest": null, "uiShouldShow": false, "domainNotice": null, "actions": { "canSendTest": { "allowed": true, "reason": null }, "canChangeEmail": { "allowed": true, "reason": null }, "canDismiss": { "allowed": false, "reason": "There is no notice to close." } }}Response fields
emailstringThe account e-mail address.
statusstringDelivery status. See the list above. One of
ok, transient, undeliverable, suppressed, complaint, mailbox_moved, mail_lost, unknown.reasonstring or nullWhat is wrong and what to do.
null when nothing needs attention.lastBounceAtstring or nullWhen the last bounce or spam report was recorded.
lastBounceKindstring or nullKind of the last bounce:
permanent, transient, suppression (blocked for sending) or complaint (spam report). One of permanent, transient, suppression, complaint.lastDeliveredAtstring or nullWhen a message last reached the address.
lastTestobject or nullThe last test e-mail.
null when none was sent.uiShouldShowbooleantrue when the client area shows a warning about the address.actionsobjectWhat the caller can do now. Each gate has
allowed and a reason when it is not allowed.canSendTestobjectWhether
POST /api/v2/me/email-deliverability/actions/send-test is allowed.allowedbooleanreasonstring or nullcanChangeEmailobjectWhether the account e-mail can be changed.
allowedbooleanreasonstring or nullcanDismissobjectWhether
POST /api/v2/me/email-deliverability/actions/dismiss is allowed.allowedbooleanreasonstring or nulldomainNoticeobject or nullSet for
mailbox_moved and mail_lost. Otherwise null.Errors
Errors are Problem Details with a stable code. Branch on the code, not on the text.
| 400 | Invalid request. The response body is an RFC 7807 Problem Details document. |
| 401 | Authentication is required. |
| 403 | Forbidden. The caller lacks a required scope or does not own the resource. |
| 404 | Not found. The resource does not exist or is not owned by the caller. |
| 429 | Rate limited. Retry after the limit resets. 429 responses include Retry-After seconds plus X-RateLimit-* headers. |
| 500 | Internal error. Retry later or contact support if the issue persists. |
| 503 | The account e-mail address could not be loaded right now (upstream_unavailable). Try again shortly. |