Return the domain DNSSEC management state, supported record format, existing DS or KEY records, allowed algorithm/digest enums, and action gates. Use this endpoint before deleting a DNSSEC record because persisted record IDs are returned in dsRecords[].id or keyRecords[].id. This is the manual registrar-record…
Return the domain DNSSEC management state, supported record format, existing DS or KEY records, allowed algorithm/digest enums, and action gates. Use this endpoint before deleting a DNSSEC record because persisted record IDs are returned in dsRecords[].id or keyRecords[].id. This is the manual registrar-record surface. If the domain uses HostUp-managed nameservers such as primary.ns.hostup.se and secondary.ns.hostup.se, first read GET /api/v2/domains/{id}/dnssec-auto and GET /api/v2/domains/{id}/nameservers; automatic DNSSEC normally detects the hosted DNSSEC material and publishes the DS record without a manual POST /dnssec call. Only add manual DS/KEY data when actions.canAdd.allowed is true and the domain needs registrar-side DNSSEC data from an external DNS provider or another supported manual workflow.
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. Get it 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 domainName string | null required
· Example: example.se recordType string · enum required
· Example: DS DS KEY dsRecords array<object> required dsRecords[].id string | null required
· Example: dsr_01hxa3b4c5d6e7f8g9h0j1k2m3 dsRecords[].keyTag string | null required
· Example: 2371 dsRecords[].algorithm string | null required
· Example: 13 dsRecords[].digestType string | null required
· Example: 2 dsRecords[].digest string | null required
· Example: 5A1D7C1B9E7F4E6A8C2B0D5F9A3E6C7D8B1A2C3D4E5F60718293A4B5C6D7E8F9 keyRecords array<object> required keyRecords[].id string | null required
· Example: dsr_01hxa3b4c5d6e7f8g9h0j1k2m3 keyRecords[].flag string | null required
· Example: 257 keyRecords[].protocol string | null required
· Example: 3 keyRecords[].algorithm string | null required
· Example: 13 keyRecords[].publicKey string | null required
· Example: p8K3pYwQ5xvM7nR2sT4uV6wX8yZaBcDeFgHiJkLmNoPqRsTuVwXyZ0123456789 allowedAlgorithms array<integer> required allowedDigestTypes array<integer> required algorithmNames object required digestTypeNames object required status string · enum required
· Example: active active excluded unsupported pending error reason string | null required actions object required actions.canAdd object required actions.canAdd.allowed boolean required
· Example: true actions.canAdd.reason string | null required actions.canRemove object required actions.canRemove.allowed boolean required
· Example: true actions.canRemove.reason string | null 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 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}/dnssec curl -X GET "https://cloud.hostup.se/api/v2/domains/dom_01hxa3b4c5d6e7f8g9h0j1k2m3/dnssec" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" {
"domainName": "example.se",
"recordType": "DS",
"dsRecords": [
{
"id": "dsr_01hxa3b4c5d6e7f8g9h0j1k2m3",
"keyTag": "2371",
"algorithm": "13",
"digestType": "2",
"digest": "5A1D7C1B9E7F4E6A8C2B0D5F9A3E6C7D8B1A2C3D4E5F60718293A4B5C6D7E8F9"
}
],
"keyRecords": [],
"allowedAlgorithms": [
8,
10,
12,
13,
14
],
"allowedDigestTypes": [
2,
3,
4
],
"algorithmNames": {
"1": "RSA/MD5",
"2": "Diffie-Hellman",
"3": "DSA/SHA-1",
"5": "RSA/SHA-1",
"6": "DSA-NSEC3-SHA1",
"7": "RSASHA1-NSEC3-SHA1",
"8": "RSA/SHA-256",
"10": "RSA/SHA-512",
"12": "GOST R 34.10-2001",
"13": "ECDSA Curve P-256 with SHA-256",
"14": "ECDSA Curve P-384 with SHA-384",
"15": "Ed25519",
"16": "Ed448"
},
"digestTypeNames": {
"1": "SHA-1",
"2": "SHA-256",
"3": "GOST R 34.11-94",
"4": "SHA-384"
},
"status": "active",
"reason": null,
"actions": {
"canAdd": {
"allowed": true,
"reason": null
},
"canRemove": {
"allowed": true,
"reason": null
}
}
}