Return the current domain renewal period, product-supported period options, prices, and the server-side action gate for changing it. Get {id} from GET /api/v2/domains data[].id. Always read this endpoint immediately before POST and choose one row from options[]; supported periods vary by TLD and product, so…
Return the current domain renewal period, product-supported period options, prices, and the server-side action gate for changing it. Get {id} from GET /api/v2/domains data[].id. Always read this endpoint immediately before POST and choose one row from options[]; supported periods vary by TLD and product, so callers must not assume every 1-9 year value is available. For 1, 2, and 3 year rows, billingCycle is annually, biennially, or triennially. For longer rows, billingCycle is null and periodYears is the value to send. If locked is true or actions.canChangeBillingCycle.allowed is false, do not call POST until the blocker is resolved. A pending renewal order can be declined with POST /api/v2/domains/{id}/actions/respond-to-renewal and { "accept": false }; a pending domain order can be inspected and cancelled with GET /api/v2/orders/{id} and POST /api/v2/orders/{id}/actions/cancel.
read: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.
Accept Example Content-Type Example currentBillingCycle stringnull · enum
· Example: annually Canonical slug for the current period when it is 1, 2, or 3 years. Null for longer domain-only periods.
annually biennially triennially currentPeriodYears integernull
· Example: 1 Current renewal period length in years.
currencyCode string
· Example: SEK ISO-4217 currency for all amounts in `options[]`.
options array<object> Available renewal periods for this exact domain. Select one returned row before POST; supported year counts vary by TLD/product.
options[].billingCycle stringnull · enum required
· Example: annually Canonical slug for one-, two-, and three-year periods. Four- to nine-year periods return null and are selected with `periodYears`.
annually biennially triennially options[].periodYears integer required
· Example: 1 options[].years integer required
· Example: 1 Alias of `periodYears` kept because the upstream options endpoint already exposes `years`.
options[].amount numbernull required
· Example: 169 Canonical renewal amount for this period in `currencyCode`.
options[].currencyCode string required
· Example: SEK ISO-4217 currency for this option's `amount` and legacy `renewPrice` alias.
options[].renewPrice numbernull required
· Example: 169 Deprecated alias of `amount`, kept for old dashboard consumers during migration.
options[].isCurrent boolean required
· Example: true locked boolean
· Example: false lockReason stringnull
· Example: null pendingRenewalOrder null
· Example: null pendingOrder null
· Example: null actions object actions.canChangeBillingCycle object required actions.canChangeBillingCycle.allowed boolean required
· Example: true actions.canChangeBillingCycle.reason stringnull required
· Example: null actions.canChangeBillingCycle.code stringnull · enum
· Example: null pending_renewal_order pending_domain_order locked 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 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}/billing-cycle curl -X GET "https://cloud.hostup.se/api/v2/domains/dom_01hxa3b4c5d6e7f8g9h0j1k2m3/billing-cycle" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" {
"currentBillingCycle": "annually",
"currentPeriodYears": 1,
"currencyCode": "SEK",
"options": [
{
"billingCycle": "annually",
"periodYears": 1,
"years": 1,
"amount": 169,
"currencyCode": "SEK",
"renewPrice": 169,
"isCurrent": true
},
{
"billingCycle": "biennially",
"periodYears": 2,
"years": 2,
"amount": 338,
"currencyCode": "SEK",
"renewPrice": 338,
"isCurrent": false
},
{
"billingCycle": "triennially",
"periodYears": 3,
"years": 3,
"amount": 507,
"currencyCode": "SEK",
"renewPrice": 507,
"isCurrent": false
},
{
"billingCycle": null,
"periodYears": 5,
"years": 5,
"amount": 845,
"currencyCode": "SEK",
"renewPrice": 845,
"isCurrent": false
}
],
"locked": false,
"lockReason": null,
"pendingRenewalOrder": null,
"pendingOrder": null,
"actions": {
"canChangeBillingCycle": {
"allowed": true,
"reason": null
}
}
}