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

simple_transfer

Submits a request to transfer one or several domains at once. The only requirement is the domain name and corresponding authorization code. Additional optional attributes can also be configured as needed.
Once an API call has been initiated, OpenSRS will:

  • Verify the authorization code
  • Look up the WHOIS info and pre-populate the contact data
  • Send the approval email to the registrant/owner contact
  • Performance registrant verification
  • Initiate the transfer(s) using the authorization code
  • Send a single approval email per registrant for all requested transfers
    associated with that email

Note:

This command only works for domains currently registered with registrars operating on the 2013 RRA as it requires the standardized WHOIS format specificed by the 2013 RRA.
The maximum number of domains supported in a single request is 10,000. Upon successful completion, the transferred domains will have the exact same contacts as prior to the transfer. If the registrant email has been changed prior to the transfer (e.g. to direct all confirmation emails to a single source for quicker processing), the email addresses will have to be updated after the transfer is complete and will invoke the registrant verification process.

TLDs supported: .academy, .agency, .asia, .associates, .asn.au, .com.au, .id.au, .net.au, .org.au, .bar, .bargains, .best, .bid, .bike, .biz, .blackfriday, .boutique, .builders, .bz, .org.bz, .cab, .camera, .camp, .capital, .cards, .care, .careers, .cash, .cat, .catering, .cc, .center, .ceo, .cheap, .christmas, .claims, .claimsga, .claimsgathree, .cleaning, .clinic, .clothing, .co, .com.co, .net.co, .nom.co, .codes, .coffee, .com, .community, .company, .computer, .condos, .construction, .contractors, .cool, .cruises, .dance, .dating, .democrat, .dental, .diamonds, .directory, .discount, .domains, .education, .email, .engineering, .enterprises, .equipment, .estate, .events, .example, .exchange, .expert, .exposed, .fail, .farm, .fcfs, .financial, .fish, .fitness, .flights, .florist, .foundation, .fund, .furniture, .futbol, .ga, .gaclaim, .gallery, .gift, .glass, .graphics, .gripe, .guitars, .guru, .holdings, .holiday, .horse-sunrush, .house, .immobilien, .in, .co.in, .firm.in, .gen.in, .ind.in, .net.in, .org.in, .industries, .info, .ink, .institute, .international, .investments, .jetzt, .kitchen, .kiwi-claims, .land, .lease, .lighting, .limited, .limo, .link, .lrclaim, .maison, .management, .marketing, .me, .media, .mm-example, .mm-example-landrush, .mm- example-sunrise, .mobi, .multi, .net, .ninja, .nyc, .open, .org, .partners, .parts, .photo, .photography, .photos, .pics, .pictures, .plumbing, .pro, .productions, .properties, .pub, .recipes, .reisen, .rentals, .repair, .report, .rest, .reviews, .schule, .services, .sexy, .shoes, .singles, .social, .solar, .solutions, .sunrise, .sunrise-1030, .sunrise-1231, .sunrisepremium, .supplies, .supply, .support, .surgery, .systems, .tattoo, .tax, .technology, .tel, .testone, .testtwo, .tienda, .tips, .today, .tools, .town, .toys, .trade, .training, .tv, .university, .us, .vacations, .ventures, .viajes, .villas, .vision, .voyage, .watch, .webcam, .wiki, .works, .ws, .wtf, .xxx, .xyz, .zone.

Submission: Upon a valid API request, the entire simple_transfer call will proceed and only individual domain transfers will fail (for multiple transfers). The following process is initiated by the API:

  • A transfer order is created with F_BYPASS_CONFIRM and status PROCESSED until the registrant accepts/rejects the transfer.
  • A single email is sent to each registrant/owner for all associated
    domain(s).
  • A timeout of 7 days is initiated:
    • If there is no response, the transfer is NOT initiated at the registry and the registrant status is changed to COMPLETED.
    • If the response is CANCEL, all orders will be cancelled and the registrant status is changed to COMPLETED.
    • If the response is ACCEPT, all orders are set to PENDING_REGISTRY and await the normal transfer process by each registry. Once ALL domains are processed, the registrant status is changed to COMPLETE.

The following are reasons why individual transfers may subsequently fail:

  • Authorization Code: Incorrect code.
  • Transfer locks: within 60 day lock period, locked domain, etc.
  • f_bypass_transfer: TLD does NOT support the flag required for the API
    to automate the transfer process.
    Confirmation emails: Registry sends its own confirmation emails.
  • WHOIS: Data not retrievable or not parseable.
  • Registrant verification: Contact data does not pass our validation.
  • Abnormal failures: The registry‚Äôs database is down.

Request parameters for simple_transfer (domains)

Standard parameters

  • action =simple_transfer
  • object = domain attributes

Attributes

Parameters within the attributes associative array are described below.

Parameter name
Obligation
Definition/Value

domain_list

Required

Parent of domain_name and auth_info.

domain_name

Required

The domain name to be transferred.

auth_info

Required

The authorization code for the domain.

