cPanel API 2 Functions - ZoneEdit::add_zone_record
The cPanel API 2 system is deprecated. We strongly recommend that you use UAPI instead of cPanel API 2.
Description
This function adds a new zone record.
Examples
WHM API (JSON)
https://hostname.example.com:2087/cpsess###########/json-api/cpanel?cpanel_jsonapi_user=user&cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=add_zone_record&domain=example.com&name=sub&type=A&txtdata=v=nonicethings&cname=example.com&address=10.10.10.10&ttl=14400&class=IN&flatten=1&flatten_to=192.168.0.20
For more information, read our Calls from the WHM API documentation.
LiveAPI PHP Class
$cpanel = new CPANEL(); // Connect to cPanel - only do this once.
// Add a type "A" zone record to "example.com"
$add_zone_record = $cpanel->api2(
'ZoneEdit', 'add_zone_record',
array(
'domain' => 'example.com',
'name' => 'sub',
'type' => 'A',
'address' => '10.10.10.10',
'ttl' => '14400',
'class' => 'IN',
)
);
$cpanel = new CPANEL(); // Connect to cPanel - only do this once.
// Add a type "CNAME" zone record to "example.com"
$add_zone_record = $cpanel->api2(
'ZoneEdit', 'add_zone_record',
array(
'domain' => 'example.com',
'name' => 'sub',
'type' => 'CNAME',
'cname' => 'example.com',
'ttl' => '14400',
'class' => 'IN',
)
);
$cpanel = new CPANEL(); // Connect to cPanel - only do this once.
// Add a type "TXT" Zone Record to "example.com"
$add_zone_record = $cpanel->api2(
'ZoneEdit', 'add_zone_record',
array(
'domain' => 'example.com',
'name' => 'sub',
'type' => 'TXT',
'txtdata' => 'v=nonicethings',
'ttl' => '14400',
'class' => 'IN',
)
);
$cpanel = new CPANEL(); // Connect to cPanel - only do this once.
// Add a type "AAAA" zone record to "example.com"
$add_zone_record = $cpanel->api2(
'ZoneEdit', 'add_zone_record',
array(
'domain' => 'example.com',
'name' => 'genesis',
'type' => 'AAAA',
'address' => 'abac:abab:acab:abac:abab:acab:abac:ab11:',
'ttl' => '14400',
'class' => 'IN',
)
);
$cpanel = new CPANEL(); // Connect to cPanel - only do this once.
// Add a type "SRV" Zone Record to "example.com"
$add_zone_record = $cpanel->api2(
'ZoneEdit', 'add_zone_record',
array(
'domain' => 'example.com',
'name' => 'autocorrect',
'type' => 'SRV',
'txtdata' => 'v=nonicethings',
'ttl' => '14400',
'class' => 'IN',
)
);
$cpanel = new CPANEL(); // Connect to cPanel - only do this once.
// Add a type "CAA" Zone Record to "example.com"
$add_zone_record = $cpanel->api2(
'ZoneEdit', 'add_zone_record',
array(
'domain' => 'example.com',
'name' => 'autocorrect',
'type' => 'CAA',
'flag' => '0',
'tag' => 'issue',
'value' => 'totallyrealca.tld',
'ttl' => '14400',
'class' => 'IN',
)
);
For more information, read our Guide to the LiveAPI System.
LiveAPI Perl Module
my $cpliveapi = Cpanel::LiveAPI->new(); # Connect to cPanel - only do this once.
# Add a type "A" Zone Record to "example.com"
my $add_zone_record = $cpliveapi->api2(
'ZoneEdit', 'add_zone_record',
{
'domain' => 'example.com',
'name' => 'sub',
'type' => 'A',
'address' => '10.10.10.10',
'ttl' => '14400',
'class' => 'IN',
}
);
# Add a type "AAAA" Zone Record to "example.com"
my $add_zone_record = $cpliveapi->api2(
'ZoneEdit', 'add_zone_record',
{
'domain' => 'example.com',
'name' => 'genesis',
'type' => 'AAAA',
'address' => 'abac:abab:acab:abac:abab:acab:abac:ab11',
'ttl' => '14400',
'class' => 'IN',
}
);
my $cpliveapi = Cpanel::LiveAPI->new(); # Connect to cPanel - only do this once.
# Add a type "CNAME Zone Record to "example.com"
my $add_zone_record = $cpliveapi->api2(
'ZoneEdit', 'add_zone_record',
{
'domain' => 'example.com',
'name' => 'sub',
'type' => 'CNAME',
'cname' => 'example.com',
'ttl' => '14400',
'class' => 'IN',
}
);
my $cpliveapi = Cpanel::LiveAPI->new(); # Connect to cPanel - only do this once.
# Add a type "TXT" Zone Record to "example.com"
my $add_zone_record = $cpliveapi->api2(
'ZoneEdit', 'add_zone_record',
{
'domain' => 'example.com',
'name' => 'sub',
'type' => 'TXT',
'txtdata' => 'v=nonicethings',
'ttl' => '14400',
'class' => 'IN',
}
);
my $cpliveapi = Cpanel::LiveAPI->new(); # Connect to cPanel - only do this once.
# Add a type "SRV" Zone Record to "example.com"
my $add_zone_record = $cpliveapi->api2(
'ZoneEdit', 'add_zone_record',
{
'domain' => 'example.com',
'name' => 'autodiscover',
'type' => 'SRV',
'txtdata' => 'v=nonicethings',
'ttl' => '14400',
'class' => 'IN',
}
);
my $cpliveapi = Cpanel::LiveAPI->new(); # Connect to cPanel - only do this once.
# Add a type "CAA" Zone Record to "example.com"
my $add_zone_record = $cpliveapi->api2(
'ZoneEdit', 'add_zone_record',
{
'domain' => 'example.com',
'name' => 'autodiscover',
'type' => 'CAA',
'flag' => '0',
'tag' => 'issue'
'value' => 'totallyrealca.tld'
'ttl' => '14400',
'class' => 'IN',
}
);
For more information, read our Guide to the LiveAPI System.
cPanel Tag System (deprecated)
- cPanel tags are deprecated . We strongly recommend that you only use the LiveAPI system to call the cPanel APIs. Examples are only present in order to help developers move from the old cPanel tag system to our LiveAPI .
- cPanel API 2 calls that use cPanel tags vary in code syntax and in their output.
- For more information, read our Deprecated cPanel Tag Usage documentation.
Command Line
cpapi2 --user=username ZoneEdit add_zone_record domain=example.com name=sub type=A txtdata=v=nonicethings cname=example.com address=10.10.10.10 ttl=14400 class=IN flatten=1 flatten_to=192.168.0.20
- You must URI-encode values.
-
username
represents your account-level username. -
You
must
include the
--user=username
option. -
For more information and additional output options, read our
Guide to cPanel API 2
documentation or run the
cpapi2 --help
command. -
If you run CloudLinux™, you
must
use the full path of the
cpapi2
command:/usr/local/cpanel/bin/cpapi2
Output (JSON)
{
"cpanelresult": {
"apiversion": 2,
"func": "add_zone_record",
"data": [
{
"result": {
"newserial": 2014101603,
"statusmsg": "Bind reloading on hostname using rndc zone: [example.com]\n",
"status": 1
}
}
],
"event": {
"result": 1
},
"module": "ZoneEdit"
}
}
Use cPanel's API Shell interface (cPanel >> Home >> Advanced >> API Shell) to directly test cPanel API calls.
Parameters
Parameters | Type | Description | Possible values | Example |
---|---|---|---|---|
domain |
string | Required The record's domain. |
A valid domain name. | example.com |
name |
string | Required The record's name, which maps to the subdomain. |
A valid string. |
sub |
type |
string | Required The record type. |
|
A |
txtdata |
string |
The record's text data. Note:
This parameter is required if you use
TXT as the type parameter's value. |
A valid string. | v=nonicethings |
target |
string |
The service's target host.
Notes:
|
A valid hostname. | subdomain.example.com |
weight |
integer |
A relative weight. The system uses this value to rank entries with the same Note:
This parameter is required if you use |
A positive integer that represents the target host's weight against other hosts with the same priority value. |
1 |
port |
integer |
The target host's port. Note:
This parameter is required if you use |
A positive integer that represents a port number. Note:
For a complete list of ports, read our How to Configure Your Firewall for cPanel Services documentation. |
443 |
priority |
integer | The service record's priority value.
Note:
This parameter is required if you use
SRV as the type parameter's value.
|
A positive integer that represents the target host's priority order. | 1 |
cname |
string |
The record's canonical name. Note:
This parameter is required if you use |
A valid canonical name. | example.com |
address |
string |
The IP address to map to the record. Note:
This parameter is required if you use |
A valid IPv4 or IPv6 address. | 10.10.10.10 |
flag |
integer |
Whether the CA will issue an SSL certificate. Note:
|
|
0 |
|
string |
The CAA record's property type. Note:
|
|
issue |
value |
string |
The CA's domain or URL. Notes:
|
The CA's domain or URL. |
totallyrealca.tld |
ttl |
integer | The record's time to live (TTL). This value defaults to |
A valid positive integer that represents the record's TTL, in seconds. | 14400 |
class |
string | The record's class. This value defaults to |
IN |
IN |
flatten |
Boolean |
Whether to resolve the specified CNAME value with the record's IP address. You must use the Notes:
|
|
1 |
flatten_to |
string |
The IP address to which the specified CNAME will resolve. You must use the Notes:
|
A valid IPv4 or IPv6 address. | 192.168.0.20 |
Returns
Return | Type | Description | Possible values | Example |
---|---|---|---|---|
result |
hash | A hash of the function call's results. | This hash includes the newserial , statusmessage , and status returns. |
|
|
integer | The new serial number of the zone file. This function returns this value in the |
A positive integer. | 2014101603 |
|
string | A status message from the DNS server. This function returns this value in the |
A valid string. | Bind reloading on hostname using rndc zone: [example.com]\n
|
|
string | Whether the function succeeded. This function returns this value in the |
|
1 |
reason |
string |
A reason for failure. Note:
This function only returns a |
A string that describes the error. |
This is an error message. |
result |
Boolean | Whether the function succeeded. |
|
1 |