Reset destination verification

Restart verification for one unverified domain email-forwarding destination address. Get {id} from GET /api/v2/domains data[].id. Get {destinationId} from GET /api/v2/domains/{id}/email-forwarding destinations[].id. This is part of domain-level forwarding, not shared-hosting forwarders; if the domain is…

Read full description Hide full description

Restart verification for one unverified domain email-forwarding destination address. Get {id} from GET /api/v2/domains data[].id. Get {destinationId} from GET /api/v2/domains/{id}/email-forwarding destinations[].id. This is part of domain-level forwarding, not shared-hosting forwarders; if the domain is attached to a shared-hosting account and you want hosting mailboxes/forwarders to keep handling mail, manage forwarding through /api/v2/shared-hosting/{accountId}/email-forwarders instead. Cloudflare Email Routing exposes destination-address create, list, and delete through its public API, but not the dashboard's resend action. This endpoint therefore deletes only an unverified destination address and recreates it so a fresh verification email is sent. Already verified destinations are rejected because deleting them can disable forwarding rules that currently use them. After the recipient clicks the new verification link, call POST /api/v2/domains/{id}/email-forwarding again to create the rule.

Domains & DNS Email Forwarding

Authentication

Required API scopes: write:emailwrite:domains

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

Context

Path Parameters

id string required Example: dom_01hxa3b4c5d6e7f8g9h0j1k2m3

Public domain ID from `GET /api/v2/domains` `data[].id`. Do not invent this value; use the exact ID returned by the referenced API response.

destinationId string required Example: dom_01hxa3b4c5d6e7f8g9h0j1k2m3

Public email-forwarding destination ID from `destinations[].id`. Do not invent this value; use the exact ID returned by the referenced API response.

Headers

Accept Example
Content-Type Example

Body

required
application/json
action string · enum required · Example: reset

Required literal action. The reset restarts verification for an unverified destination.

reset

Responses

200 Verification restarted and email forwarding state refreshed.
enabled boolean · Example: true
integrationStatus string · enum · Example: enabled
enabled
disabled
unavailable
reason stringnull · Example: null
maxRules integer · Example: 200
ruleCount integer · Example: 1
rules array<object>
rules[].id string required · Example: ef_01hxa3b4c5d6e7f8g9h0j1k2m3
rules[].email string required · Example: [email protected]
rules[].destination string required · Example: [email protected]
rules[].isEnabled boolean required · Example: true
rules[].name stringnull required · Example: null
rules[].priority integer required · Example: 0
destinations array<object>
destinations[].id string required · Example: efd_01hxa3b4c5d6e7f8g9h0j1k2m3
destinations[].email string required · Example: [email protected]
destinations[].verificationStatus string · enum required · Example: verified
verified
pending
unverified
destinations[].createdAt stringnull required · Example: 2026-04-27T12:00:00.000Z
destinations[].verifiedAt stringnull required · Example: 2026-04-27T12:05:00.000Z
catchAll object | null · Example: {"action":"disabled","destination":null}
catchAll.action string · enum required · Example: disabled
forward
drop
disabled
catchAll.destination stringnull required · Example: null
existingMxRecords array<object>
existingMxRecords[].type string · enum required · Example: MX
MX
existingMxRecords[].value string required · Example: mail.example.com
existingMxRecords[].priority integernull required · Example: 10
actions object
actions.canCreateNewRule object required
actions.canCreateNewRule.allowed boolean required · Example: true
actions.canCreateNewRule.reason stringnull required · Example: null
actions.canCreateNewRule.code stringnull · Example: pending_order

Machine-readable reason code when an action is blocked.

actions.canSetCatchAll object required
actions.canSetCatchAll.allowed boolean required · Example: true
actions.canSetCatchAll.reason stringnull required · Example: null
actions.canSetCatchAll.code stringnull · Example: pending_order

Machine-readable reason code when an action is blocked.

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 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 Destination address is already verified and was not reset.
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
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
POST https://cloud.hostup.se/api/v2/domains/{id}/email-forwarding/destinations/{destinationId}/verification
For AI assistants
View as Markdown
cURL
curl -X POST "https://cloud.hostup.se/api/v2/domains/dom_01hxa3b4c5d6e7f8g9h0j1k2m3/email-forwarding/destinations/dom_01hxa3b4c5d6e7f8g9h0j1k2m3/verification" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "action": "reset"
  }'
Response
{
  "enabled": true,
  "integrationStatus": "enabled",
  "reason": null,
  "maxRules": 200,
  "ruleCount": 0,
  "rules": [],
  "destinations": [
    {
      "id": "efd_01hxa3b4c5d6e7f8g9h0j1k2m3",
      "email": "[email protected]",
      "verificationStatus": "unverified",
      "createdAt": "2026-04-27T12:10:00.000Z",
      "verifiedAt": null
    }
  ],
  "catchAll": {
    "action": "disabled",
    "destination": null
  },
  "existingMxRecords": [],
  "actions": {
    "canCreateNewRule": {
      "allowed": true,
      "reason": null
    },
    "canSetCatchAll": {
      "allowed": true,
      "reason": null
    }
  }
}
Request Body Send a fresh verification email
{
  "action": "reset"
}