# cPanel API 2 Functions - ZoneEdit::fetchzone

Warning:
The cPanel API 2 system is deprecated. We **strongly** recommend that you use [UAPI](/cpanel/introduction) instead of cPanel API 2.

## Description

This function retrieves a zone file.

Warnings:
* We **strongly** recommend that you use [UAPI](/cpanel/introduction/) instead of cPanel API 2. However, no equivalent UAPI function exists.
* When you disable the [*DNS* role](https://docs.cpanel.net/knowledge-base/general-systems-administration/how-to-use-server-profiles/#roles), the system **disables** this function.


## Examples

WHM API (JSON)


```undefined syntaxhighlighter-pre
https://hostname.example.com:2087/cpsess###########/json-api/cpanel?cpanel_jsonapi_user=user&cpanel_jsonapi_apiversion=2&cpanel_jsonapi_module=ZoneEdit&cpanel_jsonapi_func=fetchzone&domain=example.com&customonly=0&line=1&ttl=14400&name=example.com&address=10.10.10.10&type=A
```

Note:
For more information, read our [Calls from the WHM API](/whm/use-whm-api-to-call-cpanel-api-and-uapi) documentation.

LiveAPI PHP Class


```undefined syntaxhighlighter-pre
$cpanel = new CPANEL(); // Connect to cPanel - only do this once.

// Fetch the zone file for  "example.com"
$fetch_zone = $cpanel->api2(
    'ZoneEdit', 'fetchzone',
 array(
        'domain'    => 'example.com',
        'customonly'=> '0',
        'line'      => '1',
        'ttl'       => '14400',
        'name'      => 'example.com'
        'class'     => 'IN',
        'address'   => '10.10.10.10',
        'type'      => 'A',  
  )
);
```

Note:
For more information, read our [Guide to the LiveAPI System](/guides/guide-to-the-liveapi-system/#guide-to-the-liveapi-system).

LiveAPI Perl Module


```undefined syntaxhighlighter-pre
my $cpliveapi = Cpanel::LiveAPI->new(); # Connect to cPanel - only do this once.

# Fetch the zone file for  "example.com"
my $fetch_zone= $cpliveapi->api2(
    'ZoneEdit', 'fetchzone',
  {
        'domain'    => 'example.com',
        'customonly'=> '0',
        'line'      => '1',
        'ttl'       => '14400',
        'name'      => 'example.com'
        'class'     => 'IN',
        'address'   => '10.10.10.10',
        'type'
  }
);
```

Note:
For more information, read our [Guide to the LiveAPI System](/guides/guide-to-the-liveapi-system).

cPanel Tag System (deprecated)

Warnings:
- cPanel tags are **deprecated**. We **strongly** recommend that you **only** use the [LiveAPI](/guides/guide-to-the-liveapi-system) 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](/guides/guide-to-the-liveapi-system).
- 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](/cpanel-api-2/cpanel-api-2-deprecate-cpanel-tag-usage/) documentation.


Command Line


```undefined syntaxhighlighter-pre
cpapi2 --user=username ZoneEdit fetchzone domain=example.com customonly=0 line=1 ttl=14400 name=example.com class="IN" address=10.10.10.10 type=A
```

div
Notes:

- 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](/cpanel-api-2/) documentation or run the `cpapi2 --help` command.
- If you run CloudLinux™, you **must** use the full path of the `cpapi2` command:

```undefined syntaxhighlighter-pre
/usr/local/cpanel/bin/cpapi2
```


br
Output (JSON)


