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 help@opensrs.com

Get Started

submit (bulk_change)

Submits a request to change information associated with a large set of domains. Can also be used to check the availability of a list of domains, renew multiple domains, or to push multiple domains to another reseller account.

You can submit the following bulk change requests with this API call: check availability, domain lock/unlock, renewals, nameserver modification, contact changes, enable/disable Parked Pages, enable WHOIS Privacy, and push domains to another reseller account. The following restrictions apply to the submit bulk_change API:

  • Up to 10,000 domains can be affected in a single request.
  • When submitting a large number of domains for a bulk change, there may be a delay of several minutes between when the request is submitted and
    when the request is visible in the RWI.
  • If the reseller has not signed the end user access contract, owner and
    admin contacts sets are not updated as part of bulk change request.
  • Up to 13 nameservers can be specified in the assign list when updating
    nameservers.
  • Before you can push domains to another reseller account, you must add
    that reseller to your allow list through the RWI. Duplicate entries are
    eliminated from the change_items list.
  • add_ns adds the nameserver to the current list while assign_ns replaces
    the current list with whatever nameservers are listed in the bulk change request.

Note:

This command must be submitted to batch.opensrs.net; submissions to the live production pool (rr-n1-tor.opensrs.net) will fail.

Request parameters for submit (bulk_change)

Standard parameters

  • action = submit
  • object = bulk_change

Attributes

Parameters within the attributes associative array are described below.

Parameter name
Obligation
Definition/Value

apply_to_all_reseller_items

Conditional, can only be used if change_items is not used.

Applies the bulk change to all domains in the reseller's account.

  • 0—Do not apply the change to all domains; instead, apply to the domains specified in the change_items parameter

    • 1—Apply to all domains in the reseller's account. If this flag is set to 1, do not specify the change_items parameter.

apply_to_locked_domains

Optional

Applies the bulk change to locked as well as unlocked domains.

Note: this parameter cannot be used for bulk renewals.

  • 0—Do not apply to locked domains; this is the default

  • 1—Apply to locked domains

change_items

Conditional, can only be used if apply_toall reseller_items is not used or equals 0.

List of domains to which to apply the bulk change. Maximum is 10,000 domains

Note: If apply_to_all_reseller_items =1, do not include this parameter.

change_type

Required

The type of bulk change to perform.

Allowed values are:

  • availability_check—Check the registry, Premium Domains, and Personal Names for the availability of a list of domains and email a CSV file containing the results to the specified email address. The file indicates whether each name is available, and for Premium Names, it also specified the price of the domain name.

Note: when this value is specified, contact_email is required.

  • dns_zone—Add,removeor reset the DNS service for multiple domains.
    Changes can be applied to all specified domains, to only domains with DNS service nameservers, or to domains that are not using DNS service nameservers. You can also change your nameservers to use the DNS service nameservers.
    If a DNS template is not specified, a blank zone is applied.

  • dns_zone_record—Add, modify, or remove DNS records (A, CNAME, etc) from zones for multiple domains.

  • domain_contacts— Change
    contact information for
    multiple domains

  • domain_forwarding—Add or remove the domain forwarding service for multiple domains.

domain_lock—Lock or unlock multiple domains.

  • domain_nameservers— Add, remove, or assign Nameservers

  • domain_parked_pages— Enable or disable Parked Pages for multiple domains

  • domain_profile – merge user profiles by moving domains

  • domain_renew—Renew multiple domains in one request

  • push_domains—Move or 'push' domains from one

Note: Before you can push domains to another reseller, you need to add that reseller to your allow list in OpenSRS.

  • storefront_managed—Move domains from OpenSRS to Storefront or from Storefront to OpenSRS.

Important: When you move domains from Storefront to OpenSRS, any services that were enabled in Storefront (for example, domain forwarding or email forwarding) will be lost.

  • whois_privacy—Enable or disable WHOIS Privacy

contact_email

Optional

Email address to which send results.

Note: If change_type = availability_check, this value is required.

For change_type = dns_zone

Attributes

Parameters within the attributes associative array are described below.

Parameter name
Obligation
Definition/Value

apply_to_domains

Required

The type of domains to which you want to add, remove or reset the DNS service.

Allowed values are:

  • using_dns_nameservers
  • not_using_dns_nameservers
  • all_selected_domains

dns_action

Required

The type of operation to perform.

Allowed values are add, remove, or reset.

dns_template

Optional

