Send a test email to the account address

POST /api/v2/me/email-deliverability/actions/send-test

Self-serve check that email from Hostup reaches the account's primary address.

When the address is blocked at our email provider because of an earlier hard bounce, the explicit request clears that block first (an address reported as spam is never cleared this way — change the address instead).

A short test email is then sent; poll GET /api/v2/me/email-deliverability to see lastTest.delivered flip to true/false.

One test per address per 10 minutes.

The request body is empty.

Account & Access Account

Authentication

Required API scope: write:account

Authenticate with an API key in the Authorization: Bearer <token> header.

Context

Headers

Authorization Bearer <token>
Accept application/json

Responses

200 Test email queued.
test object required
test.queuedAt string required
test.suppressionLifted boolean required
deliverability object required

Same shape as GET /api/v2/me/email-deliverability.

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 Authentication required (Problem Details).

No response body

403 Forbidden. The caller lacks a required scope or does not own the resource.
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
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 Not allowed for this address — for example mail from us was reported as spam (Problem Details, code not_allowed).

No response body

429 A test was already sent within the last 10 minutes (Problem Details, code rate_limited, extension retryAfterSeconds).

No response body

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
502 The email provider did not accept the test email (Problem Details, code send_failed).

No response body

503 The account email could not be loaded (Problem Details, code upstream_unavailable).

No response body

POST https://cloud.hostup.se/api/v2/me/email-deliverability/actions/send-test
For AI assistants
View as Markdown
cURL
curl -X POST "https://cloud.hostup.se/api/v2/me/email-deliverability/actions/send-test" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
Response
{
  "test": {
    "queuedAt": "2026-08-21T12:30:00.000Z",
    "suppressionLifted": true
  },
  "deliverability": {
    "email": "[email protected]",
    "status": "suppressed",
    "reason": "Email to [email protected] is currently blocked by our email provider because an earlier message bounced (last on 2026-08-21). Nothing we send — invoices, renewal warnings, ticket replies — reaches this address until it is cleared. Send a test email to clear the block and check the inbox, or change the account email.",
    "lastBounceAt": "2026-08-21T08:35:49.000Z",
    "lastBounceKind": "suppression",
    "lastDeliveredAt": null,
    "lastTest": {
      "sentAt": "2026-08-21T12:30:00.000Z",
      "delivered": null
    },
    "uiShouldShow": true,
    "actions": {
      "canSendTest": {
        "allowed": true,
        "reason": null
      },
      "canChangeEmail": {
        "allowed": true,
        "reason": null
      }
    }
  }
}