```undefined syntaxhighlighter-pre
{
  "cpanelresult": {
    "apiversion": 2,
    "func": "fetchzone",
    "data": [
      {
        "statusmsg": "Zone Serialized",
        "record": [
          {
            "record": null,
            "Line": 1,
            "ttl": "86400",
            "type": ":RAW",
            "raw": "; cPanel first:11.47.0.9999 (update_time):1413480646 Cpanel::ZoneFile::VERSION:1.3 hostname.hostingcompany.com latest:11.47.0.9999",
            "line": 1
          },
          {
            "record": null,
            "Line": 2,
            "ttl": "86400",
            "type": ":RAW",
            "raw": "; Zone file for example.com",
            "line": 2
          },
          {
            "record": null,
            "Line": 3,
            "ttl": "14400",
            "type": "$TTL",
            "line": 3
          },
          {
            "minimum": "86400",
            "ttl": "86400",
            "serial": "2014101606",
            "name": "example.com.",
            "mname": "ns1.hostingcompany.com",
            "retry": "7200",
            "record": null,
            "refresh": "86400",
            "Line": 4,
            "Lines": 6,
            "class": "IN",
            "type": "SOA",
            "rname": "hostname.hostingcompany.com",
            "expire": "3600000",
            "line": 4
          },
          {
            "record": null,
            "Line": 10,
            "ttl": "86400",
            "type": ":RAW",
            "raw": "",
            "line": 10
          },
          {
            "nsdname": "ns1.hostingcompany.com",
            "ttl": "86400",
            "name": "example.com.",
            "record": null,
            "Line": 11,
            "type": "NS",
            "class": "IN",
            "line": 11
          },
          {
            "nsdname": "ns1.hostingcompany.com",
            "ttl": "86400",
            "name": "example.com.",
            "record": null,
            "Line": 12,
            "type": "NS",
            "class": "IN",
            "line": 12
          },
          {
            "record": null,
            "Line": 13,
            "ttl": "86400",
            "type": ":RAW",
            "raw": "",
            "line": 13
          },
          {
            "record": null,
            "Line": 14,
            "ttl": "86400",
            "type": ":RAW",
            "raw": "",
            "line": 14
          },
          {
            "ttl": "14400",
            "name": "example.com.",
            "record": "10.215.214.95",
            "Line": 15,
            "type": "A",
            "class": "IN",
            "address": "10.215.214.95",
            "line": 15
          },
          {
            "ttl": "14400",
            "name": "example.com.",
            "record": "2001:db8:1a34:56cf:0:0:0:0",
            "Line": 16,
            "type": "AAAA",
            "class": "IN",
            "address": "2001:db8:1a34:56cf:0:0:0:0",
            "line": 16
          },
          {
            "ttl": "14400",
            "name": "localhost.example.com.",
            "record": "127.0.0.1",
            "Line": 17,
            "type": "A",
            "class": "IN",
            "address": "127.0.0.1",
            "line": 17
          },
          {
            "ttl": "14400",
            "name": "localhost.example.com.",
            "record": "0:0:0:0:0:0:0:1",
            "Line": 18,
            "type": "AAAA",
            "class": "IN",
            "address": "0:0:0:0:0:0:0:1",
            "line": 18
          },
          {
            "record": null,
            "Line": 19,
            "ttl": "86400",
            "type": ":RAW",
            "raw": "",
            "line": 19
          },
          {
            "ttl": "14400",
            "name": "example.com.",
            "preference": "0",
            "record": null,
            "Line": 20,
            "type": "MX",
            "class": "IN",
            "exchange": "example.com",
            "line": 20
          },
          {
            "record": null,
            "Line": 21,
            "ttl": "86400",
            "type": ":RAW",
            "raw": "",
            "line": 21
          },
          {
            "ttl": "14400",
            "name": "mail.example.com.",
            "cname": "example.com",
            "record": "example.com",
            "Line": 22,
            "type": "CNAME",
            "class": "IN",
            "line": 22
          },
          {
            "ttl": "14400",
            "name": "www.example.com.",
            "cname": "example.com",
            "record": "example.com",
            "Line": 23,
            "type": "CNAME",
            "class": "IN",
            "line": 23
          },
          {
            "ttl": "14400",
            "name": "ftp.example.com.",
            "record": "10.215.214.95",
            "Line": 24,
            "type": "A",
            "class": "IN",
            "address": "10.215.214.95",
            "line": 24
          },
          {
            "ttl": "14400",
            "name": "ftp.example.com.",
            "record": "2001:db8:1a34:56cf:0:0:0:0",
            "Line": 25,
            "type": "AAAA",
            "class": "IN",
            "address": "2001:db8:1a34:56cf:0:0:0:0",
            "line": 25
          },
          {
            "ttl": "14400",
            "name": "fish.example.com.",
            "record": "10.215.214.95",
            "Line": 26,
            "type": "A",
            "class": "IN",
            "address": "10.215.214.95",
            "line": 26
          },
          {
            "ttl": "14400",
            "name": "fish.example.com.",
            "record": "2001:db8:1a34:56cf:0:0:0:0",
            "Line": 27,
            "type": "AAAA",
            "class": "IN",
            "address": "2001:db8:1a34:56cf:0:0:0:0",
            "line": 27
          },
          {
            "ttl": "14400",
            "name": "default._domainkey.fish.example.com.",
            "unencoded": 1,
            "record": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDw5nw4NP1RsWXlfmiMzByDfOT16QCZO\/xJtrPZKskZF8\/sU0zWGTqKUOErlyJfoJzMDUv3\/zzjGswc2nEmYqxxoQZaBkN4QaS6MvJQxysAr+sK8C248\/r9zMperQdhJedUVejtpFQHJwgqpHy1tQMxY37L7sQjdxmQ5WnQ1acXiwIDAQAB;",
            "Line": 28,
            "txtdata": "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDw5nw4NP1RsWXlfmiMzByDfOT16QCZO\/xJtrPZKskZF8\/sU0zWGTqKUOErlyJfoJzMDUv3\/zzjGswc2nEmYqxxoQZaBkN4QaS6MvJQxysAr+sK8C248\/r9zMperQdhJedUVejtpFQHJwgqpHy1tQMxY37L7sQjdxmQ5WnQ1acXiwIDAQAB;",
            "type": "TXT",
            "class": "IN",
            "line": 28
          },
          {
            "record": null,
            "Line": 29,
            "ttl": "86400",
            "type": ":RAW",
            "raw": "",
            "line": 29
          },
          {
            "ttl": "14400",
            "name": "cpanel.example.com.",
            "record": "10.215.214.95",
            "Line": 30,
            "type": "A",
            "class": "IN",
            "address": "10.215.214.95",
            "line": 30
          },
          {
            "ttl": "14400",
            "name": "webdisk.example.com.",
            "record": "10.215.214.95",
            "Line": 31,
            "type": "A",
            "class": "IN",
            "address": "10.215.214.95",
            "line": 31
          },
          {
            "ttl": "14400",
            "name": "whm.example.com.",
            "record": "10.215.214.95",
            "Line": 32,
            "type": "A",
            "class": "IN",
            "address": "10.215.214.95",
            "line": 32
          },
          {
            "ttl": "14400",
            "name": "webmail.example.com.",
            "record": "10.215.214.95",
            "Line": 33,
            "type": "A",
            "class": "IN",
            "address": "10.215.214.95",
            "line": 33
          },
          {
            "ttl": "14400",
            "name": "www.example.com.",
            "value": "totallyrealca.tld",
            "tag": "issue",
            "flag": "0",
            "Line": 33,
            "type": "CAA",
            "class": "IN",
            "line": 33
          }
        ],
        "status": 1,
        "serialnum": "2014101606"
      }
    ],
    "event": {
      "result": 1
    },
    "module": "ZoneEdit"
  }
}
```

