List hosting domains

GET /api/v2/shared-hosting/{accountId}/domains

Return all domains attached to a shared-hosting account in one typed array.

kind tells whether each entry is the main domain, addon domain, parked domain, or subdomain; use actions.canAddAddon before adding another addon domain.

On accounts using HostUp's previous hosting platform, the read may only know the main domain and actions.canAddAddon.allowed is false with guidance to contact support for a no-cost migration of the existing account to cPanel.

Supply preflightDomain to also inspect the current DNS for a proposed attachment before making changes (requires read:dns in addition to the normal scopes).

The DNS recommendation preserves existing external services; it does not verify website content or mailbox migration readiness.

Web Hosting Hosting Accounts

Authentication

Required API scopes: read:hostingconsole:services

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

Context

Path Parameters

accountId string required Example: acct_01hxa3b4c5d6e7f8g9h0j1k2m3

Public shared-hosting account ID. Get it from GET /api/v2/shared-hosting data[].id. Do not invent this value; use the exact ID returned by the referenced API response.

Query Parameters

preflightDomain string

Full domain name to inspect before attachment. Adds read:dns scope; does not create the domain or change DNS.

Headers

Authorization Bearer <token>
Accept application/json

Responses

200 Hosting domains.
domains array<object> required
domains[].domain string required
domains[].kind string · enum required
main
addon
parked
sub
mainDomain string · nullable required · Example: example.com

counts object required
counts.addon integer required
counts.parked integer required
counts.sub integer required
quota object required
quota.addon object required
quota.addon.used integer required
quota.addon.limit integer · nullable required · Example: 5

Nullable: may be null when not applicable.

quota.addon.remaining integer · nullable required · Example: 4

Nullable: may be null when not applicable.

actions object required
actions.canAddAddon object required
actions.canAddAddon.allowed boolean required · Example: true
actions.canAddAddon.reason string · nullable required · Example: null

Nullable: may be null when not applicable.

actions.canAddAddon.code string · nullable · Example: pending_order

Machine-readable reason code when an action is blocked.

dnsSetupPreflight object

Present only when preflightDomain is supplied for a cPanel account. managedRecordsRead=false means unavailable evidence, not an empty zone or completed migration.

dnsSetupPreflight.domain string
dnsSetupPreflight.usesHostupNameservers boolean
dnsSetupPreflight.managedRecordsRead boolean
dnsSetupPreflight.hasThirdPartyWebsiteRecords boolean
dnsSetupPreflight.hasThirdPartyMailRecords boolean
dnsSetupPreflight.requiresChoice boolean
dnsSetupPreflight.recommendedPreference string · enum
full
email-only
website-only
none
dnsSetupPreflight.nameservers array<string>
dnsSetupPreflight.records object
dnsSetupPreflight.records.website array<object>
dnsSetupPreflight.records.mail array<object>
dnsSetupPreflight.options array<object>
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 Conflict. code is account_suspended, account_not_eligible_cpanel.
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
502 Upstream failure. A dependent provider request failed; the Problem Details code is upstream_failed. 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/shared-hosting/{accountId}/domains
For AI assistants
View as Markdown
cURL
curl -X GET "https://cloud.hostup.se/api/v2/shared-hosting/acct_01hxa3b4c5d6e7f8g9h0j1k2m3/domains" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Accept: application/json"
Response
{
  "domains": [
    {
      "domain": "example.com",
      "kind": "main"
    }
  ],
  "mainDomain": "example.com",
  "counts": {
    "addon": 0,
    "parked": 0,
    "sub": 0
  },
  "quota": {
    "addon": {
      "used": 0,
      "limit": 5,
      "remaining": 5
    }
  },
  "actions": {
    "canAddAddon": {
      "allowed": true,
      "reason": null
    }
  }
}