reg_domain

Optional

An existing, active domain name in OpenSRS that is owned by the registrant. Providing this parameter links the newly registered or transferred domain to the profile of the existing domain.

reg_username

Required if using reg_domain

The username of the registrant.
You can use any of the following alphanumeric characters: A-Z, a-z, 0-9.

reg_password

Required if using reg_domain

The registrant's password.

You can use any of the following alphanumeric characters and symbols: A-Z, a-z, 0-9, !
@\$^,.~|=-+_{}#"

nameserver_list

Optional

List/array of nameservers.

Mutually exclusive: can only specifiy nameserver_list OR dns_template.
Cannot use both attributes simultaneously.

dns_template

Optional

Specify the name of the DNS template that you want to use to enable DNS and assign initial DNS records, or specify blank to enable DNS without defining any records.

Note: You must enter the word blank preceded and followed by asterisks.

The template name can be a maximum of 50 characters.

If this parameter is specified, the nameservers are automatically set to the nameservers for the DNS service:

  • ns1.systemdns.com

  • ns2.systemdns.com

  • ns3.systemdns.com

Mutually exclusive: can only specifiy nameserver_list OR dns_template. Cannot use both attributes simultaneously.

Response parameters for simple_transfer (domains)

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 name
Obligation
Definition/Value

simple_transfer_job_id

Returned if is_success = true

A system-generated order ID.

Examples for simple_transfer (domains)

Request

<?xml version='1.0' encoding="UTF-8" standalone="no"?>
<OPS_envelope>
    <header>
        <version>0.9</version>
    </header>
    <body>
        <data_block>
            <dt_assoc>
                <item key="protocol">XCP</item>
                <item key="object">DOMAIN</item>
                <item key="action">SIMPLE_TRANSFER</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="domain_list">
                            <dt_array>
                                <item key="0">
                                    <dt_assoc>
                                        <item key="domain_name">newtransfer461.com</item>
                                        <item key="auth_info">@xMj%[1b</item>
                                    </dt_assoc>
                                </item>
                                <item key="1">
                                    <dt_assoc>
                                        <item key="domain_name">newtransfer462.com</item>
                                        <item key="auth_info">Mj%zA&gt;1r</item>
                                    </dt_assoc>
                                </item>
                                <item key="2">
                                    <dt_assoc>
                                        <item key="domain_name">newtransfer463.com</item>
                                        <item key="auth_info">AK4u.+5U</item>
                                    </dt_assoc>
                                </item>
                                <item key="3">
                                    <dt_assoc>
                                        <item key="domain_name">newtransfer464.com</item>
                                        <item key="auth_info">L+7Dk`3j</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"?>
<OPS_envelope>
    <header>
        <version>0.9</version>
    </header>
    <body>
        <data_block>
            <dt_assoc>
                <item key="protocol">XCP</item>
                <item key="object">DOMAIN</item>
                <item key="action">SIMPLE_TRANSFER</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="domain_list">
                            <dt_array>
                                <item key="0">
                                    <dt_assoc>
                                        <item key="domain_name">newtransfer461.com</item>
                                        <item key="auth_info">@xMj%[1b</item>
                                    </dt_assoc>
                                </item>
                                <item key="1">
                                    <dt_assoc>
                                        <item key="domain_name">newtransfer462.com</item>
                                        <item key="auth_info">Mj%zA&gt;1r</item>
                                    </dt_assoc>
                                </item>
                                <item key="2">
                                    <dt_assoc>
                                        <item key="domain_name">newtransfer463.com</item>
                                        <item key="auth_info">AK4u.+5U</item>
                                    </dt_assoc>
                                </item>
                                <item key="3">
                                    <dt_assoc>
                                        <item key="domain_name">newtransfer464.com</item>
                                        <item key="auth_info">L+7Dk`3j</item>
                                    </dt_assoc>
                                </item>
                            </dt_array>
                        </item>
                        <item key="nameserver_list">
                            <dt_array>
                                <item key="0">ns1.exampledns.com</item>
                                <item key="1">ns2.exampledns.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="object">DOMAIN</item>
                <item key="response_text">Simple transfer job successfully
                    added</item>
                <item key="action">REPLY</item>
                <item key="response_code">200</item>
                <item key="attributes">
                    <dt_assoc>
                        <item key="simple_transfer_job_id">134</item>
                    </dt_assoc>
                </item>
                <item key="is_success">1</item>
            </dt_assoc>
        </data_block>
    </body>
</OPS_envelope>

simple_transfer

Submits a request to transfer one or several domains at once. The only requirement is the domain name and corresponding authorization code. Additional optional attributes can also be configured as needed.
Once an API call has been initiated, OpenSRS will:

  • Verify the authorization code
  • Look up the WHOIS info and pre-populate the contact data
  • Send the approval email to the registrant/owner contact
  • Performance registrant verification
  • Initiate the transfer(s) using the authorization code
  • Send a single approval email per registrant for all requested transfers
    associated with that email