Note:
Use cPanel's *[API Shell](https://docs.cpanel.net/cpanel/advanced/api-shell-for-cpanel)* interface (*cPanel >> Home >> Advanced >> API Shell*) to directly test cPanel API calls.

## Parameters

table
thead
tr
th
Parameter
th
strong
Type
th
strong
Description
th
strong
Possible values
th
strong
Example
tbody
tr
td
p
code
domain
td
em
string
td
p
strong
Required
p
The record's domain.
td
A valid domain name.
td
code
example.com
tr
td
p
code
customonly
td
em
Boolean
td
p
Whether to return only non-essential A and CNAME records.
p
This value defaults to 
code
0
.
td
ul
li
code
1
 — Return 
strong
only
 non-essential records.
li
code
0
 — Return all records.
td
code
0
tr
td
p
code
line
td
em
integer
td
p
Filter results for line numbers that match this value.
p
This value defaults to 
code
1
.
td
A positive integer.
td
code
1
tr
td
p
code
ttl
td
em
integer
td
p
Filter results for time to live (TTL) values that match this value.
p
This value defaults to 
code
14400
.
td
p
A positive integer.
p
td
code
14400
tr
td
p
code
name
td
em
string
td
p
Filter results for DNS record names values that match this value.
p
If you do not use this parameter, the function returns all results for the domain.
td
A valid string.
td
code
example.com
tr
td
p
code
class
td
em
string
td
p
Filter results for DNS zone classes that match this value.
p
This value defaults to 
code
IN
.
td
code
IN
td
code
IN
tr
td
p
code
address
td
em
string
td
p
Filter results for IP addresses that match this value.
p
If you do not use this parameter, the function returns all of the domain's record types.
td
span
A valid IPv4 or IPv6 address.
td
code
10.10.10.10
tr
td
p
code
type
td
em
string
td
p
Filter results for types that match this value.
p
If you do not use this parameter, the function returns all of the domain's record types.
td
ul
li
code
A
li
code
AAAA
li
code
CAA
li
code
CNAME
li
code
MX
li
code
NS
li
code
RAW
 — This represents a blank line in the zone file.