The template name. Only applies when dns_action = add or reset.

only_if

Optional

Defines conditions that must be met in order to process the command.

Only applies when the dns_action is reset or remove. The only allowed value is dns_template.

force_dns_nameservers

Optional

Determines whether to change the nameservers on the domain to ns1.systemdns.com, ns2.systemdns.com, ns3.systemdns.com

  • 0—Do not change the nameservers

  • 1—Change the nameservers

For change_type = dns_zone_record

Attributes

Parameters within the attributes associative array are described below.

Parameter name
Obligation
Definition/Value

dns_action

Required

The type of operation to perform.

Allowed values are add, remove or modify.

dns_record_type

Required

The type of DNS record that you want to edit.

Allowed values are A, AAAA, CNAME, MX, SRV, and TXT.

dns_record_data

Required only if dns_action = add or modify.

The fields that apply to the specified dns_record_type.

MUST ADD CHART

only_if

Optional. Can only be used if dns_action = modify or remove.

Defines conditions that must be met in order to process the command. For example, you could set the condition to update records only if the ip_address is 222.222.222.222.

For change_type = domain_contacts

Attributes

Parameters within the attributes associative array are described below.

Parameter name
Obligation
Definition/Value

contacts

Required

List of 1 – 4 contact sets. Each set must be a hash reference with two keys.

Values include the type and set keys

set

Required

Array of contact details.

type

type Required

Type of contact.

Allowed values are billing and tech.

For change_type = domain_forwarding

Attributes

Parameters within the attributes associative array are described below.

Parameter name
Obligation
Definition/Value

change_items

Required

The list of domains to which domain forwarding is either added or removed.

op_type

Required

The type of operation to perform. Allowed values are add or remove.

For change_type = domain_lock

(Available for .COM, .NET, .ORG, .INFO, .BIZ, .NAME, .ME, .MOBI, .ASIA, .CC, .CO, .TV, and .US.)

Attributes

Parameters within the attributes associative array are described below.

Parameter name
Obligation
Definition/Value

Definition/Value

Required

The type of operation to perform. Allowed values are lock or unlock.

For change_type = domain_nameservers

(Available for .COM, .NET, .ORG, .INFO, .BIZ, .NAME, .MOBI, .ASIA, .AT, .BE, .CA, .CC, .CH, .CN, .CO, .DE, .DK, .ES, .EU, .FR, .IT, .ME, .MX, .NL, .TV, .UK, and .US)

Attributes

Parameters within the attributes associative array are described below.

Parameter name
Parameter name
Definition/Value

add_ns

Conditional, can only be used if op_type = add_remove

Nameserver(s) to add to the current list of nameservers.

assign_ns

Conditional, can only be used if op_type = assign

List of new nameservers. Current nameservers are replaced with nameservers in the assign_ns list.

op_type

Required

The type of operation to perform.

Allowed values are add_remove or assign.

remove_ns

Conditional, can only be used if op_type = add_remove

Nameservers to remove from the current list of nameservers.

For change_type = domain_parked_pages

(Available for .COM, .NET, .ORG, .INFO, .BIZ, .MOBI, .NAME, .ASIA, .BE, .BZ, .CA, .CC, .CO, .EU, .IN, .ME, .NL, .TV, .UK, .US, .WS and .XXX)

Attributes

Parameters within the attributes associative array are described below.

Parameter name
Obligation
Definition/Value

op_type

Required

The type of operation to perform.

Allowed values are enable or disable.

For change_type = domain_profile

Attributes

Parameters within the attributes associative array are described below.

Parameter name
Obligation
Definition/Value

attach_to_domain

Required for new profile

Attaches profile to domain.

change_items

Required

The list of domains to which domain forwarding is either added or removed.

op_type

Required

The type of operation to perform.

Allowed values are new or existing.

password

Required for existing profile

Registrant password. If specified, this value will be used for the new registration; otherwise the original password will be used.

username

Required for existing profile

Registrant username. If specified, this value will be used for the new registration; otherwise the original username will be used.

For change_type = domain_renew

(Available for .COM, .NET, .ORG, .INFO, .BIZ, .NAME, .MOBI, .ASIA, .AT, .BE, .CA, .CC, .DH, .CN, .CO, .DE, .DK, .ES, .EU, .FR, .IT, .ME, .MX, .NL, .TV, .UK, and .US)

Note:

You must specify at least one of these parameters: let_expire, auto_renew, or period.

