Replace a DNS record using the same validation rules as record creation. Get id from GET /api/v2/dns-zones data[].id and recordId from GET /api/v2/dns-zones/{id}/records records[].id. Use this PUT route, not PATCH, to change value, name, type, ttl, or priority; send those request-body fields flat at…
Replace a DNS record using the same validation rules as record creation. Get id from GET /api/v2/dns-zones data[].id and recordId from GET /api/v2/dns-zones/{id}/records records[].id. Use this PUT route, not PATCH, to change value, name, type, ttl, or priority; send those request-body fields flat at the top level and do not wrap them in data. Use ALIAS, not CNAME, when the zone root should point at another hostname. TXT values include SPF policies; create SPF policies as TXT records with a value starting v=spf1. NS records here delegate a subdomain only: in zone xyz.se, name: "acme" delegates acme.xyz.se. Changing authoritative nameservers for the domain uses POST /api/v2/domains/{id}/nameservers. The record being edited is excluded from duplicate checks. Optional proxied can be sent with A, AAAA, and CNAME records to change CDN proxying in the same update; callers do not need to call CDN proxy-rule endpoints. Sending proxied also requires write:cdn and is blocked when CDN is not enabled for the zone.
write:dnswrite:cdn
Use Authorization: Bearer <token> for API keys. Dashboard sessions may also use hostup_session.
id string required
Example: zone_01hxa3b4c5d6e7f8g9h0j1k2m3 Public DNS zone ID. Get it from GET /api/v2/dns-zones `data[].id`. Do not invent this value; use the exact ID returned by the referenced API response.
recordId string required
Example: drr_01hxa3b4c5d6e7f8g9h0j1k2m3 Public DNS record ID. Get it from GET /api/v2/dns-zones/{id} `records[].id`. Do not invent this value; use the exact ID returned by the referenced API response.
Accept Example Content-Type Example type string · enum
· Example: A A AAAA CNAME ALIAS MX TXT SRV CAA NS TLSA name string
· Example: www Record owner name relative to this DNS zone. Use `@` or an empty string for the zone root; use labels such as `www` or `_dmarc`, not the full FQDN `www.example.com`. Responses may return normalized FQDN names.
value string
· Example: 192.0.2.1 Record target or content. Send TXT values, including SPF/DKIM/DMARC policy values, without surrounding quotes; the server applies DNS-safe quoting and splits long TXT-like values into DNS protocol strings of at most 255 characters.
ttl integer
· Example: 3600 TTL in seconds. Send as a JSON number; integer-like strings are tolerated for tool adapters.
priority integer
· Example: 10 MX or SRV priority. Send as a JSON number; integer-like strings are tolerated for tool adapters.
weight integer
· Example: 0 port integer
· Example: 443 proxied boolean
· Example: true Optional CDN proxy state for A, AAAA, and CNAME records. Omit it when only replacing DNS content; send true or false when the edit should also change proxying.
id string
· Example: drr_01hxa3b4c5d6e7f8g9h0j1k2m3 type string · enum
· Example: TXT A AAAA CNAME ALIAS MX TXT SRV CAA NS TLSA name string
· Example: _dmarc.example.com ttl integer
· Example: 3600 priority integernull
· Example: 10 Present only for MX and SRV records. `null` means the upstream DNS provider omitted priority for a priority-capable record.
weight integernull
· Example: 5 Present only for SRV records. `null` means the upstream DNS provider omitted weight for an SRV record.
port integernull
· Example: 5060 Present only for SRV records. `null` means the upstream DNS provider omitted port for an SRV record.
proxied boolean
· Example: false Present only on A, AAAA, and CNAME records when the CDN proxy state is known. Omitted for record types that cannot be proxied.
proxyReason string
· Example: Mail server records cannot be proxied because MX records depend on them. Present only when this proxy-capable record has a customer-facing reason that prevents changing the proxy state.
actions object Compact action gates for state that belongs to this DNS record. Present only when a server-side action gate is relevant to the record.
actions.canChangeProxy object required actions.canChangeProxy.allowed boolean required
· Example: true actions.canChangeProxy.reason stringnull required
· Example: null actions.canChangeProxy.code stringnull
· Example: pending_order Machine-readable reason code when an action is blocked.
warnings array<object> Present on DNS write responses when the request succeeded but the resulting same-name record set deserves review, for example multiple A records, remaining AAAA records, or multiple MX records.
warnings[].code string · enum required
· Example: same_name_address_records same_name_address_records same_name_ipv6_records same_name_mx_records warnings[].severity string · enum required
· Example: warning warning warnings[].message string required
· Example: There are now multiple A records for example.com. This is valid for some setups, but if... warnings[].records array<object> required Existing records that triggered the warning. The newly created or updated record is the main response object.
warnings[].records[].id string required
· Example: drr_01hxa3b4c5d6e7f8g9h0j1k2m4 warnings[].records[].type string required
· Example: A warnings[].records[].name string required
· Example: example.com warnings[].records[].value string required
· Example: 198.51.100.25 warnings[].records[].priority integernull
· Example: 10 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 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/dns-zones/{id}/records/{recordId} curl -X PUT "https://cloud.hostup.se/api/v2/dns-zones/zone_01hxa3b4c5d6e7f8g9h0j1k2m3/records/drr_01hxa3b4c5d6e7f8g9h0j1k2m3" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"type": "A",
"name": "@",
"value": "192.0.2.1",
"ttl": 3600
}' {
"id": "drr_01hxa3b4c5d6e7f8g9h0j1k2m3",
"type": "A",
"name": "www.example.com",
"value": "192.0.2.1",
"ttl": 3600,
"proxied": true,
"actions": {
"canChangeProxy": {
"allowed": true,
"reason": null
}
}
} {
"type": "A",
"name": "@",
"value": "192.0.2.1",
"ttl": 3600
}