Update DNS records for a domain zone

Modify or edit existing DNS records for your domains. This is useful when you need to adjust how your domain points to servers or services, such as changing a CNAME record or updating TTL values.

Domain Services DNS

Context

Where to get IDs / values

Path Parameters

zoneId integer · min: 1 required Example: 16366

Unique zone identifier

recordId integer · min: 1 required Example: 37186785

Unique record identifier

Headers

Accept Example
Content-Type Example

Body

required
application/json
created string · Example: 2026-02-10T00:00:00.000Z
id integer · Example: 37186785
name string · Example: www

Record name within the zone. Use "" or "@" for the root record (example.com). Use "www" for www.example.com. Use "_service._proto" for SRV (e.g. _sip._tcp) and "_port._tcp" for TLSA (e.g. _443._tcp).

proxy_rule object
status string · Example: active
ttl integer · Example: 300

TTL in seconds (optional). Default: 3600. Minimum: 60. Maximum: 2147483647.

type string · enum required · Example: CNAME

DNS record type. Supported: A, AAAA, CNAME, ALIAS, MX, TXT, SRV, CAA, TLSA, NS.

A
AAAA
CNAME
ALIAS
MX
TXT
SRV
CAA
TLSA
NS
value string required · Example: example.com

Record value (depends on type). A: IPv4. AAAA: IPv6. CNAME/ALIAS/NS/MX: hostname only (no protocol, no port). TXT: text value (do not wrap in quotes; long values are automatically split into 255-char chunks). SRV: target hostname only (priority/weight/port are separate fields). TLSA: '<usage> <selector> <matchingType> <hexdata>'. CAA: '0 issue "ca.example.com"'.

priority integer · Example: 10

Priority (required for MX and SRV). Range: 0-65535.

weight integer · Example: 5

Weight (required for SRV). Range: 0-65535.

port integer · Example: 5060

Port (required for SRV). Range: 0-65535.

Responses

200
data object required
data.record object required
data.record.id integer | string required · Example: 37188111

Record identifier. May be returned as a number or a string (fallback) if the upstream provider doesn't return an ID immediately. Treat as opaque.

data.record.name string required · Example: www.example.com

Record name (often returned as FQDN). Root record may be returned as the zone domain. "@"/empty are treated as root on input.

data.record.status string · enum required · Example: active

Record status. Mutations typically return 'pending' immediately; list/GET endpoints usually return 'active'.

pending
active
data.record.ttl integer required · Example: 300

TTL in seconds.

data.record.type string · enum required · Example: CNAME

DNS record type. One of: A, AAAA, CNAME, ALIAS, MX, TXT, SRV, CAA, TLSA, NS.

A
AAAA
CNAME
ALIAS
MX
TXT
SRV
CAA
TLSA
NS
data.record.value string required · Example: example.com

Record value.

requestId string required · Example: 2121ae20-bd9d-41e9-aeeb-5dd1dd1a24ba

Unique request identifier (UUID).

success boolean required · Example: true

True for successful responses.

timestamp string required · Example: 2026-02-10T00:00:00.000Z

ISO 8601 timestamp (UTC).

400
code string required · Example: BAD_REQUEST

Machine-readable error code.

error string required · Example: Bad Request

HTTP status title (e.g. 'Bad Request').

message string required · Example: CNAME records cannot be created for a name that already has other record types. Please ...

Human-readable message.

requestId string required · Example: 2121ae20-bd9d-41e9-aeeb-5dd1dd1a24ba

Unique request identifier (UUID).

timestamp string required · Example: 2026-02-10T00:00:00.000Z

ISO 8601 timestamp (UTC).

401 Standard error response
error string required

HTTP status title (e.g. 'Bad Request').

message string required

Human-readable message.

code string required

Machine-readable error code.

timestamp string required

ISO 8601 timestamp (UTC).

requestId string required

Unique request identifier (UUID).

details array<object>

Optional validation details (field-level errors).

details[].field string
details[].message string

Human-readable message.

details[].code string

Machine-readable error code.

retryAfter string

When to retry (ISO 8601 timestamp, UTC).

403 Standard error response
error string required

HTTP status title (e.g. 'Bad Request').

message string required

Human-readable message.

code string required

Machine-readable error code.

timestamp string required

ISO 8601 timestamp (UTC).

requestId string required

Unique request identifier (UUID).

details array<object>

Optional validation details (field-level errors).

details[].field string
details[].message string

Human-readable message.

details[].code string

Machine-readable error code.

retryAfter string

When to retry (ISO 8601 timestamp, UTC).

404

No response body

429 Standard error response
error string required

HTTP status title (e.g. 'Bad Request').

message string required

Human-readable message.

code string required

Machine-readable error code.

timestamp string required

ISO 8601 timestamp (UTC).

requestId string required

Unique request identifier (UUID).

details array<object>

Optional validation details (field-level errors).

details[].field string
details[].message string

Human-readable message.

details[].code string

Machine-readable error code.

retryAfter string

When to retry (ISO 8601 timestamp, UTC).

500 Standard error response
error string required

HTTP status title (e.g. 'Bad Request').

message string required

Human-readable message.

code string required

Machine-readable error code.

timestamp string required

ISO 8601 timestamp (UTC).

requestId string required

Unique request identifier (UUID).

details array<object>

Optional validation details (field-level errors).

details[].field string
details[].message string

Human-readable message.

details[].code string

Machine-readable error code.

retryAfter string

When to retry (ISO 8601 timestamp, UTC).

PUT https://cloud.hostup.se/api/dns/zones/{zoneId}/records/{recordId}
For AI assistants
cURL
curl -X PUT "https://cloud.hostup.se/api/dns/zones/16366/records/37186785" \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "A",
    "ttl": 3600,
    "name": "@",
    "value": "192.0.0.1"
  }'
Response
{
  "success": true,
  "timestamp": "2026-02-10T00:00:00.000Z",
  "requestId": "2121ae20-bd9d-41e9-aeeb-5dd1dd1a24ba",
  "data": {
    "record": {
      "id": 37188111,
      "type": "CNAME",
      "name": "www.example.com",
      "value": "example.com",
      "ttl": 300,
      "status": "active"
    }
  }
}
Request Body A
{
  "type": "A",
  "ttl": 3600,
  "name": "@",
  "value": "192.0.0.1"
}