WHM API.
https://api.docs.cpanel.net/_mock/specifications/whm.openapi/
https://{host}:{port}/json-api/
Request
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.
NOTE:
You cannot use this function to modify temporary domains.
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.
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,AorTXT.data— An array of strings. The format and number of the strings depend on therecord_typevalue.
An A record.
A TXT record.
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 the0value. To edit the second line, give1, 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,AorTXT.data— An array of strings. The format and number of the strings depend on therecord_typevalue.
- Mock server
https://api.docs.cpanel.net/_mock/specifications/whm.openapi/mass_edit_dns_zone
- A server running WHM.
https://whm-server.tld:2087/json-api/mass_edit_dns_zone
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
-u <username>:<password> \
'https://api.docs.cpanel.net/_mock/specifications/whm.openapi/mass_edit_dns_zone?serial=202001010100&zone=example.com&add=string&edit=%27{%22line_index%22%3A+9%2C+%22dname%22%3A%22example%22%2C+%22ttl%22%3A14400%2C+%22record_type%22%3A+%22TXT%22%2C+%22data%22%3A%5B%22string1%22%2C+%22string2%22%5D}%27&remove=22'{ "data": { "new_serial": 2021031903 }, "metadata": { "command": "mass_edit_dns_zone", "reason": "OK", "result": 1, "version": 1 } }
Request
This function parses a given DNS zone.
Important:
Most DNS zones contain only 7-bit ASCII. However, it is possible for DNS zones to contain any binary sequence. An application that decodes this function's base64 output must be able to handle cases where the decoded octets do not match any specific character encoding.
- Mock server
https://api.docs.cpanel.net/_mock/specifications/whm.openapi/parse_dns_zone
- A server running WHM.
https://whm-server.tld:2087/json-api/parse_dns_zone
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
-u <username>:<password> \
'https://api.docs.cpanel.net/_mock/specifications/whm.openapi/parse_dns_zone?zone=example.com'{ "data": { "payload": [ … ] }, "metadata": { "command": "parse_dns_zone", "reason": "OK", "result": 1, "version": 1 } }
Request
This function deletes a DNS zone record.
Warning:
Incorrect use of this function could cause domains to resolve incorrectly. Exercise extreme caution when you remove DNS zone records.
To effectively use this function, use the following workflow:
- Run the
dumpzonefunction. - Locate the
Linevalue that corresponds to the zone record to delete. - Use the values from that zone record to formulate the appropriate
removezonerecordparameters.
Important:
- When you disable the DNS role, the system disables this function.
- You cannot use this function to modify temporary domains.
- Mock server
https://api.docs.cpanel.net/_mock/specifications/whm.openapi/removezonerecord
- A server running WHM.
https://whm-server.tld:2087/json-api/removezonerecord
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X GET \
-u <username>:<password> \
'https://api.docs.cpanel.net/_mock/specifications/whm.openapi/removezonerecord?line=4&zone=example.com&serialnum=2013122501'{ "metadata": { "command": "removezonerecord", "reason": "Bind reloading on hostname using rndc zone: [example.com]\n", "result": 1, "version": 1 } }