code
li
code
SOA
li
code
SRV
li
code
TXT
td
code
A
tr
td
p
code
txtdata
td
em
string
td
p
Filter results for 
code
TXT
 values that match this value.
p
div
Note:
p
p
strong
Only
 use this parameter if you pass 
code
TXT
 as the 
code
type
 parameter's value.
br

This value defaults to a blank string.

td
A valid string.
td
code
v=blahblahblah
tr
td
p
code
preference
td
em
integer
td
p
Filter results for preference values that match this value.
p
div
Note:
p
p
strong
Only
 use this parameter if you pass 
code
MX
 as the 
code
type
 parameter's value.
br

This value defaults to 
code
0
.

p
br
td
An integer value.
td
code
0
tr
td
p
code
exchange
td
em
string
td
p
Filter results for 
code
MX
 values that match this value.
p
div
Note:
p
p
strong
Only
 use this parameter if you pass 
code
MX
 as the 
code
type
 parameter's value.
br

This value defaults to a blank string.

td
A valid hostname.
td
code
mail.example.com
## Returns

table
thead
tr
th
Return
th
strong
Type
th
strong
Description
th
strong
Possible values
th
strong
Example
tbody
tr
td
td
em
array of hashes
td
A hash of zone record information.
td
The returns that each hash includes depend on the type of record that you query.
td
tr
td
p
code
domain
td
em
string
td
p
The record's domain.
p
The function returns this value in the zone record's hash.
td
A valid domain name.
td
code
example.com
tr
td
p
code
line
td
em
integer
td
p
The line number in the zone file.
p
The function returns this value in the zone record's hash.
td
A positive integer.
td
code
1
tr
td
p
code
ttl
td
em
integer
td
p
The record's time to live (TTL).
p
The function returns this value in the zone record's hash.
td
A positive integer that represents the interval in seconds.
td
code
14400
tr
td
p
code
name
td
em
string
td
p
The record's name.
p
The function returns this value in the zone record's hash.
td
A valid string.
td
code
example.com
tr
td
p
code
class
td
em
string
td
p
The record's class.
p
The function returns this value in the zone record's hash.
td
code
IN
td
code
IN
tr
td
p
code
address
td
em
string
td
p
The record's IP address.
p
The function returns this value in the zone record's hash.
td
span
A valid IPv4 or IPv6 address.
td
code
10.10.10.10
tr
td
p
code
type
td
em
string
td
p
The record's type.
p
The function returns this value in the zone record's hash.
td
ul
li
code
A
li
code
AAAA
li
code
CNAME
li
code
MX
li
code
NS
li
code
RAW
li
code
SOA
li
code
SRV
li
code
TXT
td
code
A
tr
td
p
code
txtdata
td
em
string
td
p
If the 
code
type
span
 return's value is
code
TXT
, the record's text data.
p
The function returns this value in the zone record's hash.
td
A string.
td
code
v=blahblahblah
tr
td
p
code
preference
td
em
string
td
p
If the 
code
type
span
 return's value is
