API: OpenSRS

OpenSRS API Guide: Domains and SSL

Welcome to the OpenSRS API guide. Here you will find comprehensive documentation regarding our domain and SSL services. We hope this guide will help you start working with OpenSRS as quickly as possible. If you have any questions or concerns, please do not hesitate to contact [email protected]

Get Started

set_dns_zone

Set the records for a domain's DNS zone.

Request parameters for set_dns_zone

Standard parameters

  • action = set_dns_zone
  • object = domain attributes

Attributes

Parameters within the attributes associative array are described below.

Parameter nameObligationDefinition/Value
domainRequiredThe domain whose DNS you want to set.
recordsRequiredA list of the record types defined for the domain; each record includes the settings for that record.

Record types may be
􏰀A
􏰀 AAAA
􏰀 CNAME 􏰀
MX
SRV
TXT

For more information, see the Records table below.

Records

Parameters within the records associative array are described below.

Parameter nameObligationDefinition/Value
AOptionalMaps the domain name to the IP address. The A record consists of the following:

ip_address—Internet Protocol Address. A numeric address that computers recognize, for example, 123.45.54.123.

subdomain— The third level of the domain name, such as www or ftp.
AAAAOptionalMaps the domain name to the IPv6 address.

The AAAA record consists of the following:

ipv6_address—The next generation Internet Protocol designed as the successor to version 4. It is normally written as eight groups of four hexadecimal digits (i.e. 2003:0db8: 85a3:0000:0000:8a2e: 0370:7334

subdomain—The third level of the domain name, such as www or ftp.
CNAMEOptionalCanonical Name. CNAME records can be used when you want a subdomain to point to another hostname. Allows you to create an alias for your domain.

The CNAME record consists of the following:

hostname—The FQDN of the domain that
you want to access.

subdomain—The third level of the domain name, such as www or ftp.
MXOptionalMail Exchange. MX records determine how mail is delivered to your domain. Ensures that email that is sent to you is routed to the correct destination.

The MX record consists of the following:

priority—The priority of the target host, lower value means more preferred.

subdomain—The third level of the domain name, such as www or ftp.

* hostname—The FQDN of the domain that you want to access.
nameservers_okRequiredIndicates whether the domain is set up to use the OpenSRS nameservers.

0—Domain is not set up to use the OpenSRS nameservers

1—Domain is set up to use the OpenSRS nameservers
recordsRequiredA list of the record types defined for the domain; each record includes the settings for that record.

Record types may be

A
AAAA
CNAME
MX
SRV
TXT
SRVOptionalService Record.
The SRV record consists of the following:

priority—The priority of the target host, lower value means more preferred.

weight—Arelative weight for records with the same priority.

subdomain—The third level of the domain name, such as www or ftp.

hostname—The FQDN of the domain that you want to access.

* port—The TCP or UDP port on which the service is to be found.
TXTOptionalText Record. Allows you to attach comments to a hostname to validate that email is being sent from the IP address of the domain's mail server.

The TXT record consists of the following:

subdomain—The third level of the domain name, such as www or ftp.

text—The comments that you want to include.

Response parameters for set_dns_zone

Standard parameters

  • action = reply
  • object = domain
  • is_success = a Boolean is returned, indicating success or failure of the
    request
  • response_code = response code indicating outcome of the request
  • response_text = message describing the outcome of the request

Attributes

If the request is successful, the attributes associative array may include the following:

Parameter nameObligationDefinition/Value
nameservers_okReturned if is_success = trueIndicates whether the domain is set up to use the OpenSRS nameservers.

0—Domain is not set up to use the OpenSRS nameservers

1—Domain is set up to use the OpenSRS nameservers
recordsReturned if is_success = trueA list of the record types defined for the domain; each record includes the settings for that record.
Record types may be

A
AAAA
CNAME
MX
SRV
TXT

For more information, see the Records table below.

Records

Parameters within the records associative array are described below.

Parameter nameObligationDefinition/Value
AOptionalMaps the domain name to the IP address. The A record consists of the following:

ip_address—InternetProtocolAddress.A numeric address that computers recognize, for example, 123.45.54.123.

subdomain—The third level of the domain name, such as www or ftp.
AAAAOptionalMaps the domain name to the IPv6 address.

The AAAA record consists of the following:

subdomain—The third level of the domain name, such as www or ftp.

ipv6_address—The next generation Internet Protocol designed as the successor to version 4. It is normally written as eight groups of four hexadecimal digits (i.e. 2003:0db8: 85a3:0000:0000:8a2e:0370:7334)
CNAMEOptionalCanonical Name. CNAME records can be used when you want a subdomain to point to another hostname. Allows you to create an alias for your domain.

The CNAME record consists of the following:

hostname—The FQDN of the domain that you
want to access.

subdomain—The third level of the domain name, such as www or ftp.
MXOptionalMail Exchange. MX records determine how mail is delivered to your domain. Ensures that email that is sent to you is routed to the correct destination.

The MX record consists of the following:

priority—The priority of the target host,lower
value means more preferred.

subdomain—The third level of the domain
name, such as www or ftp.

* hostname—The FQDN of the domain that you want to access.
SRVOptionalService Record.
The SRV record consists of the following:

priority—The priority of the target host,lower
value means more preferred.

weight—A relative weight for records with the same priority.

subdomain—The third level of the domain name, such as www or ftp.

hostname—The FQDN of the domain that you want to access.

* port—The TCP or UDP port on which the service is to be found.
TXTOptionalText Record. Allows you to attach comments to a hostname to validate that email is being sent from the IP address of the domain's mail server.

The TXT record consists of the following:

subdomain—The third level of the domain
name, such as www or ftp.

text—The comments that you want to include.

Examples for set_dns_zone

Request

<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
    <header>
        <version>0.9</version>
    </header>
    <body>
        <data_block>
            <dt_assoc>
                <item key="protocol">XCP</item>
                <item key="action">SET_DNS_ZONE</item>
                <item key="object">DOMAIN</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="domain">example.com</item>
                        <item key="records">
                            <dt_assoc>
                                <item key="A">
                                    <dt_array>
                                        <item key="0">
                                            <dt_assoc>
                                                <item key="subdomain"></item>
                                                <item key="ip_address">123.123.123.2</item>
                                            </dt_assoc>
                                        </item>
                                        <item key="1">
                                            <dt_assoc>
                                                <item key="subdomain">*</item>
                                                <item key="ip_address">123.123.123.3</item>
                                            </dt_assoc>
                                        </item>
                                        <item key="2">
                                            <dt_assoc>
                                                <item key="subdomain">www</item>
                                                <item key="ip_address">123.123.123.4</item>
                                            </dt_assoc>
                                        </item>
                                    </dt_array>
                                </item>
                                <item key="CNAME">
                                    <dt_array>
                                        <item key="0">
                                            <dt_assoc>
                                                <item key="subdomain">portal</item>
                                                <item key="hostname">www.example.com</item>
                                            </dt_assoc>
                                        </item>
                                    </dt_array>
                                </item>
                                <item key="MX">
                                    <dt_array>
                                        <item key="0">
                                            <dt_assoc>
                                                <item key="subdomain"></item>
                                                <item key="hostname">mx.example.com.cust.test.hostedemail.com</item>
                                                <item key="priority">10</item>
                                            </dt_assoc>
                                        </item>
                                    </dt_array>
                                </item>
                                <item key="TXT">
                                    <dt_array>
                                        <item key="0">
                                            <dt_assoc>
                                                <item key="subdomain">mail</item>
                                                <item key="text">v=spf1
                                                    exists:example.com -all</item>
                                            </dt_assoc>
                                        </item>
                                    </dt_array>
                                </item>
                                <item key="AAAA">
                                    <dt_array>
                                        <item key="0">
                                            <dt_assoc>
                                                <item key="subdomain">itportal</item>
                                                <item key="ipv6_address">2001:00ab:0000:00a1:0001:000b:00cc:00de</item>
                                            </dt_assoc>
                                        </item>
                                    </dt_array>
                                </item>
                                <item key="SRV">
                                    <dt_array>
                                        <item key="0">
                                            <dt_assoc>
                                                <item key="subdomain">itcontrol</item>
                                                <item key="hostname">control.example.com</item>
                                                <item key="port">443</item>
                                                <item key="priority">10</item>
                                                <item key="weight">1</item>
                                            </dt_assoc>
                                        </item>
                                    </dt_array>
                                </item>
                            </dt_assoc>
                        </item>
                    </dt_assoc>
                </item>
            </dt_assoc>
        </data_block>
    </body>
</OPS_envelope>

Response

<?xml version='1.0' encoding="UTF-8" standalone="no"?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
    <header>
        <version>0.9</version>
    </header>
    <body>
        <data_block>
            <dt_assoc>
                <item key="protocol">XCP</item>
                <item key="action">REPLY</item>
                <item key="object">DOMAIN</item>
                <item key="response_text">Command Successful</item>
                <item key="response_code">200</item>
                <item key="is_success">1</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="records">
                            <dt_assoc>
                                <item key="A">
                                    <dt_array>
                                        <item key="0">
                                            <dt_assoc>
                                                <item key="subdomain"></item>
                                                <item key="ip_address">123.123.123.2</item>
                                            </dt_assoc>
                                        </item>
                                        <item key="1">
                                            <dt_assoc>
                                                <item key="subdomain">*</item>
                                                <item key="ip_address">123.123.123.3</item>
                                            </dt_assoc>
                                        </item>
                                        <item key="2">
                                            <dt_assoc>
                                                <item key="subdomain">www</item>
                                                <item key="ip_address">123.123.123.4</item>
                                            </dt_assoc>
                                        </item>
                                    </dt_array>
                                </item>
                                <item key="MX">
                                    <dt_array>
                                        <item key="0">
                                            <dt_assoc>
                                                <item key="priority">10</item>
                                                <item key="subdomain"></item>
                                                <item key="hostname">mx.example.com.cust.test.hostedemail.com</item>
                                            </dt_assoc>
                                        </item>
                                    </dt_array>
                                </item>
                                <item key="TXT">
                                    <dt_array>
                                        <item key="0">
                                            <dt_assoc>
                                                <item key="text">v=spf1 exists:example.com -all</item>
                                                <item key="subdomain">mail</item>
                                            </dt_assoc>
                                        </item>
                                    </dt_array>
                                </item>
                                <item key="SRV">
                                    <dt_array>
                                        <item key="0">
                                            <dt_assoc>
                                                <item key="priority">10</item>
                                                <item key="weight">1</item>
                                                <item key="subdomain">itcontrol</item>
                                                <item key="hostname">control.example.com</item>
                                                <item key="port">443</item>
                                            </dt_assoc>
                                        </item>
                                    </dt_array>
                                </item>
                                <item key="CNAME">
                                    <dt_array>
                                        <item key="0">
                                            <dt_assoc>
                                                <item key="subdomain">portal</item>
                                                <item key="hostname">www.example.com</item>
                                            </dt_assoc>
                                        </item>
                                    </dt_array>
                                </item>
                                <item key="AAAA">
                                    <dt_array>
                                        <item key="0">
                                            <dt_assoc>
                                                <item key="subdomain">itportal</item>
                                                <item key="ipv6_address">2001:00ab:0000:00a1:0001:000b:00cc:00de</item>
                                            </dt_assoc>
                                        </item>
                                    </dt_array>
                                </item>
                            </dt_assoc>
                        </item>
                        <item key="nameservers_ok">1</item>
                    </dt_assoc>
                </item>
            </dt_assoc>
        </data_block>
    </body>
</OPS_envelope>

Updated less than a minute ago

set_dns_zone


Set the records for a domain's DNS zone.

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.