Get domain lifecycle diagnostics

Return server-composed domain lifecycle diagnostics for transfers and registrations. This is the endpoint an AI should use to decide whether to update an EPP code, retry a transfer, wait for payment, fix identity details, or tell the user the domain is already active.

Domains & DNS Domains

Authentication

Required API scope: read: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. Get it from GET /api/v2/domains `data[].id`. Do not invent this value; use the exact ID returned by the referenced API response.

Headers

Accept Example
Content-Type Example

Responses

200 Lifecycle diagnostics for transfer and registration flows.
whoisLookupStatus string | null · enum required · Example: ok
ok
lookup_unavailable
tld_not_supported
rate_limited
error
registrationFailure object | null required
registrationFailure.category string required · Example: identity_invalid
registrationFailure.reason string required · Example: Registration failed because the identification number is invalid.
registrationFailure.detectedAt string | null required · Example: 2026-04-26T09:30:00.000Z
transferFailure object | null required
transferFailure.category string required · Example: epp_invalid
transferFailure.reason string required · Example: The EPP code was invalid.
transferFailure.detectedAt string | null required · Example: 2026-04-26T09:30:00.000Z
registryHistory array<object> required
registryHistory[].timestamp string | null required · Example: 2026-04-27T12:00:00.000Z
registryHistory[].subject string | null required · Example: Transfer status
registryHistory[].contents string | null required · Example: Transfer rejected: invalid authorization code.
transferErrorsCleared boolean required · Example: false
domainStatusSynced boolean required · Example: false
transferStatus object | null required
transferStatus.kind string · enum required · Example: transfer_failed_at_registry
pending_transfer_in_progress
transfer_failed_at_registry
transfer_not_at_registry
pending_transfer_generic
awaiting_payment
registry_locked_and_epp_invalid
registry_locked
too_new_for_transfer
transfer_error_known
pending_epp_fallback
active
expired
unknown
transferStatus.reason string | null required · Example: The registry rejected the transfer because the EPP code was invalid.
transferStatus.actions object required
transferStatus.actions.canUpdateEpp object required
transferStatus.actions.canUpdateEpp.allowed boolean required · Example: true
transferStatus.actions.canUpdateEpp.reason string | null required
transferStatus.actions.canRetryTransfer object required
transferStatus.actions.canRetryTransfer.allowed boolean required · Example: true
transferStatus.actions.canRetryTransfer.reason string | null required
transferStatus.actions.canRequestFreshEpp object required
transferStatus.actions.canRequestFreshEpp.allowed boolean required · Example: true
transferStatus.actions.canRequestFreshEpp.reason string | null required
transferStatus.capability object required
transferStatus.capability.showProgress boolean required · Example: false
transferStatus.capability.showInvoice boolean required · Example: false
transferStatus.capability.showFailedRetry boolean required · Example: true
transferStatus.capability.showEppUpdate boolean required · Example: true
transferStatus.capability.showDualIssues boolean required · Example: false
transferStatus.progress object | null required
transferStatus.progress.daysPassed integer required · Example: 1
transferStatus.progress.daysRemaining integer required · Example: 2
transferStatus.progress.maxDays integer required · Example: 3
transferStatus.progress.percent integer required · Example: 33
registrationStatus object | null required
registrationStatus.kind string · enum required · Example: pending
pending
active
failed
submitted
queued
completed
unknown
registrationStatus.reason string | null required · Example: Registration is pending at the registry.
registrationStatus.supported boolean required · Example: true
registrationStatus.actions object required
registrationStatus.actions.canRetryRegistration object required
registrationStatus.actions.canRetryRegistration.allowed boolean required · Example: true
registrationStatus.actions.canRetryRegistration.reason string | null required
registrationStatus.actions.canFixIdentity object required
registrationStatus.actions.canFixIdentity.allowed boolean required · Example: true
registrationStatus.actions.canFixIdentity.reason string | null required
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
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/domains/{id}/lifecycle
For AI assistants
View as Markdown
cURL
curl -X GET "https://cloud.hostup.se/api/v2/domains/dom_01hxa3b4c5d6e7f8g9h0j1k2m3/lifecycle" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
Response
{
  "whoisLookupStatus": "ok",
  "registrationFailure": {
    "category": "unknown",
    "reason": "Registration failed.",
    "detectedAt": "2026-04-27T12:34:56.000Z"
  },
  "transferFailure": null,
  "registryHistory": [
    {
      "timestamp": "2026-04-27T12:00:00.000Z",
      "subject": "Registration status",
      "contents": "Registration failed at the registry."
    }
  ],
  "transferErrorsCleared": false,
  "domainStatusSynced": false,
  "transferStatus": {
    "kind": "unknown",
    "reason": null,
    "actions": {
      "canUpdateEpp": {
        "allowed": true,
        "reason": null
      },
      "canRetryTransfer": {
        "allowed": false,
        "reason": "Transfer is already in progress at the registry."
      },
      "canRequestFreshEpp": {
        "allowed": true,
        "reason": null
      }
    },
    "capability": {
      "showProgress": false,
      "showInvoice": false,
      "showFailedRetry": false,
      "showEppUpdate": false,
      "showDualIssues": false
    },
    "progress": null
  },
  "registrationStatus": {
    "kind": "failed",
    "reason": "Registration failed.",
    "supported": false,
    "actions": {
      "canRetryRegistration": {
        "allowed": false,
        "reason": "Registration retry is not supported for this TLD."
      },
      "canFixIdentity": {
        "allowed": false,
        "reason": "Identity details can only be fixed after an identity-related registration failure."
      }
    }
  }
}