code
MX
, the record's mail priority.
p
The function returns this value in the zone record's hash.
td
A positive integer, where smaller integers represent higher priority.
td
code
10
tr
td
p
code
exchange
td
em
string
td
p
If the 
code
type
span
 return's value is
code
MX
, the record's mail exchange hostname.
p
The function returns this value in the zone record's hash.
td
A valid hostname.
td
code
mail.example.com
tr
td
p
code
cname
td
em
string
td
p
If the 
code
type
 return's value is 
code
CNAME
, the record's canonical name.
p
The function returns this value in the zone record's hash.
td
A valid hostname.
td
code
mail.example.com
tr
td
p
code
nsdname
td
em
string
td
p
If the 
code
type
 return's value is 
code
NS
, the authoritative nameserver's hostname.
p
The function returns this value in the zone record's hash.
td
A valid hostname.
td
code
ns1.example.com
tr
td
p
code
flag
td
em
integer
td
p
span
If the 
code
type
span
return's value is 
code
CAA
, whether the CA will issue an SSL certificate if the CAA Resource Record contains unknown property tags.
p
div
Note:
p
ul
li
span
For more information about CAA record flags, read the 
a
RFC 6844
span
documentation.
li
span
We added this return in cPanel 
&
 WHM version 66.
br
p
The function returns this value in the zone record's hash.
td
ul
li
code
0
 — Non-critical. The CAA Resource Record contains unknown property tags, but the CA issued an SSL certificate.
li
code
1
 — Critical. The CAA Resource Record contains unknown property tags, and the CA did 
strong
not 
issue an SSL certificate.
td
code
0
tr
td
p
code
tag
td
em
string
td
p
If the 
code
type
 return's value is 
code
CAA
, the CAA record's property type.
p
div
Note:
p
p
We added this return in cPanel 
&
 WHM version 66.
br
p
The function returns this value in the zone record's hash.
td
ul
li
code
issue
 — A CA issued a certificate for the domain.
li
code
issuewild
 — A CA issued a wildcard certificate for the domain.
li
p
code
iodef
em
— The user specified a URL to which a CA may report policy violations.
td
code
issue
tr
td
p
code
value
td
em
string
td
p
span
span
If the 
code
type
span
return's value is
code
CAA
, the CA's domain or URL.
p
div
Note:
p
p
We added this return in cPanel 
&
 WHM version 66.
br
span
The function returns this value in the zone record's hash.
td
ul
li
A valid 
a
SSL provider
.
li
A mailto URL or a standard URL.
td
code
totallyrealca.tld
tr
td
p
code
priority
td
em
integer
td
p
If the 
code
type
 return's value is 
code
SRV
, 
span
the service record's 
a
priority value
span
.
p
span
span
The function returns this value in the zone record's hash.
br
td
span
A positive integer 
span
that represents the target host's priority order
span
.
td
code
1
tr
td
p
code
weight
td
em
integer
td
p
If the 
code
type
 return's value is 
code
SRV
, the value that the system uses to rank entries with the same 
code
priority
 value.
p
span
The function returns this value in the zone record's hash.
td
span
A positive integer that represents the target host's weight against other hosts with the same 
code
priority
span
 value.
td
code
1
tr
td
p
code
port
td
em
integer
td
p
If the 
code
type
 return's value is 
code
SRV
, t
span
he target host's port.
p
span
span
The function returns this value in the zone record's hash.
br
td
p
span
A positive integer that represents a port number.
p
div
Note:
p
p
For a complete list of ports, read our 
a
How to Configure Your Firewall for cPanel Services
  documentation.
br
td
p
code
443
tr
td
p
code
target
td
em
string
td
p
If the 
code
type
 return's value is 
code
SRV
, the
span
 service's target host.
p
span
span
The function returns this value in the zone record's hash.
br
td
A valid hostname.
td
code
subdomain.example.com
tr
td
code
reason
td
em
string
td
p
A reason for failure.
p
div
Note:
p
p
This function 
strong
only
 returns a 
code
reason
 value if it failed.
br
td
p
A string that describes the error.
td
code
This is an error message.
tr
td
code
result
td
em
Boolean
td
p
Whether the function succeeded.
td
ul
li
code
1
 — The function succeeded.
li
code
0
 — The function failed.
td
code
1