/api/v2/domains/{id}/email-forwarding/destinations/{destinationId}/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 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.
write:emailwrite:domains
Use Authorization: Bearer <token> for API keys. Dashboard sessions may also use hostup_session.
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.
Authorization Bearer <token> Accept application/json Content-Type application/json action string · enum required
· Example: reset Required literal action. The reset restarts verification for an unverified destination.
reset enabled boolean
· Example: true integrationStatus string · enum
· Example: enabled enabled disabled unavailable reason string · nullable
· Example: null maxRules integer
· Example: 200 ruleCount integer
· Example: 1 rules array<object> rules[].id string required
· Example: ef_01hxa3b4c5d6e7f8g9h0j1k2m3 rules[].isEnabled boolean required
· Example: true rules[].name string · nullable required
· Example: null Nullable: may be null when not applicable.
rules[].priority integer required
· Example: 0 destinations array<object> destinations[].id string required
· Example: efd_01hxa3b4c5d6e7f8g9h0j1k2m3 destinations[].verificationStatus string · enum required
· Example: verified verified pending unverified destinations[].createdAt string · nullable required
· Example: 2026-04-27T12:00:00.000Z Nullable: may be null when not applicable.
destinations[].verifiedAt string · nullable required
· Example: 2026-04-27T12:05:00.000Z Nullable: may be null when not applicable.
catchAll object | null
· Example: {"action":"disabled","destination":null} catchAll.action string · enum required
· Example: disabled forward drop disabled catchAll.destination string · nullable required
· Example: null Nullable: may be null when not applicable.
existingMxRecords array<object> existingMxRecords[].type string · enum required
· Example: MX MX existingMxRecords[].value string required
· Example: mail.example.com existingMxRecords[].priority integer · nullable required
· Example: 10 Nullable: may be null when not applicable.
actions object actions.canCreateNewRule object required actions.canCreateNewRule.allowed boolean required
· Example: true actions.canCreateNewRule.reason string · nullable required
· Example: null Nullable: may be null when not applicable.
actions.canCreateNewRule.code string · nullable
· 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 string · nullable required
· Example: null Nullable: may be null when not applicable.
actions.canSetCatchAll.code string · nullable
· Example: pending_order Machine-readable reason code when an action is blocked.
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 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 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 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 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 Retry-After seconds plus X-RateLimit-* headers. 10 fields 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 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 https://cloud.hostup.se/api/v2/domains/{id}/email-forwarding/destinations/{destinationId}/verification 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"
}' {
"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
}
}
} {
"action": "reset"
}