Skip to content

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

idstringrequired
The domain ID (dom_…).

Example

GET /api/v2/domains/{id}/reactivation
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.

Response 200
{
"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
domainIdstring
The domain ID (dom_…).
domainNamestring or null
The domain name.
availableboolean
True when the domain can be reactivated online now.
reasonstring or null
Why reactivation is not available. Null when it is.
reasonCodestring or null
Machine-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 null
The price when available is true. Null otherwise.
reactivationobject or null
The 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.

400Invalid request. The response body is an RFC 7807 Problem Details document.
401Unauthorized. Authentication is required.
403Forbidden. The caller lacks a required scope or does not own the resource.
404The domain was not found.
429Rate limited. Retry after the limit resets. 429 responses include Retry-After seconds plus X-RateLimit-* headers.
500Internal error. Retry later or contact support if the issue persists.