Attributes

Parameters within the attributes associative array are described below.

Parameter name
Obligation
Definition/Value

affiliate_id

Optional

The unique identifier of your reseller affiliate

auto_renew

Optional

Changes the setting of the auto renew flag for the domain. If not specified, the current setting applies.

  • 0—Disable auto-renew

  • 1—Enable auto-renew

let_expire

Optional

Changes the status of the let expire flag. If not specified, the current setting applies.

  • 0—Do not expire the domain silently

  • 1—Expire the domain silently

period

Optional

The renewal term. Valid values are 0 to 10, depending on terms allowed for the TLD. If not specified, domain is not renewed.

For change_type = push_domains

Attributes

Parameters within the attributes associative array are described below.

Parameter name
Parameter name
Definition/Value

change_items

Required

The list of domains to push to another reseller account.

gaining_reseller_username

Required

The name of the reseller that will be receiving the pushed domains.

contact_email

Optional

The email address to send the results of the request.

For change_type = storefront_managed

Attributes

Parameters within the attributes associative array are described below.

Parameter name
Obligation
Definition/Value

Definition/Value

Required

The type of operation to perform. Allowed values are

  • move_to_storefront—Move all of the specified domains from OpenSRS to Storefront

  • move_to_opensrs—Move all of the specified domains from Storefront to OpenSRS

For change_type = whois_privacy

(Available for .COM, .NET, .ORG, .INFO, .BIZ, .NAME, .MOBI, .CC, .CO, .ME, and .TV)

Attributes

Parameters within the attributes associative array are described below.

Parameter name
Obligation
Definition/Value

op_type

Required

The type of operation to perform. Allowed values are enable or disable.

Response parameters for submit (bulk_change)

Standard parameters

  • action = reply
  • object = bulk_change
  • 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 name
Obligation
Definition/Value

bulk_change_req_id

Returned if
is_success = true

An ID generated by the system.

Examples for submit (bulk_change)

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">submit</item>
                <item key="object">bulk_change</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="change_type">availability_check</item>
                        <item key="change_items">
                            <dt_array>
                                <item key="0">bulkrenewtest3.com</item>
                                <item key="1">bulkrenewtest4.com</item>
                            </dt_array>
                        </item>
                        <item key="contact_email">jdoe@example.com</item>
                    </dt_assoc>
                </item>
            </dt_assoc>
        </data_block>
    </body>
</OPS_envelope>
<?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="object">BULK_CHANGE</item>
                <item key="action">SUBMIT</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="change_type">dns_zone</item>
                        <item key="force_dns_nameservers">1</item>
                        <item key="apply_to_domains">not_using_dns_nameservers</item>
                        <item key="dns_template">template_3</item>
                        <item key="dns_action">add</item>
                        <item key="change_items">
                            <dt_array>
                                <item key="0">dnstestingthing1.com</item>
                                <item key="1">dnstestingthing2.com</item>
                            </dt_array>
                        </item>
                    </dt_assoc>
                </item>
            </dt_assoc>
        </data_block>
    </body>
</OPS_envelope>
<?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="object">BULK_CHANGE</item>
                <item key="action">SUBMIT</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="dns_record_type">cname</item>
                        <item key="change_type">dns_zone_record</item>
                        <item key="dns_action">add</item>
                        <item key="change_items">
                            <dt_array>
                                <item key="0">dnstestingthing1.com</item>
                                <item key="1">dnstestingthing2.com</item>
                            </dt_array>
                        </item>
                        <item key="dns_record_data">
                            <dt_assoc>
                                <item key="subdomain">www</item>
                                <item key="hostname">example.com</item>
                            </dt_assoc>
                        </item>
                    </dt_assoc>
                </item>
            </dt_assoc>
        </data_block>
    </body>
</OPS_envelope>
<?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="object">BULK_CHANGE</item>
                <item key="action">SUBMIT</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="change_type">dns_zone</item>
                        <item key="force_dns_nameservers">1</item>
                        <item key="apply_to_domains">using_dns_ameservers</item>
                        <item key="dns_template">template_2</item>
                        <item key="dns_action">reset</item>
                        <item key="change_items">
                            <dt_array>
                                <item key="0">dnstestingthing1.com</item>
                                <item key="1">dnstestingthing2.com</item>
                            </dt_array>
                        </item>
                    </dt_assoc>
                </item>
            </dt_assoc>
        </data_block>
    </body>
