Update a DNS zone

This function updates a given DNS zone. It can add, edit, and remove many records in a single call. It also ensures that each record not removed will occupy the same number of lines after the edit as it did before the edit.

SecurityBasicAuth
Request
query Parameters
serial
required
integer >= 0

The current serial number in the DNS zone’s SOA (Start of Authority) record. If this value does not match the zone’s current state, the request fails.

Example: serial=202001010100
zone
required
string

The name of one of the user’s DNS zones.

Example: zone=example.com
add
Array of strings <json>

The records to add to the zone. Each item must be a serialized JSON object that contains:

  • dname — The record’s name.
  • ttl — The record’s TTL (Time-To-Live) value.
  • record_type — The record’s type. For example, A or TXT.
  • data — An array of strings. The format and number of the strings depend on the record_type value.
Examples:
An A record.
add='{"dname":"example", "ttl":14400, "record_type":"A", "data":["11.22.33.44"]}'
A TXT record.
add='{"dname":"example", "ttl":14400, "record_type":"TXT", "data":["string1", "string2"]}'
edit
Array of strings <json>

The records to edit in the zone. Each item must be a serialized JSON object that contains:

  • line_index — The line number in the DNS zone where the record starts. This is a 0-based index, so to edit the first line in the file use the 0 value. To edit the second line, give 1, and so forth.
  • dname — The record’s name.
  • ttl — The record’s TTL (Time-To-Live) value.
  • record_type — The record’s new type. For example, A or TXT.
  • data — An array of strings. The format and number of the strings depend on the record_type value.
Example: edit='{"line_index": 9, "dname":"example", "ttl":14400, "record_type":"TXT", "data":["string1", "string2"]}'
remove
Array of integers

The line indexes of records to remove from the zone.

Example: remove=22
Responses
200

HTTP Request was successful.

Response Schema: application/json
apiversion
integer

The version of the API.

func
string

The name of the method called.

module
string

The name of the module called.

object
get/DNS/mass_edit_zone
Request samples
uapi --output=jsonpretty --user=username DNS mass_edit_zone zone='example.com' serial='202001010100' remove=23 add='{"dname":"example","ttl":14400,"record_type":"A","data":["127.0.0.1"]}'
Response samples
application/json
{
  • "apiversion": 3,
  • "func": "mass_edit_zone",
  • "module": "DNS",
  • "result": {
    • "data": {
      • "new_serial": 2021031903
      },
    • "errors": null,
    • "messages": null,
    • "metadata": {
      • "transformed": 1
      },
    • "status": 1,
    • "warnings": null
    }
}