/api/v2/domains/availability Check one domain name and return the same availability contract used by checkout.
Use this before creating a domain order: actions.canRegister tells whether registration is possible, actions.canTransfer tells whether transfer is possible, and registryRequirements lists the fields the order body must include for the TLD.
Use supportedRegisterYears and supportedTransferYears as the allowed period lists for this availability result; do not infer extra years from the TLD name or from generic 1-10 year assumptions.
No authentication required.
name string required
· Example: example.se Full domain name to check, including the TLD.
locale string
· Example: en Optional locale hint for registry-requirement labels and reasons.
Accept application/json name string
· Example: example.se Checked domain name in lowercase.
state string · enum
· Example: available Typed availability state. Read this instead of inferring from available or the human-readable reason. unknown means the check could not be completed (the name is not confirmed taken, so do not present it as unavailable); already_owned means the name is already registered with HostUp; checking means the check is still in progress; invalid marks an input that is not a checkable domain name.
available unavailable unknown already_owned checking invalid unknownReason string · nullable · enum
· Example: null Present only when state is unknown: whether the availability check timed out or the lookup service was unavailable. null for every other state.
upstream_timeout upstream_unavailable available boolean
· Example: true True when the domain can be registered right now.
reason string · nullable
· Example: null Customer-facing reason when the domain is not available for registration.
actions object actions.canRegister object required actions.canRegister.allowed boolean required
· Example: true actions.canRegister.reason string · nullable required
· Example: null Nullable: may be null when not applicable.
actions.canRegister.code string · nullable
· Example: pending_order Machine-readable reason code when an action is blocked.
actions.canTransfer object required actions.canTransfer.allowed boolean required
· Example: true actions.canTransfer.reason string · nullable required
· Example: null Nullable: may be null when not applicable.
actions.canTransfer.code string · nullable
· Example: pending_order Machine-readable reason code when an action is blocked.
billing object | null Default registration billing summary. null means the availability check did not return a usable registration price.
billing.amount number required
· Example: 99 billing.currencyCode string required
· Example: SEK billing.billingCycle string required
· Example: annually currencyCode string
· Example: SEK ISO-4217 currency for renewalAmount and other top-level price fields. Mirrors billing.currencyCode when billing is present.
premium boolean
· Example: false True when the registry classifies the name as premium.
requiresRegistrarFeeAcceptance boolean
· Example: false True when the order must explicitly accept additional registrar fees.
eppRequired boolean
· Example: true True when transfers for this result require an authorization code.
renewalAmount number · nullable
· Example: 169 Default one-year renewal amount in currencyCode when exposed by the catalog.
supportedRegisterYears array<integer>
· Example: [1,2,3,5] Registration periods currently supported for this result. Only use years present in this array.
supportedTransferYears array<integer>
· Example: [1] Transfer periods currently supported for this result. A free transfer can still be represented as a supported year.
existingDomainId string · nullable
· Example: null Public domain ID when the authenticated caller already owns this name; otherwise null.
existingDomainServiceStatus string · nullable
· Example: null Existing service status for a caller-owned domain, when present.
registryRequirements object Server-derived registration and transfer requirements for this TLD. Do not reimplement TLD rules in clients.
registryRequirements.registration array<object> required registryRequirements.registration[].key string · enum required
· Example: eppCode eppCode phoneNumber registrationIdentifier companyRegistrationNumber birthDate registrantCountry registrantType useDomicile acceptedTerms nameservers registryRequirements.registration[].label string required
· Example: Authorization code registryRequirements.registration[].required boolean required
· Example: true registryRequirements.registration[].appliesTo string · enum required
· Example: transfer register transfer both registryRequirements.registration[].registrantType string · enum required
· Example: any any private organisation registryRequirements.registration[].allowedCountryCodes array<any> · nullable
· Example: null Nullable: may be null when not applicable.
registryRequirements.registration[].allowedRegistrantTypes array<any> · nullable
· Example: null Nullable: may be null when not applicable.
registryRequirements.registration[].alternativeRequirementKey string · nullable
· Example: null Nullable: may be null when not applicable.
registryRequirements.registration[].acceptedTermsKey string · nullable
· Example: se_registration_terms Nullable: may be null when not applicable.
registryRequirements.registration[].reason string required
· Example: An authorization code is required to transfer this domain. registryRequirements.transfer array<object> required registryRequirements.transfer[].key string · enum required
· Example: eppCode eppCode phoneNumber registrationIdentifier companyRegistrationNumber birthDate registrantCountry registrantType useDomicile acceptedTerms nameservers registryRequirements.transfer[].label string required
· Example: Authorization code registryRequirements.transfer[].required boolean required
· Example: true registryRequirements.transfer[].appliesTo string · enum required
· Example: transfer register transfer both registryRequirements.transfer[].registrantType string · enum required
· Example: any any private organisation registryRequirements.transfer[].allowedCountryCodes array<any> · nullable
· Example: null Nullable: may be null when not applicable.
registryRequirements.transfer[].allowedRegistrantTypes array<any> · nullable
· Example: null Nullable: may be null when not applicable.
registryRequirements.transfer[].alternativeRequirementKey string · nullable
· Example: null Nullable: may be null when not applicable.
registryRequirements.transfer[].acceptedTermsKey string · nullable
· Example: se_registration_terms Nullable: may be null when not applicable.
registryRequirements.transfer[].reason string required
· Example: An authorization code is required to transfer this domain. registryRequirements.countryEligibility object 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 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 Retry-After seconds plus X-RateLimit-* headers. 10 fields 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/availability curl -X GET "https://cloud.hostup.se/api/v2/domains/availability?name=example.se" \
-H "Accept: application/json" {
"name": "example.se",
"state": "available",
"unknownReason": null,
"available": true,
"reason": null,
"actions": {
"canRegister": {
"allowed": true,
"reason": null
},
"canTransfer": {
"allowed": false,
"reason": "Domain is available for registration, not transfer."
}
},
"billing": {
"amount": 99,
"currencyCode": "SEK",
"billingCycle": "annually"
},
"currencyCode": "SEK",
"premium": false,
"requiresRegistrarFeeAcceptance": false,
"eppRequired": true,
"renewalAmount": 169,
"supportedRegisterYears": [
1,
2,
3,
5
],
"supportedTransferYears": [
1
],
"existingDomainId": null,
"existingDomainServiceStatus": null,
"registryRequirements": {
"registration": [
{
"key": "phoneNumber",
"label": "Phone number",
"required": true,
"appliesTo": "register",
"registrantType": "any",
"allowedCountryCodes": null,
"allowedRegistrantTypes": null,
"alternativeRequirementKey": null,
"acceptedTermsKey": null,
"reason": ".se and .nu domains require a registrant phone number before the order can be submitted."
},
{
"key": "registrationIdentifier",
"label": "Personal identity number or organization number",
"required": true,
"appliesTo": "register",
"registrantType": "any",
"allowedCountryCodes": null,
"allowedRegistrantTypes": null,
"alternativeRequirementKey": null,
"acceptedTermsKey": null,
"reason": ".se and .nu domains require a personal identity number or organization number for the registrant."
},
{
"key": "acceptedTerms",
"label": ".se registration terms",
"required": true,
"appliesTo": "register",
"registrantType": "any",
"allowedCountryCodes": null,
"allowedRegistrantTypes": null,
"alternativeRequirementKey": null,
"acceptedTermsKey": "se_registration_terms",
"reason": ".se domain registrations require acceptance of the registry registration terms before the order can be submitted."
}
],
"transfer": [
{
"key": "phoneNumber",
"label": "Phone number",
"required": true,
"appliesTo": "transfer",
"registrantType": "any",
"allowedCountryCodes": null,
"allowedRegistrantTypes": null,
"alternativeRequirementKey": null,
"acceptedTermsKey": null,
"reason": ".se and .nu domains require a registrant phone number before the order can be submitted."
},
{
"key": "registrationIdentifier",
"label": "Personal identity number or organization number",
"required": true,
"appliesTo": "transfer",
"registrantType": "any",
"allowedCountryCodes": null,
"allowedRegistrantTypes": null,
"alternativeRequirementKey": null,
"acceptedTermsKey": null,
"reason": ".se and .nu domains require a personal identity number or organization number for the registrant."
},
{
"key": "eppCode",
"label": "Authorization code",
"required": true,
"appliesTo": "transfer",
"registrantType": "any",
"allowedCountryCodes": null,
"allowedRegistrantTypes": null,
"alternativeRequirementKey": null,
"acceptedTermsKey": null,
"reason": "Transfers for this domain extension require an authorization code from the current provider."
}
],
"countryEligibility": {
"required": false,
"allowedCountryCodes": null,
"reason": null
}
}
}