</OPS_envelope>
<?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="object">BULK_CHANGE</item>
                <item key="action">SUBMIT</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="dns_record_type">cname</item>
                        <item key="change_type">dns_zone_record</item>
                        <item key="dns_action">modify</item>
                        <item key="change_items">
                            <dt_array>
                                <item key="0">dnstestingthing1.com</item>
                                <item key="1">dnstestingthing2.com</item>
                            </dt_array>
                        </item>
                        <item key="dns_record_data">
                            <dt_assoc>
                                <item key="hostname">mydomain.com</item>
                            </dt_assoc>
                        </item>
                        <item key="only_if">
                            <dt_assoc>
                                <item key="subdomain">www</item>
                            </dt_assoc>
                        </item>
                    </dt_assoc>
                </item>
            </dt_assoc>
        </data_block>
    </body>
</OPS_envelope>
<?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="object">BULK_CHANGE</item>
                <item key="action">SUBMIT</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="dns_record_type">cname</item>
                        <item key="change_type">dns_zone_record</item>
                        <item key="dns_action">remove</item>
                        <item key="change_items">
                            <dt_array>
                                <item key="0">dnstestingthing1.com</item>
                                <item key="1">dnstestingthing2.com</item>
                            </dt_array>
                        </item>
                    </dt_assoc>
                </item>
            </dt_assoc>
        </data_block>
    </body>
</OPS_envelope>
<?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="object">BULK_CHANGE</item>
                <item key="action">SUBMIT</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="change_type">domain_forwarding</item>
                        <item key="op_type">add</item>
                        <item key="change_items">
                            <dt_array>
                                <item key="0">examplething1.com</item>
                                <item key="1">examplething2.com</item>
                            </dt_array>
                        </item>
                    </dt_assoc>
                </item>
            </dt_assoc>
        </data_block>
    </body>
</OPS_envelope>
<?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">submit</item>
                <item key="object">bulk_change</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="change_type">domain_lock</item>
                        <item key="change_items">
                            <dt_array>
                                <item key="0">example.com</item>
                                <item key="1">example.info</item>
                            </dt_array>
                        </item>
                        <item key="op_type">lock</item>
                        <item key="contact_email">jdoe@example.com</item>
                    </dt_assoc>
                </item>
            </dt_assoc>
        </data_block>
    </body>
</OPS_envelope>
<?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">submit</item>
                <item key="object">bulk_change</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="change_type">domain_nameservers</item>
                        <item key="change_items">
                            <dt_array>
                                <item key="0">example.com</item>
                                <item key="1">example.info</item>
                            </dt_array>
                        </item>
                        <item key="assign_ns">
                            <dt_array>
                                <item key="0">ns1.domain.com</item>
                                <item key="1">ns2.domain.com</item>
                                <item key="2">ns3.domain.com</item>
                            </dt_array>
                        </item>
                        <item key="op_type">assign</item>
                        <item key="apply_to_locked_domains">1</item>
                        <item key="contact_email">jdoe@example.com</item>
                    </dt_assoc>
                </item>
            </dt_assoc>
        </data_block>
    </body>
</OPS_envelope>
<?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">submit</item>
                <item key="object">bulk_change</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="change_type">domain_contacts</item>
                        <item key="apply_to_locked_domains">0</item>
                        <item key="change_items">
                            <dt_array>
                                <item key="0">example.com</item>
                                <item key="1">example.info</item>
                            </dt_array>
                        </item>
                        <item key="contacts">
                            <dt_array>
                                <item key="0">
                                    <dt_assoc>
                                        <item key="type">billing</item>
                                        <item key="set">
                                            <dt_assoc>
                                                <item key="first_name">John</item>
                                                <item key="last_name">Doe</item>
                                                <item key="address3" />
                                                <item key="fax" />
                                            </dt_assoc>
                                        </item>
                                    </dt_assoc>
                                </item>
                                <item key="1">
                                    <dt_assoc>
                                        <item key="type">tech</item>
                                        <item key="set">
                                            <dt_assoc>
                                                <item key="first_name">Mark</item>
                                                <item key="last_name">Doe</item>
                                                <item key="address1">123 Main
                                                    St.</item>
                                            </dt_assoc>
                                        </item>
                                    </dt_assoc>
                                </item>
                            </dt_array>
                        </item>
                    </dt_assoc>
                </item>
            </dt_assoc>
        </data_block>
    </body>
