Check if an expired domain can be restored
GET /api/v2/domains/{id}/reactivation
Shows whether an expired domain can be restored online, what it costs and whether a reactivation is already open. The price is the registry’s restore fee plus a one-year renewal. When available is true, create the reactivation invoice with POST /api/v2/domains/{id}/actions/reactivate. When a reactivation is already open, pay its invoice at reactivation.paymentInvoice.paymentUrl. A domain that can still be renewed without a restore fee returns reasonCode: renewable_normally. Renew it with POST /api/v2/domains/{id}/actions/renew instead.
Authentication: An API key with the scope read:domains. About keys and scopes
Request
Path parameters
idstringrequiredThe domain ID (
dom_…).Example
curl "https://cloud.hostup.se/api/v2/domains/dom_01hxa3b4c5d6e7f8g9h0j1k2m3/reactivation" \ -H "Authorization: Bearer $HOSTUP_API_KEY"Responses
200 Whether the domain can be reactivated, the price and the latest reactivation.
{ "domainId": "dom_01hxa3b4c5d6e7f8g9h0j1k2m3", "domainName": "example.com", "available": true, "reason": null, "reasonCode": null, "quote": { "restoreFeeAmount": 175, "renewalAmount": 169, "renewalYears": 1, "totalAmount": 344, "currencyCode": "SEK", "restorableUntil": "2026-08-30" }, "reactivation": null}Response fields
domainIdstringThe domain ID (
dom_…).domainNamestring or nullThe domain name.
availablebooleanTrue when the domain can be reactivated online now.
reasonstring or nullWhy reactivation is not available. Null when it is.
reasonCodestring or nullMachine-readable form of
reason. Null when reactivation is available. One of renewable_normally, not_openprovider, pricing_unavailable, not_restorable, restore_window_passed, already_in_progress.quoteobject or nullThe price when
available is true. Null otherwise.reactivationobject or nullThe latest reactivation of the domain. Null when there is none.
Errors
Errors are Problem Details with a stable code. Branch on the code, not on the text.
| 400 | Invalid request. The response body is an RFC 7807 Problem Details document. |
| 401 | Unauthorized. Authentication is required. |
| 403 | Forbidden. The caller lacks a required scope or does not own the resource. |
| 404 | The domain was not found. |
| 429 | Rate limited. Retry after the limit resets. 429 responses include Retry-After seconds plus X-RateLimit-* headers. |
| 500 | Internal error. Retry later or contact support if the issue persists. |