Return current pricing, orderable periods, configurable options, and server-derived registry requirements for one TLD. Start with GET /api/v2/products/domains, then call this endpoint for the selected tlds[].tld value. Call this before POST /api/v2/orders when building a registration or transfer payload. Use…
Return current pricing, orderable periods, configurable options, and server-derived registry requirements for one TLD. Start with GET /api/v2/products/domains, then call this endpoint for the selected tlds[].tld value. Call this before POST /api/v2/orders when building a registration or transfer payload. Use registryRequirements.registration[] for action: register, registryRequirements.transfer[] for action: transfer, and copy any acceptedTermsKey values into the domain item acceptedTerms[] array. Only the domainPricing[].years entries returned here are supported for multi-year orders or renewal cost displays; unsupported periods are omitted, not represented by a generated range.
No authentication required.
tld string required
Example: fi TLD suffix from `GET /api/v2/products/domains` `tlds[].tld`. The route accepts `se` or `.se`; examples use `se` because path segments normally omit the dot.
locale string
· Example: en Optional locale for configurable-option labels when the upstream catalog provides localized labels.
Accept Example Content-Type Example tld string
· Example: .se Canonical TLD suffix with a leading dot.
register null One-year new-registration price. `null` means this action is not currently priced for the TLD.
transfer null One-year inbound transfer price. `0` means free; `null` means not configured.
renew null One-year renewal price for existing domains using this TLD.
redemption null One-year redemption or restore-from-expired price when configured.
billing object Canonical billing summary for the one-year registration price. Use `domainPricing[]` for multi-year pricing.
billing.amount number required
· Example: 199 billing.currencyCode string required
· Example: SEK billing.billingCycle stringnull · enum required
· Example: annually Canonical billing cycle. VPS services with `isPayg: true` still report `monthly` for summary display; use `isPayg` to distinguish PAYG Cloud VPS from fixed-cycle VPS.
monthly quarterly semiannually annually biennially triennially free billing.isPayg boolean required
· Example: false For VPS service/order billing, true means pay-as-you-go Cloud VPS and false means fixed-cycle/prepaid VPS. Non-VPS resources normally return false.
billing.periodYears integernull
· Example: 1 domainPricing array<object> Per-year pricing matrix from the source catalog. Only years present in this array are orderable; unsupported periods are omitted.
domainPricing[].years integer required
· Example: 1 Registration, transfer, or renewal period in years for this pricing row.
domainPricing[].register null domainPricing[].transfer null domainPricing[].renew null domainPricing[].redemption null configurableOptions array<object> Low-level configurable option metadata for registry-required domain fields. Prefer `registryRequirements` for order-building decisions.
registryRequirements object Server-derived, human-readable requirements for registration and transfer payloads. Consumers should not infer TLD rules client-side.
registryRequirements.registration array<object> Fields and terms required when `items[].action` is `register`.
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 arraynull
· Example: null registryRequirements.registration[].allowedRegistrantTypes arraynull
· Example: null registryRequirements.registration[].alternativeRequirementKey stringnull
· Example: null registryRequirements.registration[].acceptedTermsKey stringnull
· Example: se_registration_terms registryRequirements.registration[].reason string required
· Example: An authorization code is required to transfer this domain. registryRequirements.transfer array<object> Fields, terms, and authorization-code requirements when `items[].action` is `transfer`.
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 arraynull
· Example: null registryRequirements.transfer[].allowedRegistrantTypes arraynull
· Example: null registryRequirements.transfer[].alternativeRequirementKey stringnull
· Example: null registryRequirements.transfer[].acceptedTermsKey stringnull
· Example: se_registration_terms registryRequirements.transfer[].reason string required
· Example: An authorization code is required to transfer this domain. registryRequirements.countryEligibility object Registrant-country restrictions for this TLD, when any.
registryRequirements.countryEligibility.required boolean
· Example: false registryRequirements.countryEligibility.allowedCountryCodes arraynull
· Example: null registryRequirements.countryEligibility.reason stringnull
· Example: null availabilityStatus string · enum
· Example: available available out_of_stock hidden available boolean
· Example: true reason stringnull
· Example: null 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/products/domains/{tld} curl -X GET "https://cloud.hostup.se/api/v2/products/domains/fi" \
-H "Accept: application/json" {
"tld": ".se",
"register": {
"amount": 99,
"currencyCode": "SEK"
},
"transfer": {
"amount": 0,
"currencyCode": "SEK"
},
"renew": {
"amount": 169,
"currencyCode": "SEK"
},
"redemption": {
"amount": 0,
"currencyCode": "SEK"
},
"billing": {
"amount": 99,
"currencyCode": "SEK",
"billingCycle": "annually"
},
"domainPricing": [
{
"years": 1,
"register": {
"amount": 99,
"currencyCode": "SEK"
},
"transfer": {
"amount": 0,
"currencyCode": "SEK"
},
"renew": {
"amount": 169,
"currencyCode": "SEK"
},
"redemption": {
"amount": 0,
"currencyCode": "SEK"
}
},
{
"years": 2,
"register": {
"amount": 268,
"currencyCode": "SEK"
},
"transfer": null,
"renew": {
"amount": 338,
"currencyCode": "SEK"
},
"redemption": {
"amount": 0,
"currencyCode": "SEK"
}
},
{
"years": 3,
"register": {
"amount": 437,
"currencyCode": "SEK"
},
"transfer": null,
"renew": {
"amount": 507,
"currencyCode": "SEK"
},
"redemption": {
"amount": 0,
"currencyCode": "SEK"
}
},
{
"years": 5,
"register": {
"amount": 845,
"currencyCode": "SEK"
},
"transfer": null,
"renew": {
"amount": 845,
"currencyCode": "SEK"
},
"redemption": {
"amount": 0,
"currencyCode": "SEK"
}
}
],
"configurableOptions": [],
"registryRequirements": {
"registration": [
{
"key": "phoneNumber",
"label": "Phone number",
"required": true,
"appliesTo": "register",
"registrantType": "any",
"reason": ".se and .nu domains require a registrant phone number before the order can be submitted.",
"allowedCountryCodes": null,
"allowedRegistrantTypes": null,
"alternativeRequirementKey": null,
"acceptedTermsKey": null
},
{
"key": "registrationIdentifier",
"label": "Personal identity number or organization number",
"required": true,
"appliesTo": "register",
"registrantType": "any",
"reason": ".se and .nu domains require a personal identity number or organization number for the registrant.",
"allowedCountryCodes": null,
"allowedRegistrantTypes": null,
"alternativeRequirementKey": null,
"acceptedTermsKey": null
},
{
"key": "acceptedTerms",
"label": ".se registration terms",
"required": true,
"appliesTo": "register",
"registrantType": "any",
"reason": ".se domain registrations require acceptance of the registry registration terms before the order can be submitted.",
"allowedCountryCodes": null,
"allowedRegistrantTypes": null,
"alternativeRequirementKey": null,
"acceptedTermsKey": "se_registration_terms"
}
],
"transfer": [
{
"key": "phoneNumber",
"label": "Phone number",
"required": true,
"appliesTo": "transfer",
"registrantType": "any",
"reason": ".se and .nu domains require a registrant phone number before the order can be submitted.",
"allowedCountryCodes": null,
"allowedRegistrantTypes": null,
"alternativeRequirementKey": null,
"acceptedTermsKey": null
},
{
"key": "registrationIdentifier",
"label": "Personal identity number or organization number",
"required": true,
"appliesTo": "transfer",
"registrantType": "any",
"reason": ".se and .nu domains require a personal identity number or organization number for the registrant.",
"allowedCountryCodes": null,
"allowedRegistrantTypes": null,
"alternativeRequirementKey": null,
"acceptedTermsKey": null
},
{
"key": "eppCode",
"label": "Authorization code",
"required": true,
"appliesTo": "transfer",
"registrantType": "any",
"reason": "Transfers for this domain extension require an authorization code from the current provider.",
"allowedCountryCodes": null,
"allowedRegistrantTypes": null,
"alternativeRequirementKey": null,
"acceptedTermsKey": null
}
],
"countryEligibility": {
"required": false,
"allowedCountryCodes": null,
"reason": null
}
},
"availabilityStatus": "available",
"available": true,
"reason": null
}