</OPS_envelope>
<?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">submit</item>
                <item key="object">bulk_change</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="change_items">
                            <dt_array>
                                <item key="0">example.com</item>
                                <item key="1">example.info</item>
                            </dt_array>
                        </item>
                        <item key="contact_email">jdoe@example.com</item>
                        <item key="change_type">domain_parked_pages</item>
                        <item key="op_type">enable</item>
                    </dt_assoc>
                </item>
            </dt_assoc>
        </data_block>
    </body>
</OPS_envelope>
<?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="object">BULK_CHANGE</item>
                <item key="action">SUBMIT</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="change_type">domain_profile</item>
                        <item key="attach_to_domain">abc.com</item>
                        <item key="op_type">existing</item>
                        <item key="change_items">
                            <dt_array>
                                <item key="0">abcdefg.com</item>
                                <item key="1">hijklmn.com</item>
                            </dt_array>
                        </item>
                    </dt_assoc>
                </item>
            </dt_assoc>
        </data_block>
    </body>
</OPS_envelope>
<?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">submit</item>
                <item key="object">bulk_change</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="change_type">domain_renew</item>
                        <item key="change_items">
                            <dt_array>
                                <item key="0">example1.com</item>
                                <item key="1">example2.com</item>
                            </dt_array>
                        </item>
                        <item key="affiliate_id">myaffiliate</item>
                        <item key="let_expire">0</item>
                        <item key="period">2</item>
                        <item key="auto_renew">0</item>
                        <item key="contact_email">jdoe@example.com</item>
                    </dt_assoc>
                </item>
            </dt_assoc>
        </data_block>
    </body>
</OPS_envelope>
<?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">submit</item>
                <item key="object">bulk_change</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="change_items">
                            <dt_array>
                                <item key="0">example.com</item>
                                <item key="1">example.info</item>
                            </dt_array>
                        </item>
                        <item key="contact_email">jdoe@example.com</item>
                        <item key="change_type">whois_privacy</item>
                        <item key="op_type">enable</item>
                    </dt_assoc>
                </item>
            </dt_assoc>
        </data_block>
    </body>
</OPS_envelope>
<?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">submit</item>
                <item key="object">bulk_change</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="change_type">push_domains</item>
                        <item key="change_items">
                            <dt_array>
                                <item key="0">bulkrenewtest3.com</item>
                                <item key="1">bulkrenewtest4.com</item>
                            </dt_array>
                        </item>
                        <item key="gaining_reseller_username">orange</item>
                        <item key="contact_email">jdoe@example.com</item>
                    </dt_assoc>
                </item>
            </dt_assoc>
        </data_block>
    </body>
</OPS_envelope>
<?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">submit</item>
                <item key="object">bulk_change</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="change_type">storefront_managed</item>
                        <item key="op_type">move_to_storefront</item>
                        <item key="contact_email">jdoe@example.com</item>
                        <item key="change_items">
                            <dt_array>
                                <item key="0">comcompliance2.com</item>
                                <item key="1">comcompliance3.com</item>
                            </dt_array>
                        </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">bulk_change</item>
                <item key="response_text">Command successfully submitted for processing</item>
                <item key="is_success">1</item>
                <item key="bulk_change_req_id">168</item>
                <item key="response_code">200</item>
            </dt_assoc>
        </data_block>
    </body>
</OPS_envelope>

submit (bulk_change)

Submits a request to change information associated with a large set of domains. Can also be used to check the availability of a list of domains, renew multiple domains, or to push multiple domains to another reseller account.

You can submit the following bulk change requests with this API call: check availability, domain lock/unlock, renewals, nameserver modification, contact changes, enable/disable Parked Pages, enable WHOIS Privacy, and push domains to another reseller account. The following restrictions apply to the submit bulk_change API:

  • Up to 10,000 domains can be affected in a single request.
  • When submitting a large number of domains for a bulk change, there may be a delay of several minutes between when the request is submitted and
    when the request is visible in the RWI.
  • If the reseller has not signed the end user access contract, owner and
    admin contacts sets are not updated as part of bulk change request.
  • Up to 13 nameservers can be specified in the assign list when updating
    nameservers.
  • Before you can push domains to another reseller account, you must add
    that reseller to your allow list through the RWI. Duplicate entries are
    eliminated from the change_items list.
  • add_ns adds the nameserver to the current list while assign_ns replaces
    the current list with whatever nameservers are listed in the bulk change request.