You are on page 1of 728

API Specification for XML

February 3, 2014

Table of Contents
Introduction.......................................................................................12
Purpose..........................................................................................12
Audience.........................................................................................12
Using HTTPS Post ...............................................................................12
Connection Information.....................................................................13
MD5 authentication........................................................................13
Construction of the POST Data...........................................................13
Response Messages..........................................................................13
Troubleshooting HTTPS Post..............................................................15
Contact Set........................................................................................16
Examples for contact set...................................................................17
Domain contacts..............................................................................19
Default contact requirements..........................................................25
EPP contact requirements...............................................................26
.BE owner and tech contact requirements.........................................27
.CA owner, admin, and tech contact requirements.............................28
.DE admin contact requirements......................................................29
.DE owner contact requirements......................................................30
.DE zone and tech contact requirements...........................................31
.ES postal codes............................................................................32
.EU owner and tech contact requirements.........................................33
.IT contact requirements................................................................34
.MX contact requirements...............................................................36
.PRO contact requirements.............................................................37
.UK transfer-no change-admin contact requirements..........................37
.UK contact requirements...............................................................38
TLD Data........................................................................................39
.AERO registrant_extra_info............................................................39
.ASIA ced_info..............................................................................40
.AU au_registrant_info...................................................................41
.CL, .HU, and .CO.HU registrant_extra_info.......................................45
.COM.AR, .PT, and .COM.PT registrant_extra_info..............................45
.COM.BR tld_data..........................................................................46
.COOP registrant_extra_info...........................................................47
.DE registrant_extra_info...............................................................47
.DK registrant_extra_info...............................................................48
.FI. MY, and .SG registrant_extra_info..............................................48
.FR registrant_extra_info................................................................49
.HK registrant_extra_info...............................................................51
.IT it_registrant_info......................................................................51
.JOBS registrant_extra_info............................................................54
.LV and .COM.LV registrant_extra_info.............................................55
.MX, .COM.MX, and .CO.ZA registrant_extra_info...............................56
.NO registrant_extra_info...............................................................56

Table of Contents
.PM, .RE, .TF, .WF, and .YT registrant_extra_info...............................57
.PRO professional_data..................................................................58
.RO, and .COM.RO registrant_extra_info...........................................59
.RU registrant_extra_info...............................................................60
.SE and .NU registrant_extra_info....................................................61
.US nexus....................................................................................62
.XXX ipr_data...............................................................................63
Lookup Commands..............................................................................65
belongs_to_rsp................................................................................66
Request parameters for belongs_to_rsp............................................66
Response parameters for belongs_to_rsp..........................................66
Examples for belongs_to_rsp..........................................................67
cira_email_pwd................................................................................70
Request parameters for cira_email_pwd...........................................70
Response parameters for cira_email_pwd.........................................70
Examples for cira_email_pwd..........................................................71
get_balance....................................................................................73
Request parameters for get_balance................................................73
Response parameters for get_balance..............................................73
Examples for get_balance...............................................................74
get_ca_blocker_list..........................................................................76
Request parameters for get_ca_blocker_list......................................76
Response parameters for get_ca_blocker_list....................................77
Examples for get_ca_blocker_list.....................................................78
get_deleted_domains........................................................................81
Request parameters for get_deleted_domains...................................81
Response parameters for get_deleted_domains.................................83
Examples for get_deleted_domains..................................................84
get (domain)...................................................................................87
Request parameters for get (domain)...............................................87
Response parameters for get (domain).............................................90
Get domain examples....................................................................99
For type = admin or tech...........................................................99
For type = all_info..................................................................104
For type = ca_whois_display_setting.........................................117
For type = domain_auth_info...................................................118
For type = expire_action.........................................................120
For type = forwarding_email....................................................122
For type = list........................................................................124
For type = nameservers..........................................................126
For type = owner, admin, billing, or tech...................................128
For type = rsp_whois_info.......................................................130
For type = status....................................................................132
For type = tld_data.................................................................134
For type = waiting history........................................................145
For type = whois_privacy_state................................................147
get_domains_contacts....................................................................150
Request parameters for get_domains_contacts................................150
3

Table of Contents
Response parameters for get_domains_contacts..............................150
Examples for get_domains_contacts...............................................151
get_domains_by_expiredate............................................................154
Request parameters for get_domains_by_expiredate........................154
Response parameters for get_domains_by_expiredate......................155
Examples for get_domains_by_expiredate.......................................156
get_notes......................................................................................159
Request parameters for get_notes.................................................159
Response parameters for get_notes...............................................160
Examples for get_notes................................................................160
get_order_info...............................................................................163
Request parameters for get_order_info...........................................163
Response parameters for get_order_info.........................................163
Examples for get_order_info.........................................................168
get_orders_by_domain...................................................................192
Request parameters for get_orders_by_domain...............................192
Response parameters for get_orders_by_domain.............................193
Examples for get_orders_by_domain..............................................194
get_price.......................................................................................197
Request parameters for get_price..................................................197
Response parameters for get_price................................................198
Examples for get_price.................................................................198
get_registrant_verification_status.....................................................200
Request parameters for get_registrant_verification_status................200
Response parameters for get_registrant_verification_status..............200
Examples for get_registrant_verification_status...............................202
lookup (domain).............................................................................204
Request parameters for lookup (domain)........................................204
Response parameters for lookup (domain)......................................205
Examples for lookup (domain).......................................................206
name_suggest (domain)..................................................................209
Request parameters for name_suggest (domain).............................209
Response parameters for name_suggest (domain)...........................214
Examples for name_suggest (domain)............................................217
Provisioning Commands.....................................................................252
activate (domain)...........................................................................253
Request parameters for activate (domain)......................................253
Response parameters for activate (domain)....................................253
Examples for activate (domain).....................................................254
cancel_active_process (.CA order)....................................................256
Request parameters for cancel_active_process................................256
Response parameters for cancel_active_process..............................257
Examples for cancel_active_process...............................................257
cancel_pending_orders....................................................................259
Request parameters for cancel_pending_orders...............................259
Response parameters for cancel_pending_orders.............................259
Examples for cancel_pending_orders..............................................260

Table of Contents
modify (domain)............................................................................263
Request parameters for modify (domain)........................................263
For data = ca_whois_display_setting.........................................266
For data = change_ips_tag......................................................266
For data = cira_registrant........................................................267
For data = contact_info...........................................................269
For data = domain_auth_info...................................................270
For data = expire_action.........................................................270
For data = forwarding_email....................................................271
For data = parkpage_state......................................................271
For data = rsp_whois_info.......................................................272
For data = status....................................................................273
For data = uk_whois_opt.........................................................273
For data = whois_privacy_state................................................274
Response parameters for modify (domain)......................................274
Modify (domain) Examples............................................................276
For data = ca_whois_display_setting.........................................276
For data = change_ips_tag......................................................277
For data = cira_registrant........................................................278
For data = contact_info...........................................................280
For data = domain_auth_info...................................................288
For data = expire_action.........................................................290
For data = forwarding_email....................................................291
For data = parkpage_state......................................................293
For data = rsp_whois_info.......................................................294
For data = status....................................................................295
For data = uk_whois_opt.........................................................297
For data = whois_privacy_state................................................298
For tld_data = au_registrant_info (.AU).....................................300
For tld_data = ced_info (.ASIA)................................................301
For tld_data = ipr_data (.XXX).................................................305
For tld_data = it_registrant_info (.IT).......................................307
For tld_data = nexus (.US)......................................................309
For tld_data =professional_data (.PRO).....................................312
For tld_data = registrant_extra_info (.COOP).............................314
For tld_data = registrant_extra_info (.JOBS)..............................315
For tld_data = registrant_extra_info (.RU).................................317
process_pending............................................................................319
Request parameters for process_pending........................................319
Response parameters for process_pending......................................320
Examples for process_pending.......................................................320
query_queued_request....................................................................323
Request parameters for query_queued_request...............................323
Response parameters for query_queued_request.............................323
Examples for query_queued_request..............................................324
redeem (domain)...........................................................................326
Request parameters for redeem domain.........................................326
Response parameters for redeem domain.......................................326

Table of Contents
Examples for redeem domain........................................................327
renew (domain).............................................................................329
Request parameters for renew (domain).........................................329
Response parameters for renew (domain).......................................330
Examples for renew (domain)........................................................332
revoke (domain)............................................................................334
Request parameters for revoke (domain)........................................334
Response parameters for revoke (domain)......................................335
Examples for revoke (domain).......................................................335
send_CIRA_approval_email.............................................................338
Request parameters for send_CIRA_approval_email.........................338
Response parameters for send_CIRA_approval_email.......................339
Examples for send_CIRA_approval_email........................................339
send_registrant_verification_email....................................................341
Request parameters for send_registrant_verification_email...............341
Response parameters for send_registrant_verification_email.............341
Examples for send_registrant_verification_email..............................342
sw_register (domain)......................................................................344
Request parameters for sw_register (domain).................................344
Nameserver pair.....................................................................350
.BE registrations and transfers.................................................352
.CA registrations.....................................................................353
.EU registrations and transfers.................................................355
.IT registrations and transfers..................................................357
.MOBI registrations.................................................................359
.NAME registrations................................................................359
Response parameters for sw_register (domain)...............................359
Domain registration examples.......................................................361
For domain = .COM, .NET, .ORG, .INFO, .BIZ, .NAME, .ME, and .MOBI
............................................................................................361
For domain = .AERO...............................................................368
For domain = .ASIA................................................................371
For domain = .AU...................................................................374
For domain = .CA...................................................................377
For domain = .COM.BR............................................................380
For domain = .DE...................................................................382
For domain = .DK...................................................................385
For domain = .EU...................................................................388
For domain = .FR...................................................................390
For domain = .HU...................................................................393
For domain = .INFO................................................................397
For domain = .IT....................................................................399
For domain = .JOBS................................................................407
For domain = .NAME...............................................................411
For domain = .PM, .RE, .TF, .WF, or .YT.....................................413
For domain = .PRO.................................................................417
For domain = .US...................................................................420
For domain = .XXX.................................................................423

Table of Contents
For domain = new gTLD during sunrise period............................429
Domain Transfer Examples............................................................436
For domain = .AU...................................................................438
For domain = .CA...................................................................441
For domain = .DE...................................................................443
For domain = .EU or .BE..........................................................445
For domain = .IT....................................................................448
Examples for WHOIS Privacy....................................................451
update_contacts.............................................................................453
Request parameters for update_contacts........................................453
Response parameters for update_contacts......................................454
Examples for update_contacts.......................................................455
Personal Names Service.....................................................................458
name_suggest (surname)................................................................459
Request parameters for name_suggest (surname)...........................459
Response parameters for name_suggest (surname).........................460
Examples for name_suggest (surname)..........................................461
su_register....................................................................................465
Request parameters for su_register................................................465
Response parameters for su_register..............................................466
Examples for su_register..............................................................467
query (surname)............................................................................477
Request parameters for query (surname)........................................477
Response parameters for query (surname)......................................478
Examples for query (surname)......................................................479
update (surname)..........................................................................482
Request parameters for update surname.........................................482
Response parameters for update surname......................................484
Examples for update surname.......................................................484
delete (surname)............................................................................490
Request parameters for delete (surname).......................................490
Response parameters for delete (surname).....................................490
Examples for delete (surname)......................................................491
Transfer Commands..........................................................................493
cancel_transfer..............................................................................494
Request parameters for cancel_transfer..........................................494
Response parameters for cancel_transfer........................................494
Examples for cancel_transfer.........................................................495
check_transfer...............................................................................497
Request parameters for check_transfer...........................................497
Response parameters for check_transfer.........................................498
Examples for check_transfer.........................................................500
get_transfers_away........................................................................502
Request parameters for get_transfers_away....................................502
Response parameters for get_transfers_away..................................504
Examples for get_transfers_away..................................................506

Table of Contents
get_transfers_in.............................................................................509
Request parameters for get_transfers_in........................................509
Response parameters for get_transfers_in......................................511
Examples for get_transfers_in.......................................................514
process_transfer............................................................................517
Request parameters for process_transfer........................................517
Response parameters for process_transfer......................................517
Examples for process_transfer.......................................................518
rsp2rsp_push_transfer....................................................................521
Request parameters for rsp2rsp_push_transfer................................521
Response parameters for rsp2rsp_push_transfer..............................522
Examples for rsp2rsp_push_transfer..............................................522
send_password (transfer)................................................................525
Request parameters for send_password (transfer)...........................525
Response parameters for send_password (transfer).........................525
Examples for send_password (transfer)..........................................526
trade_domain................................................................................528
Request parameters for trade_domain............................................528
Response parameters for trade_domain..........................................529
Examples for trade_domain...........................................................529
Bulk Changes Commands...................................................................537
bulk_transfer.................................................................................538
Request parameters for bulk_transfer (domains)..............................538
Response parameters for bulk_transfer (domains)............................539
Examples for bulk_transfer (domains)............................................540
submit (bulk_change).....................................................................544
Request parameters for submit (bulk_change).................................545
Response parameters for submit (bulk_change)...............................552
Examples for submit (bulk_change)...............................................553
submit_bulk_change (WHOIS Privacy)...............................................570
Request parameters for submit_bulk_change..................................570
Response parameters for submit_bulk_change................................571
Examples for submit_bulk_change.................................................571
Nameserver Commands.....................................................................573
advanced_update_nameservers.......................................................574
Request parameters for advanced_update_nameservers...................574
Response parameters for advanced_update_nameservers.................575
Examples for advanced_update_nameservers..................................575
create (nameserver).......................................................................579
Request parameters for create (nameserver)...................................579
Response parameters for create (nameserver).................................580
Examples for create (nameserver).................................................580
delete (nameserver).......................................................................588
Request parameters for delete (nameserver)...................................588
Response parameters for delete (nameserver).................................589
Examples for delete (nameserver).................................................589

Table of Contents
get (nameserver)...........................................................................593
Request parameters for get (nameserver).......................................593
Response parameters for get (nameserver).....................................593
Examples for get (nameserver)......................................................595
modify (nameserver)......................................................................600
Request parameters for modify (nameserver)..................................600
Response parameters for modify (nameserver)................................601
Examples for modify (nameserver).................................................601
registry_add_ns.............................................................................605
Request parameters for registry_add_ns.........................................605
Response parameters for registry_add_ns.......................................606
Examples for registry_add_ns.......................................................607
registry_check_nameserver.............................................................610
Request parameters for registry_check_nameserver.........................610
Response parameters for registry_check_nameserver.......................611
Examples for registry_check_nameserver.......................................611
DNS Zone Commands........................................................................615
create_dns_zone............................................................................616
Request parameters for create_dns_zone........................................616
Response parameters for create_dns_zone......................................618
Examples for create_dns_zone......................................................621
delete_dns_zone............................................................................626
Request parameters for delete_dns_zone........................................626
Response parameters for delete_dns_zone......................................626
Examples for delete_dns_zone......................................................627
force_dns_nameservers..................................................................629
Request parameters for force_dns_nameservers..............................629
Response parameters for force_dns_nameservers............................629
Examples for force_dns_nameservers.............................................630
get_dns_zone................................................................................632
Request parameters for get_dns_zone............................................632
Response parameters for get_dns_zone..........................................632
Examples for get_dns_zone..........................................................635
reset_dns_zone..............................................................................638
Request parameters for reset_dns_zone.........................................638
Response parameters for reset_dns_zone.......................................638
Examples for reset_dns_zone........................................................641
set_dns_zone................................................................................647
Request parameters for set_dns_zone............................................647
Response parameters for set_dns_zone..........................................650
Examples for set_dns_zone...........................................................652
Domain Forwarding Commands...........................................................659
create_domain_forwarding..............................................................660
Request parameters for create_domain_forwarding..........................660
Response parameters for create_domain_forwarding........................660
Examples for create_domain_forwarding.........................................661

Table of Contents
delete_domain_forwarding...............................................................663
Request parameters for delete_domain_forwarding..........................663
Response parameters for delete_domain_forwarding........................663
Examples for delete_domain_forwarding.........................................664
get_domain_forwarding...................................................................666
Request parameters for get_domain_forwarding..............................666
Response parameters for get_domain_forwarding............................666
Examples for get_domain_forwarding.............................................667
set_domain_forwarding...................................................................670
Request parameters for set_domain_forwarding..............................670
Response parameters for set_domain_forwarding............................672
Examples for set_domain_forwarding.............................................672
User Commands................................................................................674
add (subuser)................................................................................675
Request parameters for add (subuser)............................................675
Response parameters for add (subuser)..........................................676
Examples for add (subuser)..........................................................676
delete (subuser).............................................................................678
Request parameters for delete (subuser)........................................678
Response parameters for delete (subuser)......................................678
Examples for delete (subuser).......................................................679
get (subuser).................................................................................681
Request parameters for get (subuser)............................................681
Response parameters for get (subuser)..........................................681
Examples for get (subuser)...........................................................682
get (userinfo)................................................................................684
Request parameters for get (userinfo)............................................684
Response parameters for get (userinfo)..........................................684
Examples for get (userinfo)...........................................................687
modify (subuser)............................................................................690
Request parameters for modify (subuser).......................................690
Response parameters for modify (subuser).....................................691
Examples for modify (subuser)......................................................691
Authentication Commands..................................................................693
change (ownership)........................................................................694
Request parameters for change (ownership)....................................694
Response parameters for change (ownership)..................................695
Examples for change (ownership)..................................................695
change (password).........................................................................697
Request parameters for change (password).....................................697
Response parameters for change (password)...................................697
Examples for change (password)...................................................698
send_authcode...............................................................................700
Request parameters for send_authcode..........................................700
Response parameters for send_authcode........................................700
Examples for send_authcode.........................................................701

10

Table of Contents
send_password (domain).................................................................703
Request parameters for send_password (domain)............................703
Response parameters for send_password (domain)..........................704
Examples for send_password (domain)...........................................704
Cookie/Session Commands.................................................................706
delete (cookie)...............................................................................707
Request parameters for delete (cookie)..........................................707
Response parameters for delete (cookie)........................................707
Examples for delete (cookie).........................................................708
quit (session).................................................................................710
Request parameters for quit (session)............................................710
Response parameters for quit (session)..........................................710
Examples for quit (session)...........................................................710
set (cookie)...................................................................................712
Request parameters for set (cookie)...............................................712
Response parameters for set (cookie).............................................712
Examples for set (cookie).............................................................714
update (cookie)..............................................................................717
Request parameters for update (cookie).........................................717
Response parameters for update (cookie).......................................717
Examples for update (cookie)........................................................718
Appendix A: Special Considerations for Asynchronous Registries..............721
Appendix B: Customizing the Transfer Approval URL..............................722
Regular transfers.........................................................................722
Bulk transfers.............................................................................723
Transfers away............................................................................724
Revisions and Updates.......................................................................726

11

Introduction
Welcome to the API guide for the registration and management of domain
names and domain related services. This document is intended for Resellers
who offer domains and supporting services to their customers.
Using this document, you can provide functionality to your customers by
integrating the API commands into your website that can send XML requests
over HTTPS Post. You can also use the API commands to run queries or
automate tasks you would otherwise perform manually using the Domain
Name Control Panel.

Purpose
The method of sending commands using HTTPS Post supports communication
between a client process and the system. This document describes how to
formulate the XML commands and how to use HTTPS Post to send the XML
commands.
Using this document as a reference, you can use any programming language
to write an implementation that supports this communication. If you are
writing your own implementation, please refer to the "Design Considerations"
section.
The process for executing commands consists of formulating the command in
XML and sending it via HTTPS Post. The basic method for creating the XML is
covered by this document, with language-specific methods covered in the
Appendix.
The protocol assumes that the client process that is requesting an action
waits for a result from the server process in response to the requested
action. The protocol does not support session tracking.

Audience
This document assumes that you are familiar with XML document design and
the methods for sending data via HTTPS Post. Examples are provided
throughout this document; however, familiarity with these two chapters will
increase your understanding of the information provided.

Using HTTPS Post


The server supports SSL encryption and handles XML posts from authorized
Resellers. The server:

Applies IP address authentication to all HTTPS Post requests.


Authenticates the user by verifying the username and MD5 signature
of the XML, signed using the Resellers private key (generated in the
RWI) in the request header.
12

Connection Information
Live production environment
Server: rr-n1-tor.opensrs.net/
Port: 55443

MD5 authentication
The MD5 Signature provides the authentication required. The process
involves two steps:

Obtain an MD5 signature of the XML Content and the Private Key.
Note: The XML and the Private Key are concatenated.

Perform another MD5 of the signature from Step 1 with the Private
Key.
Note: The MD5 Signature from Step 1 and the Private key are
concatenated.

See "Writing Your Own Client" for examples of adding an MD5 Signature and
creating the XML packet.

Construction of the POST Data


The header for the POST data should have the following format. The items in
italics should be replaced by the user- and command-specific information.
POST / HTTP/1.0
Content-Type: text/xml
X-Username: OpenSRS Username
X-Signature: MD5 Signature
Content-Length: Length of XML Document

Following this header should be one blank line followed by the XML document
that contains the command data. The header combined with the XML makes
up the packet that is sent to execute your command. This packet is what is
sent to the server and port listed above, depending on your environment, to
execute the command.
For more information regarding the transmission of data over HTTPS, refer to
this document: http://www.ietf.org/rfc/rfc2616.txt

Response Messages
The process returns a response message to a client in answer to an action
that was executed on its behalf. Responses contain data appropriate for the
action that was executed. In some cases, this may be simple strings; in other
13

cases, this may be lists of information. This response is returned in the form
of an XML document.

Common fields
There are a few common fields that all responses share, regardless of the
action to which they are responding. The following fields comprise a standard
response message. Some actions only use standard response messages.
Parameter
name

Definition/Value

protocol

The protocol that is being used (XCP).

action

In the case of responses, this is always REPLY.

response_code

Response code (meaning is action-specific).

response_text

Response text (meaning is action-specific).

is_success

Indicates whether the command was successful. Returns 0 if not


successful and 1 if the action was successful.

Optional fields
In addition, the structure may contain the following fields, depending on the
specific action that was requested.
Parameter
name

Definition/Value

attributes

A hash that contains any specific parameters or attributes to be


sent along with the action request.

14

Troubleshooting HTTPS Post


401 Authentication Error

Check that you are using the correct Private Key for the right system
Horizon or Production.
Check that you have the correct RSP username.
Check that the IP address of the machine transmitting the data to the
server is in your list of allowed IP addresses in the Reseller Web
Interface.

If the above checks are correct, the problem is with the MD5:
Ensure that you have concatenated the XML content and the Private
Key.
Ensure that you have performed an MD5 twice. See the MD5 section
for more information.
Ensure that your HTTP Post implementation is not adding any extra
information. Some implementations of HTTP Post add a NULL to the
end of the HTTP Request. This is reflected in the MD5 and causes an
authentication error.
If you are still not connecting properly, check the result of the MD5
Hash:
Some MD5 algorithms put the MD5 hash in uppercase. Make sure that
the result is in lowercase before sending it.
Some MD5 algorithms need to convert the string to bytes before
generating the hash. Make sure this is done properly. You can test
your script by performing an MD5 on the following text:
Text:
ConnecttoOpenSRSviaSSL
MD5 Result:

e787cc1d1951dfec4827cede7b1a0933

Invalid XML Response


Make sure you are sending the XML. The XML used in the MD5 is only for
authentication purposes. You must also send the XML as part of the content
header.

15

Contact Set
Rather than including the entire contact set in every command example in
this guide, where it is required, contact details are listed in a separate topic.
Every command that requires contact details contains an ellipsis (...) that
links to the topic where the contact_set parameter is defined.

Example
This example shows a portion of the sw_register command with a link to the
contact_set example.
<?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="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="auto_renew"/>
<item key="link_domains">0</item>
<item key="custom_tech_contact">0</item>
<item key="contact_set">
... see "Contact Set"
</item>
...

16

Examples for contact set


...
<item key='contact_set'>
<dt_assoc>
<item key="owner">
<dt_assoc>
<item key="first_name">Owen</item>
<item key="last_name">Ottway</item>
<item key="phone">+1.4165550123x1902</item>
<item key="fax">+1.4165550124</item>
<item key="email">ottway@example.com</item>
<item key="org_name">Example Inc.</item>
<item key="address1">32 Oak Street</item>
<item key="address2">Suite 500</item>
<item key="address3">Owner</item>
<item key="city">SomeCity</item>
<item key="state">CA</item>
<item key="country">US</item>
<item key="postal_code">90210</item>
</dt_assoc>
</item>
<item key="admin">
<dt_assoc>
<item key="first_name">Adler</item>
<item key="last_name">Adams</item>
<item key="phone">+1.4165550123x1812</item>
<item key="fax">+1.4165550125</item>
<item key="email">adams@example.com</item>
<item key="org_name">Example Inc.</item>
<item key="address1">32 Oak Street</item>
<item key="address2">Suite 100</item>
<item key="address3">Admin</item>
<item key="city">Santa Clara</item>

17

<item key="state">CA</item>
<item key="country">US</item>
<item key="postal_code">90210</item>
</dt_assoc>
</item>
<item key="billing">
<dt_assoc>
<item key="first_name">Bill</item>
<item key="last_name">Burton</item>
<item key="phone">+1.4165550123x1248</item>
<item key="fax">+1.4165550136</item>
<item key="email">burton@example.com</item>
<item key="org_name">Example Inc.</item>
<item key="address1">32 Oak Street</item>
<item key="address2">Suite 200</item>
<item key="address3">Billing</item>
<item key="city">Santa Clara</item>
<item key="state">CA</item>
<item key="country">US</item>
<item key="postal_code">90210</item>
</dt_assoc>
</item>
<item key="tech">
<dt_assoc>
<item key="first_name">Tim</item>
<item key="last_name">Tucker</item>
<item key="phone">+1.4165550123x1243</item>
<item key="fax">+1.4165550125</item>
<item key="email">tucker@example.com</item>
<item key="org_name">Example Inc.</item>
<item key="address1">32 Oak Street</item>
<item key="address2">Suite 100</item>
<item key="address3">Tech</item>
<item key="city">Santa Clara</item>

18

<item key="state">CA</item>
<item key="country">US</item>
<item key="postal_code">90210</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
...

Domain contacts
The following tables list the contacts that are required for each gTLD and
ccTLD.
gTld

Owner

Admin

Billing

Tech

.aero
.asia
.biz
.coop
.com
.info
.jobs
.mobi
.name
.net
.org
.pro
.tel
.xxx

ccTld

Owner

Admin

Billing

Tech

.ac

19

ccTld

Owner

Admin

Billing

Tech

.ae
.af (.af,
.com.af,
.net.ag, .org.af)
.ag (.ag, .co.ag,
.com.ag,
.net.ag,
.nom.ag, .org.ag)
.ai (.com.ai,
.net,ai, .off.ai,
.org.ai)
.am
.ar (.com.ar)
.as
.at
.au (.asn.au,
.com.au,
.net.au, .id.au,
.org.au)
.be
.br (.com.br)
.bz
.ca
.cc
.cd
.ch
.cl
.cm
.co.cm
.com.cm
.net.cm
.co (.co, .com.co,
.net.co, .nom.co)
.cx

20

ccTld

Owner

Admin

Billing

Tech

.cz
.de
.dk
.ec (.ec,
.com.ec, .fin.ec,
.info.ec,
.med.ec,
.net.ec, .pro.ec)
.es (.es,
.com.es,
.nom.es, .org.es)
.eu
.fi
.fm
.fr
.gd
.gg (.gg,
.co.gg, .net.gg,
.org.gg)
.gl (.gl, .co.gl,
.com.gl, .net.gl,
.org.gl)
.gr (.com.gr,
.edu.gr, .net.gr,
.org.gr)
.gs
.gy (.gy,
.co.gy,
.com.gy, .net.gy)
.hk
.hm
.hn (.hn, .com.hn,
.net.hn, .org.hn)
.hr (.com.hr)
.ht (.ht, .com.ht,
.info.ht,

21

ccTld

Owner

Admin

Billing

Tech

.net.ht, .org,ht)
.hu (.hu, .co.hu)
.il (.co.il)
.im (.im, .co.im,
.com.im,
.net.im, .org.im)
.in (.in, .co.in,
.firm.in, .gen.in,
.ind.in, .net.in,
.org.in)
.io
.is
.it
.je (.je, .co.je)
.jp
.kg
.ki (.biz.ki,
.com.ki,
.info.ki,
.mobi.ki,
.net.ki, .tel.ki)
.kr
.co.kr
.la
.lc (.lc, .co.lc,
.com.lc, .l.lc,
.net.lc, .org.lc,
.p.lc)
.li
.lt
.lu
.lv

22

ccTld

Owner

Admin

Billing

Tech

.com.lv
.ly (.ly, .com.ly)
.ma
.co.ma
.md
.me
.mn
.ms
.mu
.mx (.mx,
.com.mx)
.my (.my,
.com.my,
.net.my, .org.my)
.nl
.no
.nu
.nz (.co.nz,
.net.nz, .org.nz)
.pe (.pe,
.com.pe, .net.pe)
ph (.ph, .com.ph,
.net.ph, .org.ph)
.pl (.pl, .biz.pl
.com.pl, .edu.pl,
.info.pl, .net.pl,
.nom.pl, .org.pl,
.shop.pl, .waw.pl)
.pm
.pr (.com.pr)

23

ccTld

Owner

Admin

Billing

Tech

.pt (.pt, .com.pt)


.pw
.qa
.re
.ro (.ro, .com.ro)
.ru (.ru, .com.ru)
.sb (.com.sb,
.net.sb, .org.sb)
.sc
.com.sc
.net.sc
.org.sc
.se
.sg
.sh
.si
.so (.so, .com.so,
.net.so, .org.so)
.sr
.st
.sx
.tc
.tf
.tk
.tl
.tm

24

ccTld

Owner

Admin

Billing

Tech

.to
.tv
.tw (.tw, .com.tw,
.org.tw, idv.tw)
.ua (.com.ua)
.uk (.co.uk,
.ltd.uk, .me.uk,
.net.uk,
.org.uk, .plc.uk)
.us
.uy (.com.uy)
.vc (.vc, .com.vc,
.net.vc, .org.vc)
.ve (.co.ve,
.com.ve)
.vg
.wf
.ws
.yt
.za (.co.za)

Default contact requirements


Note: Fields cannot contain leading or trailing white-spaces.

Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum 64 alphanumeric characters.

last_name

Required

Maximum 64 alphanumeric characters.

org_name

Required

Maximum 64 alphanumeric characters.

address1

Required

Maximum 100 alphanumeric characters.

address2

Optional

Maximum 100 alphanumeric characters.

25

Parameter
name

Obligation

Format/Constraints

address3

Optional

Maximum 100 alphanumeric characters.

city

Required

Maximum 64 alphanumeric characters.

state

Required if
Maximum 32 alphanumeric characters.
country =
.CA, .US, or .ES

postal_code

Required if
country = CA or
US

Maximum 32 alphanumeric characters.

country

Required

2 letter ISO country code.

phone

Required

Maximum 20 characters, in the format


+CCC.NNNNNNNNNNxEEEE, where C = country
code, N = phone number, and E = extension
(optional).

fax

Optional

Maximum 20 alphanumeric characters.

email

Required

Maximum 255 alphanumeric characters, validated


according to rfc822.

Note: For .NL, ensure that the postal code does


not include any spaces.

EPP contact requirements


Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum 64 alphanumeric characters.

last_name

Required

Maximum 63 alphanumeric characters.

org_name

Required

Maximum 64 alphanumeric characters.

address1

Required

Maximum 64 alphanumeric characters.

address2

Optional

Maximum 64 alphanumeric characters.

address3

Optional

Maximum 64 alphanumeric characters.

city

Required

Maximum 64 alphanumeric characters.

state

Required if
Maximum 32 alphanumeric characters.
country = CA or
US

postal_code

Required if
Maximum 16 alphanumeric characters.
country = CA or Note: For .NL, ensure that the postal code does
US
not include any spaces.

country

Required

2 letter ISO country code.


Note: Change UK or IM to GB.

26

Parameter
name

Obligation

Format/Constraints

phone

Required

Maximum 20 alphanumeric characters, syntax


verified according to EPP.

fax

Optional

Maximum 20 alphanumeric characters, in the


format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E =
extension (optional).

email

Required

Maximum 64 characters to left of and 63


characters right of "@" sign, alphanumeric
characters, validated according to rfc822.

.BE owner and tech contact requirements


Two contacts are required for .BE domains: 'owner' and 'tech'. If you submit
other contact types, they are ignored.
Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum length: 64 alphanumeric characters.

last_name

Required

Maximum length: 64 alphanumeric characters.

org_name

Required

Maximum length: 64 alphanumeric characters.

address1

Required

Maximum length: 100 alphanumeric characters.

address2

Optional

Maximum length: 100 alphanumeric characters.

address3

Optional

Maximum length: 100 alphanumeric characters.

city

Required

Maximum length: 64 alphanumeric characters.

state

Required if
Maximum length: 32 alphanumeric characters.
country = CA or
US

postal_code

Required if
Maximum length: 20 alphanumeric characters.
country = CA or
US

country

Required

Maximum length: 2 alphanumeric characters.

phone

Required

Maximum length: 20 alphanumeric characters, in the


format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E = extension
(optional).

fax

Optional

Maximum length: 20 alphanumeric characters,


syntax verified according to EPP.

27

Parameter
name

Obligation

Format/Constraints

email

Required

Maximum length: 255 alphanumeric characters,


validated according to rfc822.

lang

Required

Maximum length: 2 alpha characters, must be one of


designated languages for .BE (see the language list
for .BE).

vat

Optional

Valid Value-Added Tax registration number of the


contact.

.CA owner, admin, and tech contact requirements


Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum length: 64 alphanumeric characters.

last_name

Required

Maximum length: 64 alphanumeric characters.

org_name

Optional for
individuals

Maximum length: 64 alphanumeric characters.

address1

Optional

Maximum length: 100 alphanumeric characters.

address2

Optional

Maximum length: 100 alphanumeric characters.

address3

Optional

Maximum length: 100 alphanumeric characters.

city

Required for
admin and
tech; optional
for owner

Maximum length: 64 alphanumeric characters.

state

Required for
admin and
tech; optional
for owner

A valid 2 letter code for the Canadian province.


Alberta = AB
British Columbia = BC
Manitoba = MB
New Brunswick = NB
Newfoundland and Labrador = NL
Northwest Territories = NT
Nova Scotia = NS
Nunavut = NU
Ontario = ON
Prince Edward Island = PE
Quebec = QC
Saskatchewan = SK

28

Parameter
name

Obligation

Format/Constraints
Yukon = YT

postal_code

Required for
admin and
tech; optional
for owner

Maximum length: 32 alphanumeric characters.

country

Required for
admin and
tech; optional
for owner

Maximum length: 2 alphanumeric characters

phone

Required for
admin and
tech; optional
for owner

Maximum length: 20 alphanumeric characters, in the


format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E = extension
(optional).

fax

Optional

Maximum length: 20 alphanumeric characters.

email

Required for
admin and
tech; optional
for owner

Maximum length: 255 alphanumeric characters,


validated according to rfc822.

lang

Required

The contact's preferred language. The default is


English.
Allowed values are:
EN = English
FR = French

.DE admin contact requirements


Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum length: 64 alphanumeric characters.

last_name

Required

Maximum length: 64 alphanumeric characters.

org_name

Required

Maximum length: 64 alphanumeric characters.

address1

Required

Maximum length: 100 alphanumeric characters.

address2

Optional

Maximum length: 100 alphanumeric characters.

address3

Optional

Maximum length: 100 alphanumeric characters.

city

Required

Maximum length: 64 alphanumeric characters.

state

Required if
country = CA

Maximum length: 32 alphanumeric characters.

29

Parameter
name

Obligation

Format/Constraints

or US
postal_code

Required if
country = CA
or US

Maximum length: 20 alphanumeric characters.

country

Required

Maximum length: 2 alphanumeric characters.

phone

Required

Maximum length: 20 alphanumeric characters, in the


format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E = extension
(optional).

fax

Optional

Maximum length: 20 alphanumeric characters, if not


null syntax verified according to EPP.

email

Required

Maximum length: 255 alphanumeric characters,


validated according to rfc822.

Additional rules
SUM (org_name address1 address2 address3) not to exceed 255 characters.

.DE owner contact requirements


Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum length: 64 alphanumeric characters.

last_name

Required

Maximum length: 64 alphanumeric characters.

org_name

Required

Maximum length: 64 alphanumeric characters.

address1

Required

Maximum length: 100 alphanumeric characters.

address2

Optional

Maximum length: 100 alphanumeric characters.

address3

Optional

Maximum length: 100 alphanumeric characters.

city

Required

Maximum length: 64 alphanumeric characters.

state

Required if
Maximum length: 32 alphanumeric characters.
country = CA or
US

postal_code

Required if
Maximum length: 20 alphanumeric characters.
country = CA or
US

country

Required

Maximum length: 2 alphanumeric characters.

30

Parameter
name

Obligation

Format/Constraints

phone

Required

Maximum length: 20 alphanumeric characters, in the


format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E = extension
(optional).

fax

Optional

Maximum length: 20 alphanumeric characters, if not


null syntax verified according to EPP.

email

Required

Maximum length: 255 alphanumeric characters,


validated according to rfc822.

Additional rules
SUM (first_name last_name address1 address2 address3 postal_code city)
must not exceed 248 characters.
SUM (org_name address1 address2 address3) not to exceed 255 characters.

.DE zone and tech contact requirements


Note: Submit .DE zone contact information as contact type billing.

Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum length: 64 alphanumeric characters.

last_name

Required

Maximum length: 64 alphanumeric characters.

org_name

Required

Maximum length: 64 alphanumeric characters.

address1

Required

Maximum length: 100 alphanumeric characters.

address2

Optional

Maximum length: 100 alphanumeric characters.

address3

Optional

Maximum length: 100 alphanumeric characters.

city

Required

Maximum length: 64 alphanumeric characters.

state

Required if
Maximum length: 32 alphanumeric characters.
country = CA or
US

postal_code

Required if
Maximum length: 20 alphanumeric characters.
country = CA or
US

country

Required

Maximum length: 2 alphanumeric characters.

phone

Required

Maximum length: 20 alphanumeric characters, in the


format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E = extension
(optional).

31

Parameter
name

Obligation

Format/Constraints

fax

Required

Maximum length: 20 alphanumeric characters, if not


null syntax verified according to EPP.

email

Required

Maximum length: 255 alphanumeric characters,


validated according to rfc822.

Additional rules
SUM(org_name address1 address2 address3) not to exceed 255 characters.

.ES postal codes


When registering a .ES name, the postal code must correspond to the
province for each of the contacts. Refer to the chart below for the two digit
postal code prefix that applies to each province.
Postal code
prefix

Province

Postal code
prefix

Province

01

Araba

27

Lugo

02

Albacete

28

Madrid

03

Alicante

29

Malaga

04

Almeria

30

Murcia

05

Avila

31

Navarra

06

Badajoz

32

Ourense

07

Illes Balears

33

Asturias

08

Barcelona

34

Palencia

09

Burgos

35

Palmas, Las

10

Caceres

36

Pontevedra

11

Cadiz

37

Salamanca

12

Castellon

38

Santa Cruz de Tenerife

13

Ciudad Real

39

Cantabria

14

Cordoba

40

Segovia

15

Corua, A

41

Sevilla

16

Cuenca

42

Soria

32

Postal code
prefix

Province

Postal code
prefix

Province

17

Girona

43

Tarragona

18

Granada

44

Teruel

19

Guadalajara

45

Toledo

20

Gipuzkoa

46

Valencia

21

Huelva

47

Valladolid

22

Huesca

48

Bizkaia

23

Jaen

49

Zamora

24

Leon

50

Zaragoza

25

Lleida

51

Ceuta

26

Rioja, La

52

Melilla

.EU owner and tech contact requirements


Only two contacts are accepted for .EU domains: 'owner' and 'tech'. If you
submit other contact types, they are ignored.
Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum length: 64 alphanumeric characters.

last_name

Required

Maximum length: 64 alphanumeric characters.

org_name

Required

Maximum length: 64 alphanumeric characters.

address1

Required

Maximum length: 100 alphanumeric characters.

address2

Optional

Maximum length: 100 alphanumeric characters.

address3

Optional

Maximum length: 100 alphanumeric characters.

city

Required

Maximum length: 64 alphanumeric characters.

state

Optional

Maximum length: 32 alphanumeric characters.

postal_code

Optional

Maximum length: 20 alphanumeric characters.

country

Required

Maximum length: 2 alphanumeric characters, for


owner contact the country must be one of the
designated countries for .EU (see the country list
for .EU).

phone

Required

Maximum length: 15 alphanumeric characters, in the

33

Parameter
name

Obligation

Format/Constraints
format +CCC.NNNNNNNNNN, where C = country
code and N = phone number.

fax

Optional

Maximum length: 20 alphanumeric characters, if not


null syntax verified according to EPP.

email

Required

Maximum length: 255 alphanumeric characters,


validated according to rfc822.

lang

Required

Maximum length: 2 alpha characters, must be one of


designated languages for .EU (see the language list
for .EU).

vat

Optional

Valid Value-Added Tax registration number of the


requesting contact.

.IT contact requirements


Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum length: 64 alphanumeric characters.

last_name

Required

Maximum length: 64 alphanumeric characters.

org_name

Required if
Maximum length: 64 alphanumeric characters.
entity_type is
not 1

address1

Required

Maximum length: 100 alphanumeric characters.

address2

Optional

Maximum length: 100 alphanumeric characters.

address3

Optional

Maximum length: 100 alphanumeric characters.

city

Required

Maximum length: 64 alphanumeric characters.

state

Required

Maximum length: 32 alphanumeric characters.


If country = IT, province must be a valid Italian
province. (See
http://en.wikipedia.org/wiki/ISO_3166-2:IT ).

postal_code

Required

Maximum length: 16 alphanumeric characters.


If country = IT, postal_code must be a valid
Italian postal code. (See
http://en.wikipedia.org/wiki/List_of_postal_codes_i
n_Italy)

34

Parameter
name

Obligation

Format/Constraints

country

Required

The ISO 3166-1 country code for the owner


contact. Maximum length: 2 alphanumeric
characters. (See nationality_code for
requirements.)
Note: Be sure to use capital letters.

phone

Required

Maximum length: 20 alphanumeric characters, in


the format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E =
extension (optional).

fax

Optional

Maximum length: 20 alphanumeric characters, if


not null syntax verified according to EPP.

email

Required

Maximum length: 100 alphanumeric characters,


validated according to rfc822.

entity_type

Required

A numeric entry that indicates the type of domain


owner.
Valid values are:

nationality_
code

Optional

1Italian and foreign natural persons

2Companies/one man companies

3Freelance workers/professionals

4Non-profit organizations

5Public organizations

6Other subjects

7Foreigners who match 2-6

The ISO 3166-1 code for the nationality of the


domain owner. Maximum length: 2 alphanumeric
characters.
If entity_type = 1, nationality or owner's country
or both must be an EU country.
If entity_type = 2-6, this value must be IT.
If entity_type = 7, this value must match owner's
country and must be an EU country other than IT.
Note: Be sure to use capital letters.

reg_code

Required

An identifying number, usually the VAT or Codice


Fiscale (numeric tax code). The value that you need
to enter depends on the entity type of the
registrant.

Italian citizens must enter their Codice

35

Parameter
name

Obligation

Format/Constraints
Fiscale.

Non Italians not living in Italy can enter n.a.

Italian companies, freelancers, and other


subjects must enter their 11 digit VAT
number or tax indentification number.

Italian non-profit organizations must enter


their VAT number or tax identification
number; however, if they do not have
one,they can enter n.a.

Non Italian entities other than persons


(organizations, freelancers, companies, etc.)
may enter their VAT number or n.a.

.MX contact requirements


Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum 64 alphanumeric characters.

last_name

Required

Maximum 64 alphanumeric characters.

org_name

Required

Maximum 64 alphanumeric characters.

address1

Required

Maximum 64 alphanumeric characters.

address2

Optional

Maximum 64 alphanumeric characters.

address3

Optional

Maximum 64 alphanumeric characters.

city

Required

Maximum 64 alphanumeric characters.

state/province Required if
country = CA,
MX, or US

A valid 2 letter code for the state or province

postal_code

Required

Maximum 16 alphanumeric characters.

country

Required

2 letter ISO country code.

phone

Required

Maximum 20 alphanumeric characters, syntax


verified according to EPP.

36

Parameter
name

Obligation

Format/Constraints

fax

Optional

Maximum 20 alphanumeric characters, in the


format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E =
extension (optional).

email

Required

Maximum 64 characters to left of and 63


characters right of "@" sign, alphanumeric
characters, validated according to rfc822.

.PRO contact requirements


The PRO registry does not support extensions in phone and fax numbers. If
you include an extension in the number, for example,
+1.4165550123x1234, the string will be accepted, but the registry drops the
extension part of the number and the resulting number becomes
+1.4165550123.

.UK transfer-no change-admin contact


requirements
Note: The admin contact information is only used by OpenSRS, and the
information is not forwarded to the .UK registry.

Parameter
name

Obligation

Format/Constraints

first_name

Optional

Maximum length: 64 alphanumeric characters.

last_name

Optional

Maximum length: 64 alphanumeric characters.

org_name

Optional

Maximum length: 64 alphanumeric characters.

address1

Optional

Maximum length: 100 alphanumeric characters.

address2

Optional

Maximum length: 100 alphanumeric characters.

address3

Optional

Maximum length: 100 alphanumeric characters.

city

Optional

Maximum length: 64 alphanumeric characters.

state

Optional

Maximum length: 32 alphanumeric characters.

postal_code

Optional

Maximum length: 32 alphanumeric characters.

country

Optional

Maximum length: 2 alphanumeric characters.

phone

Optional

Maximum length: 20 alphanumeric characters, in


the format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E =
extension (optional), 7 bit ASCII only.

37

Parameter
name

Obligation

Format/Constraints

fax

Optional

Maximum length: 20 alphanumeric characters.

email

Required

Maximum length: 255 alphanumeric characters,


validated according to rfc822.

.UK contact requirements


Note: Technical contact information is not required or accepted for .UK.

Parameter
name

Obligation

Format/Constraints

first_name

Required

Maximum length: 64 alphanumeric characters.

last_name

Required

Maximum length: 64 alphanumeric characters.

org_name

Optional

Maximum length: 64 alphanumeric characters.

address1

Required

Maximum length: 100 alphanumeric characters.

address2

Optional

Maximum length: 100 alphanumeric characters.

address3

Optional

Maximum length: 100 alphanumeric characters.

city

Required

Maximum length: 64 alphanumeric characters.

state

Required if
Maximum length: 32 alphanumeric characters.
country = CA or
US

postal_code

Required if
Maximum length: 32 alphanumeric characters.
country = CA or
US

country

Required

Maximum length: 2 alphanumeric characters.

phone

Required

Maximum length: 20 alphanumeric characters, in


the format +CCC.NNNNNNNNNNxEEEE, where C =
country code, N = phone number, and E =
extension (optional).

fax

Optional

Maximum length: 20 alphanumeric characters.

email

Required

Maximum length: 255 alphanumeric characters,


validated according to rfc822.

38

TLD Data
The tld_data associative array contains that contains additional information
that is required by some registries, such as the residency of the registrant.
For instance, .ASIA domains require Charter Eligibility Declaration (CED)
information to demonstrate that at least one of the contacts is a member of
the .ASIA community, and this information is provided within the tld_data
associative array, under ced_info.
The allowed values for tld_data are:

au_registrant_infoEligibility requirements for .AU registrants.


br_register_numberLegal Brazilian identifier.
ced_infoCharter Eligibility Declaration (CED) information for .ASIA

domains.
ipr_dataSponsored Community information associated with .XXX
domains.
it_registrant_infoRegional presence requirements for .IT domains.
nexusAmerican presence requirements for .US domains.
professional_dataThe professional designation information that is
associated with the .PRO domain.
registrant_extra_infoAdditional parameters that are required by
various domain registries. See below for specific requirements for each
TLD.
The tld_data information is used by the following commands: sw_register,
modify domain, get domain, get_order_info, and trade domain (.FR only).

.AERO registrant_extra_info
Registration of .AERO domains is restricted to members of the aviation
community such as airlines, airports, and qualifying companies and
individuals.
To prove that they meet the requirements, registrants must provide an
Eligibility and Name Selection (ENS) ID and password, which can be obtained
by applying to the registry through this site:
http://www.nic.aero/registration/manage_your_aero_id.
Parameters within the registrant_extra_info associative array are described
below.
Parameter name Definition/Value

sw_register
(request)

aero_ens_id

Eligibility and Name Selection (ENS)


identifier

Required

aero_ens_password

Eligibility and Name Selection (ENS)

Required

39

password

.ASIA ced_info
The ced_info associative array contains Charter Eligibility Declaration (CED)
information to satisfy regional presence requirements of the .ASIA registry,
including the stated purpose of the domain, the category of the registrant
and the country code validator.
Parameters within the ced_info associative array are described below.
Parameter Definition/Value
name

sw_
register
(request)

modify
domain
(request)

get
get_order
domain
_info
(response) (response)

contact_
type

Required

Required

Always
returned

Always
returned

The contact that is the


designated CED Contact.
Allowed values are owner,
admin, tech, or billing.

id_number

Identification number or
code of reference for the
specified id_type, for
example, a passport
number.

Required

Required

Always
returned

Always
returned

id_type

The type of ID used to


validate the CED
information.

Required

Required

Always
returned

Always
returned

id_type_info A description of the id type; Required if


the maximum number of
id_type =
characters allowed is 255. other

Required if
id_type =
other

Returned if
id_type =
other

Returned if
id_type =
other

legal_entity The legal entity type of the Required


_type
CED.

Required

Always
returned

Always
returned

Allowed values are


passport, certificate (of
Incorporation or business
registration), legislation
(act, decree or legislation
chartering the formation of
an entity),
societyRegistry,
politicalPartyRegistry, or
other.
Note: If you specify
other, you must also
submit the id_type_info
parameter.

Allowed values are

40

Parameter Definition/Value
name

sw_
register
(request)

modify
domain
(request)

get
get_order
domain
_info
(response) (response)

legal_entity_ A description of the legal


type_info
entity type; the maximum
number of characters
allowed is 255.

Required if
legal_
entity_
type = other

Required if
legal_entity
_
type =
other

Returned if
legal_entity
_type =
other

locality_city The city where the CED


contact resides.

Optional

Optional

Returned if Returned if
submitted
submitted
in the order in the order

locality_
country

County code from the list of Required


qualifying countries. For a
definition of the
geographical boundaries of
the Asia/Australia/Pacific
region, see
http://www.icann.org/mont
real/geo-regions-topic.htm

Required

Always
returned

locality_
state_prov

The state or province


where the CED contact
resides.

Optional

Returned if Returned if
submitted
submitted
in the order in the order

naturalPerson,
corporation,
cooperative,
partnership,
government,
politicalParty, society,
institution, or other.

Note: If you specify other,


you must also submit the
legal_entity_type_info
parameter.

Optional

Returned if
legal_entity
_type =
other

Always
returned

.AU au_registrant_info
The au_registrant_info associative array contains information about specific
requirements that registrants of .AU domains must meet.
Parameters within the au_registrant_info associative array are described
below.

41

Parameter Definition/Value
name

sw_
register
(request)

modify
domain
(request)

get
get_order
domain
_info
(response) (response)

eligibility_id The identifier of the


eligibility document. Only
required if it is different
from the registrant's own
corresponding ID, for
example, when the
registrant is using a
registered business name or
trademark to make
themselves eligible for the
domain name.

Required
for
.COM.AU
and
.NET.AU

Optional

Always
returned

Returned if
submitted
in the order

eligibility_id The Eligibility ID type.


_type
Allowed values are:

Required
for
.COM.AU
and
.NET.AU

Optional

Always
returned

Returned if
submitted
in the order

ACNAustralian
Company Number

ABNAustralian
Business Number

VIC BNVictoria
Business Number

NSW BNNew
South Wales
Business Number

SA BNSouth
Australia Business
Number

NT BNNorthern
Territory Business
Number

WA BNWestern
Australia Business
Number

TAS BNTasmania
Business Number

ACT BNAustralian
Capital Territory
Business Number

QLD BN
Queensland Business
Number

TM

OTHER

42

Parameter Definition/Value
name

sw_
register
(request)

modify
domain
(request)

get
get_order
domain
_info
(response) (response)

eligibility_
name

The name on the eligibility


ID document. Enter the
name of the registrant
eligible to register the
domain.

Optional

Optional

Returned if Returned if
submitted
submitted
in the order in the order

eligibility_
type

The reason that the


Required
registrant is eligible for the
domain name. The
eligibility_type must
correspond to the
eligibility_name. For
example, if the registrant is
using their company name
to register the domain, then
their eligibility_type is
Company. If they are using
their Registered Business
Name to register the
domain, then their
eligibility_type is
Registered Business,
even if they are also a
company.

Required

Always
returned

Always
returned

Allowed values are:

Charity

Child Care Centre

Citizen/Resident

Club

Commercial
Statutory Body

Company

Government
School

Higher Education
Institution

Incorporated
Association

Industry Body

National Body

Non-Government
School

43

Parameter Definition/Value
name

Non-profit
Organisation

Other

Partnership

Pending TM Owner

Political Party

Pre-school

Registered
Business

Religious/Church
Group

Research
Organisation

Sole Trader

Trade Union

Trademark Owner

Training
Organisation

sw_
register
(request)

modify
domain
(request)

get
get_order
domain
_info
(response) (response)

registrant_
id

The identifier of the


registrant (for example, the
business or trade license
number).

Required if Optional
registrant
_
id_type =
ACN or
ABN

Always
returned

Always
returned

registrant_
id_type

The Registrant ID type.

Required

Required

Always
returned

Always
returned

The legal entity such as a


Required
company, incorporated
association, government
agency or individual person.
Cannot be a registered
business name or
trademark.

Required

Always
returned

Always
returned

registrant
name

Allowed values are:

ACNAustralian
Company Number

ABNAustralian
Business Number

OTHER

44

.CL, .HU, and .CO.HU registrant_extra_info


The registrant_extra_info associative array contains information to satisfy
requirements of the .CL, and .HU registries.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_
name
Value
register
(request)

trade
domain
(request)

get domain get_order_


(response) info
(response)

id_card_
number

The number of
the
individual's
identity card.

Required
when
registrant_
type =
individual

Required
when
registrant_
type =
individual

Returned if
is_success
= true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

registrant_
type

The entity
type of
registrant.

Required

Required

Returned if
is_success
= true

Returned if
is_success =
true

Required
when
registrant_
type =
organization

Required
when
registrant_
type =
organization

Returned if
Returned if
is_success is_success =
= true and
true and
registrant_ registrant_
type =
type =
organization organization

Allowed values
are
individual or
organization.
registrant_
vat_id

Value Added
Tax
registration
number.

.COM.AR, .PT, and .COM.PT registrant_extra_info


The registrant_extra_info associative array contains information to satisfy
requirements of the .AR and .PT registries.

45

Paramete Definition/ sw_


r name
Value
register
(request)

trade
domain
(request)

get domain get_order


(response) _
info
(response)

id_card_
number

Required when
registrant_
type =
individual

Required
when
registrant_
type =
individual

Returned if
is_success
= true

Returned if
is_success
= true and
registrant_
type =
individual

Required

Required

Returned if
is_success
= true

Returned if
is_success
= true

Required

Required

Returned if
is_success
= true

Returned if
is_success
= true

The number of
the
individual's
identity card.

registrant_ The entity


type of
type
registrant.
Allowed values
are individual
or
organization.
tax_number The number
used for tax
purposes.

.COM.BR tld_data
The tld_data associative array contains information contains information to
satisfy requirements of the .BR registry.
Parameters within the tld_data associative array are described below.
Parameter Definition/Value
name

sw_
register
(request)

br_register_ The Brazilian legal identifier.


Required
number
For organizations, this is the
SNPJ (Business
Identifier/Cadastro Nacional de
Pessoa Juridica)

get
get_order_
domain
info
(response) (response)
Returned if Returned if
is_success is_success
= true
= true

For individuals, this is the CPF


(Individual Tax
Number/Cadastro de Pessoa
Fisica)

46

.COOP registrant_extra_info
Registration of .COOP domains is restricted to cooperatives and related
organizations. The registrant_extra_info associative array contains
information to satisfy requirements of the .COOP registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/
name
Value

coop_
verification_
code

sw_
register
(request)

The coop
Required
verification code
(CVC) is issued
by dotCoop, and
proves that the
registrant is
eligible to
register the
domain name.

modify
domain
(request)

get
get_order
domain
_
(response) info
(response)

Required

Returned if Returned if
is_success is_success
= true
= true

.DE registrant_extra_info
The registrant_extra_info associative array contains information to satisfy
requirements of the .DE registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/
name
Value

sw_
register
(request)

get domain
(response)

get_order_
info
(response)

registrant_
type

Required

Returned if
is_success =
true

Returned if
is_success =
true

The entity
type of
registrant.
Allowed values
are individual
or
organization

47

.DK registrant_extra_info
The registrant_extra_info associative array contains information to satisfy
requirements of the .DK registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_
name
Value
register
(request)

trade
domain
(request)

get domain get_order_


(response) info
(response)

registrant_
type

Required

Required

Returned if
Returned if
is_success = is_success =
true
true

Required
when
registrant_
type =
organization

Required
when
registrant_
type =
organization

Returned if
is_success =
true and
type =
organization

The entity
type of
registrant.
Allowed
values are
individual or
organization
.

registrant_
vat_id

Value Added
Tax
registration
number.

Returned if
is_success =
true and type
=
organization

.FI. MY, and .SG registrant_extra_info


The registrant_extra_info associative array contains information to satisfy
requirements of the .FI, .MY, and .SG registries.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_
name
Value
register
(request)

trade
domain
(request)

get domain get_order_


(response) info
(response)

id_card_
number

The number
of the
individual's
identity card.

Required
when
registrant_
type =
individual

Required
when
registrant_
type =
individual

Returned if
is_success
= true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

registrant_
type

The entity
type of

Required

Required

Returned if
is_success

Returned if
is_success =

48

Parameter Definition/ sw_


name
Value
register
(request)

trade
domain
(request)

registrant.

get domain get_order_


(response) info
(response)
= true

true

Returned if
is_success
= true and
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

Allowed
values are
individual or
organization
.
registration_ The business Required
number
number of the when
organization. registrant_
type =
organization

Required
when
registrant_
type =
organization

.FR registrant_extra_info
.FR domains are available to any individuals and organizations located in the
European Union, Switzerland, Norway, Iceland, or Liechtenstein. Individuals
must reside within one of the qualifying countries; organizations must have
their registered or main office located in a qualifying country; therefore,
when registering or transferring .FR domains, you must provide additional
residency information.
Parameters within the registrant_extra_info associative array are described
below.
Paramete Definition/Value
r name

sw_
register
(request)

trade
domain
(request)

get_order_
info
(response)

country_of
_birth

The two-letter
ISO3166 code for the
country in which the
registrant was born.

Required
when
registrant_
type =
individual

Required
when
registrant_
type =
individual

Returned when
registrant_
type =
individual

date_of_
birth

The registrant's date


of birth in the format
YYYY-MM-DD.

Required
when
registrant_
type =
individual

Required
when
registrant_
type =
individual

Returned when
registrant_
type =
individual

49

Paramete Definition/Value
r name

sw_
register
(request)

trade
domain
(request)

get_order_
info
(response)

place_of_
birth

The city in which the


individual was born.

Required
when
registrant_
type =
individual
and country_
of_birth =
FR

Required
when
registrant_
type =
individual

Returned when
registrant_
type =
individual

postal_
code_of_
birth

The postal code of the


registrant's place of
birth.

Required
when
registrant_
type =
individual
and country_
of_birth =
FR

Required
when
registrant_
type =
individual

Returned when
registrant_
type =
individual

Required

Required

Always
returned

registrant_ The Value Added Tax


vat_id
(VAT) number of the
organization.

Optional, but
recommended
for
organizations
located in
France

Optional, but Returned if


recommended submitted in
for
the order
organizations
located in
France

siren_siret

Optional, but
recommended
for
organizations
located in
France

Optional, but Returned if


recommended submitted in
for
the order
organizations
located in
France

trademark_ The organization's


Optional, but
number
trademark registration recommended
number, if applicable. for
organizations
located in
France

Optional, but Returned if


recommended submitted in
for
the order
organizations
located in
France

registrant_ The entity type of


type
registrant.
Allowed values are
individual and
organization.

The 9 digit SIREN code


or the 14 digit SIRET
code that is used to
identify the business
for tax reasons.

50

.HK registrant_extra_info
The registrant_extra_info associative array contains information to satisfy
requirements of the .HK registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_
name
Value
register
(request)

trade
domain
(request)

get domain
(response)

get_order_
info
(response)

date_of_
birth

The
registrant's
date of birth in
the format
YYYY-MM-DD.

Required when
registrant_
type =
individual

Required when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

id_card_
number

The number of
the
individual's
identity card.

Required when
registrant_
type =
individual

Required when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

registrant_
type

The entity
type of
registrant.

Required

Required

Returned if
Returned if
is_success = is_success =
true
true

Required when
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

Allowed values
are individual
and
organization.
registration_ The business Required when
number
number of the registrant_
organization. type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

.IT it_registrant_info
The it_registrant_info associative array contains information to satisfy the
regional presence requirements of the .IT registry.
Parameters within the it_registrant _info associative array are described
below.

51

Parameter
name

Definition/Value sw_
register
(request)

get domain get_order_i


(response)
nfo
(response)

entity_type

The legal entity type Required


of registrant.

Always
returned

Always
returned

Returned if
submitted in
order

Returned if
submitted in
order

Allowed values are:

nationality_
code

1Italian
and foreign
natural
persons

2
Companies/o
ne man
companies

3Freelance
workers/prof
essionals

4Non-profit
organizations

5Public
organizations

6Other
subjects

7Foreigners
who match 26

The 2-digit ISO


3166-1 code that
identifies the
Registrant's
nationality.

Optional

If entity_type = 1,
nationality or
owner's country or
both must be an EU
country.
If entity_type = 26, this value must
be IT.
If entity_type = 7,
this value must
match owner's
country and must be
an EU country other

52

Parameter
name

Definition/Value sw_
register
(request)

get domain get_order_i


(response)
nfo
(response)

than IT.

Note: Be sure to
use capital letters.
reg_code

An identifying
number, usually the
VAT or Codice
Fiscale (numeric tax
code). The value
that you need to
enter depends on
the entity type of
the registrant.

Italian
citizens must
enter their
Codice
Fiscale.

Non Italians
not living in
Italy can
enter n.a.

Italian
companies,
freelancers,
and other
subjects must
enter their 11
digit VAT
number or
tax
identification
number.

Italian nonprofit
organizations
must enter
their VAT
number or
tax
identification
number;
however, if
they do not
have

Required

Always
returned

Always
returned

53

Parameter
name

Definition/Value sw_
register
(request)

get domain get_order_i


(response)
nfo
(response)

one,they can
enter n.a.

Non Italian
entities other
than persons
(organization
s,
freelancers,
companies,
etc.) may
enter their
VAT number
or n.a.

.JOBS registrant_extra_info
Registration of .JOBS domains is restricted to those who are involved in
Human Resource management. To be eligible, registrants must be a member
of the Society for Human Resource Management (SHRM) or involved in HR
practices that meet any of the following criteria:
Possess salaried-level human resource management experience.
Are certified by the Human Resource Certification Institute.
Are supportive of the SHRM Code of Ethical and Professional Standards
in Human Resource Management, as amended from time to time.
Consequently, when registering a .JOBS domain, registrants must complete
some additional information.

For more information on the restrictions and policies regarding .JOBS


registrations, see http://www.policy.jobs/
Parameters within the registrant_extra_info associative array are described
below.
Parameter
name

Definition/Value

sw_register modify
(request)
domain
(request)

jobs_admin_
type

Indicates whether the


Required
registrant is the Admin
contact.

Required

get domain
(response)
Always
returned

Allowed values are Yes


or No.

54

Parameter
name

Definition/Value

sw_register modify
(request)
domain
(request)

jobs_association Indicates whether the


Required
_member
registrant is a member
of SHRM.

get domain
(response)

Required

Always
returned

Allowed values are Yes


or No.
jobs_industry_
type

The type of business.

Optional

Optional

Returned if
submitted in
order

jobs_title

The registrant's job


title.

Optional

Optional

Returned if
submitted in
order

jobs_website

The URL for the


registrant's company.

Required

Required

Always
returned

.LV and .COM.LV registrant_extra_info


The registrant_extra_info associative array contains information to satisfy
requirements of the .LV registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_
name
Value
register
(request)

modify
domain
(request)

get
domain
(response)

get_order_
info
(response)

id_card_
number

Required when
registrant_
type =
individual

Returned if
is_success
= true and
registrant_
type =
individual

Returned if
is_success
= true and
registrant_
type =
individual

registration_ The business Required


number
number of the when
organization. registrant_
type =
organization

Required when
registrant_
type =
organization

Returned if
is_success
= true and
registrant_
type =
organization

Returned if
is_success
= true and
registrant_
type =
organization

registrant_
type

Required

Returned if
is_success
= true

Returned if
is_success
= true

The number of
the
individual's
identity card.

The entity
type of
registrant.

Required
when
registrant_
type =
individual

Required

55

Parameter Definition/ sw_


name
Value
register
(request)

modify
domain
(request)

get
domain
(response)

get_order_
info
(response)

Required when
registrant_
type =
organization

Returned if
is_success
= true and
registrant_
type =
organization

Returned if
is_success
= true and
registrant_
type =
organization

Allowed values
are individual
or
organization.
registrant_
vat_id

The Value
Added Tax
(VAT) number
of the
organization

Required
when
registrant_
type =
organization

.MX, .COM.MX, and .CO.ZA registrant_extra_info


The registrant_extra_info associative array contains information to satisfy
requirements of the .MX and ZA registries.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/V sw_
name
alue
register
(request)

modify
domain
(request)

get domain
(response)

registrant_
type

Required

Returned if
Returned if
is_success = is_success =
true
true

The entity type Required


of registrant.
Allowed values
are individual
or
organization.

get_order_
info
(response)

.NO registrant_extra_info
The registrant_extra_info associative array contains information to satisfy
requirements of the .NO registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_
name
Value
register
(request)

trade
domain
(request)

get
domain
(response)

get_order_
info
(response)

Registration_ The number


number
of the
individual's

Required

Returned if
is_success
= true

Returned if
is_success =
true

Required

56

identity card.

.PM, .RE, .TF, .WF, and .YT registrant_extra_info


The registrant_extra_info associative array contains information to satisfy
requirements of the .PM, .RE, .TF, .WF, and .YT registries.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_
name
Value
register
(request)

trade domain get domain


(request)
(response)

get_order_
info
(response)

country_of_
birth

The country in
which the
registrant was
born.

Required when
registrant_
type =
individual

Required when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

date_of_
birth

The
registrant's
date of birth
in the format
YYYY-MM-DD.

Required when
registrant_
type =
individual

Required when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

place_of_
birth

The city in
which the
individual was
born.

Required when
registrant_
type =
individual and
country_of_
birth = FR

Required when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

postal_code_ The postal


of_birth
code of the
registrant's
place of birth.

Required when
registrant_
type =
individual and
country_of_
birth = FR

Required when
registrant_
type =
individual and
country_of_
birth = FR

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

province_of_ The province


birth
in which the
individual was
born.

Required when
registrant_
type =
individual

Required when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

registrant_
type

Required

Required

Returned if
is_success =

Returned if
is_success =

The entity
type of

57

Parameter Definition/ sw_


name
Value
register
(request)

trade domain get domain


(request)
(response)

registrant.

get_order_
info
(response)

true

true

Allowed
values are
individual
and
organization
.
registrant_
vat_id

The Value
Added Tax
(VAT) number
of the
organization.

Optional. May
be used when
registrant_
type =
organization

Optional. May
be used when
registrant_
type =
organization

Returned if
is_success =
true if
submitted in
the order

Returned if
is_success =
true if
submitted in
the order

registration_ The business Optional, but


number
number of the recommended
organization. for
organizations
located in
France

Optional, but
recommended
for
organizations
located in
France

Returned if
is_success =
true if
submitted in
the order

Returned if
is_success =
true if
submitted in
the order

trademark_
number

Optional but
recommended
when
registrant_
type =
organization

Returned if
is_success =
true if
submitted in
the order

Returned if
is_success =
true if
submitted in
the order

The number
assigned to
the
organizations
pending or
registered
trademark.

Optional but
recommended
when
registrant_
type =
organization

.PRO professional_data
In order to register a .PRO domain name, the registrant must belong to an
accredited profession.
Parameters within the professional_data associative array are described
below.
Parameter Definition/Value
name

sw_
register
(request)

modify
domain
(request)

get
get_order
domain
_info
(response) (response)

authority

Optional

Optional

Returned if Returned if
submitted submitted
in order
in order

The name of the authority


from which the registrant
receives their professional
credentials.

58

Parameter Definition/Value
name

sw_
register
(request)

modify
domain
(request)

get
get_order
domain
_info
(response) (response)

authority_
website

The URL to an online


resource for the authority,
preferably, a member
search directory.

Optional

Optional

Returned if Returned if
submitted submitted
in order
in order

license_
number

The license number of the


registrant's credentials, if
applicable.

Optional

Optional

Returned if Returned if
submitted submitted
in order
in order

profession

The stated profession of


the registrant.

Required

Required

Always
returned

Always
returned

.RO, and .COM.RO registrant_extra_info


The registrant_extra_info associative array contains information to satisfy
requirements of the .RO registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_
name
Value
register
(request)

trade
domain
(request)

get domain get_order_


(response)
info
(response)

id_card_
number

Required when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success
= true and
registrant_
type =
individual

registration_ The business Required


number
number of the when
organization. registrant_
type =
organization

Required when
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

Returned if
is_success
= true and
registrant_
type =
organization

registrant_
type

Required

Returned if
Returned if
is_success = is_success
true
= true

The number of
the
individual's
identity card.

The entity
type of
registrant.

Required
when
registrant_
type =
individual

Required

Allowed values
are
individual or
organization.

59

Parameter Definition/ sw_


name
Value
register
(request)

trade
domain
(request)

get domain get_order_


(response)
info
(response)

registrant_
vat_id

Required when
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

The Value
Added Tax
(VAT) number
of the
organization

Required
when
registrant_
type =
organization

Returned if
is_success
= true and
registrant_
type =
organization

.RU registrant_extra_info
The registrant_extra_info associative array contains information to satisfy
requirements of the .RU registry.
Parameters within the registrant_extra_info associative array are described
below.
Paramet Definitio sw_
er name n/Value register
(request)

trade
domain
(request)

get domain get_order_


(response)
info
(response)

date_of_
birth

The
registrant's
date of
birth in the
format
YYYY-MMDD.

Required
when
registrant_ty
pe =
individual

Required when
registrant_ty
pe =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

id_card_
authority

The name
of the
issuer.

Required
when
registrant_ty
pe =
individual

Required when
registrant_ty
pe =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Required
when
registrant_ty
pe =
individual

Required when
registrant_ty
pe =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

id_card_ The date


issue_date that the ID
card was
issued, in
the format
YYYY-MMDD.

60

Paramet Definitio sw_


er name n/Value register
(request)

trade
domain
(request)

get domain get_order_


(response)
info
(response)

id_card_
number

Required
when
registrant_ty
pe =
individual

Required when
registrant_ty
pe =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

place_of_ The city in


birth
which the
individual
was born.

Required
when
registrant_ty
pe =
individual

Required when
registrant_ty
pe =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

registrant The entity


_
type of
type
registrant.

Required

Required

Returned if
Returned if
is_success = is_success =
true
true

The
number of
the
individual's
identity
card.

Allowed
values are
individual
and
organizati
on.

.SE and .NU registrant_extra_info


The registrant_extra_info associative array contains information to satisfy
requirements of the registry.
Parameters within the registrant_extra_info associative array are described
below.
Parameter Definition/ sw_
name
Value
register
(request)

trade
domain
(request)

get domain get_order_


(response)
info
(response)

id_card_num The number of Required


ber
the individual's when
identity card. registrant_
type =
individual

Required when
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

Returned if
is_success =
true and
registrant_
type =
individual

registrant_
type

Required

Returned if
is_success =

Returned if
is_success =

The entity
type of

Required

61

Parameter Definition/ sw_


name
Value
register
(request)

trade
domain
(request)

get domain get_order_


(response)
info
(response)

registrant.

true

true

Allowed values
are individual
or
organization.
registrant_
vat_id

The Value
Added Tax
(VAT) number
of the
organization

Required
when
registrant_
type =
organization

Required when
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

registration_ The business Required


number
number of the when
organization
registrant_
type =
organization

Required when
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

Returned if
is_success =
true and
registrant_
type =
organization

.US nexus
The nexus associative array contains Nexus information for .US domains, to
satisfy the American presence requirements of the .US registry.
Parameters within the nexus associative array are described below.
Parameter Definition/Value
name

sw_
register
(request)

modify
domain
(request)

get
get_order
domain
_info
(response) (response)

app_
purpose

Required

Required

Always
returned

A description of the
domain's application
purpose:

P1Business use
for profit.

P2Non-profit
business, club,
association,
religious
organization, and so
on.

P3Personal use.

P4Education

Always
returned

62

Parameter Definition/Value
name

sw_
register
(request)

modify
domain
(request)

get
get_order
domain
_info
(response) (response)

Required

Required

Always
returned

Always
returned

Returned if
category
= C31 or
C32

Returned if
category
= C31 or
C32

purposes.

category

validator

P5Government
purposes.

A description of the
domain's nexus category:

C11A citizen of
the U.S. or any of
its territories.

C12A permanent
resident of the U.S.
or any of its
territories.

C21An
organization
incorporated within
the U.S.

C31An entity that


regularly engages in
lawful activities in
the U.S.

C32An entity that


has an office or
other facility in the
U.S.

The domain owner's


Required if Required if
country of citizenship.
category = category =
Value must be a valid two- C31 or C32 C31 or C32
letter country code.

.XXX ipr_data
.XXX domains are available to those within the adult entertainment industry
who are members of the Sponsored Community (SC). The ipr_data
associative array contains information to prove that the registrant is a
member of the Sponsored Community.
Parameters within the ipr_data associative array are described below.

63

Parameter Definition/Value
name

sw_
register
(request)

modify
domain
(request)

get
get_order
domain
_info
(response) (response)

Optional

Returned if Returned if
submitted
submitted
in the order in the
order

N/A

N/A

N/A

Optional

N/A

N/A

Returned if
submitted
in the
order

When this value is set to 1 Optional


the domain will not
resolve.

N/A

N/A

N/A

icm_
The ID number that was
Optional
membership provided when the
_id
registrant successfully
completed the XXX
Sponsored Community
validation process. If this
value is not submitted with
the domain registration,
the registry will contact the
registrant with instructions
on how to become a
member of the Sponsored
Community.
If you submit this value,
you do not need to submit
any of the other ipr_data
values.
ipr_email

The email address to which Optional


all communications from
the registry will be
addressed.
If you submit this value,
you must also submit the
ipr_name value.

ipr_name

The name (in the format


firstname lastname) to
which all communications
from the registry will be
addressed.
If you submit this value,
you must also submit the
ipr_email value.

ipr_non_
resolver

If you submit this value,


you do not need to submit
any of the other ipr_data
values.

64

Lookup Commands
This section contains the following commands:
belongs_to_rspDetermines whether domain belongs to the RSP who
issued the command.
cira_email_pwdDeprecated. Sends CIRA login information to admin
contact.
get_balanceQueries the requester's account, and returns the total
amount of money in the account and the amount that is allocated to
pending transactions.
get_ca_blocker_listDeprecated. Checks for any domains blocking
the registration of a new .CA domain.
get_deleted_domainsLists domains that have been deleted due to
expiration or request.
get (domain)Queries various types of data associated with a domain.
get_domains_contactsQueries contact information for a list of
domains.
get_domains_by_expiredateQueries domains expiring within a date
range.
get_notesRetrieves the domain notes that detail the history of the
domain, for example, renewals and transfers.
get_order_infoQueries all information related to an order.
get_orders_by_domainRetrieves information about orders placed for
a specific domain.
get_priceQueries the price of a domain.
get_registrant_verification_statusReturns the current state of the
verification request.
lookup (domain)Determines the availability of a domain.
name_suggestChecks whether a name, word, is phrase is available
for registration.

65

belongs_to_rsp
Description
Action & object
action = belongs_to_rsp
object = domain

Usage
Determines whether the domain belongs to the RSP who issued the
command.

Request parameters for belongs_to_rsp


Standard parameters
action = belongs_to_rsp
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

domain

Required

The domain to be checked.

Response parameters for belongs_to_rsp


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

66

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

belongs_to_rsp

Required

Whether the domain belongs to the RSP


who issued the command.

domain_expdate

0Does not belong to the RSP

1Belongs to the RSP

Only appears when


Domain's expiry date
belongs_to_RSP =
1

Examples for belongs_to_rsp


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">belongs_to_rsp</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>

67

</body>
</OPS_envelope>

Response
If belongs to RSP
<?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="attributes">
<dt_assoc>
<item key="belongs_to_rsp">1</item>
<item key="domain_expdate">2007-08-26 11:40:14</item>
</dt_assoc>
</item>
<item key="response_text">Query successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If does not belong to RSP


<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>

68

<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="attributes">
<dt_assoc>
<item key="belongs_to_rsp">0</item>
</dt_assoc>
</item>
<item key="response_text">Query successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

69

cira_email_pwd
Description
Action & object
action = cira_email_pwd
object = domain

Usage
Sends the CIRA login information (used for confirming critical changes) to the
email address associated with a .CA domain's admin contact.
Important: This command has been deprecated. If this command is part of
your current integration, it will continue to work; however, the results will be
ignored. The response will return 'is_success' => '1'.

Request parameters for cira_email_pwd


Standard parameters
action = cira_email_pwd
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition / Value

domain

Required

The domain for which the login information is to


be sent.

Response parameters for cira_email_pwd


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

70

response_text = message describing the outcome of the request

Examples for cira_email_pwd


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">CIRA_EMAIL_PWD</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.ca</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>

71

<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">domain</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command verified</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

72

get_balance
Description
Action & object
action = get_balance
object = balance

Usage
Queries the requester's account, and returns the total amount of money in
the account and the amount that is allocated to pending transactions.

Request parameters for get_balance


Standard parameters
action = get_balance
object = balance
registrant_ip = valid IP address of the registrant
attributes

Response parameters for get_balance


Standard parameters
action = reply
object = balance
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
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition / Value

balance

Required

The total amount of money in the requester's


account, including the amount that is allocated to
pending transactions.

73

Parameter
name

Obligation

Definition / Value

hold_balance

Required

The amount of money in the requester's account that


is allocated to pending transactions.

Examples for get_balance


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">GET_BALANCE</item>
<item key="object">BALANCE</item>
<item key="registrant_ip"/>
</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>

74

<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">BALANCE</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
<item key="attributes">
<dt_assoc>
<item key="balance">8549.18</item>
<item key="hold_balance">1676.05</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

75

get_ca_blocker_list
Description
Action & object
action = get_ca_blocker_list
object = domain

Usage
Before a .CA domain can be registered, it is checked against the CIRA
registry for any conflicting domains. If a variation of the requested domain is
already registered, the requested domain registration is put on hold. For
example, if a registrant owns 'domain.ca' or 'domain.pv.ca' (where .pv is the
provincial code), the CIRA system automatically reserves all variants of the
name.
This command checks for any domains blocking the registration of a new .CA
domain, and returns a list of those domains, if any exist. If blockers exist,
the .CA domain cannot be registered until the owners of the blocker domains
consent.
Important: This command has been deprecated. If this command is part of
your current integration, it will continue to work; however, the results will be
ignored. The response will return 'is_success' => '1'.

Request parameters for get_ca_blocker_list


Standard parameters
action = get_ca_blocker_list
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition / Value

domain

The .CA domain to query for blocking domains.

Optional

76

Response parameters for get_ca_blocker_list


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
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition / Value

blocker_list

Required

Contains a list of all .CA domains that are blocking


the registration of the specified .CA domain.
For more information, see the Blocker_List table
below.

Blocker_List
Parameters within the blocker_list associative array are described below.
Parameter name Obligation

Definition / Value

admin_email

Required

Admin email address of the blocking domain.

owner_org

Required

Name of owner of the blocking domain.

registrar

Required

Current registrar of the blocking domain.

tech_email

Required

Tech email address of the blocking domain.

77

Examples for get_ca_blocker_list


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">get_ca_blocker_list</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.ca</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>

78

<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Query successful</item>
<item key="attributes">
<dt_assoc>
<item key="blocker_list">
<dt_assoc>
<item key="example.sk.ca">
<dt_assoc>
<item key="registrar">Tucows.com

Co.</item>

<item key="owner_org_name">Example

Company Ltd.</item>

<item
key="tech_email">tech_email@example.sk.ca</item>
<item
key="admin_email">admin_email@example.sk.ca</item>
</dt_assoc>
</item>
<item key="example.on.ca">
<dt_assoc>
<item key="registrar">Internic.ca

Corp.</item>
o/a Example Ontario</item>

<item key="owner_org_name">Company Inc.

<item
key="tech_email">randy@example.on.ca</item>
<item
key="admin_email">admin@example.on.ca</item>
</dt_assoc>
</item>
</dt_assoc>
</item>

79

</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

80

get_deleted_domains
Description
Action & object
action =get_deleted_domains
object = domain

Usage
Lists domains that have been deleted due to expiration or deleted by request
(revoked). This command applies to all domains in a Reseller's profile.
Results include the domain, status, and deleted date.
All attributes are optional, but can be used to narrow the search criteria. If
no attributes are specified, the response contains all domains that were ever
deleted from your profile.

Request parameters for get_deleted_domains


Standard parameters
action = get_deleted_domains
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition / Value

admin_email

Optional

Can be used to search for deleted domains associated


with a specific admin email. Wildcards (*) are
accepted.

billing_email

Optional

Can be used to search for deleted domains associated


with a specific billing email. Wildcards (*) are accepted.

del_from

Optional

Specify a starting date, in the format YYYY-MM-DD,


from which to return deleted domains. Can be used
with the del_to attribute to specify a range to search
within. If not used with del_to, all domains from the
del_from date onward are returned. The year specified
cannot exceed 2030; otherwise an error is returned.

81

Parameter
name

Obligation

Definition / Value

del_to

Optional

Specify an end date, in the format YYYY-MM-DD, before


which to return deleted domains. Can be used with the
del_from attribute to specify a range to search within.
If not used with del_from, all domains ever deleted
from the del_to date and earlier are returned. The
year specified cannot exceed 2030; otherwise an error
is returned.

domain

Optional

Submit this attribute only if you want to check if a


particular domain has been deleted.

exp_from

Optional

Specify a starting date, in the format YYYY-MM-DD,


from which to return expired-deleted domains. Can be
used with the exp_to attribute to specify a range to
search within. If not used with exp_to, all expireddeleted domains from the exp_from date onward are
returned. The year specified cannot exceed 2030;
otherwise an error is returned.

exp_to

Optional

Specify a date, in the format YYYY-MM-DD, before


which to return expired-deleted domains. Can be used
with the exp_from attribute to specify a range to
search within. If not used with exp_from, all domains
ever expired-deleted from the exp_to date and earlier
are returned. The year specified cannot exceed 2030;
otherwise an error is returned.

limit

Optional

The maximum number of domains to return per page.

owner_email

Optional

Can be used to search for deleted domains associated


with a specific owner email. Wildcards (*) are accepted.

page

Optional

Determines which page to retrieve, using the page


number. The page index starts at 0 (zero).

tech_email

Optional

Can be used to search for deleted domains associated


with a specific tech email. Wildcards (*) are accepted.

82

Response parameters for get_deleted_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
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition / Value

del_domains

Required

Contains arrays that list details about


each deleted domain.
For more information, see the
Del_Domains table below.

page_size

Returned if specified in
the request.

The maximum number of domains


returned per page.

total

Required

The number of deleted domains.

Del_Domains
Parameters within the del_domains associative array are described below.
Parameter name Obligation

Definition / Value

delete_date

Always returned for deleted


domains.

The date that the domain was


deleted, in the format DD-MMMYYYY hh:mm:ss.

delete_date_epoch

Always returned for deleted


domains.

The date that the domain was


deleted, in UNIX time.

expire_date

Always returned for deleted


domains.

The date that the domain will


expire, in the format DD-MMMYYYY hh:mm:ss.

expiredate_epoch

Always returned for deleted


domains.

The date that the domain expires,


in UNIX time.

83

Parameter name Obligation

Definition / Value

name

Always returned if a deleted The domain that was deleted.


domain exists and meets the
specified search criteria.

reason

Always returned for deleted


domains.

Indicates if the domain was


deleted by request (revoked), or
deleted due to expiry:

By-Request

Expired

Transferred

Historical

Examples for get_deleted_domains


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">GET_DELETED_DOMAINS</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="owner_email">*</item>
<item key="del_to">2011-10-10</item>
<item key="admin_email">*</item>
<item key="limit">10</item>
<item key="del_from">2000-10-10</item>
<item key="page">1</item>

84

<item key="billing_email">*</item>
<item key="exp_to">2014-10-10</item>
<item key="tech_email">*</item>
<item key="exp_from">2002-10-10</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
<item key="attributes">
<dt_assoc>
<item key="page">1</item>
<item key="page_size">2</item>
<item key="total">2</item>
<item key="del_domains">
<dt_array>

85

<item key="0">
<dt_assoc>
<item
key="expiredate_epoch">1229135427</item>
<item key="delete_date">12-DEC-2004
21:31:30</item>
<item key="reason">By-Request</item>
<item
key="delete_date_epoch">1102905090</item>
<item key="name">pure-

1102905253608.com</item>

<item key="expiredate">12-DEC-2008

21:30:27</item>

</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item
key="expiredate_epoch">1229135516</item>
<item key="delete_date">12-DEC-2004

21:32:48</item>

<item key="reason">By-Request</item>
<item
key="delete_date_epoch">1102905168</item>
<item key="name">pure1102905358159.net</item>
<item key="expiredate">12-DEC-2008
21:31:56</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

86

get (domain)
Description
Action & object
action = get
object = domain

Usage
Queries various types of data regarding the user's domain. For example, the
all_info type allows you to retrieve all data for the domain linked to the
current cookie. The list type queries the list of domains associated with the
user's profile. The list type can also be used to return a list of domains that
expire within a specified range. The nameservers type returns the
nameservers currently acting as DNS servers for the domain.

Request parameters for get (domain)


Standard Parameters
action = get
object = domain
registrant_ip = valid IP address of the registrant
cookie = cookie created to access the system, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

clean_ca_subset Optional

Definition / Value
Determines the type of contact_set values that
are returned for .CA domains when type = admin
or tech.
If clean_ca_subset = 1, the address data is
returned in the standard address fields
(address1, address2, and address3).
If clean_ca_subset is not specified, the query
returns the values addr_address_number,
addr_corporative, addr_office,
addr_orientation, addr_street_cat, and

87

Parameter
name

Obligation

Definition / Value
addr_street_name along with the standard
address fields (address1, address2, and
address3).

domain

Required if
cookie is not
submitted

The relevant domain.

limit

Optional

The maximum number of domains to return per


page.

max_to_expiry

Required when Defines the expiration range (in days): to fetch


type = list
the list of domains that are between
max_to_expiry and min_to_expiry before the
expiration date.
If min_to_expiry is not provided, it defaults to
0. If min_to_expiry > max_to_expiry, the list
is empty. These parameters can have negative
values, which means days past the expiration
date. For example, -5 means 5 days past the
expiration date.

min_to_expiry

Required when Defines the expiration range (in days): to fetch the
type = list
list of domains that are between max_to_expiry
and min_to_expiry before expiration date.
If min_to_expiry is not provided, it defaults to 0.
If min_to_expiry > max_to_expiry, the list is
empty. These parameters can have negative
values, which means days past the expiration
date. For example, -5 means 5 days past the
expiration date.

page

Optional

Determines which page to retrieve, using the


page number. The page index starts at 0 (zero).

type

Required

Type of query. Allowed values are:

adminReturns admin contact


information.

all_infoReturns all information.

auto_renew_flagDeprecated,
Returned list of domains.

billing Returns billing contact


information.

ca_whois_display_settingReturns the
current CIRA Whois Privacy setting for .CA

88

Parameter
name

Obligation

Definition / Value
domains.

domain_auth_info Returns domain


authorization code, if applicable.

expire_action Returns the action to be


taken upon domain expiry, specifically
whether to auto-renew the domain, or let it
expire silently.

forwarding_email Returns forwarding


email for .NAME 2nd level.

list Returns list of domains for user.

nameservers Returns nameserver


information.

owner Returns owner contact


information.

rsp_whois_info Returns name and


contact information for RSP.

status Returns lock or escrow status of


the domain.

tech Returns tech contact information.

tld_dataReturns additional information


that is required by some registries, such as
the residency of the registrant.

trademark Deprecated. Used for .CA


domains; returns 'Y' or 'N' value indicating
whether the registered owner of the
domain name is the legal holder of the
trademark for that word.

waiting history Returns information on


asynchronous requests.

whois_privacy_statetyReturns the state


for the WHOIS Privacy feature: enabled,
disabled, enabling, or disabling.
Note: If the TLD does not allow WHOIS
Privacy, always returns Disabled.

89

Deprecated
Parameter name

Obligation

Definition / Value

with_encoding_types

Deprecated

If submitted, this attribute is ignored.

Response parameters for get (domain)


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
The response message returned varies depending on the value of the type
field that was used to send the request.

Return details for type = admin, billing, owner,or tech


Parameter
name

Obligation

Definition/Value

contact_set

Returned when type = An associative array containing the contact


owner, admin,
information of the requested type. For details
billing, or tech
on contact fields, see "Contact Set".

descr

Returned when type = The domain description.


owner, admin,
billing, or tech

Return details for type = all_info


The response message consists of a combination of the fields used for type =
nameserver, and type = owner, admin, tech, or billing. The contact_set
contains a type for each possible contact type.
Also returns the fields: auto_renew, expiredate, let_expire, sponsoring_rsp
as per the Extended Results of type = list.

90

Parameter name

Obligation

Definition/Value

affiliate_id

Returned if applicable and


is_success = 1

The affiliate id associated


with the domain.

descr

Returned when type =


The text of the domain
all_info and is_success = description.
true

dns_errors

Returned when type =


The text of the DNS errors.
all_infoand is_success =
true

nameserver_list

Returned when type =


A list of nameservers. Each
all_infoand is_success = nameserver is represented
true
as an anonymous
associative array.
For more information, see
the Nameserver_List
table below.

registry_createdate

Returned when type =


The date that the domain
all_infoand is_success = was created at the
true
Registry.

registry_expiredate

Returned when type =


The domain's expiry date as
all_info only if the Registry recorded at the Registry.
provides this information.

registry_transferdate

Returned when type =


all_info only if the
Registry provides this
information and the
domain was transferred.

registry_updatedate

Returned when type =


The date the domain was
all_info only if the Registry last updated at the
provides this information. Registry.

sponsoring_rsp

Returned when type =


Indicates if the domain is
all_infoand is_success = under your Reseller profile:
true
0 = Domain is
provisioned by a
different Reseller

The Registry's record of


when the domain was
transferred.

tld_data

ASIA, .AR, .AU, .BR, .CL,


.COOP, .DE, .DK, .FI,
.HK, .HU, .IT, .JOBS,
.LV, .MX, .NO, .PM, .PRO,

1 = Domain is
under your Reseller
profile (logged-in
Reseller)

An associative array
containing registrant
information.

91

Parameter name

Obligation

Definition/Value

.PT, .RE, .RO, .RU, .SE, .TF, For more information, see
.US, .WF, .XXX, .YT, and
tld_data
.ZA domains when type =
all_infoand is_success =
true

Deprecated
Parameter name

Obligation

Definition/Value

rant_no

Deprecated

The CIRA Registrant number. Valid


values are:

Valid CIRA Registrant number

0No existing CIRA Registrant


number or don't know CIRA
Registrant number.

Nameserver_List
Parameters within the nameserver_list associative array are described
below.
Parameter
name

Obligation

Definition/Value

ip_address

Returned if the nameserver


has an IPv4 address.

The IPv4 address of the


nameserver.

ipv6

Returned if the nameserver


has an IPv6 address.

The IPv6 address of the


nameserver.

name

Returned when type =


all_info

The name of the nameserver.

sort_order

Returned when type =


all_info

The nameserver sort order.

Return details for type = ca_whois_display_setting


Parameters within the ca_whois_display_setting associative array are
described below.
Parameter name Obligation

Definition/Value

display

Indicates the current setting for the CIRA


WHOIS Privacy setting.

Returned if
is_success = true

92

Parameter name Obligation

Definition/Value
Allowed values are:

individual

Returned if
is_success = true

PRIVATEWhen a WHOIS lookup


is done on the domain name, do
not display personal information.

FULLWhen a WHOIS lookup is


done on the domain name, display
all of the data that is on the
WHOIS directory, including name,
address, telephone number and
email address.

Indicates whether the domain owner is


an individual registrant. Only individual
registrants (Canadian citizens, Permanent
residents, Legal representatives,
Aboriginal peoples) can change their
CIRA Whois Privacy setting.
Allowed values are Y or N.

Return details for type = domain_auth_info


Parameter name Obligation
domain_auth_info

Definition/Value

Returned when type = Authentication password for the


domain_auth_info
domain. This facilitates transfers to
others registrars.

Return details for type = expire_action


Parameter
name

Obligation

Definition/Value

auto_renew

Returned when type = Indicates whether the domain can auto


expire_action
renew or not:

0Do not auto-renew

1Auto-renew.

expiredate

Returned when type = The date that the domain is set to expire, in
expire_action
the format YYYY-MM-DD HH24:MM:SS.

let_expire

Returned when type = Indicates whether the domain is set to


expire_action
expire silently:

0Do not expire silently.

1Expire silently

93

Return details for type = forwarding_email


Parameter
name

Obligation

Definition/Value

forwarding_email

Returned when type =


forwarding_email

The domain's e-mail address that is


used for forwarding purposes.

Return details for type = list


Parameter
name

Obligation

Definition/Value

count

Returned when
type = list

The count (total number) of domain names in the


current user profile.

domain_list

Returned when
type = list

An array of domain name hashes.


For compatibility reasons, if you set
with_encoding_types attribute in the request to
0 or don't set it at all, then you get an array of
scalars, domain names.
For more information, see the Domain_List table
below.

ext_results

Returned when
type = list

An array of extended results that indicate the


domains and their expiry dates.
For more information, see the Ext_Results table
below.

remainder

Returned when
type = list

A Boolean variable indicating whether there are


more domains in the list:

0No more domains.

1More domains to be listed.

Domain_List
Parameters within the domain_list associative array are described below
Parameter
name

Obligation

Definition/Value

domain

Returned when
type = list

Fully qualified domain name.

94

Parameter
name

Obligation

Definition/Value

encoding_type

Returned when
type = list

The three-character tag that represents the


language encoding type for the domain. For a
list of the languages supported for each TLD,
see the gTLD and ccTLD Reference Chart on the
OpenSRS website.

Ext_Results
Parameters within the ext_results associative array are described below.
Parameter name Obligation

Definition/Value

auto_renew

Status of the auto-renew flag:

Returned when
type = list

0Do not auto-renew

1Auto-renew

expiredate

Returned when
type = list

Expiration date of the domain.

has_whois_privacy

Returned when
type = list

Indicates whether WHOIS Privacy is


enabled:

let_expire

lock_state

sponsoring_rsp

Returned when
type = list

Returned when
type = list

Returned when
type = list

0Disabled

1Enabled

Status of the let-expire flag:

0Don't expire domain silently

1Expire domain silently

Flag indicating if the domain is locked to


prevent transfers:

0Not locked.

1Locked.

Flag indicating if the domain is sponsored


by the reseller making the call:

0Not sponsoring RSP

1Sponsoring RSP

Deprecated
Parameter
name

Obligation

Definition/Value

wp_expiredate

Deprecated

Expiration date of WHOIS Privacy. (Always returns


0.)

95

Parameter
name

Obligation

Definition/Value

wp_service

Deprecated

Flag indicating if WHOIS Privacy is enabled.

Return details for type = nameservers


Parameter
name

Obligation

Definition/Value

nameserver_list

Returned when type = A list of nameservers. Each nameserver


nameservers
is represented as an anonymous
associative array.
For more information, see the
Nameserver_List table below.

Nameserver_List
Parameters within the nameserver_list associative array are described
below.
Parameter
name

Obligation

Definition/Value

ipaddress

Returned when type IP address of the nameserver


= nameservers

name

Returned when type Fully qualified domain name of the


= nameservers
nameserver.

sortorder

Returned when type Sort order of this nameserver. The sortorder


= nameservers
does not necessarily start at 0 and there may
be gaps between nameserver entries. It does
indicate the relative sorting order of the
nameservers. The sort order value must be
preserved for nameserver modification
commands.

96

Deprecated
Parameter
name

Obligation

Definition/Value

encoding_type

Deprecated

The encoding type for the nameserver.

Return details for type = rsp_whois_info


Parameter
name

Obligation

Definition/Value

business

Returned when type =


rsp_whois_info

The business name of the RSP.

domain_enabled

Returned when type =


rsp_whois_info

Indicates whether this feature


enabled for given domain:

YEnabled

NDisabled

email

Returned when type =


rsp_whois_info

Email address of the RSP.

phone

Returned when type =


rsp_whois_info

Phone number of the RSP.

rsp_enabled

Returned when type =


rsp_whois_info

Indicates whether this feature is


enabled or disabled by RSP:

url

Returned when type =


rsp_whois_info

YEnabled

NDisabled

The URL of the RSP.

Return details for type = status


Parameter name

Obligation

Definition/Value

auctionescrow

Returned when
Indicates whether the domain has
type = status and been placed in auction escrow. If
domain is in
in auction escrow, the domain
auction escrow.
cannot be renewed.

0Not in escrow.

1In escrow.

97

Parameter name

Obligation

Definition/Value

can_modify

Returned when
type = status

Indicates whether the lock state


can be modified during this
session:

domain_supports

Returned when
type = status

lock_state

Returned when
type = status

0Cannot be modified.

1Can be modified.

Indicates whether the TLD is one


that supports domain locking:

0Does not support


domain locking.

1Supports domain locking

Indicates whether the domain is


locked:

0Not locked.

1Locked.

parkp_status

Optional

Indicates if the domain is enabled


for the Parked Pages service.
Values are Enabled, Activating,
or blank. If returned but left blank,
the domain is not enabled.

transfer_away_in_progress

Optional

If returned, indicates that the


domain is in the process of being
transferred away. Value is 1.

Note: The domain_supports and can_modify attributes are different in that a


TLD from a registry that supports domain locking always returns 1 for
domain_supports, but the state of the current session as well as the internal
state of the domain affects can_modify. This is only true when all of the
following conditions are met:

Request is done through the sponsoring Reseller for the domain.


The TLD for the domain is one that supports locking at the registry
level.
The domain is not locked internally.
If a cookie is set for the session, it cannot be for a sub-user of the
domain.

Return details for type = tld_data


Parameter
name

Obligation

Definition/Value

tld_data

Returned for .ASIA, An associative array containing registrant

98

Parameter
name

Obligation

Definition/Value

.AR, .AU, .BR,


information.
.CL, .COOP, .DE,
For more information, see tld_data.
.DK, .FI, .HK,
.HU, .IT, .JOBS,
.LV, .MX, .NO,
.PM, .PRO, .PT, .RE,
.RO, .RU, .SE,
.TF, .US, .WF, .XXX,
.YT, and .ZA
domains when type
tld_data and
is_success = true

Return details for type = whois_privacy_state


Parameter
name

Obligation

Definition / Value

state

Returned when type =


whois_privacy_state

WHOIS Privacy state: enabled,


disabled, enabling (in process), or
disabling (in process).

Deprecated
Parameter
name

Obligation

Definition/Value

changeable

Deprecated

Always returns 1 to indicate that the current state


can be changed to another state.
Note: changeble (a misspelling) is also
deprecated.

Get domain examples


For type = admin or tech
Example 1
Including the clean_ca_subset parameter

Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>

99

<!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="cookie">h5LkkIeCjbTDndsL:235293:6221</item>
<item key="action">GET</item>
<item key="attributes">
<dt_assoc>
<item key="clean_ca_subset">1</item>
<item key="type">admin</item>
</dt_assoc>
</item>
<item key="registrant_ip">10.0.62.128</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>

100

<item key="protocol">XCP</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="action">REPLY</item>
<item key="attributes">
<dt_assoc>
<item key="contact_set">
<dt_assoc>
<item key="admin">
<dt_assoc>
<item key="address1">32 Oak Street /item>
<item key="address2"></item>
<item key="address3"></item>
<item key="city">Toronto</item>
<item key="state">ON</item>
<item key="postal_code">M1M1M1</item>
<item key="country">CA</item>
<item key="org_name">Example Company</item>
<item key="phone">+1.4165551212</item>
<item key="fax"></item>
<item key="first_name">Marlin</item>
<item key="last_name">Wilk</item>
<item key="email">test@example.com</item>
<item key="lang">EN</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>

101

</body>
</OPS_envelope>

Example 2
Without the clean_ca_subset parameter

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">GET</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip">10.0.62.128</item>
<item key="cookie">HyaiLx1KeHzxRWdX:235293:5217</item>
<item key="attributes">
<dt_assoc>
<item key="type">admin</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>

102

<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">Query Successful</item>
<item key="action">REPLY</item>
<item key="attributes">
<dt_assoc>
<item key="contact_set">
<dt_assoc>
<item key="admin">
<dt_assoc>
<item key="addr_address_number"></item>
<item key="addr_corporative"></item>
<item key="addr_office"></item>
<item key="addr_orientation"></item>
<item key="addr_street_cat"></item>
<item key="addr_street_name">32 Oak Street</item>
<item key="address1">32 Oak Street</item>
<item key="address2"></item>
<item key="address3"></item>
<item key="city">Toronto</item>
<item key="state">ON</item>
<item key="postal_code">M1M1M1</item>
<item key="country">CA</item>
<item key="org_name">Example Company</item>
<item key="first_name">Marlin</item>
<item key="last_name">Wilk</item>
<item key="lang">EN</item>
<item key="email">test@example.com</item>

103

<item key="phone">+1.4165551212</item>
<item key="fax"></item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = all_info


Example 1
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">get</item>
<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="registrant_ip">111.121.121.121</item>
<item key="attributes">

104

<dt_assoc>
<item key="type">all_info</item>
<item key="limit">10</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="attributes">
<dt_assoc>
<item key="auto_renew">0</item>
21:27:25</item>
21:27:25</item>
21:27:25</item>

<item key="registry_createdate">2006-12-12
<item key="registry_expiredate">2007-12-12
<item key="registry_updatedate">2006-12-12
<item key="sponsoring_rsp">1</item>
<item key="expiredate">2007-12-12 21:27:25</item>

105

<item key="let_expire">0</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="ipaddress">21.40.33.21</item>
<item key="sortorder">1</item>
<item
key="name">ns1.domaindirect.com</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item
key="ipaddress">207.136.100.142</item>
<item key="sortorder">2</item>
<item
key="name">ns2.domaindirect.com</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item key="ipaddress">24.22.23.28</item>
<item key="sortorder">3</item>
<item
key="name">patrick.mytestingprofile.com</item>
</dt_assoc>
</item>
<item key="3">
<dt_assoc>
<item key="ipaddress">24.22.23.24</item>
<item key="sortorder">4</item>

106

<item
key="name">qa1.mytestingprofile.com</item>
</dt_assoc>
</item>
<item key="4">
<dt_assoc>
<item key="ipaddress">24.22.23.25</item>
<item key="sortorder">5</item>
<item
key="name">qa2.mytestingprofile.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
For .CA domains

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>

107

<item key="action">GET</item>
<item key="object">DOMAIN</item>
<item key="cookie">NNMxlmPhKbMOWswr:654537:28355</item>
<item key="attributes">
<dt_assoc>
<item key="limit">10</item>
<item key="type">all_info</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="is_success">1</item>
<item key="response_text">Query Successful</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="registry_createdate">2009-10-26 00:00:00</item>
<item key="fqdn2">ns3.opensrs-dns.com</item>

108

<item key="legal_type">CCT</item>
<item key="fqdn1">ns2.opensrs-dns.com</item>
<item key="sponsoring_rsp">1</item>
<item key="expiredate">2010-10-26 00:00:00</item>
<item key="auto_renew">0</item>
<item key="registry_expiredate">2010-10-26 00:00:00</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="name">ns2.opensrs-dns.com</item>
<item key="sortorder">1</item>
<item key="ipaddress"></item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="name">ns3.opensrs-dns.com</item>
<item key="sortorder">2</item>
<item key="ipaddress"></item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item key="name">ns1.opensrs-dns.com</item>
<item key="sortorder">3</item>
<item key="ipaddress"></item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="let_expire">0</item>
<item key="contact_set">
<dt_assoc>

109

<item key="owner">
<dt_assoc>
<item key="org_name">Setter Sanctuary</item>
<item key="first_name">Owen</item>
<item key="last_name">Ottway</item>
<item key="address1">32 Oak St.</item>
<item key="address2">Suite 100</item>
<item key="address3"/>
<item key="city">Toronto</item>
<item key="state">ON</item>
<item key="postal_code">M1M1M1</item>
<item key="country">CA</item>
<item key="phone">+14165551212</item>
<item key="fax"></item>
<item key="email">ottway@example.com</item>
</dt_assoc>
</item>
<item key="admin">
<dt_assoc>
<item key="country">CA</item>
<item key="org_name">Setter Sanctuary</item>
<item key="phone">+14165551212</item>
<item key="state">ON</item>
<item key="last_name">Wilk</item>
<item key="address2"></item>
<item key="email">rwilk@example.com</item>
<item key="lang">EN</item>
<item key="city">Toronto</item>
<item key="postal_code">M1M1M1</item>
<item key="fax"></item>
<item key="address1"> 123 Oak St.</item>
<item key="first_name">Marlin</item>
</dt_assoc>
</item>

110

<item key="tech">
<dt_assoc>
<item key="country">CA</item>
<item key="org_name">Setter Sanctuary</item>
<item key="phone">+14165551212</item>
<item key="state">ON</item>
<item key="last_name">Wilk</item>
<item key="address2"></item>
<item key="email">rwilk@example.com</item>
<item key="lang">EN</item>
<item key="city">Toronto</item>
<item key="postal_code">M1M1M1</item>
<item key="fax"></item>
<item key="address1"> 123 Oak St.</item>
<item key="first_name">Robson</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="domain_description"></item>
<item key="fqdn3">ns1.opensrs-dns.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 3
For .AU domains

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>

111

<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get</item>
<item key='object'>domain</item>
<item key='cookie'>CpnuM7wfv81zsYGl:685255:1736</item>
<item key='attributes'>
<dt_assoc>
<item key='type'>all_info</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="is_success">1</item>
<item key="response_code">200</item>

112

<item key="response_text">Query Successful</item>


<item key="action">REPLY</item>
<item key="attributes">
<dt_assoc>
<item key="tld_data">
<dt_assoc>
<item key="au_registrant_info">
<dt_assoc>
<item key="eligibility_name"></item>
<item key="eligibility_type">Other</item>
<item key="registrant_id"></item>
<item key="registrant_id_type"></item>
<item key="eligibility_id"></item>
<item key="registrant_name">Registrant Name</item>
<item key="eligibility_id_type"></item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="registry_createdate">2010-09-22 18:29:35</item>
<item key="auto_renew">1</item>
<item key="sponsoring_rsp">1</item>
<item key="expiredate">2012-09-22 18:29:35</item>
<item key="registry_expiredate">2012-09-22 18:29:35</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="name">ns1.mdnsservice.com</item>
<item key="sortorder">1</item>
<item key="ipaddress"></item>
</dt_assoc>
</item>
<item key="1">

113

<dt_assoc>
<item key="name">ns2.mdnsservice.com</item>
<item key="sortorder">2</item>
<item key="ipaddress"></item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key="let_expire">0</item>
<item key="registry_updatedate">2010-09-22 18:30:05</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 4
For .XXX domains

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'>get</item>

114

<item key='object'>domain</item>
<item key='cookie'>DopdK7wvd8erYGl:502741:5622</item>
<item key='attributes'>
<dt_assoc>
<item key='type'>all_info</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'>Query Successful</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='attributes'>
<dt_assoc>
<item key='auto_renew'>1</item>
<item key='ipr_data'>
<dt_assoc>
<item key='icm_membership_id'>123456</item>

115

</dt_assoc>
</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='registry_updatedate'>2011-11-29 21:16:04</item>
<item key='sponsoring_rsp'>1</item>
<item key='registry_createdate'>2011-11-29 21:11:25</item>
<item key='expiredate'>2012-11-29 21:11:25</item>
<item key='let_expire'>0</item>
<item key='registry_expiredate'>2012-11-29 21:11:25</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='name'>ns1.systemdns.com</item>
<item key='sortorder'>1</item>
<item key='ipaddress'/>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='name'>ns2.systemdns.com</item>
<item key='sortorder'>2</item>
<item key='ipaddress'/>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>

116

</OPS_envelope>

For type = ca_whois_display_setting


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">GET</item>
<item key="object">DOMAIN</item>
<item key="cookie">M813iGXs5fNhAJYt:256158:11781</item>
<item key="attributes">
<dt_assoc>
<item key="type">ca_whois_display_setting</item>
<item key="registrant_ip">10.0.62.142</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>

117

</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol"> XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">OK</item>
<item key="attributes">
<dt_assoc>
<item key="individual">Y</item>
<item key="display">FULL</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = domain_auth_info


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">get</item>

118

<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="type">domain_auth_info</item>
<item key="limit">10</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="attributes">
<dt_assoc>
<item key="domain_auth_info">ewgnRwnH</item>
</dt_assoc>
</item>
</dt_assoc>

119

</data_block>
</body>
</OPS_envelope>

For type = expire_action


This command returns the action that occurs on domain expiry, in particular
whether the domain will renew automatically, or silently expires.
Note: The list type will return, at most, 40 domains per command. Use the
page attribute in the get request to retrieve more than 40 domains.

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">get</item>
<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="type">expire_action</item>
<item key="limit">10</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

120

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_code">200</item>
<item key="response_text">Query Successful</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="ext_results">
<dt_array>
<item key="0">
<dt_assoc>
<item key="domain1">
<dt_assoc>
<item key="auto_renew">1</item>
<item key="expiredate">2001-07-15
15:41:11</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="domain2">

121

<dt_assoc>
<item key="auto_renew">0</item>
<item key="expiredate">2001-11-21
14:16:23</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
<item key="count">33</item>
<item key="domain_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="domain">domain1</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="remainder">1</item>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = forwarding_email


This type is currently for use with .NAME domains which have been bundled
or which have been upgraded with email forwarding.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>

122

<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get</item>
<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="type">forwarding_email</item>
<item key="limit">10</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>

123

<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="attributes">
<dt_assoc>
<item key="forwarding_email"/>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = list


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">get</item>
<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="type">list</item>
<item key="limit">10</item>
</dt_assoc>

124

</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command Successful</item>
<item key="attributes">
<dt_assoc>
<item key="count">1</item>
<item key="remainder">0</item>
<item key="domain_list">
<dt_array>
<item key="0">example.com</item>
</dt_array>
</item>
<item key="ext_results">
<dt_array>
<item key="0">

125

<dt_assoc>
<item key="example.com">
<dt_assoc>
<item key="let_expire">0</item>
<item key="wp_service">0</item>
key="has_whois_privacy">0</item>

<item
<item key="sponsoring_rsp">1</item>
<item key="auto_renew">0</item>
<item key="lock_state">0</item>
<item key="expiredate">0</item>
</dt_assoc>

</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = nameservers


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>

126

<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get</item>
<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="registrant_ip">111.121.121.121</item>
<item key="attributes">
<dt_assoc>
<item key="type">nameservers</item>
<item key="limit">10</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="attributes">
<dt_assoc>

127

<item key="type">nameservers</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="ipaddress">21.40.33.21</item>
<item key="sortorder">1</item>
<item key="name">ns1.example.com</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item
key="ipaddress">207.136.100.142</item>
<item key="sortorder">2</item>
<item key="name">ns2.example.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = owner, admin, billing, or tech


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>

128

</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get</item>
<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="type">owner</item>
<item key="limit">10</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="is_success">1</item>
<item key="response_code">200</item>

129

<item key="response_text">Query Successful</item>


<item key="attributes">
<dt_assoc>
<item key="contact_set">
... see "Contact Set"
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = rsp_whois_info


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">get</item>
<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="type">rsp_whois_info</item>
<item key="limit">10</item>
</dt_assoc>
</item>

130

</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
<item key="attributes">
<dt_assoc>
<item key="url"/>
<item key="domain_enabled">Y</item>
<item key="rsp_enabled">Y</item>
<item key="fax"/>
<item key="business">Example</item>
<item key="opt_info">This company may be contacted
for domain login/passwords, DNS/Nameserver changes, and general domain
support questions.</item>
<item key="email">fraser@example.com</item>
<item key="phone">+1.4165350123</item>
</dt_assoc>
</item>

131

</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = status


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">get</item>
<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="type">status</item>
<item key="limit">10</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'>

132

<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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
<item key="attributes">
<dt_assoc>
<item key="can_modify">0</item>
<item key="domain_supports">1</item>
<item key="auctionescrow">1</item>
<item key="parkp_status">enabled</item>
<item key="lock_state">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response if domain is being transferred away


<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>

133

<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
<item key="attributes">
<dt_assoc>
<item key="can_modify">0</item>
<item key="domain_supports">1</item>
<item key="parkp_status"/>
<item key="lock_state">0</item>
<item key="transfer_away_in_progress">1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = tld_data


Example 1
For a .ASIA domain

Request
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>

134

<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get</item>
<item key='object'>domain</item>
<item key='cookie'>lQr4eKXz4ydiFBXL:698303:1653</item>
<item key='attributes'>
<dt_assoc>
<item key='type'>tld_data</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'>Query Successful</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='attributes'>

135

<dt_assoc>
<item key='tld_data'>
<dt_assoc>
<item key='ced_info'>
<dt_assoc>
<item
key='legal_entity_type_info'>proprietorship</item>
<item key='locality_state_prov'>NSW</item>
<item key='id_type'>other</item>
<item key='contact_type'>tech</item>
<item key='locality_city'>Sydney</item>
<item key='locality_country'>AU</item>
<item key='id_type_info'>driver\'s license</item>
<item key='legal_entity_type'>other</item>
<item key='id_number'>AB1234567</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
For a .COOP domain

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>

136

</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get</item>
<item key='object'>domain</item>
<item key='cookie'>ndxOATL2zdtVpWXJ:710538:6469</item>
<item key='attributes'>
<dt_assoc>
<item key='type'>tld_data</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_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Query Successful</item>

137

<item key='attributes'>
<dt_assoc>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='coop_verification_code'>123456789</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 3
For a .DK domain

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'>get</item>
<item key='object'>domain</item>

138

<item key='cookie'>pKuqcg3if1AeYWB8:754002:2258</item>
<item key='attributes'>
<dt_assoc>
<item key='type'>tld_data</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_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Query Successful</item>
<item key='attributes'>
<dt_assoc>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='registrant_type'>organization</item>

139

<item key='registrant_vat_id'>123456789</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 4
For a .JOBS domain

Request
<?xml version='1.0' encoding='UTF-8'?>
<!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'>get</item>
<item key='object'>domain</item>
<item key='cookie'>7rQitruAeYGgKcBO:707623:6222</item>
<item key='attributes'>
<dt_assoc>
<item key='type'>tld_data</item>
</dt_assoc>
</item>

140

</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
<?xml version='1.0' encoding='UTF-8'?>
<!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_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Query Successful</item>
<item key='attributes'>
<dt_assoc>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='jobs_admin_type'>Yes</item>
<item key='jobs_industry_type'>Supply Chain
Management</item>
<item key='jobs_title'>HR Generalist</item>
<item key='jobs_association_member'>Yes</item>
<item
key='jobs_website'>http://www.example.com</item>
</dt_assoc>

141

</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 5
For .LV and .COM.LV domains

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'>get</item>
<item key='object'>domain</item>
<item key='cookie'>BOx2X6bZrHX4HeXp:710540:6468</item>
<item key='attributes'>
<dt_assoc>
<item key='type'>tld_data</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>

142

</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_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Query Successful</item>
<item key='attributes'>
<dt_assoc>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='registrant_type'>individual</item>
<item key='id_card_number'>987654321</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>

143

</body>
</OPS_envelope>

Example 6
For a .PRO domain

Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='attributes'>
<dt_assoc>
<item key='type'>tld_data</item>
</dt_assoc>
</item>
<item key='protocol'>XCP</item>
<item key='action'>get</item>
<item key='object'>domain</item>
<item key='cookie'>kXO4IpLLr7EJidWD:698312:17335</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>

144

</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'>Query Successful</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='attributes'>
<dt_assoc>
<item key='tld_data'>
<dt_assoc>
<item key='professional_data'>
<dt_assoc>
<item key='profession'>Dentist</item>
<item key='license_number'>123456789</item>
<item key='authority_website'>http://www.cdaadc.ca/</item>
<item key='authority'>Canadian Dental
Association</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = waiting history


145

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">get</item>
<item key="object">domain</item>
<item key="cookie">24128866:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="type">waiting_history</item>
<item key="limit">10</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>

146

<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="attributes">
<dt_assoc>
<item key="record_count">0</item>
<item key="waiting_history">
<dt_array/>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For type = whois_privacy_state


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">GET</item>
<item key="object">DOMAIN</item>
<item key="cookie">746419257:9536368</item>

147

<item key="registrant_ip"/>
<item key="attributes">
<dt_assoc>
<item key="type">whois_privacy_state</item>
<item key="limit">10</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="attributes">
<dt_assoc>
<item key="state">enabled</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>

148

</body>
</OPS_envelope>

149

get_domains_contacts
Description
Action & object
action = get_domains_contacts
object = domain

Usage
Queries the contact information for the specified domains.

Request parameters for get_domains_contacts


Standard parameters
action = get_domains_contacts
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain_list

Required

The list of domain names for which to query contact


information. The maximum number of domains that
can be specified in a single request is 100.

Response parameters for get_domains_contacts


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

150

Attributes
The attributes array includes an array of associative arrays, one for each
domain queried. The associative array for each domain includes the contact
set for that domain.

Examples for get_domains_contacts


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">GET_DOMAINS_CONTACTS</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain_list">
<dt_array>
<item key="0">js4.be</item>
<item key="1">js3.be</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

151

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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
<item key="attributes">
<dt_assoc>
<item key="js3.be">
<dt_assoc>
<item key="contact_set">
... see "Contact Set"
</item>
</dt_assoc>
</item>
<item key="js4.be">
<dt_assoc>
<item key="contact_set">
... see "Contact Set"
</item>
</dt_assoc>
</item>
</dt_assoc>

152

</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

153

get_domains_by_expiredate
Description
Action & object
action = get_domains_by_expiredate
object = domain

Usage
Retrieves domains that expire within a specified date range.

Request parameters for


get_domains_by_expiredate
Standard parameters
action = get_domains_by_expiredate
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

exp_from

Required

Used in conjunction with exp_to attribute.


The date from which to list expiring
domains.
Date must be in the format YYYY-MM-DD.

exp_to

Required

Used in conjunction with exp_from


attribute. The date until which to list
expiring domains.
Date must be in the format YYYY-MM-DD.

limit

Optional - if not
The number of domains to return on each
specified, the default '40' page.
will be used.

page

Optional - if not
specified, the default '1'
will be used.

Determines which page to retrieve, using


the page number. The page index starts at
0 (zero).

154

Response parameters for


get_domains_by_expiredate
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
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

exp_domains

Required

Lists the domains that expire during the specified


period.
For more information, see the Exp_Domains table
below.

page

Required

The number of the page retrieved.

remainder

Required

Indicates if some expiring domains were not returned


due to restrictions set by the page and limit values.

total

Required

0No, all expiring domains are listed.

1Yes, there are remaining expiring domains


not listed.

The total number of domains expiring in the specified


date range.

Exp_Domains
Parameters within the exp_domains associative array are described below.
Parameter
name

Obligation

Definition/Value

expiredate

Required

The date the domain expires.

f_auto_renew

Required

Flag (Y or N) indicating whether domain is


automatically renewed.

155

Parameter
name

Obligation

Definition/Value

f_let_expire

Required

Flag (Y or N) indicating whether domain is allowed


to expire.

name

Required

The name of the domain that is expiring.

Examples for get_domains_by_expiredate


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">get_domains_by_expiredate</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="limit">20</item>
<item key="exp_from">2009-12-03</item>
<item key="exp_to">2009-12-25</item>
<item key="page">1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

156

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="is_success">1</item>
<item key="response_text">Command successful</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="page">1</item>
<item key="total">2</item>
<item key="remainder">0</item>
<item key="exp_domains">
<dt_array>
<item key="0">
<dt_assoc>
<item key="f_let_expire">N</item>
<item key="name">katarina.biz</item>
<item key="expiredate">2009-12-18
23:59:59</item>
<item key="f_auto_renew">N</item>
</dt_assoc>
</item>
<item key="1">

157

<dt_assoc>
<item key="name">kristina.ch</item>
<item key="expiredate">2009-12-18
23:59:59</item>
<item key="f_let_expire">N</item>
<item key="f_auto_renew">N</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

158

get_notes
Description
Action & object
action = get_notes
object = domain

Usage
Retrieves the domain notes that detail the history of the domain, for
example, renewals and transfers.

Request parameters for get_notes


Standard parameters
action = get_notes
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain to query.

limit

Optional

Maximum number of notes to display on a page; the


default is 40.

order_id

Optional

The ID number of the order.

page

Optional

Determines which page to retrieve, using the page


number. The page index starts at 1.

transfer_id

Optional

The ID number of the transfer.

type

Required

Type of notes to display. Allowed values are


domain, order, and transfer.

159

Response parameters for get_notes


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
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

notes

Required

The contents of the note.


timestamp = date and time the note was recorded,
in the format DD-MMM-YYYY hh:mm:ss.
note = contents of the note

page

Optional

Page retrieved, using the page number. The page


index starts at 1

page_size

Required

The maximum number of notes returned per page.

total

Required

Total number of notes returned.

Examples for get_notes


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>

160

<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get_notes</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="page">1</item>
<item key="order_id">123456</item>
<item key="type">order</item>
<item key="limit">100</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="is_success">1</item>
<item key="response_text">Command successful</item>
<item key="response_code">200</item>

161

<item key="attributes">
<dt_assoc>
<item key="page_size">100</item>
<item key="page">1</item>
<item key="total">1</item>
<item key="notes">
<dt_array>
<item key="0">
<dt_assoc>
<item key="timestamp">15-OCT-2007

16:23:04</item>

<item key="note">Domain taken</item>


</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

162

get_order_info
Description
Action & object
action = get_order_info
object = domain

Usage
Queries all the information on an order ID, but does not return sensitive
information such as username, password, and Authcode.

Request parameters for get_order_info


Standard parameters
action = get_order_info
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

order_id

Required

The ID of the order to query.

Response parameters for get_order_info


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

163

Domain attributes
Parameters within the attributes associative array for domain orders are
described below.
Parameter name Obligation

Definition/Value

field_hash

A list (array) of the details of the domain


order ID. For more information, see the Field
Hash table below.

Required for
domain orders

Field Hash
Parameter name Obligation

Definition/Value

affiliate_id

Returned if
The associated affiliate ID.
is_success = true
and reg_type = new,
transfer, premium,
or sunrise

application_id

Returned if
is_success = true
and the order's
reg_type = sunrise
or landrush and the
order is for a .XXX
domain

The domainid number. The domainid is


required for .XXX Sunrise AD
applications to prove that the person
requesting the .XXX domain owns the
corresponding name in another gTLD or
ccTLD.

application_status

Returned if
is_success = true
and the order's
reg_type = sunrise
and the order is for
a .XXX domain

The status of the application. Allowed


values are:

processedWaiting for
notification from registry.

completedDomain awarded and


manageable.

declinedDomain registration
unsuccessful.

not_availableThis status is
always returned for Sunrise B
applications.

waitingDomain awarded but


not yet manageable.

comments

Optional

Comments submitted in the original


transaction.

completed_date

Returned when
Date when the transfer was completed.
reg_type = transfer

164

Parameter name Obligation

Definition/Value

cost

Returned if
is_success = true

Transaction cost to Reseller.

domain

Returned if
is_success = true

The domain being queried.

encoding type

Returned if
is_success = true
and reg_type =
new, transfer,
premium, or
sunrise

The three-character tag that represents


the language encoding type for the
domain. For a list of the languages
supported for each TLD, see the gTLD
and ccTLD Reference Chart on the
OpenSRS website.

expiry_year

Returned if
is_success = true
and reg_type =
transfer

Domain's current expiry year.

f_auto_renew

Returned if
is_success = true

Flag (Y or N) indicating whether domain


is set to automatically renew.

f_lock_domain

Returned if
is_success = true
and reg_type =
new, transfer,
premium, or
sunrise

Indicates whether the domain is locked.

flag_saved_ns_
fields

Returned if
is_success = true
and reg_type =
new, transfer,
premium, or
sunrise

Indicates whether the nameserver fields


that were used were those submitted in
the transaction request or the default
nameserver information.

flag_saved_tech_
fields

Returned if
is_success = true
and reg_type =
new, transfer,
premium, or
sunrise

Indicates whether the technical contact


fields that were used were those
submitted in the transaction request or
the default Reseller account technical
contact information.

forwarding_email

Returned if
is_success = true
and reg_type =
new, transfer,
premium, or
sunrise

The domain's e-mail address that is used


for forwarding purposes.

0Domain is not locked

1Domain is locked

165

Parameter name Obligation

Definition/Value

fqdn1/2/3/4

Returned if
is_success = true
and reg_type =
new, transfer,
premium, or
sunrise

Nameservers submitted with the


registration.

id

Returned if
is_success = true

The ID number of the order.

master_order_id

Returned if
is_success = true
and reg_type =
new, transfer,
premium, or
sunrise

The order ID for a group of domains that


are linked.

notes

Returned if
is_success = true

The contents of the note.

timestampDate and time the


note was recorded, in the format
DD-MMM-YYYY hh:mm:ss.

noteContents of the note

order_date

Returned if
is_success = true

Date the order was created.

owner, admin,
billing, and tech
contact information

Returned if
is_success = true
and reg_type =
new, transfer,
premium, or
sunrise

The current contact information for


owner, admin, billing, and tech contacts.
May include org_name, first_name,
last_name, address1, 2, and 3, city,
state, postal_code, country, phone, fax,
and email.

owner_confirm_
time

Returned if
is_success = true
and reg_type =
transfer

Date when the owner responded to the


transfer request

owner_request_
time

Returned if
is_success = true
and reg_type =
transfer

Date when the email to confirm that


transfer was sent.

period

Returned if
is_success = true

The length of the registration period in


years.

processed_date

Returned if
is_success = true.
Empty for new

Date the order was processed.

166

Parameter name Obligation

Definition/Value

domain registration.
reg_domain

Returned if
is_success = true
and reg_type =
new, transfer,
premium, or
sunrise

An existing, active domain name, owned


by the registrant that was used to link
the newly registered or transferred
domain to the profile of the existing
domain.

reg_type

Returned if
is_success = true

Type of order, for example, new,


premium, renewal, sunrise, transfer,
or whois_privacy.

registry_request_
time

Returned if
is_success = true
and reg_type =
transfer

The time when the transfer request was


sent to the registry.

request_address

Returned if
is_success = true
and reg_type =
transfer

Address to which the transfer approval


email was sent.

status

Returned if
is_success = true

Current status of the order. Values may


be declined, pending, deleted,
completed, cancelled, or
waiting_ca_owner_approval.

tld_data

Returned for
.ASIA, .AR, .AU,
.BR, .Cl, .COOP,
.DE, .DK, .FI, .FR,
.HK, .HU, .IT, .LV,
.MX, .MY, .NO,
.NU, .PM, .PRO,
.PT, .RE, .RO, .RU,
.SE, .SG, .TF, .US,
.WF, .XXX, .YT,
and .ZA domains if
is_success = true

An associative array containing


registrant information.

Returned if
is_success = true
and reg_type =
transfer

The contents of the note related to


transfers.

transfer_notes

transfer_status

Returned if

For more information, see tld_data.

timestampDate and time the


note was recorded, in the format
DD-MMM-YYYY hh:mm:ss.

noteContents of the note

Current status of the transfer. Pending

167

Parameter name Obligation


is_success = true
and reg_type =
transfer

Definition/Value
Owner Approval

Notes_list
Parameters within the notes_list associative array are described below.
Parameter
name

Obligation

Definition/Value

date

Optional

The date that the note` was created.

note

Optional

The text of the note.

type

Optional

The type of note. Allowed values are:


order_created, order_processed,
order_cancelled, order_completed,
order_resend_approve_email, money_held,
money_unheld, money_charged,
money_refunded, supplier_order_cancelled,
supplier_appr_confirmed,
supplier_appr_rejected,
supplier_product_created,
supplier_product_rejected, product_renewed,
product_active, product_renewing,
product_revoked, product_expired,
product_updated, product_scan_requested,
product_resend_cert_email.

Examples for get_order_info


Example 1
For a .COM domain order

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>

168

</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get_order_info</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="order_id">3515690</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response for domain orders


<?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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command completed
successfully</item>

169

<item key="attributes">
<dt_assoc>
<item key="field_hash">
<dt_assoc>
<item key="owner_first_name">Owen</item>
<item key="owner_last_name">Ottway</item>
<item key="owner_org_name">Example Inc.</item>
<item key="owner_address1">32 Oak St.</item>
<item key="owner_address2">Suite 500</item>
<item key="owner_address3"/>
<item key="owner_city">Santa Clara</item>
<item key="owner_state">CA</item>
<item key="owner_country">US</item>
<item key="owner_postal_code">90210</item>
<item
key="owner_phone">+1.4165550123x1902</item>
<item key="owner_fax">+1.4165550124</item>
<item key="owner_email">owner@example.com</item>
<item key="admin_first_name">Adler</item>
<item key="admin_last_name">Adams</item>
<item key="admin_org_name">Example Inc.</item>
<item key="admin_address1">32 Oak St.</item>
<item key="admin_address2">Suite 100</item>
<item key="admin_address3"/>
<item key="admin_city">Santa Clara</item>
<item key="admin_state">CA</item>
<item key="admin_country">US</item>
<item key="admin_postal_code">90210</item>
<item
key="admin_phone">+1.4165550123x1812</item>
<item key="admin_fax"/>
<item key="admin_email">admin@example.com</item>
<item key="billing_first_name">Bill</item>
<item key="billing_last_name">Burton</item>
<item key="billing_org_name">Example Inc.</item>

170

<item key="billing_address1">32 Oak St.</item>


<item key="billing_address2">Suite 200</item>
<item key="billing_address3"/>
<item key="billing_city">Santa Clara</item>
<item key="billing_state">CA</item>
<item key="billing_country">US</item>
<item key="billing_postal_code">90210</item>
<item
key="billing_phone">+1.4165550123x1248</item>
<item key="billing_fax"/>
<item
key="billing_email">burton@example.com</item>
<item key="tech_first_name">Ted</item>
<item key="tech_last_name">Tucker</item>
<item key="tech_org_name">Example Inc.</item>
<item key="tech_address1">32 Oak St.</item>
<item key="tech_address2">Suite 100</item>
<item key="tech_address3"/>
<item key="tech_city">Santa Clara</item>
<item key="tech_state">CA</item>
<item key="tech_country">US</item>
<item key="tech_postal_code">90210</item>
<item key="tech_phone">+1.4165550123x1243</item>
<item key="tech_fax">+1.4165550127</item>
<item key="tech_email">tucker@example.com</item>
<item key="comments"/>
<item key="reg_domain">december-22002.com</item>
<item key="domain">example.com</item>
<item key="transfer_notes">
<dt_array>
<item key="0">
<dt_assoc>
17:07:42</item>

<item key="timestamp">05-OCT-2007

171

<item key="note">Transfer Request


message sent to owner@example.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="affiliate_id"/>
<item key="order_date">1083590189</item>
<item key="status">completed</item>
<item key="f_lock_domain">0</item>
<item key="forwarding_email"/>
<item key="flag_saved_ns_fields">1</item>
<item key="processed_date"/>
<item key="id">3515690</item>
<item key="encoding_type">undef</item>
<item key="flag_saved_tech_fields">1</item>
<item key="completed_date">1083590192</item>
<item key="f_auto_renew">Y</item>
<item key="fqdn1">ns1.domaindirect.com</item>
<item key="fqdn2">ns2.domaindirect.com</item>
<item key="fqdn3"/>
<item key="fqdn4"/>
<item key="fqdn5"/>
<item key="fqdn6"/>
<item key="reg_type">new</item>
<item key="notes">
<dt_array>
<item key="0">
<dt_assoc>
first note</item>
11:15:03</item>

<item key="note">RSP Note: testing


<item key="timestamp">27-OCT-2007
</dt_assoc>
</item>

172

<item key="1">
<dt_assoc>
<item key="note">RSP Note: testing
second note</item>
<item key="timestamp">27-OCT-2007
11:15:05</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item key="note">RSP Note: testing
third note</item>
<item key="timestamp">27-OCT-2007
11:15:07</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="master_order_id">0</item>
<item key="period">1</item>
<item key="cost">15</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
For a .DK domain order

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>

173

<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='action'>get_order_info</item>
<item key='object'>domain</item>
<item key='attributes'>
<dt_assoc>
<item key='order_id'>607642</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='is_success'>1</item>
<item key='response_text'>Command completed successfully</item>
<item key='attributes'>
<dt_assoc>

174

<item key='field_hash'>
<dt_assoc>
<item key='owner_last_name'>Jensen</item>
<item key='owner_org_name'>Example Co.</item>
<item key='owner_address2'/>
<item key='owner_address3'/>
<item key='owner_city'>Copenhagen V</item>
<item key='owner_state'/>
<item key='owner_postal_code'>1610</item>
<item key='owner_phone'>+1.33257400</item>
<item key='owner_fax'>+1.33257410</item>
<item key='owner_email'>djensen@example.dk</item>
<item key='admin_org_name'>Example Co.</item>
<item key='admin_first_name'>Katrin</item>
<item key='admin_last_name'>Jensen</item>
<item key='admin_address1'>Gammel Kongevej 1</item>
<item key='admin_address2'/>
<item key='admin_address3'/>
<item key='admin_city'>Copenhagen V</item>
<item key='admin_state'/>
<item key='admin_country'>DK</item>
<item key='admin_postal_code'>1610</item>
<item key='admin_phone'>+1.33257400</item>
<item key='admin_fax'>+1.33257410</item>
<item key='admin_email'>kjensen@example.dk</item>
<item key='billing_org_name'>Example Co.</item>
<item key='billing_first_name'>Sarah</item>
<item key='billing_last_name'>Jensen</item>
<item key='billing_address1'>Gammel Kongevej 1</item>
<item key='billing_address2'/>
<item key='billing_address3'/>
<item key='billing_city'>Copenhagen V</item>
<item key='billing_state'/>
<item key='billing_postal_code'>1610</item>

175

<item key='billing_country'>DK</item>
<item key='billing_phone'>+1.33257400</item>
<item key='billing_fax'>+1.33257410</item>
<item key='billing_email'>sjensen@example.dk</item>
<item key='tech_org_name'>Example Co.</item>
<item key='tech_first_name'>Eric</item>
<item key='tech_last_name'>Jensen</item>
<item key='tech_address1'>Gammel Kongevej 1</item>
<item key='tech_address2'/>
<item key='tech_address3'/>
<item key='tech_city'>Copenhagen V</item>
<item key='tech_state'/>
<item key='tech_postal_code'>1610</item>
<item key='tech_country'>DK</item>
<item key='tech_phone'>+1.33257400</item>
<item key='tech_fax'>+1.33257410</item>
<item key='tech_email'>ejensen@example.dk</item>
<item key='affiliate_id'>affiliatetest1</item>
<item key='domain'>qatest1380643516039.dk</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='registrant_type'>organization</item>
<item key='registrant_vat_id'>123456789</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='flag_saved_tech_fields'>1</item>
<item key='completed_date'>1380643717</item>
<item key='notes'>
<dt_array>
</dt_array>

176

</item>
<item key='reg_domain'/>
<item key='comments'/>
<item key='id'>607642</item>
<item key='cost'>15</item>
<item key='flag_saved_ns_fields'>1</item>
<item key='master_order_id'>0</item>
<item key='order_date'>1380643519</item>
<item key='f_auto_renew'>Y</item>
<item key='forwarding_email'/>
<item key='status'>completed</item>
<item key='fqdn1'>ns1.systemdns.com</item>
<item key='fqdn2'>ns2.systemdns.com</item>
<item key='fqdn3'/>
<item key='fqdn4'/>
<item key='fqdn5'/>
<item key='fqdn6'/>
<item key='reg_type'>new</item>
<item key='f_lock_domain'>0</item>
<item key='period'>1</item>
<item key='encoding_type'/>
<item key='processed_date'/>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

177

Example 3
For a .FR domain order

Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>get_order_info</item>
<item key='object'>domain</item>
<item key='attributes'>
<dt_assoc>
<item key='order_id'>457700</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>

178

<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed successfully</item>
<item key='attributes'>
<dt_assoc>
<item key='field_hash'>
<dt_assoc>
<item key='domain'>example.fr</item>
<item key='owner_org_name'>Example GmbH</item>
<item key='owner_first_name'>Astrid</item>
<item key='owner_last_name'>Bauer</item>
<item key='owner_address1'>Klostergasse 10</item>
<item key='owner_address2'/>
<item key='owner_address3'/>
<item key='owner_city'>Innsbruck</item>
<item key='owner_state'>Tirol</item>
<item key='owner_postal_code'>6020</item>
<item key='owner_country'>AT</item>
<item key='owner_phone'>+43 512 5333 10</item>
<item key='owner_fax'>+43 512 5333 11</item>
<item key='owner_email'>astrid@example.com</item>
<item key='admin_first_name'>Franz</item>
<item key='admin_last_name'>Bauer</item>
<item key='admin_org_name'>Example GmbH</item>
<item key='admin_address1'>Klostergasse 10</item>
<item key='admin_address2'/>
<item key='admin_address3'/>
<item key='admin_city'>Innsbruck</item>
<item key='admin_state'>Tirol</item>
<item key='admin_postal_code'>6020</item>

179

<item key='admin_country'>AT</item>
<item key='admin_phone'>+1.4165350125</item>
<item key='admin_fax'>+1.4165350124</item>
<item key='admin_email'>franz@example.com</item>
<item key='billing_first_name'/>
<item key='billing_last_name'/>
<item key='billing_org_name'/>
<item key='billing_address1'/>
<item key='billing_address2'/>
<item key='billing_address3'/>
<item key='billing_city'/>
<item key='billing_state'/>
<item key='billing_postal_code'/>
<item key='billing_country'/>
<item key='billing_phone'/>
<item key='billing_fax'/>
<item key='billing_email'/>
<item key='tech_first_name'>Jorg</item>
<item key='tech_last_name'>Bauer</item>
<item key='tech_org_name'>Example GmbH</item>
<item key='tech_address1'>Klostergasse 10</item>
<item key='tech_address2'/>
<item key='tech_address3'/>
<item key='tech_city'>Innsbruck</item>
<item key='tech_state'>Tirol</item>
<item key='tech_country'>AT</item>
<item key='tech_postal_code'>6020</item>
<item key='tech_phone'>+1.4165350125</item>
<item key='tech_fax'>+1.4165350124</item>
<item key='tech_email'>jorg@example.com</item>
<item key='processed_date'/>
<item key='fqdn1'>ns1.systemdns.com</item>
<item key='fqdn2'>ns2.systemdns.com</item>
<item key='fqdn3'/>

180

<item key='fqdn4'/>
<item key='fqdn5'/>
<item key='fqdn6'/>
<item key='period'>1</item>
<item key='encoding_type'/>
<item key='affiliate_id'/>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='registrant_type'>individual</item>
<item key='date_of_birth'>1989-03-03</item>
<item key='country_of_birth'>FR</item>
<item key='postal_code_of_birth'>75008</item>
<item key='place_of_birth'>Paris</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='flag_saved_tech_fields'>1</item>
<item key='completed_date'>1329504888</item>
<item key='notes'>
<dt_array>
</dt_array>
</item>
<item key='reg_domain'/>
<item key='comments'/>
<item key='id'>457700</item>
<item key='cost'>15</item>
<item key='flag_saved_ns_fields'>1</item>
<item key='master_order_id'>0</item>
<item key='order_date'>1329504872</item>
<item key='f_auto_renew'>Y</item>
<item key='forwarding_email'/>

181

<item key='status'>completed</item>
<item key='reg_type'>new</item>
<item key='f_lock_domain'>0</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 4
For a .RE domain order

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">get_order_info</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="order_id">16732959</item>
</dt_assoc>
</item>
</dt_assoc>

182

</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_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed successfully</item>
<item key='attributes'>
<dt_assoc>
<item key='field_hash'>
<dt_assoc>
<item key='owner_first_name'>Henrie</item>
<item key='owner_last_name'>LaFleur</item>
<item key='owner_org_name'>French Impressions</item>
<item key='owner_address1'>13 Rue Daze</item>
<item key='owner_address2'/>
<item key='owner_address3'/>
<item key='owner_city'>Paris</item>
<item key='owner_state'/>
<item key='owner_postal_code'>75002</item>
<item key='owner_country'>FR</item>

183

<item key='owner_phone'>+1.3365551212</item>
<item key='owner_fax'>>+1.3365550124</item>
<item key='owner_email'>lafleur@example.com</item>
<item key='admin_first_name'>Marie</item>
<item key='admin_last_name'>LaFleur</item>
<item key='admin_org_name'>French Impressions</item>
<item key='admin_address1'>13 Rue Daze</item>
<item key='admin_address2'/>A
<item key='admin_address3'/>
<item key='admin_city'>Paris</item>
<item key='admin_state'/>
<item key='admin_postal_code'>75002</item>
<item key='admin_country'>FR</item>
<item key='admin_email'>marie@example.com</item>
<item key='admin_phone'>>+1.3365551213</item>
<item key='admin_fax'>>+1.3365550125</item>
<item key='billing_first_name'/>
<item key='billing_last_name'/>
<item key='billing_org_name'/>
<item key='billing_address1'/>
<item key='billing_address2'/>
<item key='billing_address3'/>
<item key='billing_city'/>
<item key='billing_state'/>
<item key='billing_postal_code'/>
<item key='billing_country'/>
<item key='billing_phone'/>
<item key='billing_fax'/>
<item key='billing_email'/>
<item key='tech_first_name'>Pierre</item>
<item key='tech_last_name'>Richard</item>
<item key='tech_org_name'>French Impressions</item>
<item key='tech_address1'>13 Rue Daze</item>
<item key='tech_address2'/>

184

<item key='tech_address3'/>
<item key='tech_city'>Paris</item>
<item key='tech_state'/>
<item key='tech_postal_code'>75002</item>
<item key='tech_country'>FR</item>
<item key='tech_phone'>+1.3365551215</item>
<item key='tech_fax'>+1.3365550125</item>
<item key='tech_email'>pierre@example.com</item>
<item key='processed_date'/>
<item key='period'>1</item>
<item key='encoding_type'/>
<item key='affiliate_id'/>
<item key='domain'>example.re</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='registrant_type'>individual</item>
<item key='date_of_birth'>1976-08-05</item>
<item key='country_of_birth'>FR</item>
<item key='postal_code_of_birth'>33023</item>
<item key='place_of_birth'>Bordeaux</item>
<item key='province_of_birth'>Gironde</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='flag_saved_tech_fields'>1</item>
<item key='completed_date'>1341517755</item>
<item key='notes'>
<dt_array>
</dt_array>
</item>
<item key='reg_domain'/>

185

<item key='fqdn1'>ns1.systemdns.com</item>
<item key='fqdn2'>ns2.systemdns.com</item>
<item key='fqdn3'>ns3.systemdns.com</item>
<item key='fqdn4'/>
<item key='fqdn5'/>
<item key='fqdn6'/>
<item key='comments'/>
<item key='id'>485395</item>
<item key='cost'>50</item>
<item key='flag_saved_ns_fields'>1</item>
<item key='master_order_id'>0</item>
<item key='order_date'>1341517725</item>
<item key='f_auto_renew'>Y</item>
<item key='forwarding_email'/>
<item key='status'>completed</item>
<item key='reg_type'>new</item>
<item key='f_lock_domain'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 5
For a .XXX order

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>

186

<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">get_order_info</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="order_id">457626</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_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Command completed successfully</item>

187

<item key='attributes'>
<dt_assoc>
<item key='field_hash'>
<dt_assoc>
<item key='owner_org_name'>Example Inc.</item>
<item key='owner_first_name'>Owen</item>
<item key='owner_last_name'>Ottway</item>
<item key='owner_address1'>32 Oak St.</item>
<item key='owner_address2'>Suite 500</item>
<item key='owner_address3'/>
<item key='owner_city'>Santa Clara</item>
<item key='owner_state'>CA</item>
<item key='owner_postal_code'>90210</item>
<item key='owner_country'>US</item>
<item key='owner_email'>owner@example.com</item>
<item key='owner_phone'>+1.4165550123x1902</item>
<item key='owner_fax'>+1.4165350124</item>
<item key='admin_org_name'>Example Inc.</item>
<item key='admin_first_name'>Adler</item>
<item key='admin_last_name'>Adams</item>
<item key='admin_address1'>32 Oak St.</item>
<item key='admin_address2'>Suite 100</item>
<item key='admin_address3'/>
<item key='admin_city'>Santa Clara</item>
<item key='admin_state'>CA</item>
<item key='admin_postal_code'>90210</item>
<item key='admin_country'>US</item>
<item key='admin_phone'>+1.4165550123x1812</item>
<item key='admin_fax'>+1.4165350124</item>
<item key='admin_email'>admin@example.com</item>
<item key='billing_first_name'>Bill</item>
<item key='billing_last_name'>Burton</item>
<item key='billing_org_name'>Example Inc.</item>
<item key='billing_address1'>32 Oak St.</item>

188

<item key='billing_address2'>Suite 200</item>


<item key='billing_address3'/>
<item key='billing_city'>Santa Clara</item>
<item key='billing_state'>CA</item>
<item key='billing_country'>US</item>
<item key='billing_postal_code'>90210</item>
<item key='billing_email'>burton@example.com</item>
<item key='billing_phone'>+1.4165550123x1248</item>
<item key='billing_fax'>+1.4165350124</item>
<item key='tech_first_name'>Ted</item>
<item key='tech_last_name'>Tech Lastname</item>
<item key='tech_org_name'>Tucker</item>
<item key='tech_address1'>32 Oak St.</item>
<item key='tech_address2'>Suite 100</item>
<item key='tech_address3'/>
<item key='tech_city'>Santa Clara</item>
<item key='tech_state'>CA</item>
<item key='tech_postal_code'>90210</item>
<item key='tech_email'>tucker@example.com</item>
<item key='tech_phone'>+1.4165550123x1243</item>
<item key='tech_fax'>+1.4165350124</item>
<item key='processed_date'/>
<item key='fqdn2'>ns2.systemdns.com</item>
<item key='period'>1</item>
<item key='application_id'>D10215-XXX</item>
<item key='ipr_entitlement'>OWNER</item>
<item key='affiliate_id'/>
<item key='fqdn4'/>
<item key='ipr_type'>AD</item>
<item key='domain'>example.xxx</item>
<item key='flag_saved_tech_fields'>1</item>
<item key='completed_date'/>
<item key='tld_data'>
<dt_assoc>

189

<item key='ipr_data'>
<dt_assoc>
<item key='ipr_name'>Owen Ottway</item>
<item key='ipr_email'>ottway@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='notes'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='timestamp'>15-FEB-2012
18:08:50</item>
<item key='note'>Domain lock enabled</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='reg_domain'/>
<item key='fqdn3'/>
<item key='fqdn5'/>
<item key='comments'/>
<item key='id'>315169</item>
<item key='ipr_registration_date'>2011-01-01</item>
<item key='cost'>85</item>
<item key='flag_saved_ns_fields'>1</item>
<item key='application_status'>processed</item>
<item key='master_order_id'>0</item>
<item key='order_date'>1314713193</item>
<item key='f_auto_renew'>Y</item>
<item key='forwarding_email'/>
<item key='status'>completed</item>
<item key='fqdn6'/>

190

<item key='reg_type'>sunrise</item>
<item key='fqdn1'>ns1.systemdns.com</item>
<item key='tech_country'>CA</item>
<item key='f_lock_domain'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

191

get_orders_by_domain
Description
Action & object
action = get_orders_by_domain
object = domain

Usage
Retrieves information about orders placed for a specific domain.

Request parameters for get_orders_by_domain


Standard parameters
action = get_orders_by_domain
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain to query.

limit

Optional

Maximum number of orders to display on a page; the


default is 40.

order_from

Optional

Specify a starting date, in the format YYYY-MM-DD


from which to return orders. Can be used with the
order_to parameter to specify a range within which
to search. If not used with order_to, all orders from
the order_from date onward are returned.

order_to

Optional

Specify an end date, in the format YYYY-MM-DD,


before which to return orders. Can be used with the
attribute order_from parameter to specify a range
within which to search. If not used with order_from,
all orders from the order_to date and earlier are
returned.

page

Optional

Determines which page to retrieve, using the page


number. The page index starts at 1.

192

Parameter
name

Obligation

Definition/Value

status

Optional

Status of the order. Allowed values are declined,


pending, pending_fax, deleted, completed,
cancelled, ca_owner_approval, or waiting.

type

Optional

Type of order query, for example, new, premium,


renewal, sunrise, or transfer.

Response parameters for get_orders_by_domain


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
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

orders

Required

Contains arrays that list details about each order.


For more information, see the Orders table
below.

page_size

Required

The maximum number of orders returned per


page.

Orders
Parameters within the orders associative array are described below.
Parameter
name

Obligation

Definition/Value

id

Required

The ID number of the order.

order_date

Required

Date the order was created.

193

Parameter
name

Obligation

Definition/Value

status

Optional

Current status of the order. Values may be declined,


pending, pending_fax, deleted, completed,
cancelled, declined, ca_owner_approval, or
waiting.

type

Required

Type of order, for example, new, premium,


renewal, sunrise, transfer, or whois_privacy.

Examples for get_orders_by_domain


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">get_orders_by_domain</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="page">1</item>
<item key="order_from">2007-10-01</item>
<item key="status">pending</item>
<item key="type">new</item>
<item key="limit">100</item>
<item key="order_to">2007-10-16</item>
</dt_assoc>
</item>

194

</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="is_success">1</item>
<item key="response_text">Command successful</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="page_size">100</item>
<item key="orders">
<dt_array>
<item key="0">
<dt_assoc>
<item key="order_date">16-OCT-2007 15:21:26</item>
<item key="status">pending</item>
<item key="type">new</item>
<item key="id">103789</item>
</dt_assoc>
</item>

195

<item key="1">
<dt_assoc>
<item key="order_date">16-OCT-2007 15:21:23</item>
<item key="status">pending</item>
<item key="type">new</item>
<item key="id">103788</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

196

get_price
Description
Action & object
action = get_price
object = domain

Usage
Queries the price of a domain, and can be used to determine the cost of a
billable transaction for any TLD. A returned price for a given domain does not
guarantee the availability of the domain, but indicates that the requested
action is supported by the system and calculates the cost to register the
domain (if available).

Request parameters for get_price


Standard parameters
action = get_price
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain to be queried.

period

Optional

The desired registration period. The default is 1.

reg_type

Optional

The type of registration.


Allowed values are new and renewal. The default
is new.

197

Response parameters for get_price


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
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

price

Required

The price of the queried domain. This value includes


the price and the ICANN fee.

Examples for get_price


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">GET_PRICE</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>

198

<item key="domain">example.com</item>
<item key="period">1</item>
<item key="reg_type">new</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command Successful</item>
<item key="attributes">
<dt_assoc>
<item key="price">20.2</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

199

get_registrant_verification_status
Description
Action & object
action =get_registrant_verification_status
object = domain
Usage
When a domain is registered or transferred, or when the registrant contact
information is changed, the registrant must reply to an email requesting
them to confirm that the submitted contact information is correct. This
command returns the current state of the verification request.

Request parameters for


get_registrant_verification_status
Standard parameters
action = get_registrant_verification_status
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition / Value

domain

The relevant domain.

Required if cookie is not submitted

Response parameters for


get_registrant_verification_status
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
200

response_text = message describing the outcome of the request

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

days_to_suspend Returned if
The number of days remaining until the domain is
is_success = suspended if the registrant information is not
true
validated. If the domain has already been
suspended, this value will be a negative number.
If the domain has been verified, the value
returned is 0.
Note: This parameter is returned only if the value
for registrant_verification_status is pending,
verifying, suspended, or admin_reviewing.
email_bounced

Returned if
Returns 1 if the verification email was triggered
is_success = because the WDRP or the renewal notice bounced.
true

registrant_
verification_
status

Returned if
The current status of the verification.
is_success = Allowed values are:
true
admin_reviewingThe registrant data
has been submitted and is being validated
manually by the Tucows Compliance team

verification_
deadline

pendingThe verification process has


been initiated, and the verification email
will be sent.

suspendedThe registrant has failed


verification and the domain has been
suspended.

verifiedThe registrant has been


validated.

verifyingThe verification process has


been initiated and is waiting for registrant
response.

unverifiedThe verification process has


not been initiated.

Returned if
The date when the name will be suspended.
is_success = Note: This parameter is returned only if the value
true
for registrant_verification_status is pending,
verifying, suspended, or admin_reviewing.

201

Examples for get_registrant_verification_status


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'>get_registrant_verification_status</item>
<item key='object'>domain</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>example.com</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>

202

<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="response_text">Command Successful</item>
<item key="attributes">
<dt_assoc>
<item key="registrant_verification_status">suspended</item>
<item key="verification_deadline">2013-12-02 00:00:00</item>
<item key="days_to_suspend">2</item>
<item key="email_bounced">1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

203

lookup (domain)
Description
Action & object
action = lookup
object = domain

Usage
Determines the availability of a specified domain name.
Note: This command checks the availability of a single domain name. We
recommend that you use the much more robust name_suggest API instead.
In addition to checking the specified domain name, the name_suggest API
also checks whether the domain name is available in other TLDs (.COM,
.NET, .ORG, .INFO, and .BIZ), and it returns a list of suggested domains
names that are related to the specified name.

Request parameters for lookup (domain)


Standard parameters
action = lookup
object = domain
registrant_ip = valid IP address of the registrant (optional)
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain name to be queried.

no_cache

Optional

In order to obtain results quickly, the default for the


lookup command is to check the local OpenSRS cache
to determine domain name availability. If you specify
no_cache = 1, instead of checking the cache, the
lookup command queries the applicable registry to
determine domain name availability.

Note: Setting no_cache to 1 increases the amount


of time it takes to get results.

204

Deprecated
Parameter
name

Obligation

Definition/Value

pre_reg

Deprecated

Used during the .BIZ round robin.

Note: No encoding type is sent on a lookup.

Response parameters for lookup (domain)


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

Note: Even if the domain being queried is taken (response_code = 211),


is_success is set to 1 because the query was successful. Therefore, be sure
to check the response_code and response_text when reading the reply.

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

email_available

Optional

Indicates whether a forwarding email is


available or not. Applies to .NAME domains only.

noservice

Required only
for .NAME

0No forwarding email available

1Forwarding email available

Indicates Registry Agent availability. If RA is


available, noservice does not appear in
response.

1supplier unavailable

Note: when noservice = 1, is_success = 0.


price_status

Required

The pricing status.

UndefNon .TV domains

FixedPrice is fixed for .TV domains

205

Parameter
name

Obligation

Definition/Value

status

Required

Whether the domain is available or taken.

Examples for lookup (domain)


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">LOOKUP</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip">111.121.121.121</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="no_cache">1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

206

Response
If domain is available
<?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="is_success">1</item>
<item key="response_code">210</item>
<item key="response_text">Domain available</item>
<item key="attributes">
<dt_assoc>
<item key="status">available</item>
<item key="email_available">undef</item>
<item key="price_status">undef</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If domain is unavailable
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>

207

<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="is_success">1</item>
<item key="response_code">211</item>
<item key="response_text">Domain taken</item>
<item key="attributes">
<dt_assoc>
<item key="status">taken</item>
<item key="email_available">undef</item>
<item key="price_status">undef</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

208

name_suggest (domain)
Description
Action & object
action = name_suggest
object = domain

Usage
Checks whether a specified name, word, or phrase is available for
registration in gTLDs and ccTLDs, suggests other similar domain names for
.COM, .NET, .ORG, .INFO, .BIZ, .US, and .MOBI domains, and checks
whether they are available. Reseller must be enabled for the specified TLDs.

Request parameters for name_suggest (domain)


Standard parameters
action = name_suggest
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

languages

Optional

Specify the languages in which to return


suggestions for other similar names.

enEnglish

frFrench

deGerman

itItalian

esSpanish

You can specify the languages in which you


want to see name suggestions, for example,
you can submit a name, word or phrase in
Spanish and specify es to request suggestions
in Spanish.
If you do not specify a language code, the
system tries to determine the language used
in the searchstring and returns suggestions

209

Parameter name

Obligation

Definition/Value
in that language.

max_wait_time

Optional

Specify the number of seconds that the


command can run, and return as many results
as can be found in that time period. You can
specify a fraction of a second, as long as the
value is at least 0.1. If the results cannot be
determined for any of the lookup domains
within the specified time, the returned status
value is in_progress.
If all results cannot be returned for
suggestion, premium, or personal names
within the specified time period, no results are
returned for that service; that is the
command returns all results or no results for
each of these services.
After the results obtained within the
max_wait_time are returned, the command
continues to run in the background, and you
can resubmit the command with the
search_key to see more results.
Note: If you do not include the
max_wait_time parameter, the command
takes as long as it needs to return complete
results.

search_key

Optional

Resumes the previously run name_suggest


command if the command did not return
complete results during the specified
max_wait_time

searchstring

Required

The name, word, or phrase whose availability


you want to check.
Note: The first level domain (for example,
.COM) is not required.

210

Parameter name

Obligation

Definition/Value

service_override

Optional

Overrides default settings for lookup,


suggestion, or premium.
For more information, see the
Service_Override table below.
Note: service_override is not available for
personal_names.

services

skip_registry_lookup

Optional

Optional

Specify the services for whichr you want to


check availability.

lookupCheck availability.

suggestionRequest suggestions.

personal_namesCheck the
availability of the specified personal
name, (firstname lastname).

premiumInclude domains owned by


external domain suppliers.

Specifies whether to query the applicable


registries to find out if the lookup domain
names are available for registration.

0Query the registries; this is the


default.

1Do not query the registries.

Note: If you set this parameter to 1, the


response is returned more quickly; however,
the results do not indicate whether or not the
lookup names are available. You still have to
check the availability of any names you are
interested in, for example, by using the
lookup (domain) command.
suggestion

Optional

Specify the TLDs to check for name


suggestions; can also specify the number of
suggestions to return. Suggestions are only
available for .COM, .NET, .ORG, .INFO, and
.BIZ.
Allowed values may be the tlds array and the
maximum parameter.
For more information, see the Lookup and
Suggestion table below.

tlds

Required

The TLDs you want to check for domain name


availability and suggestions.
Lookups are available for all gTLDs and
ccTLDs.
Suggestions are available for .COM, .NET,

211

Parameter name

Obligation

Definition/Value
.ORG, .INFO, .BIZ, .US, and .MOBI.

212

Service_Override
Parameters within the service_override associative array are described
below.
Parameter
name

Obligation

Definition/Value

lookup

Optional

Specify the TLDs to check for availability. Lookups


are available for all gTLDs and ccTLDs.

personal_names

Optional

Specify the TLDs to check for available personal


names.

premium

Optional

Specify the TLDs to check for availability. Premium


domain name lookups are available for .COM,
.NET, .ORG, .INFO, and .BIZ.

suggestion

Optional

Specify the TLDs to check for name suggestions;


can also specify the number of suggestions to
return. Suggestions are available for .COM,
.NET, .ORG, .INFO, .BIZ, .US, and .MOBI.
Allowed values may be the tlds array and the
maximum parameter.
For more information, see the Lookup and
Suggestion table below.

Lookup and Suggestion


Parameters within the lookup and suggestion associative arrays are
described below.
Parameter
name

Obligation

Definition/Value

maximum

Optional

The maximum number of domain name suggestions


to return.
Specify 1 to 100; 100 is the default.

price_max

Optional; used The maximum price of the Premium domains to


only for
return.
Premium
The value must be an integer, for example, 1150;
domains
decimal points are not allowed.
If this parameter is not submitted or if the value is
not acceptable, the default value of 5000 is used. If
this value is less than the price_min value, the
default values for both price_min and price_max are
used.

213

Parameter
name

Obligation

Definition/Value

price_min

Optional; used The minimum price of the Premium domains to


only for
return.
Premium
The value must be greater than zero, and must be
domains
an integer, for example, 250; decimal points are not
allowed.
If this parameter is not submitted or if the value is
not acceptable, the default value of 50 is used. If this
value is greater than the price_max value, the
default values for both price_min and price_max are
used.

tlds

Required

The TLDs you want to check for domain name


availability and suggestions.
Lookups are available for all gTLDs and ccTLDs.
Suggestions are available for .COM, .NET, .ORG,
.INFO, .BIZ, .US, and .MOBI.

Lookup
The following parameter may be used in the lookup associative array:
Parameter
name

Obligation

Definition/Value

no_cache_tlds

Optional

In order to obtain results quickly, the default for the


lookup command is to check the local OpenSRS
cache to determine domain name availability. If you
specify no_cache_tlds = 1, instead of checking the
cache, the lookup command queries the applicable
registries to determine domain name availability.

Note: Setting no_cache_tlds to 1 increases the


amount of time it takes to get results.

Response parameters for name_suggest (domain)


Standard parameters
action = reply
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

214

attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

is_search_completed

Required

Indicates whether all results were


returned within the specified
max_wait_time.
0 = search results are not complete.
Note: The command continues to run in
the background, and you can resubmit the
command with the search_key to see
more results.
1 = search completed.

lookup

Optional

The results returned for lookup.


Values may be the count parameter and
items associative array.
For more information, see the Premium,
Personal_Names, Lookup, and
Suggestion table below.

personal_names

Optional

The results returned for


personal_names.
Values may be the count parameter and
the items associative array.
For more information, see the Premium,
Personal_Names, Lookup, and
Suggestion table below.

premium

Optional

The results returned for premium.


Values may be the count parameter and
the items associative array.
For more information, see the Premium,
Personal_Names, Lookup, and
Suggestion table below.

search_key

Returned if
A key that is returned if the
is_search_compl name_suggest command did not return
eted = 0
complete results during the specified
max_wait_time.
The command continues to run in the
background, and you can resubmit the
command with the search_key to see
more results.

215

Parameter name

Obligation

Definition/Value

suggestion

Optional

The results returned for suggestion.


Values may be the count parameter and
the items associative array.
For more information, see the Premium,
Personal_Names, Lookup, and
Suggestion table below.

Premium, Personal_Names, Lookup, and Suggestion


Parameters within the premium, personal_names, lookup, and suggestion
associative arrays are described below.
Parameter
name

Obligation

Definition/Value

count

Required

The number of results returned for lookup,


personal_names, suggestion, or premium.

items

Required

List of domain names and their statuses.


Allowed values are domain and status.

Items
Parameters within the items associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

Returned domain name.

price

Optional

The purchase price for the premium domain.

status

Required

Indicates whether the returned domain names are


available and can be registered. Allowed values are:

availableDomain name is available and can


be registered.

justsoldDomain name has been sold and is


not available.

takenDomain name is not available.

undeterminedReturned if
skip_registry_lookup = 1 in the request, or
if the registry could not be contacted.

in_progressThe command could not


determine the status of the domain name in

216

Parameter
name

Obligation

Definition/Value
the allowed time. The command continues to
run in the background, and you can resubmit
the command with the search_key to see
more results.

vendor

Optional

The vendor of the premium domain.

Examples for name_suggest (domain)


Note: Due to the length of the responses in these examples, in some cases,
the results have been truncated by using ellipses (...) to represent omitted
results.

Request
For lookup, suggestion, premium, and personal names with suggestion
limited to .COM, .NET, and .ORG, in English, German, Italian, and Spanish.
<?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'>name_suggest</item>
<item key='object'>domain</item>
<item key='attributes'>
<dt_assoc>
<item key='services'>
<dt_array>
<item key='0'>lookup</item>
<item key='1'>suggestion</item>
<item key='2'>premium</item>

217

<item key='3'>personal_names</item>
</dt_array>
</item>
<item key='searchstring'>search string</item>
<item key='languages'>
<dt_array>
<item key='0'>en</item>
<item key='1'>de</item>
<item key='2'>it</item>
<item key='3'>es</item>
</dt_array>
</item>
<item key='tlds'>
<dt_array>
<item key='0'>.com</item>
<item key='1'>.net</item>
<item key='2'>.org</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>

218

<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='response_text'>Command completed successfully</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='attributes'>
<dt_assoc>
<item key='lookup'>
<dt_assoc>
<item key='count'>6</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='domain'>searchstring.com</item>
<item key='status'>taken</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='domain'>searchstring.net</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='domain'>searchstring.org</item>
<item key='status'>available</item>

219

</dt_assoc>
</item>
<item key='3'>
<dt_assoc>
<item key='domain'>search-string.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
<item key='personal_names'>
<dt_assoc>
<item key='count'>6</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='domain'>search.stringham.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='domain'>search.stringhini.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>

220

<item key='2'>
<dt_assoc>
<item
key='domain'>search.stringfield.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='3'>
<dt_assoc>
<item key='domain'>search.stringer.net</item>
<item key='status'>available</item>
</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
<item key='premium'>
<dt_assoc>
<item key='count'>20</item>
<item key='response_text'>Command Successful</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='domain'>badmintonstring.com</item>
<item key='status'>available</item>
<item key='price'>1349.00</item>
<item key='vendor'>fabulous</item>
</dt_assoc>
</item>

221

<item key='1'>
<dt_assoc>
<item key='domain'>cheapstring.com</item>
<item key='status'>available</item>
<item key='price'>1549.00</item>
<item key='vendor'>fabulous</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='domain'>elasticstring.com</item>
<item key='status'>available</item>
<item key='price'>1399.00</item>
<item key='vendor'>fabulous</item>
</dt_assoc>
</item>
<item key='3'>
<dt_assoc>
<item key='domain'>findcordblood.com</item>
<item key='status'>available</item>
<item key='price'>1688.00</item>
<item key='vendor'>buydomains</item>
</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
<item key='suggestion'>
<dt_assoc>
<item key='count'>50</item>
<item key='response_text'>Command Successful</item>
<item key='response_code'>200</item>

222

<item key='is_success'>1</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item
key='domain'>amazonsearchstring.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item
key='domain'>archivesearchstring.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='domain'>briefsearchstring.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
...
<item key='49'>
<dt_assoc>
<item key='domain'>search-string.org</item>
<item key='status'>available</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>

223

</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Request
For both lookup and suggestion with lookups limited to .COM and .INFO,
querying the registry (not OpenSRS cache) for .COM lookups, suggestions
limited to .COM and .ORG, and maximum 25 suggestions returned.
<?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">name_suggest</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="searchstring">example@search.com</item>
<item key="service_override">
<dt_assoc>
<item key="suggestion">
<dt_assoc>
<item key="tlds">
<dt_array>
<item key="0">.com</item>
<item key="1">.org</item>
</dt_array>

224

</item>
<item key="maximum">25</item>
</dt_assoc>
</item>
<item key="lookup">
<dt_assoc>
<item key="tlds">
<dt_array>
<item key="0">.com</item>
<item key="1">.info</item>
</dt_array>
</item>
<item key = "no_cache_tlds">
<dt_array>
<item key="0">.com</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="services">
<dt_array>
<item key="0">lookup</item>
<item key="1">suggestion</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

225

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="response_text">Command completed
successfully</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="lookup">
<dt_assoc>
<item key="count">8</item>
<item key="response_text"/>
<item key="response_code">0</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
search.com</item>

<item key="domain">example<item key="status">available</item>


</dt_assoc>
</item>
<item key="1">

226

<dt_assoc>
<item key="domain">example-

search.info</item>

<item key="status">available</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item
key="domain">example.com</item>
<item key="status">taken</item>
</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
<item key="suggestion">
<dt_assoc>
<item key="count">25</item>
<item key="response_text"/>
<item key="response_code">0</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
<item
key="domain">modelhunt.org</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>

227

<item
key="domain">modelfind.org</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
key="domain">problemfind.org</item>

<item
<item key="status">available</item>

</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Request
For premium domains, limited to .COM and .NET.
<?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>

228

<item key='protocol'>XCP</item>
<item key='action'>name_suggest</item>
<item key='object'>domain</item>
<item key='attributes'>
<dt_assoc>
<item key='searchstring'>abc&amp;d !</item>
<item key='service_override'>
<dt_assoc>
<item key='premium'>
<dt_assoc>
<item key='tlds'>
<dt_array>
<item key='0'>.com</item>
<item key='1'>.net</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='services'>
<dt_array>
<item key='0'>premium</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

229

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="is_success">1</item>
<item key="response_text">Command completed
successfully</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="premium">
<dt_assoc>
<item key="count">4</item>
<item key="response_text"/>
<item key="response_code">0</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
d.com</item>

<item key="domain">abc-and<item key="status">available</item>


<item key="price">299.98</item>
</dt_assoc>
</item>

230

<item key="1">
<dt_assoc>
<item
key="domain">abcandd.com</item>
<item key="status">available</item>
<item key="price">499.98</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item
key="domain">abcandd.net</item>
<item key="status">available</item>
<item key="price">99.78</item>
</dt_assoc>
</item>
<item key="3">
<dt_assoc>
<item key="domain">abcd.com</item>
<item key="status">available</item>
<item key="price">1523.45</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

231

Request
For premium, lookup, and suggestion, limited to .COM, maximum 10
suggestions returned.
<?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">name_suggest</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="service_override">
<dt_assoc>
<item key="premium">
<dt_assoc>
<item key="tlds">
<dt_array>
<item key="0">.com</item>
</dt_array>
</item>
</dt_assoc>
</item>
<item key="suggestion">
<dt_assoc>
<item key="tlds">
<dt_array>
<item key="0">.com</item>
</dt_array>

232

</item>
<item key="maximum">10</item>
</dt_assoc>
</item>
<item key="lookup">
<dt_assoc>
<item key="tlds">
<dt_array>
<item key="0">.com</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="services">
<dt_array>
<item key="0">lookup</item>
<item key="1">suggestion</item>
<item key="2">premium</item>
</dt_array>
</item>
<item key="searchstring">abc&amp;d</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

233

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="response_text">Command completed
successfully</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="lookup">
<dt_assoc>
<item key="count">2</item>
<item key="response_text"/>
<item key="response_code">0</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
<item key="domain">abc-d.com</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>

234

<item key="domain">abcd.com</item>
<item key="status">taken</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
<item key="premium">
<dt_assoc>
<item key="count">3</item>
<item key="response_text"/>
<item key="response_code">0</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
<item key="domain">abc-andd.com</item>
<item key="status">available</item>
<item key="price">299.98</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item
key="domain">abcandd.com</item>
<item key="status">available</item>
<item key="price">499.98</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item key="domain">abcd.com</item>

235

<item key="status">available</item>
<item key="price">1523.45</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
<item key="suggestion">
<dt_assoc>
<item key="count">10</item>
<item key="response_text"/>
<item key="response_code">0</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
<item
key="domain">abcdlive.com</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item

key="domain">abcdpro.com</item>

<item key="status">available</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item
key="domain">abcdslive.com</item>
<item key="status">available</item>

236

</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Request
For lookup and suggestion, limited to .COM, not checking the availability of
the lookup domain, maximum 10 suggestions returned.
<?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">name_suggest</item>
<item key="object">domain</item>
<item key="attributes">
<item key="services">
<dt_array>
<item key="0">lookup</item>
<item key="1">suggestion</item>

237

</dt_array>
</item>
<dt_assoc>
<item key="searchstring">smith</item>
<item key="skip_registry_lookup">1</item>
<item key="service_override">
<dt_assoc>
<item key="suggestion">
<dt_assoc>
<item key="tlds">
<dt_array>
<item key="0">.com</item>
</dt_array>
</item>
<item key="maximum">10</item>
</dt_assoc>
</item>
<item key="lookup">
<dt_assoc>
<item key="tlds">
<dt_array>
<item key="0">.com</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

238

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="response_text">Command completed
successfully</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="lookup">
<dt_assoc>
<item key="count">1</item>
<item key="response_text"/>
<item key="response_code">0</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
<item key="domain">smith.com</item>
<item
key="status">undetermined</item>
</dt_assoc>
</item>
</dt_array>

239

</item>
</dt_assoc>
</item>
<item key="suggestion">
<dt_assoc>
<item key="count">10</item>
<item key="response_text"/>
<item key="response_code">0</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
<item key="domain">smith-

mail.com</item>

<item key="status">taken</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item
key="domain">smithfamily.com</item>
<item key="status">taken</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
key="domain">smithslive.com</item>

<item
<item key="status">taken</item>

</dt_assoc>
</item>
...
</dt_array>
</item>

240

</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Request
For lookup, suggestion, premium, and personal names with suggestion
limited to .COM, .NET, .ORG, and .IN, in English, German, Italian, and
Spanish, with the command run time limited to 0.4 seconds.
<?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'>name_suggest</item>
<item key='object'>domain</item>
<item key='attributes'>
<dt_assoc>
<item key='searchstring'>search string</item>
<item key='max_wait_time'>0.4</item>
<item key='languages'>
<dt_array>
<item key='0'>en</item>
<item key='1'>de</item>
<item key='2'>it</item>
<item key='3'>es</item>

241

</dt_array>
</item>
<item key='tlds'>
<dt_array>
<item key='0'>.com</item>
<item key='1'>.net</item>
<item key='2'>.org</item>
<item key='3'>.in</item>
</dt_array>
</item>
<item key='services'>
<dt_array>
<item key='0'>lookup</item>
<item key='1'>suggestion</item>
<item key='2'>premium</item>
<item key='3'>personal_names</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
The results were in the specified time; however, not all lookup results are
complete. Premium name results were returned but suggestion and personal
names could not be returned in the specified time. The returned unique_key
allows you to resubmit the command.
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>

242

</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='response_text'>Command completed successfully</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='is_search_completed'>0</item>
<item key='search_key'>vgL2FeBzZ8JuS5lIluIEYhDc7Vg</item>
<item key='attributes'>
<dt_assoc>
<item key='lookup'>
<dt_assoc>
<item key='count'>84</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='domain'>searchstring.com</item>
<item key='status'>taken</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='domain'>searchstring.net</item>
<item key='status'>available</item>
</dt_assoc>
</item>

243

<item key='2'>
<dt_assoc>
<item key='domain'>searchstring.org</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='3'>
<dt_assoc>
<item key='domain'>searchstring.in</item>
<item key='status'>undetermined</item>
</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
<item key='premium'>
<dt_assoc>
<item key='count'>20</item>
<item key='response_text'>Command Successful</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='domain'>badmintonstring.com</item>
<item key='status'>available</item>
<item key='price'>1349.00</item>
<item key='vendor'>fabulous</item>
</dt_assoc>
</item>
<item key='1'>

244

<dt_assoc>
<item key='domain'>cheapstring.com</item>
<item key='status'>available</item>
<item key='price'>1549.00</item>
<item key='vendor'>fabulous</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='domain'>elasticstring.com</item>
<item key='status'>available</item>
<item key='price'>13998.00</item>
<item key='vendor'>fabulous</item>
</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Request
Resubmits the previously run name_suggest command which did not return
complete lookup results during the specified max_wait_time. The command
can run for a maximum of 0.7 seconds.
<?xml version=1.0 encoding=UTF-8 standalone=no ?>
<!DOCTYPE OPS_envelope SYSTEM ops.dtd>
<OPS_envelope>
<header>

245

<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>name_suggest</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='search_key'>vgL2FeBzZ8JuS5lIluIEYhDc7Vg</item>
<item key='max_wait_time'>0.7</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
Complete results for lookup are returned as well as results for suggestion,
premium, and personal names.
<?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='response_text'>Command completed successfully</item>

246

<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='is_search_completed'>1</item>
<item key='attributes'>
<dt_assoc>
<item key='lookup'>
<dt_assoc>
<item key='count'>84</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='domain'>searchstring.com</item>
<item key='status'>taken</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='domain'>searchstring.net</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='domain'>searchstring.org</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='3'>
<dt_assoc>

247

<item key='domain'>searchstring.in</item>
<item key='status'>undetermined</item>
</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
<item key='premium'>
<dt_assoc>
<item key='count'>20</item>
<item key='response_text'>Command Successful</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='domain'>badmintonstring.com</item>
<item key='status'>available</item>
<item key='price'>1349.00</item>
<item key='vendor'>fabulous</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='domain'>cheapstring.com</item>
<item key='status'>available</item>
<item key='price'>1549.00</item>
<item key='vendor'>fabulous</item>
</dt_assoc>
</item>
<item key='2'>

248

<dt_assoc>
<item key='domain'>elasticstring.com</item>
<item key='status'>available</item>
<item key='price'>13998.00</item>
<item key='vendor'>fabulous</item>
</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
<item key='personal_names'>
<dt_assoc>
<item key='count'>6</item>
<item key='response_text'>Command completed
successfully.</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='domain'>search.stringham.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='domain'>search.stringhini.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='2'>

249

<dt_assoc>
<item
key='domain'>search.stringfield.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
<item key='suggestion'>
<dt_assoc>
<item key='count'>50</item>
<item key='response_text'>Command Successful</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
<item key='items'>
<dt_array>
<item key='0'>
<dt_assoc>
<item
key='domain'>amazonsearchstring.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item
key='domain'>archivesearchstring.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>

250

<item key='domain'>briefsearchstring.com</item>
<item key='status'>available</item>
</dt_assoc>
</item>
...
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

251

Provisioning Commands
This section contains the following commands:
activate (domain)Activates a parked .DE domain.
cancel_active_processDeprecated. Cancels an active .CA order.
cancel_pending_ordersCancels pending or declined orders.
modify (domain)Changes information associated with a domain.
process_pendingProcesses or cancels pending orders.
query_queued_requestQueries the status of a queued request.
redeem (domain)Redeems a .COM, .NET, .CA, .IT, or .NL domain
that has expired but is within the redemption grace period.
renew (domain)Renews a domain.
revoke (domain)Removes the domain at the registry.
send_CIRA_approval_emailDeprecated. Resends CIRA registration
approval email.
send_registrant_verification_emailSends or resends the verification
email to the registrant.
sw_register (domain)Submits a new registration or transfer order.
update_contactsSubmits a domain-contact information update to the
system.

252

Provisioning Commands

activate (domain)
Description
Action & object
action = activate
object = domain

Usage
Activates a parked .DE domain. The .DE registry requires a domain to be
parked on a valid nameserver. The domain can be parked prior to the
registration, or within thirty days of the successful registration. Use this
command within thirty days of registering the domain and after you park the
domain.

Request parameters for activate (domain)


Standard parameters
action = activate
object = domain
cookie = cookie created to access the system, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

domainname

The .DE domain that you want to activate

Required

Response parameters for activate (domain)


Standard parameters
action = activate
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

253

Provisioning Commands

Examples for activate (domain)


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">ACTIVATE</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domainname">example.de</item>
</dt_assoc>
</item>
<item key="registrant_ip">10.0.11.253</item>
<item key="cookie">959328882:3341948</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>

254

Provisioning Commands
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='is_success'>0</item>
<item key='response_code'>437</item>
<item key='response_text'>A request is currently waiting on
this domain</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

255

Provisioning Commands

cancel_active_process (.CA order)


Description
Action & object
action = cancel_active_process
object = domain

Usage
Cancels an active .CA order. This command is useful if you have placed a .CA
order and subsequently cancelled it, or were unable to confirm the order with
CIRA, but the system has not yet been updated and still shows the order as
active. In such a situation, you cannot resubmit a revised order for the
same .CA domain until the original .CA order is cancelled. You can either wait
for the system to be updated with CIRA's records, or you can cancel the
order using this command. The cancel .CA order functionality is also available
in the Reseller Web Interface (RWI).
Note: The system synchronizes with CIRA once a day, during non-business
hours, EST, including weekends.

Important: This command has been deprecated. If this command is part of


your current integration, it will continue to work; however, the results will be
ignored. The response will return 'is_success' => '0'.

Request parameters for cancel_active_process


Standard parameters
action = cancel_active_process
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

order_id

Optional - either order-id or


domain must be specified.

The ID of the order to be


cancelled.

256

Provisioning Commands

Response parameters for cancel_active_process


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

Examples for cancel_active_process


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">cancel_active_process</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="order_id">2099</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

257

Provisioning Commands

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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Cancellation successful</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

258

Provisioning Commands

cancel_pending_orders
Description
Action & object
action = cancel_pending_orders
object = order

Usage
Cancels orders with a status of pending or declined.

Request parameters for cancel_pending_orders


Standard parameters
action = cancel_pending_orders
object = order
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

status

Optional

Lists the status for which to cancel orders, either


pending or declined. Valid values are declined or
pending. The default is pending.

to_date

Required

Specify the date, in UNIX (epoch) time before which to


cancel orders. Orders put in pending or declined state
on this date and earlier are cancelled.

Response parameters for cancel_pending_orders


Standard parameters
action = reply
object = order
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

259

Provisioning Commands

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

cancelled

Required

Contains associative arrays identifying orders that


were cancelled. Valid values are domain, reg_type,
and id.
For more information, see the Cancelled table
below.

total

Required

The number of orders that were cancelled.

Cancelled
Parameters within the cancelled associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain name of the cancelled order.

id

Required

The order ID of the cancelled order.

reg_type

Required

The type of order that was cancelled. Valid values


are new, transfer, and renewal.

Examples for cancel_pending_orders


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">cancel_pending_orders</item>
<item key="object">order</item>

260

Provisioning Commands
<item key="attributes">
<dt_assoc>
<item key="to_date">1115228160</item>
<item key="status">
<dt_array>
<item key="0">declined</item>
<item key="1">pending</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">ORDER</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
<item key="attributes">
<dt_assoc>
<item key="total">2</item>
<item key="cancelled">

261

Provisioning Commands
<dt_array>
<item key="0">
<dt_assoc>
<item key="reg_type">new</item>
<item key="id">5261</item>
<item key="domain">example.de</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="reg_type">transfer</item>
<item key="id">5530</item>
<item key="domain">example.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

262

Provisioning Commands

modify (domain)
Description
Action & object
action = modify
object = domain

Usage
Changes information associated with a domain, such as contact info. The
action request message is different depending on the type of modification
being made, and is shown separately for each type.
This command also allows you to set an auto-renew flag for the domain from
which you logged in. If you are using the affected_domains option, you can
set the renewal action flags for all domains in the user's profile.

Request parameters for modify (domain)


Standard parameters
action = modify
object = domain
registrant_ip = valid IP address of the registrant (optional)
cookie = cookie created to access the system, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

affect_domains

Required

Flag indicating the domains to which to apply the


change.

data

Required

0 = change applies only to the specified


domain.

1 = change applies to all domains linked to


this profile.

Type of data. Allowed values are:


ca_whois_display_settingFor changes to
the CIRA Whois Privacy setting for .CA domains.
Only allowed for individual registrants, including
Canadian citizens, Permanent residents, Legal

263

Provisioning Commands
Parameter
name

Obligation

Definition/Value
representatives, and Aboriginal peoples.
change_ips_tag For transfers of .UK
domains between registrars. The domain's
domain tag must be changed to that of the
gaining registrar in order to transfer a .UK
domain.
cira_registrantUsed to change the owner
of a .CA domain.
Warning: When you include the
cira_registrant parameter, you transfer the
ownership of a domain to the specified contact.
contact_info For contact information
changes.

descr For changes to .DE owner contact.

domain_auth_info For changes to


domain-auth-info.
expire_action For changes to domain
renewal action flags. Requires both
auto_renew and let_expire flags to be
specified.
forwarding_email For forwarding feature
on .NAME domains (cannot be set if it was
missing from the capabilities in the response to
the 'Get User Info'.).
parkpage_state Enables or disables the
parked pages service for a particular domain.
rsp_whois_info To control 'RSP Info in
Whois' feature.
status To control the lock state of the
domain.

tld_data For changes to the tld_data


information that is required to satisfy the
regional presence and other requirements of
the registry. Used for .ASIA, .AU, .COOP,
.JOBS, .LV, .MX, .PRO, .RO, .US, ZA; optional
for .XXX.
If you submit this value, you must also
submit the tld_data array (see below).

trademarkDeprecated. Used for .CA


domains to indicate whether the registered
owner of the domain name is the legal holder of
the trademark for that name.
uk_whois_opt Allows individuals to
activate WHOIS opt-out for a .UK domain. The
WHOIS opt-out for .UK domains is available only

264

Provisioning Commands
Parameter
name

Obligation

Definition/Value
to individuals (not available to organizations).
When activated, the individual's personal
information is not returned with the WHOIS for
their .UK domain.
whois_privacy_state Used to enable or
disable WHOIS Privacy.
nameserver_list Deprecated. Use the
advanced_update_nameservers command
instead.
auto_renew Deprecated. Use the
expire_action value instead.

domain

Required if
cookie is not
submitted

The relevant domain.

tld_data

Required for
changes to
tld_data
values for
.ASIA, .AU,
.COOP,
.JOBS, .LV,
.MX, .PRO,
.RO, .US, ZA;
optional for
.XXX

An associative array that contains additional


information required by the registry, such as the
residency of the registrant. If you submit a request
that contains this array, you must also include data
= tld_data.
Allowed values are:

au_registrant_infoFor changes to the .AU


identification information

ced_infoAn array that contains Charter


Eligibility (CED) information for .ASIA
domains.

ipr_dataUsed to make changes to the ICM


information associated with .XXX domains.

it_registrant_infoFor changes to the .IT


identification information.

nexusFor changes to the .US Nexus


information.

professional_dataUsed to make changes


to the professional designation information
that is associated with the .PRO domain.

registrant_extra_infoIndustry
requirements for .JOBS domain.

For more information see tld_data.

265

Provisioning Commands

For data = ca_whois_display_setting


When the data parameter uses the ca_whois_display_setting value, the
following additional parameter can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

display

Required

The setting for the CIRA Whois Privacy.


Allowed values are:

PRIVATEWhen a WHOIS lookup is done


on the domain name, do not display personal
information.

FULLWhen a WHOIS lookup is done on the


domain name, display all of the data that is
on the WHOIS directory, including name,
address, telephone number and email
address.

For data = change_ips_tag


When the data parameter uses the change_ips_tag value, the following
additional parameter can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

change_tag_all

Optional

Flag to change all domains on the


registrant's profile.

0Change Domain Tag for specified


domain only; this is the default.

1Change Domain Tag for all *.UK


domains on this profile.

domain

Required

The domain whose Domain Tag is being


changed.

gaining_registrar_tag

Required

The Domain Tag of the gaining registrar.

rsp_override

Optional

Flag to enable or disable the ability of the


RSP to override the End User's Domain Tag
change settings.

0Reseller cannot override End

266

Provisioning Commands
Parameter name

Obligation

Definition/Value
User's Domain Tag change settings

1Reseller can change Domain Tag,


regardless of End User's settings

For data = cira_registrant


When the data parameter uses the cira_registrant value, the following
additional parameters can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter Obligation
name

Definition/Value

address1

Optional

The new registrant's address. Maximum 64


characters.

address2

Optional

The new registrant's address. Maximum 64


characters.

address3

Optional

The new registrant's address. Maximum 64


characters.

city

Optional

The new registrant's city. Maximum 64 characters.

country

Optional

The 2 letter ISO country code.

email

Optional

Maximum 64 characters, validated according to


rfc822.

fax

Optional

Maximum 20 characters, in the format


+CCC.NNNNNNNNNNxEEEE, where C = country code,
N = phone number, and E = extension (optional).

first_name

Required

New registrant's first name.

lang

Optional

The registrant's language preference. The default is


English.
Allowed values are:

last_name

Required

legal_type

Required

ENEnglish

FRFrench

New registrant's last name.

The code that indicates the new registrant's


legal classification to satisfy CIRA's Canadian
Presence Requirement (CPR).

Allowed values are:

ABOAboriginal

267

Provisioning Commands
Parameter Obligation
name

Definition/Value

ASSAssociation

CCOCanadian Corporation

CCTCanadian Citizen

EDU Educational Institution

GOVGovernment

HOPHospital

INBIndian Band

LAMLibrary, Archive, or Museum

LGRLegal Representative

MAJHer Majesty the Queen

OMKProtected by Trademarks Act

PLTPolitical Party

PRTPartnership

RESPermanent Resident

TDMTrademark Owner

TRDTrade Union

TRSTrust

org_name

Optional for
individuals

The name of the organization.

phone

Optional

Maximum 20 characters, in the format


+CCC.NNNNNNNNNNxEEEE, where C = country code,
N = phone number, and E = extension (optional).

postal_code

Optional

Maximum 16 characters.

state

Optional

A valid 2 letter code for the Canadian province:

ABAlberta

BCBritish Columbia

MBManitoba

NBNew Brunswick

NLNewfoundland and Labrador

NTNorthwest Territories

NSNova Scotia

NUNunavut

ONOntario

PEPrince Edward Island

QCQuebec

SKSaskatchewan

YTYukon

268

Provisioning Commands

For data = contact_info


When the data parameter uses the contact_info value, the following
additional parameters can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

contact_set

Required

A hash containing the modified contact information


of a specific type:

admin

billing

owner
Note: The owner contact for .IT domains
requires three additional parameters:
entity_type, nationality_code, and
reg_code. For information about these
parameters, see .IT registrations.

tech

For more information about contact_set values, see


"Contact Set".
org_name

Required

Organization name.

report_email

Optional

The End User's email address to which notification of


success or failure is sent. The notification email is
sent on behalf of the Reseller.
Note: This parameter can only be specified if
affect_domains is set to '1'

Contact_Set
You can submit different contact information for each contact type, or you
can use the also_apply_to parameter to apply the changes to other contact
types.
Parameters within the contact_set associative array are described below.
Parameter
name

Obligation

Definition/Value

also_apply_to

Optional

An array of other contact types to which you want to


apply the changes.
For example, if you want to apply the changes
indicated in the admin contact set to the owner and

269

Provisioning Commands
Parameter
name

Obligation

Definition/Value
tech types as well, use:
also_apply_to => ['owner', 'tech']
If only one contact type is specified and
also_apply_to is empty, update only that contact
type.
If also_apply_to is specified, but the complete
contact set for the contact types in also_apply_to
is also submitted, the complete contact set is used,
and also_apply_to is ignored.
Allowed values are:

owner owner contact information

admin administrator contact information

billing billing contact information


Note: This value is not supported for .IT
domains; if submitted, the command will fail.

tech tech contact information

For data = domain_auth_info


When the data parameter uses the domain_auth_info value, the following
additional parameter can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

domain_auth_info

Domain authentication code. (For .COM,


.NET, .ORG, .INFO, .BIZ, .CA, .CN, .CO, .IN,
.ME, .MOBI, .NAME, and .US TLDs only.)

Required

For data = expire_action


When the data parameter uses the expire_action value, the following
additional parameter can be used:

270

Provisioning Commands

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

auto_renew

Required

Determines whether the domain renews


automatically.

let_expire

Included only when


type = list

0Do not set to auto-renew.

1Set to auto-renew.

Determines whether to allow the domain to


expire at the end of the registration term.

0Do not expire domain silently.

1Expire domain silently.

Note: This flag cannot be used for .DE


domains. To delete a .DE name or allow it
to expire, you need to complete and submit
the Domain Termination/Deletion form at
least 5 days prior to the expiry date:
http://opensrs.com/site/resources/agreeme
nts/domain-policies#de

For data = forwarding_email


When the data parameter uses the forwarding_email value, the following
additional parameter can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

forwarding_email

Required

For use with .NAME forwarding feature.

For data = parkpage_state


This parameter is used to enable or disable the Parked Pages service for a
particular domain. The Parked Pages service is 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 domains.
When the data parameter uses the parkpage_state value, the following
additional parameter can be used:

271

Provisioning Commands

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain for which you want to enable or


disable Parked Pages.

state

Required

Used to enable or disable the Parked Pages


service for a domain.

onEnable Parked Pages

offDisable Parked Pages

For data = rsp_whois_info


When the data parameter uses the rsp_whois_info value, the following
additional parameter can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

all

Required

Indicates whether the request is to be applied to


all domains in the profile.

affect_domains

flag

Required

Required

0Do not apply to all domains; this is the


default.

1Apply the request to all domains in the


profile.

Flag indicating the domains to which the change


is to be applied.

0Only change this specific domain.

1Change applies to all domains linked to


this profile.

Indicates whether the RSP info is to be displayed


in whois query results.

YDisplay RSP info.

NDo not display RSP info.

272

Provisioning Commands

For data = status


When the data parameter uses the status value, the following additional
parameter can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

Domain

Required if
cookie is not
submitted

The relevant domain.

lock_state

Required

Indicates whether the domain should be locked.

0Unlocked

1Locked

For data = uk_whois_opt


When the data parameter uses the uk_whois_opt value, the following
additional parameter can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

reg_type

Specifies whether the opt-out request is for an


individual or a foreign individual (non UK
citizen).

uk_affect_domains

uk_whois_opt

Required

Optional

Required

INDIndividual

FINDForeign Individual

Flag used to request opt-out for all domains on


registrant's profile.

0Activate WHOIS opt-out for specified


domain only; this is the default.

1Activate WHOIS opt-out for all *.UK


domains on this profile

Flag to activate WHOIS opt-out for .UK


domains. Personal information is not displayed
with WHOIS query (available for individuals
only).

YDo not make personal information


available on .UK WHOIS.

273

Provisioning Commands
Parameter name Obligation

Definition/Value

NMake personal information available


on .UK WHOIS; this is the default.

For data = whois_privacy_state


When the data parameter uses the whois_privacy_state value, the following
additional parameters can be used:

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

affect_domains

Required

Determines whether to apply the change to all


domains in the Reseller's profile, on just the
specified domain.

report_email

Optional

0Apply change to this domain only.

1Apply to all domains linked to this


profile.

The End User's email address to which notification


of success or failure is sent on behalf of the
Reseller.
Note: This parameter can only be specified if
affect_domains is set to 1.

state

Required

Used to enable or disable WHOIS Privacy. Allowed


values are enable or disable.

Note: The following values are deprecated, but


are still accepted for backward compatibility:

NDisable WHOIS Privacy

YEnable WHOIS Privacy

Response parameters for modify (domain)


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

274

Provisioning Commands
response_text = message describing the outcome of the request

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

details

Required

A case-by-case description of the


success or failure of each affected
domain.
The key is the name of the domain.
When you specify a contact_info
modification, you can specify that you
want the action to apply to all domains.
Because the modification may succeed
or fail on a case-by-case basis, you get a
response code for each domain that is
affected.
The key that is used to access this
domain success information is the name
of the domain itself, for example,
'mydomain.com' or 'mydomain.co.uk'.
Each key contains a hash (described
below) that provides details on the
action performed on that domain.

encoding_type

Optional

Valid three-character language tag.For a


list of the languages supported for each
TLD, see the gTLD and ccTLD Reference
Chart on the OpenSRS website.

response_code

Required

The response code associated with the


modification on this domain.

response_text

Required

The response text associated with the


modification on this domain

waiting_requests_no

Required

The number of registry requests in the


waiting state.

Deprecated
Parameter
name

Obligation

Definition/Value

waiting_request

Deprecated

Replaced by waiting_requests_no.

275

Provisioning Commands

Modify (domain) Examples


For data = ca_whois_display_setting
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">MODIFY</item>
<item key="object">DOMAIN</item>
<item key="cookie">M813iGXs5fNhAJYt:256158:11781</item>
<item key="registrant_ip">10.0.62.142</item>
<item key="attributes">
<dt_assoc>
<item key="data">ca_whois_display_setting</item>
<item key="display">FULL</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>

276

Provisioning Commands
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">OK</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For data = change_ips_tag


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">MODIFY</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip">10.0.11.121</item>
<item key="cookie">391558813:3214603</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="data">change_ips_tag</item>
<item key="domain">example.me.uk</item>

277

Provisioning Commands
<item key="gaining_registrar_tag">q1q1</item>
<item key="change_tag_all">0</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successfully
completed.</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For data = cira_registrant


Request
<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>

278

Provisioning Commands
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">MODIFY</item>
<item key="object">DOMAIN</item>
<item key="cookie">sDYKUWhe8vdtc2iB:682913:27858</item>
<item key="attributes">
<dt_assoc>
<item key="data">cira_registrant</item>
<item key="first_name">Pierre</item>
<item key="last_name">Lalonde</item>
<item key="org_name">Example Inc.</item>
<item key="address1">32 Oak St.</item>
<item key="address2">Suite 100</item>
<item key="address3"/>
<item key="city">Toronto</item>
<item key="state">ON</item>
<item key="postal_code">M1M 1M1</item>
<item key="country">CA</item>
<item key="legal_type">CCT</item>
<item key="email">plalonde@example.com</item>
<item key="phone">+1.4165551212x1234</item>
<item key="fax">+1.4165551024</item>
<item key="lang">FR</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

279

Provisioning Commands

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">OK</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For data = contact_info


Example 1
In this example, only one type is specified and also_apply_to contains other
types.

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>

280

Provisioning Commands
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">MODIFY</item>
<item key="object">DOMAIN</item>
<item key="cookie">2121:1212</item>
<item key="registrant_ip">111.121.121.11</item>
<item key="attributes">
<dt_assoc>
<item key="data">contact_info</item>
<item key="affect_domains">0</item>
<item key="contact_set">
<dt_assoc>
<item key="also_apply_to">
<dt_array>
<item key="0">owner</item>
<item key="1">billing</item>
</dt_array>
</item>
<item key="admin">
<dt_assoc>
<item key="first_name">Adler</item>
<item key="last_name">Adams</item>
<item key="org_name">Example Inc.</item>
<item key="address1">32 Oak St.</item>
<item key="address2">Suite 100</item>
<item key="address3"/>
<item key="city">Santa Clara</item>
<item key="state">CA</item>
<item key="postal_code">90210</item>
<item key="country">US</item>
<item
key="phone">+1.7075551212x1812</item>
<item key="fax">+1.7075553123</item>
<item key="email">adams@example.com</item>
<item
key="url">http://www.example.com</item>
</dt_assoc>

281

Provisioning Commands
</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Modification(s) successful</item>
<item key="attributes">
<dt_assoc>
<item key="details">
<dt_assoc>
<item key="example.com">
<dt_assoc>
<item key="response_text">Contact

modification successful</item>

<item key="response_code">200</item>
</dt_assoc>

282

Provisioning Commands
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
In this example, admin and tech contact information is changed for a .CA
domain.
Note: For .CA domains when data = contact_info, instead of address1,
address2, and address3, you can specify these address attributes:
addr_office, addr_address_number, addr_street_name,
addr_street_cat, and addr_orientation.

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">MODIFY</item>
<item key="object">DOMAIN</item>
<item key="cookie">853675384:13254444</item>
<item key="registrant_ip">72.53.78.221</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="contact_set">

283

Provisioning Commands
<dt_assoc>
<item key="admin">
<dt_assoc>
<item key="org_name">Example Co.</item>
<item key="first_name">Adler</item>
<item key="last_name">Adams</item>
<item key="ddress1">32 Oak Street</item>
<item key="address2">Suite 100</item>
<item key="address3"/>
<item key="city">Saskatoon</item>
<item key="state">SK</item>
<item key="country">CA</item>
<item key="postal_code">M1M1M1</item>
<item key="phone">+1/4165551212</item>
<item key="fax">+1.4165552222</item>
<item key="email">adams@example.ca</item>
<item key="language">EN</item>
</dt_assoc>
</item>
<item key="also_apply_to">
<dt_array>
<item key="0">tech</item>
</dt_array>
</item>
</dt_assoc>
</item>
<item key="report_email"></item>
<item key="data">contact_info</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

284

Provisioning Commands

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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Modification(s) successful</item>
<item key="attributes">
<dt_assoc>
<item key="details">
<dt_assoc>
<item key="example.ca">
<dt_assoc>
<item key="response_text">Contact
modification successful</item>
<item key="response_code">200</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

285

Provisioning Commands

Example 3
In this example, owner contact information is modified for a .IT domain.
The .IT owner contact requires three additional parameters:
nationality_code, reg_code, and entity_type.
Note: The other contact types do not require these additional parameters, so
if you change the owner contact information, and you use also_apply_to to
apply the changes to another type, for example, tech, the command will be
successful, but those additional parameters and values are ignored by the
other contact type. However, also_apply_to billing is not supported for .IT
domains, and if you submit that value, the command will fail. When the
domain owner is a person (entity_type = 1), changing the owner contact
information also changes the admin contact information as these are
considered to be the same at the Registry.

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">MODIFY</item>
<item key="object">DOMAIN</item>
<item key="cookie">EKQygsAX2t5OqLM2:256400:25530</item>
<item key="registrant_ip">10.0.62.128</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains"></item>
<item key="report_email"></item>
<item key="data">contact_info</item>
<item key="contact_set">
<dt_assoc>
<item key="owner">
<dt_assoc>

286

Provisioning Commands
<item key="entity_type">1</item>
<item key="nationality_code">IT</item>
<item key="first_name">Mario</item>
<item key="last_name">Segale</item>
<item key="org_name"></item>
<item key="address1">Via del Campidoglio, 1</item>
<item key="address2"></item>
<item key="address3"></item>
<item key="city">Rome</item>
<item key="state">RM</item>
<item key="country">IT</item>
<item key="postal_code">00123</item>
<item key="email">mario@example.com</item>
<item key="reg_code">SGLMRA80A01H501E</item>
<item key="phone">+39.0612345678</item>
<item key="fax"></item>
</dt_assoc>
</item>
<item key="also_apply_to"/>
</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>

287

Provisioning Commands
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Command completed successfully</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="details">
<dt_assoc>
<item key="example033.it">
<dt_assoc>
<item key="response_text">Command completed
successfully</item>
<item key="waiting_requests_no">0</item>
<item key="encoding_type"></item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For data = domain_auth_info


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>

288

Provisioning Commands
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">domain</item>
<item key="cookie">992262064:387073</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="domain_auth_info">mysecret</item>
<item key="data">domain_auth_info</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>

289

Provisioning Commands
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Domain auth code modification
Successful</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For data = expire_action


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">modify</item>
<item key="object">domain</item>
<item key="cookie">692767317:3214395</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="auto_renew">0</item>
<item key="let_expire">0</item>
<item key="data">expire_action</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>

290

Provisioning Commands
</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">Update successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For data = forwarding_email


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>

291

Provisioning Commands
<item key="action">modify</item>
<item key="object">domain</item>
<item key="cookie">113013968:388172</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="forwarding_email">new@example.com</item>
<item key="data">forwarding_email</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Domain forwarding email
modification Successful</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

292

Provisioning Commands

For data = parkpage_state


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">MODIFY</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="state">on</item>
<item key="data">parkpage_state</item>
<item key="domain">example.com</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>

293

Provisioning Commands
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Parked page successfully enabled
for domain example.com</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For data = rsp_whois_info


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">modify</item>
<item key="object">domain</item>
<item key="cookie">631119177:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="flag">Y</item>
<item key="all">1</item>
<item key="data">rsp_whois_info</item>

294

Provisioning Commands
</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command Successfully
Completed</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For data = status


As with the type 'status' for get_domain, this can be called with or without a
cookie. Note that the conditions for this succeeding are those for which a
'get_domain status' call would return a 'can_modify' result of true (1).

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>

295

Provisioning Commands
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">domain</item>
<item key="cookie">631119177:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="lock_state">0</item>
<item key="data">status</item>
<item key="domain_name">example.com</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="is_success">1</item>

296

Provisioning Commands
<item key="response_code">200</item>
<item key="response_text">Lock disabled for
example.com</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For data = uk_whois_opt


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">MODIFY</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip">216.40.46.115</item>
<item key="cookie">435686610:3185178</item>
<item key="attributes">
<dt_assoc>
<item key="data">uk_whois_opt</item>
<item key="uk_whois_opt">Y</item>
<item key="reg_type">FIND</item>
<item key="uk_affect_domains">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>

297

Provisioning Commands
</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Modification Successful</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For data = whois_privacy_state


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">modify</item>

298

Provisioning Commands
<item key="object">domain</item>
<item key="cookie">77467901:3893</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="report_email"/>
<item key="state">disable</item>
<item key="data">whois_privacy_state</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Whois Privacy successfully
disabled</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

299

Provisioning Commands

For tld_data = au_registrant_info (.AU)


Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>modify</item>
<item key='object'>domain</item>
<item key='cookie'>wjCREQat8y1CHQlk:698434:1269</item>
<item key='attributes'>
<dt_assoc>
<item key='data'>tld_data</item>
<item key='tld_data'>
<dt_assoc>
<item key='au_registrant_info'>
<dt_assoc>
<item key='registrant_id_type'>ABN</item>
<item key='eligibility_name'>Marlin Wilk</item>
<item key='eligibility_id_type'>NT BN</item>
<item key='eligibility_id'>123456789</item>
<item key='eligibility_type'>Company</item>
<item key='registrant_id'>24680</item>
<item key='registrant_name'>Marlin Wilk</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>

300

Provisioning Commands
</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'>OK</item>
<item key='action'>REPLY</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For tld_data = ced_info (.ASIA)


Example 1
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>

301

Provisioning Commands
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">domain</item>
<item key="cookie">364577922:3202133</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="data">tld_data</item>
<item key="tld_data">
<dt_assoc>
<item key='ced_info'>
<dt_assoc>
<item key="contact_type">tech</item>
<item key="legal_entity_type">other</item>
<item key="legal_entity_type_info">add some
text here</item>
<item key="id_type">other</item>
<item key="id_type_info">other</item>
<item key="id_number">8675309</item>
<item key="locality_city">Sydney</item>
<item key="locality_state_prov">NSW</item>
<item key="locality_country">AU</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

302

Provisioning Commands

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">Data modification
Successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
Without end-user credentials

Request
<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>

303

Provisioning Commands
<item key="action">modify</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.asia</item>
<item key="data">tld_data</item>
<item key="tld_data">
<dt_assoc>
<item key='ced_info'>
<dt_assoc>
<item key="contact_type">tech</item>
<item key="id_number">8675309</item>
<item key="id_type">passport</item>
<item
key="legal_entity_type">corporation</item>
<item key="locality_city">Sydney</item>
<item key="locality_state_prov">NSW</item>
<item key="locality_country">AU</item>
</dt_assoc>
</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>

304

Provisioning Commands
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">CED Data modification Successful</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For tld_data = ipr_data (.XXX)


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">modify</item>
<item key="object">domain</item>
<item key="cookie">364577922:3202133</item>
<item key="attributes">
<dt_assoc>
<item key='data'>tld_data</item>
<item key='tld_data'>
<dt_assoc>
<item key='ipr_data'>

305

Provisioning Commands
<dt_assoc>
<item key="icm_membership_id">123456</item>
</dt_assoc>
</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">OK</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

306

Provisioning Commands

For tld_data = it_registrant_info (.IT)


Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>modify</item>
<item key='object'>domain</item>
<item key='cookie'>jL81QUn9BKTJAdSN:698497:1284</item>
<item key='attributes'>
<dt_assoc>
<item key='data'>tld_data</item>
<item key='tld_data'>
<dt_assoc>
<item key='it_registrant_info'>
<dt_assoc>
<item key='entity_type'>1</item>
<item key='reg_code'>SGLMRA80A01H501E</item>
<item key='nationality_code'>it</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

307

Provisioning Commands

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="is_success">1</item>
<item key="response_text">Command completed successfully</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="details">
<dt_assoc>
<item key="feb22test1.it">
<dt_assoc>
<item key="response_text">Command completed
successfully</item>
<item key="waiting_requests_no">0</item>
<item key="encoding_type"></item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>

308

Provisioning Commands
</data_block>
</body>
</OPS_envelope>

For tld_data = nexus (.US)


Example 1
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">modify</item>
<item key="object">domain</item>
<item key="cookie">364577922:3202133</item>
<item key="attributes">
<dt_assoc>
<item key="affect_domains">0</item>
<item key="data">tld_data</item>
<item key="tld_data">
<dt_assoc>
<item key='nexus'>
<dt_assoc>
<item key="validator">CA</item>
<item key="category">C31</item>
<item key="app_purpose">P1</item>
</dt_assoc>
</item>
</dt_assoc>

309

Provisioning Commands
</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">Nexus Data modification
Successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
Without end-user credentials

Request
<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>

310

Provisioning Commands
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">modify</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.us</item>
<item key="data">tld_data</item>
<item key='tld_data'>
<dt_assoc>
<item key="nexus">
<dt_assoc>
<item key="validator">CA</item>
<item key="category">C31</item>
<item key="app_purpose">P1</item>
</dt_assoc>
</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>

311

Provisioning Commands
<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">Nexus Data modification Successful</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For tld_data =professional_data (.PRO)


Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>modify</item>
<item key='object'>domain</item>
<item key='cookie'>blp4auSCgspDRbEM:698486:1271</item>
<item key='attributes'>
<dt_assoc>
<item key='data'>tld_data</item>
<item key='tld_data'>
<dt_assoc>

312

Provisioning Commands
<item key='professional_data'>
<dt_assoc>
<item key='authority_website'>http://www.cda-

adc.ca</item>

<item key='license_number'>987654321</item>
<item key='authority'>Canadian Dental
Association</item>
<item key='profession'>Dentist</item>
</dt_assoc>
</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'>OK</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
</dt_assoc>

313

Provisioning Commands
</data_block>
</body>
</OPS_envelope>

For tld_data = registrant_extra_info (.COOP)


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'>modify</item>
<item key='object'>domain</item>
<item key='cookie'>ndxOATL2zdtVpWXJ:710538:6469</item>
<item key='attributes'>
<dt_assoc>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='coop_verification_code'>93599789</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='data'>tld_data</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>

314

Provisioning Commands
</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'>OK</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For tld_data = registrant_extra_info (.JOBS)


Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>modify</item>

315

Provisioning Commands
<item key='object'>domain</item>
<item key='cookie'>7rQitruAeYGgKcBO:707623:6222</item>
<item key='attributes'>
<dt_assoc>
<item key='data'>tld_data</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='jobs_admin_type'>Yes</item>
<item
key='jobs_website'>http://www.example.com</item>
<item key='jobs_association_member'>Yes</item>
<item key='jobs_title'>HR Generalist</item>
<item key='jobs_industry_type'>Logistics

Management</item>

</dt_assoc>
</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>

316

Provisioning Commands
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_text'>OK</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For tld_data = registrant_extra_info (.RU)


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'>modify</item>
<item key='object'>domain</item>
<item key='cookie'>jJGPPma5I1lYrMYp:296765:22940</item>
<item key='attributes'>
<dt_assoc>
<item key='data'>tld_data</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='date_of_birth'>1976-08-05</item>

317

Provisioning Commands
<item key='id_card_authority'>Republic of

Khakassia </item>

<item key='id_card_issue_date'>2001-01-01</item>
<item key='id_card_number'>987654321</item>
<item key='registrant_type'>individual</item>
</dt_assoc>
</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'>OK</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

318

Provisioning Commands

process_pending
Description
Action & object
action = process_pending
object = domain

Usage
Processes or cancels pending orders; also applicable to any order that is
declined. The order is cancelled and a new order is created. Can also be used
to process cancelled orders, provided the cancelled order was a new order or
a transfer.

Request parameters for process_pending


Standard parameters
action = process_pending
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

command

Optional

Only necessary if you want to cancel the pending


order. If you want to process the pending order, do
not add this attribute.
Allowed value is cancel.

fax_received

Optional

Only required for .DE orders that are pending a


confirmation fax.

0No

1Yes

order_id

Required

The ID of the order to be processed.

owner_address

Optional

Owner's email address; only used for .DE transfers.

319

Provisioning Commands

Response parameters for process_pending


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

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

f_auto_renew

Included in success Flag indicating whether domain is automatically


response
renewed. Allowed values are Y or N.

id

Included in success The ID of the domain


response

registration
expiration date

Included in success The new expiration date for the service, in the
response
format YYYY-MM-DD hh:mm:ss

Deprecated
Parameter
name

Obligation

Definition / Value

transaction_id

Deprecated

Deprecated

Examples for process_pending


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
<msg_id>2.21765911726198</msg_id>

320

Provisioning Commands
<msg_type>standard</msg_type>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">process_pending</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="owner_address">myemail@example.com</item>
<item key="fax_received">1</item>
<item key="order_id">535242</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
If successful
<?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="attributes">

321

Provisioning Commands
<dt_assoc>
<item key="f_auto_renew">Y</item>
<item key="id">3343012</item>
<item key="registration expiration date">2007-12-05
15:23:15</item>
</dt_assoc>
</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text"> Domain registration successfully
completed
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If unsuccessful
<?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="is_success">0</item>
<item key="response_code">480</item>
<item key="response_text">Order 535242 is not a pending or
declined order and cannot be processed</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

322

Provisioning Commands

query_queued_request
Description
Action & object
action = query_queued_request
object = domain

Usage
Queries the status of a queued request.

Request parameters for query_queued_request


Standard parameters
action = query_queued_request
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

request_id

Required

The ID of the queued request; the


queue_request_id is returned when an order is
queued.

Response parameters for query_queued_request


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

323

Provisioning Commands

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

queue_date

Included in success
response

The date the order was queued, in the format


DD-MMM-YYYY hh:mm:ss.

request_data

Included in success
response

The content of the original queued request. All


data is returned in a single variable.

Examples for query_queued_request


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">query_queued_request</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="request_id">1782</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

324

Provisioning Commands

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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command completed
successfully</item>
<item key="attributes">
<dt_assoc>
<item key="queue_date">04-MAR-2004 10:27:01</item>
<item key="request_data">
<dt_assoc>
<item key="ip">10.0.11.121</item>
<item key="username">purple</item>
<item key="action">SW_REGISTER</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

325

Provisioning Commands

redeem (domain)
Description
Action & object
action = redeem
object = domain

Usage
Redeems a .COM, .NET, .CA, .IT, or .NL domain that has expired but is within
the redemption grace period.
Note: Domain redemptions may incur addition fees.

Request parameters for redeem domain


Standard parameters
action = redeem
object = domain
registrant_ip = valid IP address of the registrant (optional)
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation Definition/Value

domain

Required

The name of the domain to be redeemed. Domain


must be within the redemption grace period.

Response parameters for redeem domain


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

326

Provisioning Commands
response_text = message describing the outcome of the request

Examples for redeem domain


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">REDEEM</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.ca</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>

327

Provisioning Commands
<dt_assoc>
<item key="protocol">XCP</item>
<item key="object">DOMAIN</item>
<item key="action">REPLY</item>
<item key="response_text">Command completed
successfully</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

328

Provisioning Commands

renew (domain)
Description
Action & object
action = renew
object = domain

Usage
Renews a domain and allows you to set the auto-renewal flag on a domain.

Request parameters for renew (domain)


Standard parameters
action = renew
object = domain
registrant_ip = valid IP address of the registrant (optional)
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

affiliate_id

Optional

ID that allows RSP's to track orders coming


through various affiliates.

auto_renew

Required

A flag indicating whether the domain should


be set to auto-renew.

0Not set to auto-renew

1Set to auto-renew

currentexpirationyear

Required

The domain's current expiration year in the


format YYYY; must match the data in the
registry.

domain

Required

The name of the domain to be renewed.


Domain must be registered, and must exist in
both the system and the appropriate registry.

f_parkp

Optional

Enables the Parked Pages Program. When the


Parked Pages Program is enabled, a
customized page containing contextual ads is
displayed. The ads generate revenue

329

Provisioning Commands
Parameter name

Obligation

Definition/Value
whenever a visitor clicks on one of the links,
and that revenue is shared with you, the
Reseller.
Important: Enabling Parked Pages changes
the nameservers of that domain, and any
existing website will not display.
Parked Pages functionality is available for
these TLDs: .COM, .NET, .ORG, .INFO,
.BIZ, .MOBI, .NAME, .ASIA, .BE, .BZ, .CA,
.CC, .CO, .EU, .IN, .ME, .NL, .TV, .UK,
.US, .WS and .XXX.

YEnable Parked Pages for the


domain

NDo not enable Parked Pages for the


domain

If a Reseller has opted out of Parked Pages,


the default value (N) is used, even if Y is
submitted.
handle

period

Required

Required

Instructions for the processing of the order.


(Overrides the RSP's 'process immediately'
settings.).

savePend the order for the RSP's


later approval

processProcess the order


immediately

The renewal period, from 1 to 10 years. (May


not exceed 10 years.)

Response parameters for renew (domain)


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

330

Provisioning Commands

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

admin_email

Required

The email address of the administrative


contact for the domain.

auto_renew

Required

A flag indicating whether the domain is set to


auto-renew.
0 = not set to auto-renew
1 = set to auto-renew

id

Returned if order
is not queued

The domain ID. If queue_request_id is


returned, id is not returned.

order_id

Required

The order ID of the renewal.

queue_request_id

Only returned if
order is queued

The ID of the request as it occurs within the


queue. Later, if you want to renew the order
from the queue, you'll need this ID.
If queue_request_id is returned, id is not
returned.

registration
expiration date

Required

The domain's current expiration year.

Response codes
Response
Code

Response Text

Explanation

200

Command completed
successfully

Success response.

480

Renew capability is not Renewals are not yet supported for this TLD.
enabled for domain.tv

555

Domain already
renewed

Domain has already been successfully


renewed, with the current expiration year
matching the year provided by the user.

541

Invalid attribute value

Domain's current expiration year in registry


doesn't match the year provided by user.

400

Fatal Server Error

System error.

400

Domain already
renewed; another
renewal cannot be
applied until the first
request completes', at
the registry,
approximately six to

Domain is already in 'renewal applied' state.

331

Provisioning Commands
Response
Code

Response Text

Explanation

eight weeks after the


original expiration date
(2003-03-19 12:12:00)

Note: When a renew operation fails, the Reseller receives a message


indicating which domain failed to be renewed. This message is only sent
once in 24 hours, regardless of how many renewals failed within this period.

Examples for renew (domain)


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">renew</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="auto_renew">1</item>
<item key="f_parkp">Y</item>
<item key="handle">process</item>
<item key="domain">example.com</item>
<item key="currentexpirationyear">2008</item>
<item key="period">1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>

332

Provisioning Commands
</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="attributes">
<dt_assoc>
<item key="registration expiration date">2009-01-08

15:35:00</item>

<item key="auto_renew">1</item>
<item key="admin_email">admin1@example.com</item>
<item key="id">3212624</item>
<item key="order_id">3511417</item>
</dt_assoc>
</item>
<item key="response_text">Command completed
successfully</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

333

Provisioning Commands

revoke (domain)
Description
Action & object
action = revoke
object = domain

Usage
Removes the domain at the registry. Use this command to request a refund
for a domain purchase. This call can refund/revoke only one domain at the
time.
Note: A refund can be issued for only those domains which fall within the
specified grace period as defined by each registry.

Request parameters for revoke (domain)


Standard parameters
action = revoke
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

Domain to be revoked.

notes

Optional

Information relevant to action. Notes are saved to


domain notes.

reseller

Required

Reseller username.

334

Provisioning Commands

Response parameters for revoke (domain)


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
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

charge

Optional

Value indicating whether the Reseller has been


charged:

price

Optional

0No charge

1Indicates a charge

The sum of money of that the Reseller is charged.

Examples for revoke (domain)


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">REVOKE</item>
<item key="object">DOMAIN</item>
<item key="attributes">

335

Provisioning Commands
<dt_assoc>
<item key="reseller">test</item>
<item key="domain">example.com</item>
<item key="notes">this is a test</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
If successful
<?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="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="charge">0</item>
<item key="price">undef</item>
</dt_assoc>
</item>
<item key="response_text">Domain example.com revoked
successfully.</item>
<item key="response_code">200</item>
</dt_assoc>

336

Provisioning Commands
</data_block>
</body>
</OPS_envelope>

If unsuccessful
<?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="is_success">0</item>
<item key="response_text">Domain not found.</item>
<item key="response_code">461</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

337

Provisioning Commands

send_CIRA_approval_email
Description
Action & object
action = send_CIRA_approval_email
object = domain

Usage
When a .CA domain is registered, it goes into a waiting-approval state, and
the admin contact must confirm the registration by responding to an
approval email message, sent by CIRA. This command resends that CIRA
registration approval email message to the domain's contact.
Important: This command has been deprecated. If this command is part of
your current integration, it will continue to work; however, the results will be
ignored. The response will return 'is_success' => '1'.

Request parameters for


send_CIRA_approval_email
Standard parameters
action = send_CIRA_approval_email
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain for which the CIRA approval email is to


be sent

338

Provisioning Commands

Response parameters for


send_CIRA_approval_email
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

Examples for send_CIRA_approval_email


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">send_cira_approval_email</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.ca</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

339

Provisioning Commands

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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">CIRA registration confirmation
mail sent to user1@example.ca</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

340

Provisioning Commands

send_registrant_verification_email
Description
Action & object
action =send_registrant_verification_email
object = domain

Usage
When a domain is registered or transferred, or when the registrant contact
information is changed, the registrant must reply to an email requesting
them to confirm that the submitted contact information is correct. This
command sends or resends the verification email to the registrant.

Request parameters for


send_registrant_verification_email
Standard parameters
action = send_registrant_verification_email
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition / Value

domain

Required if cookie is not submitted

The relevant domain.

Response parameters for


send_registrant_verification_email
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

341

Provisioning Commands
response_text = message describing the outcome of the request

Examples for send_registrant_verification_email


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'>send_registrant_verification_email</item>
<item key='object'>domain</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>example.com</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>

342

Provisioning Commands
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Verification email has been resent
successfully.</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

343

Provisioning Commands

sw_register (domain)
Description
Action & object
action = sw_register
object = domain

Usage
Submits a new registration or transfer order that obeys the Reseller's
'process immediately' flag setting.

Request parameters for sw_register (domain)


Standard parameters
action = sw_register
object = domain
registrant_ip = valid IP address of the registrant (optional)
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

affiliate_id

Optional

The unique identifier of an RSP's affiliate, which


allows the RSP to track orders coming through
different affiliates. Specify a valid affiliate ID
(max 100 char).

auto_renew

Optional

Used to set domain to auto-renew.

change_contact

Optional

0Do not auto-renew

1Auto-renew

Used to change contact information for .ORG,


.INFO, .BIZ, .BE, .CN, .EU, .IT, .ME, .MOBI,
.UK, and .US domains during a transfer or after
transfer completion. Contact changes are
always applied for all other TLDs except for .CA,
which does not allow contact changes during
the transfer.

0Do not change contact set

1Apply new contact set when transfer


completes. Value is always set to 1 for
.CC, .TV, .COM, .NET, and .NAME.

344

Provisioning Commands
Parameter name Obligation

Definition/Value

comments

Optional

Adds additional notes to the order, for example,


the additional residency information that is
required for .FR domain registrations.

contact_set

Required

A collection of associative arrays containing


contact information for each contact type
(owner, admin, billing, tech). See "Contact Set".
Notes:
For .CA, .ES, .MX, and .US registrations, state
is required.
For .ES domains registrations, the postal code
must correspond to the province for each of the
contacts. See .ES postal codes for a list of the
postal code prefixes that apply to each
province.
For .IT domain registrations, if the entity_type
is anything other than 1, org_name is
required, and you must include the admin
associative array. If entity_type = 1, the
admin contact is assumed to be the same as
the owner and you do not need to submit it.

custom_
nameservers

Required for
domain
registrations

An indication of whether to use the RSP's


default nameservers, or those provided in the
'sw_register' request.

0Use Reseller's default nameservers.


If set to 0 and default nameservers are
not defined, no nameservers are
associated with the domain.
Note: .TEL always uses the default
nameservers, so this value should be 0
for .TEL registrations. Any nameservers
submitted for .TEL will be ignored.

custom_transfer_
nameservers

1Use nameservers provided in request.

Required for .EU This flag is only used if reg_type = transfer,


transfers - If not and indicates whether to use the nameservers
submitted, the provided in the request.
nameserver list
0Use the domain's existing
is ignored
nameservers and ignore nameservers
provided in request.

1Use nameservers provided in request.


A minimum of two nameservers must be
provided. If no nameservers are
supplied, domain's nameservers are
used.

Note: For .EU transfers, this parameter must


always be set to 1.

345

Provisioning Commands
Parameter name Obligation

Definition/Value

custom_tech_
contact

An indication of whether to use the RSP's tech


contact info, or the tech contact info provided in
the 'sw_register' request.

dns_template

Required for
domain
registrations

Optional

0Use Reseller's tech contact info.

1Use tech contact info provided in


request.

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

For information on creating a DNS template,


see the Reseller's Guide to Domain Name
Registration and Management.
domain

Required for
The domain name to be acted upon in the
domain
sw_register request.
registrations and
domain vetted
certificates

encoding_type

Optional

The encoding type for the domain.


If the domain that you're trying to register
contains multilingual characters, the domain
name must be in Punycode format.
If you submit the reg_domain parameter to
link two profiles, and the previously registered
domain contains multilingual characters, the
reg_domain value must also be in Punycode
format.
Submit a valid three-character language tag.
For a list of the languages supported for each
TLD, see the gTLD and ccTLD Reference Chart
on the OpenSRS website.

346

Provisioning Commands
Parameter name Obligation

Definition/Value

f_lock_domain

Allows you to lock the domain so that it cannot


be transferred away. To allow a transfer on a
locked domain, the domain must first be
unlocked. Even if submitted, this setting is not
applied to TLDs where locking is not supported
such as .DE, .UK, .CH, .NL, .FR, IT, BE, and AT.

f_parkp

Optional

Optional

0Do not lock domain

1Lock domain

Enables the Parked Pages Program. When the


Parked Pages Program is enabled, a customized
page containing contextual ads is displayed. The
ads generate revenue whenever a visitor clicks
on one of the links, and that revenue is shared
with you, the Reseller.
Important: Enabling Parked Pages changes the
nameservers of that domain, and any existing
website will not display.
Parked Pages functionality is available for new
and transferred domain registrations for these
TLDs: .COM, .NET, .ORG, .INFO, .BIZ,
.MOBI, .NAME, .ASIA, .BE, .BZ, .CA, .CC,
.CO, .EU, .IN, .ME, .NL, .TV, .UK, .US, and .WS
and .XXX.
If Parked Pages is enabled, DNS settings
entered at registration are saved for future use
and the Parked Pages nameservers are used
instead.
For transfers, the DNS settings that were
entered with the transfer request are used. If
DNS settings were not submitted at the time of
transfer, the pre-transfer DNS settings are
used. If the domain was using the Parked Pages
DNS at the time of transfer, and DNS settings
are not provided, the domain continues to use
the Parked Pages DNS.

f_whois_privacy

Optional

Y = enable Parked Pages for the domain

N = do not enable Parked Pages for the


domain; this is the default.

Allows you to enable WHOIS Privacy for new


.COM, .NET, .ORG, .INFO, .BIZ, .NAME, .ME,
.MOBI, .CC, .CO, and .TV registrations.

0Disable

1Enable

347

Provisioning Commands
Parameter name Obligation

Definition/Value

handle

Indicates how to process the order. If this


parameter is not specified, the default
parameter is taken from the RSP's RWI
settings.

link_domains

Optional

Optional

savePend the order for later approval


by the RSP.

processProceed with the order


immediately.

Indicates whether to link this domain with


others.
This parameter is only used when ordering
multiple domains over multiple calls to
sw_register. Also, it is only used if the user
does not wish to associate the new registrations
with an existing domain/profile. The first
sw_register call should have link_domains
set to 1. The return to this call contains an
order ID. This value is used as the
master_order_id in the subsequent calls to
sw_register for the remainder of the domain
list.

0Do not link domains

1Link domains. If set to 1, the


reg_domain field should not be
specified.

Note: Only the first call to sw_register should


contain the attribute link_domains.
master_order_id

Required for
domain
registrations if
link_domains
=1

The order ID returned by the first sw_register


call for a group of domains that are to be linked
(via the link_domains parameter).

nameserver_list

Required for .EU A list of nameserver pairs, each of which


transfers
contain a nameserver's name and sort order.
(Minimum two required). For allowed values,
see "Nameserver pair".
If dns_template is specified, the nameservers
are automatically set to the nameservers for the
DNS service:

ns1.systemdns.com

ns2.systemdns.com

ns3.systemdns.com

Important: For .EU transfers, if nameservers


are not provided, the domain name will be
stripped of its existing nameservers and will not

348

Provisioning Commands
Parameter name Obligation

Definition/Value
have any nameservers.

owner_confirm_
address

Required for
.DE, .BE, .EU,
and .IT
transfers

The email address to which to send messages


regarding a .BE, .DE, .EU or .IT transfer.

period

Required for
new domain
registrations
only

The length of the registration period. Allowed


values are 1 10, depending on the TLD, that
is, not all registries allow for a 1-year
registration. The default is 2, which is valid for
all TLDs.

premium_price_
to_verify

Optional - used Submits the premium domain price and verifies


only if reg_type that it is the same as the list price. If the
= premium
submitted price does not match the Tucows list
price, the command will fail.

Note: The email address provided is used for


the current transfer only, and not for future
messages.

Allowed value is the price for the premium


domain, in the format nnn.nn.
reg_domain

Optional

An existing, active domain name 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 for
domain
registrations

The username of the registrant.

Required for
domain
registrations

The registrant's password.

Required for
domain
registrations

The type of registration being requested:

reg_password

reg_type

tld_data

.AR, .ASIA,
.AU, .BR,
.CL, .COOP,
.DE, .DK, .FI,

You can use any of the following alphanumeric


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

newA new registration

premiumRegister a Premium domain


name

transferTransfer a domain in

sunriseSubmit a request for a domain


during its sunrise period

whois_privacyEnable WHOIS Privacy


for an existing domain. DEPRECATED.

An associative array that contains additional


information required by the registry, such as
the residency of the registrant. If you submit a
request that contains this array, you must also

349

Provisioning Commands
Parameter name Obligation

Definition/Value

.FR, .HK,
include data = tld_data.
.HU, .IT, .JOBS, Allowed values are:
.LV, .MX,
au_registrant_infoEligibility
.MY, .NO,
requirements for.AU registrants.
.NU, .PM, .PRO,
ced_infoCharter Eligibility
.PT, .RE,
Declaration (CED) information for .ASIA
.RO, .RU,
domains.
.SE, .SG,
.TF, .US.
ipr_dataSponsored Community
.WF, .YT,
information associated with .XXX
and .ZA
domains.
domains.
it_registrant_infoRegional presence
Optional for
requirements for .IT domains.
.XXX domains.
nexusAmerican presence
requirements for .US domains.

professional_dataThe professional
designation information that is
associated with the .PRO domain.

registrant_extra_infoRegional
presence requirements for various
ccTLDs such as .FR, or industry
requirements for .JOBS domains or
.AERO domains.

For information on the allowed values for each


of these, see tld_data.
trademark_smd

Required for
The Signed Mark Data (SMD) that is associated
sunrise orders of with your trademark, and which serves as proof
the new gTLDs of trademark rights. Contact your Reseller to
acquire a Signed Mark Data file.
When submitting sunrise orders for the new
gTLDs, you must also submit the following
parameters and values: reg_type = sunrise
and handle = save.

Nameserver pair
Each element of the nameserver_list array contains the following pair,
expressed as an associative array:
Parameter
name

Obligation

Definition/Value

name

Required

The fully qualified domain of the nameserver.

sortorder

Required

The sort order of the nameserver.


sortorder values must start at 1 and should not
contain any gaps in sequence.

350

Provisioning Commands

351

Provisioning Commands

.BE registrations and transfers


Specific parameters and required values for .BE
.BE registrations require just two contact types: owner and tech. Admin and
billing contacts are not required for .BE registrations and are ignored if
submitted. The owner and tech contact sets require the standard fields and
values, plus specific values for the lang field.
Note: During a .BE transfer, contact changes are only accepted for owner
name and organization. Changes to contact fields other than owner name
and organization must be submitted after the transfer is completed.

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

owner_confirm_address

Required

The email address to which to send


messages regarding a .BE transfer. The
email address provided is used for the
current transfer only, and not for future
messages.

Owner and Tech


Parameters within the owner and tech associative arrays are described
below.
Parameter
name

Obligation

Definition/Value

lang

Required

The preferred language for use in the registration


agreement and for dispute resolution:

enEnglish

frFrench

nlDutch

352

Provisioning Commands

.CA registrations
Specific parameters and required values for .CA
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

legal_type

Domain name owner's legal classification:

Required

ABOAboriginal

ASSAssociation

CCOCanadian Corporation

CCTCanadian Citizen

EDUEducational Institution

GOVGovernment

HOPHospital

INBIndian Band

LAMLibrary, Archive, or Museum

LGRLegal Representative

MAJHer Majesty the Queen

OMKProtected by Trademarks Act

PLTPolitical Party

PRTPartnership

RESPermanent Resident

TDMTrademark Owner

TRDTrade Union

TRSTrust

Deprecated
The following parameters have been deprecated. If these parameters are
used in your current integration, the command will continue to work;
however, the values will be ignored.
Parameter
name

Obligation

Definition/Value

ca_link_domain

Deprecated

If rant_no = a valid CIRA registrant number,


any information in ca_link_domain is ignored.
If rant_no = 0 and ca_link_domain=1,
the .CA domain from the reg_domain field is
used to obtain the CIRA Registrant number to
link the new domain to the existing CIRA
Registrant profile.

353

Provisioning Commands
Parameter
name

Obligation

Definition/Value
Allowed values are:

cwa

Deprecated

0Don't use the .CA domain from


reg_domain to link to CIRA profile.

1Use the .CA domain from


reg_domain field to obtain CIRA
Registrant number to link domain.

Indicates whether contact information can be


changed without approval from CIRA.
Note: This parameter only works when
creating a CIRA Registrant profile.

0Contact information cannot be


changed without approval from CIRA.
The letter that CIRA sends to the
registrant upon successful registration
does not mention the CWA setting.

1Contact information can be


changed without approval from CIRA.
The letter that CIRA sends to the
registrant upon successful registration
asks for confirmation of this setting.

domain_description Deprecated

Description of the domain.

isa_trademark

A flag indicating whether the domain name is


a trademark.

rant_agrees

Deprecated

Deprecated

0No

1Yes

Indicates whether the registrant has read and


agrees with the CIRA Registrant Agreement.
The CIRA Registrant Agreement can be found
at https://rr-n1tor.opensrs.net/cira_agreement.cgi.
This parameter only works when creating a
CIRA Registrant profile.
Note: Each registrant only needs to agree to
the CIRA terms and conditions once.

0Registrant does not confirm


agreement with CIRA's terms and
conditions at the time the order is
placed. In this case, they will receive
an email asking for confirmation, and
the domain registration is not
processed until agreement is
confirmed.

354

Provisioning Commands
Parameter
name

Obligation

Definition/Value

1Registrant agrees with the CIRA


terms and conditions, and the
registration is processed immediately;
the confirmation email is not sent.

Note: If rant_no = a valid CIRA registrant


number or ca_link_domain = 1,
rant_agrees is ignored.
rant_no

Deprecated

Used if you want to base the new domain's


contact information on an existing CIRA
Registrant profile. Valid values are 0 or a
valid CIRA Registrant number.

0No existing CIRA registrant number


or don't know CIRA Registrant
number.

.EU registrations and transfers


.EU registrations require just two contact types: owner and tech. The admin
and billing contacts are not required for .EU registrations and are ignored if
submitted. The owner and tech contact sets require the standard fields and
values, plus specific values for the fields country and lang.
Important: For .EU transfers, you must specify the domain's nameservers. If
no nameservers are provided, the domain name will be stripped of its
existing nameservers and not have any nameservers.

As of December 10, 2009, .EU supports IDNs. The IDN name must be
submitted in ACE (Punycode) encoding, and all characters in the name before
it is converted to Punycode must conform to .EU requirements. For more
information on .EU IDNs, see http://www.eurid.eu/en/get-eu/domain-namesspecial-characters-idns.
Tip: Individual .EU domain registrants can keep their name private in the
WHOIS record by leaving the owner org_name field blank.
Note: During a .EU transfer, contact changes are only accepted for
owner_name and organization. Changes to contact fields other than
owner_name and organization must be submitted after the transfer is
completed.

355

Provisioning Commands

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

owner_confirm_address

Required for
.EU transfers

The email address to which to send


messages regarding a .EU transfer. The
email address provided is used for the
current transfer only, and not for future
messages.

Owner and Tech


Parameters within the owner and tech associative arrays are described
below.

Parameter
name

Obligation

Definition/Value

country

Required for .EU


registrations

To be eligible to register a .EU domain, you


must have residency in one of the
countries/regions designated by EURid, the .EU
registry.
GBUnited Kingdom ATAustria
(GB)
AXAland Islands

BEBelgium

CYCyprus

CZCzech Republic

DEGermany

DKDenmark

EEEstonia

ESSpain

FIFinland

FRFrance

GIGibraltar

GFFrench Guyana

GPGuadeloupe

GRGreece

HUHungary

IEIreland

ITItaly

LTLithuania

LULuxembourg

LVLatvia

MQMartinique

MTMalta (including
Gozo and Comino)

NLNetherlands

PLPoland

PTPortugal

REReunion

SESweden

SISlovenia

SKSlovakia

356

Provisioning Commands
Parameter
name

Obligation

Definition/Value

lang

Required for .EU


registrations

The preferred language for use in the


registration agreement and for dispute
resolution.
csCzech

daDanish

deGerman

elGreek

enEnglish

esSpanish

etEstonian

fiFinnish

frFrench

huHungarian

itItalian

ltLithuanian

lvLatvian

mtMaltese

nlDutch

plPoland

ptPortuguese

skSlovak

slSlovenian

svSwedish

.IT registrations and transfers


Specific parameters and required values for .IT
Parameters within the attributes associative array are described below.
Parameter
name

Obligation Definition/Value
Used to change contact information during a
transfer or after transfer completion.

change_contact Optional

0Do not change contact set

1Apply new contact set when transfer


completes

Important: For .IT transfers, if change_contact =


1, then you must also include a tld_data associative
array.
owner_confirm
_address

Required

The email address to which to send messages


regarding a .DE transfer.
Note: The email address provided is used for the
current transfer only, and not for future messages.

tld_data

An associative array containing the


it_registrant_info associative array which
Required
designates the residency of the registrant.
for .IT
registrations For more information, see the it_registrant_info
table below.

357

Provisioning Commands

it_registrant_info
The it_registrant_info associative array within the tld_data associative
array contains information to satisfy the regional presence requirements of
the .IT registry.
Parameter
name

Obligation

Definition/Value

entity_type

Required

Specify the legal entity type of registrant.


Allowed values are:

nationality_
code

Optional

1Italian and foreign natural persons

2Companies/one man companies

3Freelance workers/professionals

4Non-profit organizations

5Public organizations

6Other subjects

7Foreigners who match 2-6

Enter the 2-digit ISO 3166-1 code that identifies the


Registrant's nationality.
If entity_type = 1, nationality or owner's country
or both must be an EU country.
If entity_type = 2-6, this value must be IT.
If entity_type = 7, this value must match owner's
country and must be an EU country other than IT.
Note: Be sure to use capital letters.

reg_code

Required

An identifying number, usually the VAT or Codice


Fiscale (numeric tax code). The value that you need
to enter depends on the entity type of the
registrant.

Italian citizens must enter their Codice


Fiscale.

Non Italians not living in Italy can enter n.a.

Italian companies, freelancers, and other


subjects must enter their 11 digit VAT
number or tax indentification number.

Italian non-profit organizations must enter


their VAT number or tax identification
number; however, if they do not have
one,they can enter n.a.

Non Italian entities other than persons


(organizations, freelancers, companies, etc.)
may enter their VAT number or n.a.

358

Provisioning Commands

.MOBI registrations
.MOBI applications use the sw_register command with the standard
parameters. Specific parameters and required values are described below.
Domain names can be registered for two to ten year terms.
Nameservers
You must submit the correct nameservers with your application. If you are
unsure which nameservers to submit with your application, submit the
nameservers ns1.mdnsservice.com and ns2.mdnsservice.com, and use the
Managed DNS service to delegate traffic once the site is live.

Specific parameters and required values for .MOBI


applications
Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

period

Required

The registration term (if application results in


successful registration); may be 2 to 10 years.

reg_type

Required

The type of registration. Allowed value is new.

.NAME registrations
Specific parameters and required values for .NAME
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

tld_data

Optional for .NAME (if email


bundle)

An associative array containing TLDspecific data.

forwarding-emailFor
.NAME domains

Response parameters for sw_register (domain)


The Reseller Agent (RSA) can respond with a 250 response_code, which
indicates that the action was submitted for processing in an asynchronous
registry. When the registry's reply is received by the system, it is processed.

359

Provisioning Commands
Performing a set cookie or get userinfo command indicates if there is an
action currently waiting on a domain.

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

Domain order attributes


Parameters within the attributes associative array for domain orders are
described below.
Parameter name Obligation

Definition/Value

admin_email

Optional

Returns the admin email contact from


the order.

cancelled_orders

Optional

A list of pending orders for this domain


that are cancelled by the successful
registration of the domain.

error

Only returned when an A text description of the errors that


order fails.
occurred in a failed transaction.

forced_pending

Only returned if the


order has been forced
to pending queue.

Orders that cannot be processed


(insufficient funds, domain already
taken, and so on) are forced to the
pending queue.

id

Required

The ID of the order, which can be used


in RWI queries.

queue_request_id

Only returned if the


order has been
queued.

The ID of the request as it appears in


the queue.

registration_code

Required

The registration code returned by the


registry.

registration_text

Required

The registration text returned by the


registry.

transfer_id

Only returned if
reg_type=transfer

ID number of the transfer.

whois_privacy_state

Required

Returns the state of WHOIS Privacy.


Allowed values are enabled,
disabled, enabling (in process), or
disabling (in process).

360

Provisioning Commands

Domain registration examples


For domain = .COM, .NET, .ORG, .INFO, .BIZ, .NAME, .ME,
and .MOBI
Example 1
About this example:

This is a new domain name registration.


This registration creates a new user profile.
No custom tech contact is set.
Custom nameservers are set.
WHOIS Privacy feature enabled at time of registration.
Parked Pages service activated (for qualifying TLDs).
User is requesting the domain to lock once it is registered.
Two pending orders are cancelled by the successful registration of this
domain

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">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip">10.0.10.19</item>
<item key="attributes">
<dt_assoc>
<item key="auto_renew"/>
<item key="link_domains">0</item>
<item key="reg_domain"/>
<item key="f_lock_domain">1</item>

361

Provisioning Commands
<item key="f_whois_privacy">1</item>
<item key="f_parkp">Y</item>
<item key="domain">example.com</item>
<item key="affiliate_id"/>
<item key="period">1</item>
<item key="reg_type">new</item>
<item key="reg_username">daniel</item>
<item key="custom_tech_contact">0</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="sortorder">1</item>
<item
key="name">ns1.domaindirect.com</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="sortorder">2</item>
<item
key="name">ns2.domaindirect.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="reg_password">daniel</item>
<item key="encoding_type"/>
<item key="custom_nameservers">1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>

362

Provisioning Commands
</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">
Domain registration successfully completed. WHOIS
Privacy successfully enabled. Domain successfully locked.
</item>
<item key="attributes">
<dt_assoc>
<item key="admin_email">jsmith@example.com</item>
<item key="whois_privacy_state">enabled</item>
<item key="registration_text">Domain registration
successfully completed. WHOIS Privacy successfully enabled. Domain
successfully locked.</item>
<item key="registration_code">200</item>
<item key="id">3735281</item>
<item key="cancelled_orders">
<dt_array>
<item key="0">3764860</item>
<item key="1">3764861</item>
</dt_array>
</item>

363

Provisioning Commands
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
About this example:

This is a new domain name registration.


This registration is based on another domain (example.com).
No custom tech contact is set.
DNS template is applied.

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">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip">10.0.10.19</item>
<item key="attributes">
<dt_assoc>
<item key="auto_renew"/>
<item key="link_domains">0</item>
<item key="dns_template">newdnstemplate</item>
<item key="custom_tech_contact">0</item>
<item key="contact_set">
... see "Contact Set"

364

Provisioning Commands
</item>
<item key="reg_domain">example.com</item>
<item key="f_lock_domain">0</item>
<item key="domain">example.net</item>
<item key="affiliate_id"/>
<item key="period">10</item>
<item key="reg_type">new</item>
<item key="reg_username">daniel</item>
<item key="reg_password">daniel</item>
<item key="custom_nameservers">0</item>
<item key="encoding_type"/>
</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Domain registration successfully
completed.</item>
<item key="attributes">

365

Provisioning Commands
<dt_assoc>
<item key="registration_code">435</item>
<item key="id">3735283</item>
<item key="forced_pending">3735283</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 3
About this example:

This is a new domain name registration.


No custom tech contact is set.
DNS is enabled but no records are defined.

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">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip">10.0.10.19</item>
<item key="attributes">
<dt_assoc>
<item key="dns_template">*blank*</item>
<item key="auto_renew"/>
<item key="link_domains">0</item>

366

Provisioning Commands
<item key="reg_domain"/>
<item key="f_lock_domain">1</item>
<item key="f_whois_privacy">1</item>
<item key="f_parkp">Y</item>
<item key="domain">example.com</item>
<item key="affiliate_id"/>
<item key="period">1</item>
<item key="reg_type">new</item>
<item key="reg_username">daniel</item>
<item key="custom_tech_contact">0</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key="reg_password">daniel</item>
<item key="encoding_type"/>
<item key="custom_nameservers">1</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">Domain registration successfully completed

367

Provisioning Commands
Domain successfully locked.
Whois Privacy successfully enabled.</item>
<item key="action">REPLY</item>
<item key="attributes">
<dt_assoc>
<item key="admin_email">email@testemail.com</item>
<item key="registration_text">Domain registration successfully
completed
Domain successfully locked.
Whois Privacy successfully enabled.</item>
<item key="registration_code">200</item>
<item key="id">177411</item>
</dt_assoc>
</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .AERO


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">sw_register</item>
<item key="object">domain</item>
<item key="attributes">

368

Provisioning Commands
<dt_assoc>
<item key="handle">process</item>
<item key="reg_username">aaaa</item>
<item key="reg_password">aaaa</item>
<item key="auto_renew">0</item>
<item key="link_domains">0</item>
<item key="f_whois_privacy">1</item>
<item key="f_lock_domain">1</item>
<item key="custom_tech_contact">1</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key="domain">example.aero</item>
<item key="affiliate_id"/>
<item key="period">1</item>
<item key="reg_type">new</item>
<item key="bulk_order">0</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="sortorder">1</item>
<item key="name">ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="sortorder">2</item>
<item key="name">ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="encoding_type"/>
<item key="action">register</item>

369

Provisioning Commands
<item key="custom_nameservers">1</item>
<item key="tld_data">
<dt_assoc>
<item key="registrant_extra_info">
<dt_assoc>
<item key="aero_ens_password">EnsPa55w0rd</item>
<item key="aero_ens_id">EnsId</item>
</dt_assoc>
</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_code">250</item>
<item key="is_success">1</item>
<item key="response_text">Domain registration successfully
submitted</item>
<item key="rr_id">13689</item>

370

Provisioning Commands
<item key="transaction_id">2012-05-16 09:10:36 1250 101</item>
<item key="domain_id">707819</item>
<item key="attributes">
<dt_assoc>
<item key="registration_text">Domain registration successfully
submitted</item>
<item key="admin_email">adler@example.com</item>
<item key="registration_code">300</item>
<item key="waiting_request">sw_register</item>
<item key="waiting_requests_no">1</item>
<item key="id">477659</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .ASIA


About this example:

This is a new domain name registration


The required ASIA-specific data is contained in the ced_info
associative array.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
<msg_id>2.21765911726198</msg_id>
<msg_type>standard</msg_type>
</header>
<body>
<data_block>
<dt_assoc>

371

Provisioning Commands
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='custom_tech_contact'>0</item>
<item key='auto_renew'>0</item>
<item key='reg_type'>new</item>
<item key='reg_username'>sanford</item>
<item key='reg_password'>mypass</item>
<item key='domain'>example.asia</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.domaindirect.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.domaindirect.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='tld_data'>
<dt_assoc>
<item key='ced_info'>
<dt_assoc>
<item key='locality_country'>JP</item>

372

Provisioning Commands
<item key='legal_entity_type'>naturalPerson</item>
<item key='id_type'>passport</item>
<item key='id_number'>12345</item>
<item key='contact_type'>admin</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='period'>1</item>
<item key='custom_nameservers'>0</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='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Domain registration successfully
completed</item>
<item key='attributes'>
<dt_assoc>

373

Provisioning Commands
<item key='registration_text'>Domain registration
successfully completed</item>
<item key='registration_code'>200</item>
<item key='id'>96852687</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .AU


Request
Note: .AU registrations require two contact types: owner and tech.
<?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'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='reg_type'>new</item>
<item key='domain'>example.com.au</item>
<item key='period'>2</item>
<item key='link_domains'>0</item>
<item key='f_lock_domain'>1</item>
<item key='auto_renew'>0</item>
<item key='reg_domain'/>

374

Provisioning Commands
<item key='reg_username'>user123</item>
<item key='reg_password'>changeit</item>
<item key='tld_data'>
<dt_assoc>
<item key='au_registrant_info'>
<dt_assoc>
<item key='registrant_name'>Registered Company

Name Ltd</item>

<item key='registrant_id_type'>ABN</item>
<item key='registrant_id'>99 999 999 999</item>
<item key='eligibility_type'>Registered

Business</item>

<item key='eligibility_name'>Don Marshall

CTO</item>

<item key='eligibility_id_type'>ACN</item>
<item key='eligibility_id'>99999999</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='custom_tech_contact'>1</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='custom_nameservers'>1</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>

375

Provisioning Commands
</dt_assoc>
</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">OK</item>
<item key="action">REPLY</item>
<item key="attributes">
<dt_assoc>
<item key="admin_email">admin@example.com</item>
<item key="registration_text">Domain registration successfully
completed Domain successfully locked.</item>
<item key="registration_code">200</item>
<item key="id">417011</item>
</dt_assoc>
</item>
<item key="response_code">200</item>
<item key="is_success">1</item>

376

Provisioning Commands
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .CA


About this example:

This is a new domain name registration.


Neither custom tech nor custom nameservers are supplied.

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">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="custom_tech_contact">0</item>
<item key="auto_renew">0</item>
<item key="reg_type">new</item>
<item key="reg_username">test</item>
<item key="domain">example.ca</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key="domain_description">this is a domain
description</item>
<item key="link_domains">0</item>
<item key="period">1</item>

377

Provisioning Commands
<item key="reg_password">passwd</item>
<item key="legal_type">CCT</item>
<item key="reg_domain"/>
<item key="custom_nameservers">0</item>
</dt_assoc>
</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="sortorder">1</item>
<item key="name">ns1.domaindirect.com</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="sortorder">2</item>
<item key="name">ns2.domaindirect.com</item>
</dt_assoc>
</item>
</dt_array>
</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>

378

Provisioning Commands
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='response_code'>250</item>
<item key='response_text'>Domain registration successfully
submitted</item>
<item key='is_success'>1</item>
<item key='parameters'>
<dt_array>
<item key='0'>
<dt_assoc>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='attributes'>
<dt_assoc>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='rr_id'>839480</item>
<item key='domain_id'>14532389</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully submitted</item>
<item key='admin_email'>fraser@example.ca</item>
<item key='registration_code'>300</item>
<item key='waiting_requests_no'>1</item>
<item key='id'>56726064</item>
</dt_assoc>
</item>
</dt_assoc>

379

Provisioning Commands
</data_block>
</body>
</OPS_envelope>

For domain = .COM.BR


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="object">DOMAIN</item>
<item key="action">SW_REGISTER</item>
<item key="attributes">
<dt_assoc>
<item key="tld_data">
<dt_assoc>
<item key="br_register_number">114.113.111-11</item>
</dt_assoc>
</item>
<item key="reg_type">new</item>
<item key='handle'>process</item>
<item key="domain">mybraziliandomain.com.br</item>
<item key="period">1</item>
<item key='reg_domain'/>
<item key='reg_username'>username</item>
<item key='reg_password'>changeit123</item>
<item key="custom_tech_contact">1</item>
<item key="contact_set">
... see "Contact Set"

380

Provisioning Commands
</item>
<item key="custom_nameservers">1</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="name">ns1.livednsservice.com</item>
<item key="sortorder">1</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="name">ns2.livednsservice.com</item>
<item key="sortorder">2</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item key="name">ns3.livednsservice.com</item>
<item key="sortorder">3</item>
</dt_assoc>
</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>

381

Provisioning Commands
<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_code">250</item>
<item key="is_success">1</item>
<item key="rr_id">6466</item>
<item key="response_text">Domain registration successfully
submitted</item>
<item key="transaction_id">2011-04-14 18:12:39 25830 101</item>
<item key="domain_id">256808</item>
<item key="attributes">
<dt_assoc>
<item key="registration_text">Domain registration
successfully submitted</item>
<item key="admin_email">ajobim12345@somedomain.com.br</item>
<item key="registration_code">300</item>
<item key="waiting_requests_no">1</item>
<item key="waiting_request">sw_register</item>
<item key="id">296660</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .DE


Note: Submit .DE zone contact information as contact type billing.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>

382

Provisioning Commands
<!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'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='f_lock_domain'>0</item>
<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>1</item>
<item key='affiliate_id'>affiliatetest1</item>
<item key='reg_type'>new</item>
<item key='reg_username'>andrew</item>
<item key='domain'>example.de</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='f_whois_privacy'>0</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>

383

Provisioning Commands
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='sortorder'>3</item>
<item key='name'>ns3.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='link_domains'>0</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='registrant_type'>individual</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='period'>1</item>
<item key='reg_password'>test</item>
<item key='bulk_order'>0</item>
<item key='reg_domain'/>
<item key='custom_nameservers'>1</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'>

384

Provisioning Commands
<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_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Domain registration successfully
completed</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully completed</item>
<item key='admin_email'>robson@example.com</item>
<item key='registration_code'>200</item>
<item key='id'>607737</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .DK


Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>

385

Provisioning Commands
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>1</item>
<item key='affiliate_id'>affiliatetest1</item>
<item key='reg_type'>new</item>
<item key='reg_username'>test</item>
<item key='domain'>example.dk</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='link_domains'>0</item>
<item key='tld_data'>

386

Provisioning Commands
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='registrant_vat_id'>123456789</item>
<item key='registrant_type'>organization</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='period'>1</item>
<item key='reg_password'>test</item>
<item key='bulk_order'>0</item>
<item key='reg_domain'/>
<item key='custom_nameservers'>1</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_code'>250</item>
<item key='is_success'>1</item>

387

Provisioning Commands
<item key='response_text'>Domain registration successfully
submitted</item>
<item key='rr_id'>29910</item>
<item key='domain_id'>753996</item>
<item key='transaction_id'>2013-10-01 12:00:49 1402 101</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully submitted</item>
<item key='admin_email'>robson@example.com</item>
<item key='registration_code'>300</item>
<item key='waiting_request'>sw_register</item>
<item key='waiting_requests_no'>1</item>
<item key='id'>607640</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .EU


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">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip"/>

388

Provisioning Commands
<item key="attributes">
<dt_assoc>
<item key="domain">example.eu</item>
<item key="period">1</item>
<item key="reg_username">test</item>
<item key="reg_password">test</item>
<item key="custom_nameservers">0</item>
<item key="handle">process</item>
<item key="reg_domain"/>
<item key="reg_type">new</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key="custom_tech_contact">1</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="is_success">1</item>
<item key="response_code">200</item>

389

Provisioning Commands
<item key="response_text">Domain registration successfully
completed</item>
<item key="attributes">
<dt_assoc>
<item key="registration_text">Domain registration
successfully completed</item>
<item key="registration_code">200</item>
<item key="id">16629</item>
<item key="admin_email">jsmith@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .FR


Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>1</item>
<item key='reg_type'>new</item>
<item key='reg_username'>Andre</item>
<item key='domain'>example.fr</item>

390

Provisioning Commands
<item key="contact_set">
... see "Contact Set"
</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='link_domains'>0</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='date_of_birth'>1989-03-03</item>
<item key='place_of_birth'>Paris</item>
<item key='country_of_birth'>FR</item>
<item key='postal_code_of_birth'>75008</item>
<item key='registrant_type'>individual</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='period'>1</item>
<item key='reg_password'>changeit</item>

391

Provisioning Commands
<item key='bulk_order'>0</item>
<item key='reg_domain'/>
<item key='custom_nameservers'>1</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='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Domain registration successfully
completed</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully completed</item>
<item key='admin_email'>andre@example.com</item>
<item key='registration_code'>200</item>
<item key='id'>457700</item>
</dt_assoc>
</item>

392

Provisioning Commands
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .HU


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'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='f_lock_domain'>1</item>
<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>1</item>
<item key='reg_type'>new</item>
<item key='reg_username'>zoltan</item>
<item key='domain'>example.hu</item>
<item key='contact_set'>
<dt_assoc>
<item key='admin'>
<dt_assoc>
<item key='first_name'>Daniel</item>
<item key='last_name'>Nagy</item>
<item key='address1'>Bem rakpart 49</item>
<item key='address2'/>

393

Provisioning Commands
<item key='address3'/>
<item key='city'>Budapest</item>
<item key='state'/>
<item key='postal_code'>H-1037</item>
<item key='country'>HU</item>
<item key='org_name'>Varga Szoftver</item>
<item key='phone'>+1.3615550123</item>
<item key='fax'>+1.3615553653</item>
<item key='email'>dnagy@example.com</item>
</dt_assoc>
</item>
<item key='owner'>
<dt_assoc>
<item key='first_name'>Zoltan</item>
<item key='last_name'>Varga</item>
<item key='org_name'>Varga Szoftver</item>
<item key='address1'>Bem rakpart 49</item>
<item key='address2'/>
<item key='address3'/>
<item key='city'>Budapest</item>
<item key='state'/>
<item key='postal_code'>H-1037</item>
<item key='country'>HU</item>
<item key='fax'>+1.3615553651</item>
<item key='phone'>+1.3615550124</item>
<item key='email'>zoltan@example.com</item>
</dt_assoc>
</item>
<item key='tech'>
<dt_assoc>
<item key='first_name'>Paul</item>
<item key='last_name'>Farkas</item>
<item key='org_name'>Varga Szoftver</item>
<item key='address1'>Bem rakpart 49</item>
<item key='address2'/>

394

Provisioning Commands
<item key='address3'/>
<item key='city'>Budapest</item>
<item key='state'/>
<item key='postal_code'>H-1037</item>
<item key='country'>HU</item>
<item key='fax'>+1.3615553652</item>
<item key='phone'>+1.3615550125</item>
<item key='email'>pfarkas@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='f_whois_privacy'>0</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='sortorder'>3</item>
<item key='name'>ns3.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>

395

Provisioning Commands
<item key='link_domains'>0</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='registrant_vat_id'>12345678</item>
<item key='registrant_type'>organization</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='period'>1</item>
<item key='reg_password'>changeit</item>
<item key='bulk_order'>0</item>
<item key='reg_domain'/>
<item key='custom_nameservers'>1</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>

396

Provisioning Commands
<item key='response_code'>250</item>
<item key='is_success'>1</item>
<item key='response_text'>Domain registration successfully
submitted</item>
<item key='domain_id'>709245</item>
<item key='transaction_id'>2012-06-19 13:49:57 1277 101</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully submitted</item>
<item key='admin_email'>admin@example.com</item>
<item key='registration_code'>300</item>
<item key='waiting_request'>sw_register</item>
<item key='waiting_requests_no'>1</item>
<item key='id'>480990</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .INFO


About this example:

This is a new domain name registration.


It is based on another domain (example-nsi.com).
There is a custom tech contact.
There are no custom nameservers (notice the presence of the empty
nameserver_list array, which is permitted).

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>

397

Provisioning Commands
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip">10.0.10.19</item>
<item key="attributes">
<dt_assoc>
<item key="auto_renew"/>
<item key="link_domains">0</item>
<item key="custom_tech_contact">1</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key="reg_domain">example-nsi.com</item>
<item key="f_lock_domain">0</item>
<item key="domain">example.info</item>
<item key="affiliate_id"/>
<item key="period">2</item>
<item key="reg_type">new</item>
<item key="reg_username">daniel</item>
<item key="nameserver_list">
<dt_array/>
</item>
<item key="reg_password">daniel</item>
<item key="encoding_type"/>
<item key="custom_nameservers">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

398

Provisioning Commands

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='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Domain registration successfully
completed</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully completed</item>
<item key='registration_code'>200</item>
<item key='id'>23994</item>
<item key='admin_email'>admin@example.info</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .IT


Request
This example registers a domain to a person (entity_code=1). In this case,
the admin contact does not need to be defined as it must be the same as the
owner; if the admin contact is specified, it is ignored. Similarly, org_name is
not required in this instance, and if specified, is ignored.

399

Provisioning Commands
<?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">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="reg_username">aaaa</item>
<item key="tld_data">
<dt_assoc>
<item key="it_registrant_info">
<dt_assoc>
<item key="nationality_code">IT</item>
<item key="reg_code">SGLMRA80A01H501E</item>
<item key="entity_type">1</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="custom_tech_contact">1</item>
<item key="reg_password">aaaa</item>
<item key="period">1</item>
<item key="f_whois_privacy">0</item>
<item key="link_domains">0</item>
<item key="custom_nameservers">1</item>
<item key="f_lock_domain">0</item>
<item key="domain">example031.it</item>
<item key="reg_type">new</item>

400

Provisioning Commands
<item key="reg_domain"></item>
<item key="contact_set">
<dt_assoc>
<item key="owner">
<dt_assoc>
<item key="first_name">Mario</item>
<item key="last_name">Segale</item>
<item key="org_name">Mario Segale</item>
<item key="address1">Via del Campidoglio, 1</item>
<item key="city">Rome</item>
<item key="state">RM</item>
<item key="country">IT</item>
<item key="postal_code">00123</item>
<item key="phone">+39.0612345678</item>
<item key="email">mario@mail.it</item>
</dt_assoc>
</item>
<item key="tech">
<dt_assoc>
<item key="first_name">Frank</item>
<item key="last_name">Mosser</item>
<item key="org_name">Tech Orgname</item>
<item key="address1">Piazza dei Giudici 1</item>
<item key="city">Firenze</item>
<item key="state">FI</item>
<item key="country">IT</item>
<item key="postal_code">50123</item>
<item key="phone">+39.0551234567</item>
<item key="email">qafive@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="nameserver_list">
<dt_array>

401

Provisioning Commands
<item key="0">
<dt_assoc>
<item key="name">ns1.mdnsservice.com</item>
<item key="sortorder">1</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="name">ns2.mdnsservice.com</item>
<item key="sortorder">2</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item key="name">ns3.mdnsservice.com</item>
<item key="sortorder">3</item>
</dt_assoc>
</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>

402

Provisioning Commands
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_text">Domain registration successfully
completed</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="registration_text">Domain registration successfully
completed</item>
<item key="admin_email">mario@mail.it</item>
<item key="registration_code">200</item>
<item key="id">214946</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Request
This example registers a domain to an Italian company (entity_type = 2).
In this case, the admin contact is required.
<?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">SW_REGISTER</item>

403

Provisioning Commands
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="reg_username">aaaa</item>
<item key="tld_data">
<dt_assoc>
<item key="it_registrant_info">
<dt_assoc>
<item key="nationality_code">IT</item>
<item key="reg_code">06612345675</item>
<item key="entity_type">2</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="reg_password">aaaa</item>
<item key="period">1</item>
<item key="f_whois_privacy">0</item>
<item key="link_domains">0</item>
<item key="custom_nameservers">1</item>
<item key="f_lock_domain">0</item>
<item key="domain">example032.it</item>
<item key="reg_type">new</item>
<item key="reg_domain"></item>
<item key="custom_tech_contact">1</item>
<item key="contact_set">
<dt_assoc>
<item key="admin">
<dt_assoc>
<item key="first_name">Mario</item>
<item key="last_name">Segale</item>
<item key="org_name">Mario Segale</item>
<item key="address1">Via del Campidoglio, 1</item>
<item key="city">Rome</item>
<item key="state">RM</item>

404

Provisioning Commands
<item key="country">IT</item>
<item key="postal_code">00123</item>
<item key="phone">+39.0612345678</item>
<item key="email">mario@mail.it</item>
</dt_assoc>
</item>
<item key="owner">
<dt_assoc>
<item key="first_name">Franco</item>
<item key="last_name">Pendenza</item>
<item key="org_name">Aumento Inc</item>
<item key="address1">Via del Inclinazione, 1</item>
<item key="city">Pisa</item>
<item key="state">PI</item>
<item key="country">IT</item>
<item key="postal_code">52123</item>
<item key="phone">+39.0501234567</item>
<item key="email">tilt@mail.it</item>
<item key="fax">+39.0501234568</item>
</dt_assoc>
</item>
<item key="tech">
<dt_assoc>
<item key="first_name">Frank</item>
<item key="last_name">Mosser</item>
<item key="org_name">Tech Orgname</item>
<item key="address1">Piazza dei Giudici 1</item>
<item key="city">Firenze</item>
<item key="state">FI</item>
<item key="country">IT</item>
<item key="postal_code">50123</item>
<item key="phone">+39.0551234567</item>
<item key="email">qafive@example.com</item>
</dt_assoc>
</item>

405

Provisioning Commands
</dt_assoc>
</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="name">ns1.mdnsservice.com</item>
<item key="sortorder">1</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="name">ns2.mdnsservice.com</item>
<item key="sortorder">2</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item key="name">ns3.mdnsservice.com</item>
<item key="sortorder">3</item>
</dt_assoc>
</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>

406

Provisioning Commands
<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">Domain registration successfully
completed</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="registration_text">Domain registration successfully
completed</item>
<item key="admin_email">mario@mail.it</item>
<item key="registration_code">200</item>
<item key="id">214947</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .JOBS


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>

407

Provisioning Commands
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">sw_register</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="handle">process</item>
<item key="reg_username">Daniel</item>
<item key="reg_password">changeit</item>
<item key="auto_renew">0</item>
<item key="link_domains">0</item>
<item key="f_whois_privacy">0</item>
<item key="f_lock_domain">0</item>
<item key="custom_tech_contact">0</item>
<item key="contact_set">
<dt_assoc>
<item key="owner">
<dt_assoc>
<item key="first_name">Owen</item>
<item key="last_name">Ottway</item>
<item key="address1">123 Oak St.</item>
<item key="state">CA</item>
<item key="city">Santa Clara</item>
<item key="postal_code">90210</item>
<item key="country">US</item>
<item key="phone">+1.4165551212</item>
<item key="fax">+1.4165551234</item>
<item key="email">owen@example.com</item>
<item key="org_name">Example Inc.</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="domain">example.jobs</item>
<item key="affiliate_id"/>

408

Provisioning Commands
<item key="period">1</item>
<item key="reg_type">new</item>
<item key="bulk_order">0</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="sortorder">1</item>
<item key="name">ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="sortorder">2</item>
<item key="name">ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="encoding_type"/>
<item key="action">register</item>
<item key="custom_nameservers">1</item>
<item key="tld_data">
<dt_assoc>
<item key="registrant_extra_info">
<dt_assoc>
<item key="jobs_admin_type">Yes</item>
<item key="jobs_industry_type">Supply Chain
Management</item>
<item key="jobs_title">HR Generalist</item>
<item key="jobs_association_member">Yes</item>
<item
key="jobs_website">http://www.example.com</item>
</dt_assoc>
</item>
</dt_assoc>

409

Provisioning Commands
</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_code">250</item>
<item key="is_success">1</item>
<item key="response_text">Domain registration successfully
submitted</item>
<item key="rr_id">13688</item>
<item key="transaction_id">2012-05-16 09:04:19 1249 101</item>
<item key="domain_id">707818</item>
<item key="attributes">
<dt_assoc>
<item key="registration_text">Domain registration successfully
submitted</item>
<item key="admin_email">a@b.com</item>
<item key="registration_code">300</item>
<item key="waiting_request">sw_register</item>
<item key="waiting_requests_no">1</item>

410

Provisioning Commands
<item key="id">477658</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .NAME


The registrant is requesting a forwarding email address with their domain.

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">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip">10.0.10.19</item>
<item key="attributes">
<dt_assoc>
<item key="auto_renew"/>
<item key="link_domains">0</item>
<item key="custom_tech_contact">0</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key="reg_domain">example-nsi.com</item>
<item key="f_lock_domain">0</item>
<item key="domain">jane.doe.name</item>

411

Provisioning Commands
<item key="affiliate_id"/>
<item key="period">10</item>
<item key="reg_type">new</item>
<item key="reg_username">example</item>
<item key="nameserver_list">
<dt_array/>
</item>
<item key="tld_data">
<dt_assoc>
<item
key="forwarding_email">johndoe@netscape.net</item>
</dt_assoc>
</item>
<item key="reg_password">example</item>
<item key="encoding_type"/>
<item key="custom_nameservers">0</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>

412

Provisioning Commands
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Domain registration successfully
completed</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully completed</item>
<item key='registration_code'>200</item>
<item key='id'>23995</item>
<item key='admin_email'>mail@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .PM, .RE, .TF, .WF, or .YT


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'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='f_lock_domain'>1</item>
<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>1</item>

413

Provisioning Commands
<item key='reg_type'>new</item>
<item key='reg_username'>lafleur</item>
<item key='domain'>example.pm</item>
<item key='contact_set'>
<dt_assoc>
<item key='admin'>
<dt_assoc>
<item key='first_name'>Marie</item>
<item key='last_name'>LaFleur</item>
<item key='org_name'>French Impressions</item>
<item key='address1'>13 Rue Daze</item>
<item key='address2'/>
<item key='address3'/>
<item key='city'>Paris</item>
<item key='state'/>
<item key='postal_code'>75002</item>
<item key='country'>FR</item>
<item key='fax'>+1.3365550125</item>
<item key='phone'>+1.3365551213</item>
<item key='email'>marie@example.com</item>
</dt_assoc>
</item>
<item key='owner'>
<dt_assoc>
<item key='first_name'>Henri</item>
<item key='last_name'>LaFleur</item>
<item key='org_name'>French Impressions</item>
<item key='address1'>13 Rue Daze</item>
<item key='address2'/>
<item key='address3'/>
<item key='city'>Paris</item>
<item key='state'/>
<item key='postal_code'>75002</item>
<item key='country'>FR</item>
<item key='phone'>+1.3365551212</item>

414

Provisioning Commands
<item key='fax'>+1.3365550124</item>
<item key='email'>lafleur@example.com</item>
</dt_assoc>
</item>
<item key='tech'>
<dt_assoc>
<item key='first_name'>Pierre</item>
<item key='last_name'>LaFleur</item>
<item key='org_name'>French Impressions</item>
<item key='address1'>13 Rue Daze</item>
<item key='address2'/>
<item key='address3'/>
<item key='city'>Paris</item>
<item key='state'/>
<item key='postal_code'>75002</item>
<item key='country'>FR</item>
<item key='phone'>+1.3365551214</item>
<item key='fax'>+1.3365550125</item>
<item key='email'>pierre@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='f_whois_privacy'>0</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>

415

Provisioning Commands
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
<item key='2'>
<dt_assoc>
<item key='sortorder'>3</item>
<item key='name'>ns3.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='link_domains'>0</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='registration_number'/>
<item key='registrant_vat_id'>1X345678901</item>
<item key='registrant_type'>organization</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='period'>1</item>
<item key='reg_password'>changeit</item>
<item key='bulk_order'>0</item>
<item key='reg_domain'/>
<item key='custom_nameservers'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

416

Provisioning Commands

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_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Domain registration successfully
completed</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully completed</item>
<item key='admin_email'>admin@example.com</item>
<item key='registration_code'>200</item>
<item key='id'>481007</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .PRO


Request
<?xml version='1.0' encoding='UTF-8'?> <OPS_envelope>
<header>

417

Provisioning Commands
<version>0.9</version>
<msg_id>2.21765911726198</msg_id>
<msg_type>standard</msg_type>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='f_lock_domain'>1</item>
<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>1</item>
<item key='reg_type'>new</item>
<item key='reg_username'>robson</item>
<item key='domain'>dentalpro13.pro</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='f_whois_privacy'>0</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>

418

Provisioning Commands
</item>
<item key='2'>
<dt_assoc>
<item key='sortorder'>3</item>
<item key='name'>ns3.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='link_domains'>0</item>
<item key='tld_data'>
<dt_assoc>
*<item key='professional_data'>
<dt_assoc>
<item
key='authority_website'>http://www.cda-adc.ca</item>
<item key='license_number'>123456789</item>
<item key='authority'>Canadian Dental
Association</item>
<item key='profession'>Dentist</item>
</dt_assoc>*
</item>
</dt_assoc>
</item>
<item key='period'>1</item>
<item key='reg_password'>aaaa</item>
<item key='bulk_order'>0</item>
<item key='reg_domain'/>
<item key='custom_nameservers'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

419

Provisioning Commands

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_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Domain registration successfully
completed</item>
<item key='action'>REPLY</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully completed</item>
<item key='admin_email'>qafive@example.com</item>
<item key='registration_code'>200</item>
<item key='id'>454197</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .US


About this example:

This is a new domain name registration


This creates a new user profile
There is no custom tech contact

420

Provisioning Commands

Custom nameservers are set


The additional US-specific data is contained in the 'tld_data' subassociative array. 'nexus' itself is also an associative array with three
items.

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'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='custom_tech_contact'>0</item>
<item key='auto_renew'>0</item>
<item key='reg_type'>new</item>
<item key='reg_username'>aaaa</item>
<item key='domain'>example.us</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.domaindirect.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.domaindirect.com</item>

421

Provisioning Commands
</dt_assoc>
</item>
</dt_array>
</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='link_domains'>0</item>
<item key='tld_data'>
<dt_assoc>
<item key='nexus'>
<dt_assoc>
<item key='category'>C11</item>
<item key='app_purpose'>P3</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='period'>1</item>
<item key='reg_password'>aaaa</item>
<item key='reg_domain'>corelogic0.info</item>
<item key='custom_nameservers'>0</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>

422

Provisioning Commands
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>REPLY</item>
<item key='object'>DOMAIN</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Domain registration successfully
completed</item>
<item key='attributes'>
<dt_assoc>
<item key='registration_text'>Domain registration
successfully completed</item>
<item key='admin_email'>mail@example.us</item>
<item key='registration_code'>200</item>
<item key='id'>56726889</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .XXX


Example 1
This example registers a domain for a registrant who is already a verified
member of the XXX Sponsored Community. The registrant would like all
communications to be sent to an alternate contact.

Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>

423

Provisioning Commands
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='reg_type'>new</item>
<item key='f_lock_domain'>1</item>
<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>1</item>
<item key='reg_username'>aaaa</item>
<item key='domain'>example.xxx</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='f_whois_privacy'>0</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.domaindirect.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.domaindirect.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='link_domains'>0</item>
<item key='tld_data'>

424

Provisioning Commands
<dt_assoc>
<item key='ipr_data'>
<dt_assoc>
<item key='icm_membership_id'>123456</item>
<item key='icm_membership_password'>passw0rd</item>
<item key='ipr_name'>John Smith</item>
<item key='ipr_email'>johnsmith@example.com</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='period'>1</item>
<item key='reg_password'>aaaa</item>
<item key='bulk_order'>0</item>
<item key='reg_domain'/>
<item key='custom_nameservers'>1</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>

425

Provisioning Commands
<item key='response_text'>Registration orders for .XXX cannot
be processed until general availability begins on December 6, 2011 at
16:00:00 UTC</item>
<item key='action'>REPLY</item>
<item key='attributes'>
<dt_assoc>
<item key='admin_email'>qafive@example.com</item>
<item key='id'>451020</item>
<item key='forced_pending'>451020</item>
</dt_assoc>
</item>
<item key='response_code'>465</item>
<item key='is_success'>0</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
This example registers a domain to a registrant who wants to register the
domain name, but does not want it to resolve. This registrant is not currently
a member of the Sponsored Community.

Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='reg_type'>new</item>

426

Provisioning Commands
<item key='f_lock_domain'>1</item>
<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>1</item>
<item key='reg_username'>aaaa</item>
<item key='domain'>example.xxx</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='f_whois_privacy'>0</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.domaindirect.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.domaindirect.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='link_domains'>0</item>
<item key='tld_data'>
<dt_assoc>
<item key='ipr_data'>
<dt_assoc>
<item key='ipr_non_resolver'>1</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='period'>1</item>

427

Provisioning Commands
<item key='reg_password'>aaaa</item>
<item key='bulk_order'>0</item>
<item key='reg_domain'/>
<item key='custom_nameservers'>1</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'>Registration orders for .XXX cannot
be processed until general availability begins on December 6, 2011 at
16:00:00 UTC</item>
<item key='action'>REPLY</item>
<item key='attributes'>
<dt_assoc>
<item key='admin_email'>qafive@example.com</item>
<item key='id'>256841</item>
<item key='forced_pending'>256841</item>
</dt_assoc>
</item>
<item key='response_code'>465</item>
<item key='is_success'>0</item>
</dt_assoc>

428

Provisioning Commands
</data_block>
</body>
</OPS_envelope>

For domain = new gTLD during sunrise period


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'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='f_lock_domain'>1</item>
<item key='custom_tech_contact'>1</item>
<item key='auto_renew'>1</item>
<item key='reg_type'>sunrise</item>
<item key='handle'>save</item>
<item key='reg_username'>riggs</item>
<item key='domain'>example.guru</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='f_whois_privacy'>0</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>

429

Provisioning Commands
<item key='sortorder'>1</item>
<item key='name'>ns1.systemdns.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.systemdns.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key='link_domains'>0</item>
<item key='tld_data'>
<dt_assoc>
<item key='trademark_smd'> Trademark SMD:Marks:
TEST
smdID: 00000096381377086406165-1
U-labels: sunrise-test
notBefore: 2013-08-21 14:00:06
notAfter: 2015-07-01 00:00:00
-----BEGIN ENCODED SMD----PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNtZDpzaWduZWRNYXJ
rIHht
bG5zOnNtZD0idXJuOmlldGY6cGFyYW1zOnhtbDpuczpzaWduZWRNYXJrLTEuMCIgaWQ9Il8
0Yjk4
YzMzOC03ZjAxLTQyYWMtYjQyMS00MTQ5YWVkN2JhYjIiPgogIDxzbWQ6aWQ+MDAwMDAwOTYz
YzMzOC03ZjAxLTQyYWMtYjQyMS00MTQ5YWVkN2JhYjIiPgogIDxzbWQ6aWQ+ODEz
NzcwODY0MDYxNjUtMTwvc21kOmlkPgogIDxzbWQ6aXNzdWVySW5mbyBpc3N1ZXJJRD0iMSI
+CiAg
ICA8c21kOm9yZz5EZWxvaXR0ZTwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+YmV0bWNoc21k
ICA8c21kOm9yZz5EZWxvaXR0ZTwvc21kOm9yZz4KICAgIDxzbWQ6ZW1haWw+QGRl
bG9pdHRlLmJlPC9zbWQ6ZW1haWw+CiAgPC9zbWQ6aXNzdWVySW5mbz4KICA8c21kOm5vdEJl
bG9pdHRlLmJlPC9zbWQ6ZW1haWw+Zm9y
ZT4yMDEzLTA4LTIxVDEyOjAwOjA2LjE2NVo8L3NtZDpub3RCZWZvcmU+CiAgPHNtZDpub3RB
ZT4yMDEzLTA4LTIxVDEyOjAwOjA2LjE2NVo8L3NtZDpub3RCZWZvcmU+ZnRl

430

Provisioning Commands
cj4yMDE1LTA2LTMwVDIyOjAwOjAwLjAwMFo8L3NtZDpub3RBZnRlcj4KICA8bWFyazptYXJ
rIHht
bG5zOm1hcms9InVybjppZXRmOnBhcmFtczp4bWw6bnM6bWFyay0xLjAiPgogICAgPG1hcms
6dHJh
ZGVtYXJrPgogICAgICA8bWFyazppZD4wMDA1MjUxMzc2NDA0OTY4MTM3NjQwNDk2OC0xPC9
tYXJr
OmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UVUNPV1M8L21hcms6bWFya05hbWU+CiAgICAg
OmlkPgogICAgICA8bWFyazptYXJrTmFtZT5UVUNPV1M8L21hcms6bWFya05hbWU+IDxt
YXJrOmhvbGRlciBlbnRpdGxlbWVudD0ib3duZXIiPgogICAgICAgIDxtYXJrOm9yZz5UVUN
PV1Mg
KERFTEFXQVJFKSBJTkMuPC9tYXJrOm9yZz4KICAgICAgICA8bWFyazphZGRyPgogICAgICA
gICAg
PG1hcms6c3RyZWV0PjEyMDkgT1JBTkdFIFNUUkVFVCBDT1JQT1JBVElPTiBUUlVTVCBDRU5
URVI8
L21hcms6c3RyZWV0PgogICAgICAgICAgPG1hcms6Y2l0eT5XSUxNSU5HVE9OPC9tYXJrOmN
pdHk+
CiAgICAgICAgICA8bWFyazpzcD5ERUxBV0FSRTwvbWFyazpzcD4KICAgICAgICAgIDxtYXJ
rOnBj
PjE5ODAxPC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+CiAgICAg
PjE5ODAxPC9tYXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+VVM8L21hcms6Y2M+ICAg
PC9tYXJrOmFkZHI+CiAgICAgIDwvbWFyazpob2xkZXI+CiAgICAgIDxtYXJrOmNvbnRhY3Qg
PC9tYXJrOmFkZHI+CiAgICAgIDwvbWFyazpob2xkZXI+dHlw
ZT0iYWdlbnQiPgogICAgICAgIDxtYXJrOm5hbWU+QWxleGFuZGVyIFNjaHdlcnRuZXI8L21h
ZT0iYWdlbnQiPgogICAgICAgIDxtYXJrOm5hbWU+cms6
bmFtZT4KICAgICAgICA8bWFyazpvcmc+RVBBRyBEb21haW5zZXJ2aWNlcyBHbWJIPC9tYXJr
bmFtZT4KICAgICAgICA8bWFyazpvcmc+Om9y
Zz4KICAgICAgICA8bWFyazphZGRyPgogICAgICAgICAgPG1hcms6c3RyZWV0PlJoZWluYWx
sZWUg
MzwvbWFyazpzdHJlZXQ+CiAgICAgICAgICA8bWFyazpjaXR5PkJvbm48L21hcms6Y2l0eT4K
MzwvbWFyazpzdHJlZXQ+ICAg
ICAgICAgIDxtYXJrOnNwPk5SVzwvbWFyazpzcD4KICAgICAgICAgIDxtYXJrOnBjPjUzMTc
zPC9t
YXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+REU8L21hcms6Y2M+CiAgICAgICAgPC9tYXJr
YXJrOnBjPgogICAgICAgICAgPG1hcms6Y2M+REU8L21hcms6Y2M+OmFk
ZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzQ5LjIyODMyOTY4NDA8L21hcms6dm9pY2U+CiAg
ZHI+CiAgICAgICAgPG1hcms6dm9pY2U+KzQ5LjIyODMyOTY4NDA8L21hcms6dm9pY2U+ICAg
ICAgPG1hcms6ZW1haWw+cmVnaXN0cnktcmVsYXRpb25zQGVwYWcuZGU8L21hcms6ZW1haWw
+CiAg
ICAgIDwvbWFyazpjb250YWN0PgogICAgICA8bWFyazpqdXJpc2RpY3Rpb24+VVM8L21hcms6

431

Provisioning Commands
ICAgIDwvbWFyazpjb250YWN0PgogICAgICA8bWFyazpqdXJpc2RpY3Rpb24+anVy
aXNkaWN0aW9uPgogICAgICA8bWFyazpjbGFzcz40MjwvbWFyazpjbGFzcz4KICAgICAgPG1
hcms6
bGFiZWw+dHVjb3dzPC9tYXJrOmxhYmVsPgogICAgICA8bWFyazpnb29kc0FuZFNlcnZpY2Vz
bGFiZWw+PklD
IDA0Mi4gVVMgMTAwIDEwMS4gRyAmYW1wOyBTOiBjb21wdXRlciBzb2Z0d2FyZSBpbmZvcm1
hdGlv
biBzZXJ2aWNlcywgbmFtZWx5LCBpbmZvcm1hdGlvbiByZWdhcmRpbmcgY29tcHV0ZXIgc29
mdHdh
cmUgcmVsYXRlZCB0byBhIGdsb2JhbCBjb21wdXRlciBuZXR3b3JrLCBvZmZlcmVkIHZpYSB
hIGds
b2JhbCBjb21wdXRlciBuZXR3b3JrLiBGSVJTVCBVU0U6IDE5OTQwODAwLiBGSVJTVCBVU0U
gSU4g
Q09NTUVSQ0U6IDE5OTQwODAwPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+CiAgICAgIDxtYXJr
Q09NTUVSQ0U6IDE5OTQwODAwPC9tYXJrOmdvb2RzQW5kU2VydmljZXM+OnJl
Z051bT4yMjQ3MTk2PC9tYXJrOnJlZ051bT4KICAgICAgPG1hcms6cmVnRGF0ZT4xOTk5LTA
1LTI0
VDIyOjAwOjAwLjAwMFo8L21hcms6cmVnRGF0ZT4KICAgIDwvbWFyazp0cmFkZW1hcms+CiAg
VDIyOjAwOjAwLjAwMFo8L21hcms6cmVnRGF0ZT4KICAgIDwvbWFyazp0cmFkZW1hcms+PC9t
YXJrOm1hcms+CjxkczpTaWduYXR1cmUgeG1sbnM6ZHM9Imh0dHA6Ly93d3cudzMub3JnLzIw
YXJrOm1hcms+MDAv
MDkveG1sZHNpZyMiIElkPSJfYTQwNWQ3OTAtMzJmYS00YjJiLTg2OTAtZTkyYmMzNjdiMDA
0Ij48
ZHM6U2lnbmVkSW5mbz48ZHM6Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh
0dHA6
Ly93d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjxkczpTaWduYXR1cmVNZXR
ob2Qg
QWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGRzaWctbW9yZSNyc2E
tc2hh
MjU2Ii8+PGRzOlJlZmVyZW5jZSBVUkk9IiNfNGI5OGMzMzgtN2YwMS00MmFjLWI0MjEtNDE0
MjU2Ii8+OWFl
ZDdiYWIyIj48ZHM6VHJhbnNmb3Jtcz48ZHM6VHJhbnNmb3JtIEFsZ29yaXRobT0iaHR0cDo
vL3d3
dy53My5vcmcvMjAwMC8wOS94bWxkc2lnI2VudmVsb3BlZC1zaWduYXR1cmUiLz48ZHM6VHJ
hbnNm
b3JtIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8xMC94bWwtZXhjLWMxNG4
jIi8+
PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d
3Lncz
Lm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+Qk5Eb0IyS0VC
Lm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+UC9D

432

Provisioning Commands
UGZHYXpGZTZFZkptNmllSUF1VnhYM2NMMTBmdVhBOD08L2RzOkRpZ2VzdFZhbHVlPjwvZHM
6UmVm
ZXJlbmNlPjxkczpSZWZlcmVuY2UgVVJJPSIjXzFkOWQwMjNlLTNmYjUtNDAxMi1iYjExLTd
iYmNl
ZjAxZTdjZCI+PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6
ZjAxZTdjZCI+PGRzOlRyYW5zZm9ybXM+Ly93
d3cudzMub3JnLzIwMDEvMTAveG1sLWV4Yy1jMTRuIyIvPjwvZHM6VHJhbnNmb3Jtcz48ZHM
6RGln
ZXN0TWV0aG9kIEFsZ29yaXRobT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS8wNC94bWxlbmM
jc2hh
MjU2Ii8+PGRzOkRpZ2VzdFZhbHVlPmx2Q2dCdFBkUlAydURZR05lQ0hqMXhaSmJhUlVwOW04
MjU2Ii8+em5K
S2hNOUtKakE9PC9kczpEaWdlc3RWYWx1ZT48L2RzOlJlZmVyZW5jZT48L2RzOlNpZ25lZEl
uZm8+
PGRzOlNpZ25hdHVyZVZhbHVlIElkPSJfNjJmNzA4Y2UtMmM5YS00ZjMwLTk4NTgtMDc0OTM
1ZmE1
YmE5Ij5pTDNpUmdCaVRNUTFmajNZT2F3VFZJQ3RpZmJETE9tL0x1NjF6UE9iOU5HYTZRT3N
ISTFZ
dnB6SDVYREJ6N1dRcVZmZDJ5V0VPdWFRClBOUjZjQUhHT3h0c0M2QytVRy94UmFoM2JnUUw
0Tmwv
cXI2SVBOd3dQdmNtVFlYYTBIUjV6MkRXNVJUbHZUY2dIQjA5Q1Z4eng5SkMKMFRnVjhpVE9
2bmpB
eFZ6OTF6dlJ5dUE0UFhvdi8waDBKcjg2a1F5WXhwanZJTXp4Y1pJb1ZhcVdZZWNrcGpUZDk
2Znhn
TGhBQ0ZhUAo5YkVQMkZKTDl4QnJ3SnU4Mjdsd1dkRlJGWmJhL2ZKSVFROVAyN0k4aWVUR29
FUzA4
NTFmSWNNUHRmcjhmQkZvRHNOV25QQkdZSkY2CnlOUC80NEozTXBmU3pKcDBvUXNEbnM0L2l
TY2U1
S2xsR0crdzNRPT08L2RzOlNpZ25hdHVyZVZhbHVlPjxkczpLZXlJbmZvIElkPSJfMWQ5ZDA
yM2Ut
M2ZiNS00MDEyLWJiMTEtN2JiY2VmMDFlN2NkIj48ZHM6WDUwOURhdGE+PGRzOlg1MDlDZXJ0
M2ZiNS00MDEyLWJiMTEtN2JiY2VmMDFlN2NkIj48ZHM6WDUwOURhdGE+aWZp
Y2F0ZT5NSUlGTlRDQ0JCMmdBd0lCQWdJaEFKTkNNcWhOanozY1hWSlBqN3l2Y1p2cm8xRkt
RUitk
VEM2dFhhemVtNWcvTUEwR0NTcUdTSWIzCkRRRUJDd1VBTUhZeEN6QUpCZ05WQkFZVEFsVlR
NVHd3
T2dZRFZRUUtFek5KYm5SbGNtNWxkQ0JEYjNKd2IzSmhkR2x2YmlCbWIzSWcKUVhOemFXZHV
aV1Fn
VG1GdFpYTWdZVzVrSUU1MWJXSmxjbk14S1RBbkJnTlZCQU1USUVsRFFVNU9JRlJ5WVdSbGJ
XRnlh
eUJEYkdWaApjbWx1WjJodmRYTmxJRU5CTUI0WERURXpNRGN5TkRBd01EQXdNRm9YRFRFNU1
EY3lN

433

Provisioning Commands
ekl6TlRrMU9Wb3dnYUF4Q3pBSkJnTlZCQVlUCkFrSkZNUkV3RHdZRFZRUUlFd2hDY25WemM
yVnNj
ekVSTUE4R0ExVUVCeE1JVFdGamFHVnNaVzR4RVRBUEJnTlZCQW9UQ0VSbGJHOXAKZEhSbE1
USXdN
QVlEVlFRREV5bEpRMEZPVGlCVVRVTklJRUYxZEdodmNtbDZaV1FnVkhKaFpHVnRZWEpySUZ
aaGJH
bGtZWFJ2Y2pFawpNQ0lHQ1NxR1NJYjNEUUVKQVJZVlltVjBiV05vYzIxa1FHUmxiRzlwZEh
SbExt
SmxNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DCkFROEFNSUlCQ2dLQ0FRRUF5VSs0a3d
xaHlE
QU13YlhINnhyZ3JKK0NzTzVPN2JMZGtEMk1vTmFKajFLUlcxY2ZTUVVNUUM0ZHpJd1QKM0d
nZksw
M1lPSk9wTTFUSjQvM2xZMWFTcmFMSnRtRy9LYlVrZDFub0RNWmlja3FqQWtISDhtTGliYlF
1Zjl2
dFpWV0ZOUW5td0h4VwoyWWFxRlVzUUFGQVNjRjNURmE0dG1rZDFZbU1Zb2IzYUdUaFZUMkl
maktt
OXpUNkhNT1JqNCtYd0gvamRkOGxKeHIwSmJCc0dCSzloClBab3o1NXdvVWJNTFhLcWVvVFl
OTE5V
R0VNRlpYWktKSllIQzdFcFl4d3hKaDNtN2NWK2x0UVZzWG5NMlZndVZWak5EUjVYNEY2NCs
KcG54
ZGp2SzFPUEVxWDBRWVJhMzYrYW9QTlQ5cGdtM3RJVE5PSUQ4ZnFIeFh5TGRsbTRnTzZ3SUR
BUUFC
bzRJQmdUQ0NBWDB3REFZRApWUjBUQVFIL0JBSXdBREFkQmdOVkhRNEVGZ1FVc21rQjl0SDI
5cURR
N204TUdyWDhxdXdJVFp3d2djQUdBMVVkSXdTQnVEQ0J0WUFVClhNRHhsaXpLVEZzcDhVQjA
weHMy
UGtmVWJnU2hlcVI0TUhZeEN6QUpCZ05WQkFZVEFsVlRNVHd3T2dZRFZRUUtFek5KYm5SbGN
tNWwK
ZENCRGIzSndiM0poZEdsdmJpQm1iM0lnUVhOemFXZHVaV1FnVG1GdFpYTWdZVzVrSUU1MWJ
XSmxj
bk14S1RBbkJnTlZCQU1USUVsRApRVTVPSUZSeVlXUmxiV0Z5YXlCRGJHVmhjbWx1WjJodmR
YTmxJ
RU5CZ2lFQWswSXlxRTJQUGR4ZFVrK1B2Szl4bSt1alVVcEJINTFNCkxxMWRyTjZibUQ0d0R
nWURW
UjBQQVFIL0JBUURBZ2VBTUM0R0ExVWRId1FuTUNVd0k2QWhvQitHSFdoMGRIQTZMeTlqY21
3dWFX
TmgKYm00dWIzSm5MM1J0WTJndVkzSnNNRXNHQTFVZElBUkVNRUl3RUFZT0t3WUJCQUdDeVJ
zQkJZ
TTdDQW93TGdZSUt3WUJCUVVIQWdFdwpJakFnQmdnckJnRUZCUWNDQVJZVWFIUjBjSE02THk
5allT
NXBZMkZ1Ymk1dmNtY3dEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQTdKCmhXZHZpdUtkeXN
ZM2pl
T3pic1gyRFRtN1RxdmN0Y0V0am1hTy80VW1OMDlDc01USUUzcGptNUtxdzQ5cmxoR0VLM2V
uRGFU

434

Provisioning Commands
S1hWRXUKMG5iYkRxZUJENjA2WithbFlNNjN3dzRRbjRUYVNiTmNlaDZubGhDYzcrWEI5VGR
LUHJw
SFVwUmhsSDdOM1dXWUsvUGQyMEVmUVR5bwo4UStIMVppbXV3VGdTU2dzN2JvVUlDSWFadFJ
YTG5J
YXZoL2ZNaWYySkpPbDZpUXhsNEp6d2ErUHQwdkd2Q1IrYUx1RVNnWkZuMDR2CmpGVWFUbHF
3YVhv
YUVkOUs2SmxQa2NGTHFIcmN4MlpKSzE5eHBjWTBSR3FreXloc3A1S0RsS0I5RGZraWxhK3l
GcGRQ
R2JjN05rNTgKUkxGSHYvaUlqZTZiZUxwY1FZcS9mQnMzSGRaT2dTQXBiVkE9PC9kczpYNTA
5Q2Vy
dGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+PC9z
dGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PC9kczpTaWduYXR1cmU+bWQ6
c2lnbmVkTWFyaz4=
-----END ENCODED SMD----</item>
</dt_assoc>
</item>
<item key='period'>1</item>
<item key='reg_password'>aaaa</item>
<item key='bulk_order'>0</item>
<item key='reg_domain'/>
<item key='custom_nameservers'>1</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>

435

Provisioning Commands
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Order created</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="admin_email">qafive@example.com</item>
<item key="id">422013</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Domain Transfer Examples


Request
The period, if present, must be 1 year.
<?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">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip">10.0.10.19</item>

436

Provisioning Commands
<item key="attributes">
<dt_assoc>
<item key="auto_renew"/>
<item key="link_domains">0</item>
<item key="f_parkp">Y</item>
<item key="custom_tech_contact">0</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key="reg_domain">example-nsi.com</item>
<item key="domain">transfer-example-nsi.com</item>
<item key="period">1</item>
<item key="reg_type">transfer</item>
<item key="reg_username">example</item>
<item key="reg_password">example</item>
<item key="encoding_type"/>
<item key="custom_transfer_nameservers">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
This response shows the result of a successful response to a transfer order.
The transfer is not complete at this point rather, it has only been started. If
the domain's current whois information is accurate, then the current domain
owner receives an email requesting that they approve or reject the transfer
request.
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>

437

Provisioning Commands
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_code">200</item>
<item key="response_text">Transfer request has been
successfully sent</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="registration_text">Transfer request has
been successfully sent</item>
<item key="registration_code">200</item>
<item key="id">3735288</item>
<item key="transfer_id">1234</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .AU


Request
<?xml version="1.0" encoding="UTF-8" standalone='yes'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>

438

Provisioning Commands
<item key='action'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='reg_type'>transfer</item>
<item key='handle'>process</item>
<item key='domain'>mytransferdomain.au</item>
<item key='f_lock_domain'>1</item>
<item key='auto_renew'>0</item>
<item key='reg_domain'>existingdomain.com</item>
<item key='reg_username'>username</item>
<item key='reg_password'>password</item>
<item
key='owner_confirm_address'>myconfirmemail@domain.com</item>
<item key='custom_tech_contact'>1</item>
<item key='contact_set'>
<dt_assoc>
<item key='owner'>
<dt_assoc>
<item key='first_name'>Chris</item>
<item key='last_name'>Christopherson</item>
<item key='phone'>+1.4165550123</item>
<item key='fax'></item>
<item
key='email'>chris@christopherson.com</item>
<item key='org_name'>Christopherson Kitchens
(Australia) Pty Limited</item>
<item key='address1'>4 York Street</item>
<item key='address2'></item>
<item key='address3'></item>
<item key='city'>Sydney</item>
<item key='state'>NSW</item>
<item key='country'>AU</item>
<item key='postal_code'>2022</item>
</dt_assoc>
</item>

439

Provisioning Commands
<item key='tech'>
<dt_assoc>
<item key='first_name'>Johnny</item>
<item key='last_name'>Jameson</item>
<item key='phone'>+1.4165550123</item>
<item key='fax'></item>
<item
key='email'>johnny@techfixers.com</item>
<item key='org_name'>Tech Fixers Inc.</item>
<item key='address1'>66 Mowat Avenue</item>
<item key='address2'></item>
<item key='address3'></item>
<item key='city'>Sudney</item>
<item key='state'>NSW</item>
<item key='country'>AU</item>
<item key='postal_code'>2023</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key='custom_transfer_nameservers'>0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>

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>

440

Provisioning Commands
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="response_text">Transfer request has been successfully
sent. Admin contact email: chris@christopherson.com</item>
<item key="attributes">
<dt_assoc>
<item key="registration_text">Transfer request has been
successfully sent. Admin contact email: chris@christopherson.com</item>
<item key="transfer_id">5851957</item>
<item key="admin_email">chris@christopherson.com</item>
<item key="registration_code">200</item>
<item key="id">101184590</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .CA


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">SW_REGISTER</item>

441

Provisioning Commands
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="auto_renew">0</item>
<item key="f_parkp">N</item>
<item key="domain">example.ca</item>
<item key="reg_type">transfer</item>
<item key="reg_domain"/>
<item key="reg_username">srs_registrant_username</item>
<item key="reg_password">srs_registrant_password</item>
<item key="encoding_type"/>
<item key="custom_transfer_nameservers">0</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Registration successful</item>
<item key="attributes">

442

Provisioning Commands
<dt_assoc>
<item key="admin_email">admin@email.com</item>
<item key="id">85550904</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .DE


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'>SW_REGISTER</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='custom_tech_contact'>1</item>
<item key='affiliate_id'>AffiliateTransferTest</item>
<item key='reg_type'>transfer</item>
<item key='reg_username'>riggs</item>
<item key='domain'>example.de</item>
<item key='contact_set'>
... see "Contact Set"
</item>
<item key='handle'>process</item>

443

Provisioning Commands
<item key='link_domains'>0</item>
<item key='period'>1</item>
<item key='reg_password'>test</item>
<item key='bulk_order'>0</item>
<item key='reg_domain'/>
<item key='custom_nameservers'>0</item>
</dt_assoc>
</item>
<item key='nameserver_list'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='sortorder'>1</item>
<item key='name'>ns1.domaindirect.com</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='sortorder'>2</item>
<item key='name'>ns2.domaindirect.com</item>
</dt_assoc>
</item>
</dt_array>
</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>

444

Provisioning Commands
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="response_text">Transfer request has been
successfully sent. Admin contact email: robson@example.com</item>
<item key="attributes">
<dt_assoc>
<item key="registration_text">Transfer request has
been successfully sent. Admin contact email: robson@example.com</item>
<item key="admin_email">robson@example.com</item>
<item key="registration_code">200</item>
<item key="id">101550</item>
<item key="transfer_id">1234</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .EU or .BE


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>

445

Provisioning Commands
<item key="protocol">XCP</item>
<item key="action">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="affiliate_id"/>
<item key="reg_type">transfer</item>
<item key="period">1</item>
<item key="reg_username">unittest</item>
<item key="auto_renew"/>
<item key="domain">example.eu</item>
<item key="reg_password">password</item>
<item key="custom_tech_contact">0</item>
<item
key="owner_confirm_address">owner@example.eu</item>
<item key="link_domains">0</item>
<item key="custom_transfer_nameservers">1</item>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item
key="name">ns1.domaindirect.com</item>
<item key="sortorder">1</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item
key="name">ns2.domaindirect.com</item>
<item key="sortorder">2</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="contact_set">
... see "Contact Set"

446

Provisioning Commands
</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">
Transfer request has been successfully sent.
Admin contact email: admin@example.eu
</item>
<item key="attributes">
<dt_assoc>
<item key="registration_text">
Transfer request has been successfully sent.
Admin contact email: admin@example.eu
</item>
<item key="registration_code">200</item>
<item key="id">3751913</item>
<item key="transfer_id">1234</item>

447

Provisioning Commands
<item key="admin_email">admin@example.eum</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For domain = .IT


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="object">DOMAIN</item>
<item key="action">SW_REGISTER</item>
<item key="attributes">
<dt_assoc>
<item key="reg_username">aaaa</item>
<item key="reg_domain"></item>
<item key="reg_type">transfer</item>
<item key="change_contact">1</item>
<item key="tld_data">
<dt_assoc>
<item key="it_registrant_info">
<dt_assoc>
<item key="nationality_code">IT</item>
<item key="reg_code">SGLMRA80A01H501E</item>
<item key="entity_type">1</item>

448

Provisioning Commands
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="reg_password">aaaa</item>
<item key="domain">example037.it</item>
<item
key="owner_confirm_address">transferapprover@example.com</item>
<item key="contact_set">
<dt_assoc>
<item key="owner">
<dt_assoc>
<item key="first_name">Mario</item>
<item key="last_name">Segale</item>
<item key="org_name">Mario Segale</item>
<item key="address1">Via del Campidoglio, 20</item>
<item key="city">Rome</item>
<item key="state">RM</item>
<item key="country">IT</item>
<item key="postal_code">00123</item>
<item key="phone">+39.0612345678</item>
<item key="email">mario@mail.it</item>
</dt_assoc>
</item>
<item key="tech">
<dt_assoc>
<item key="first_name">Frank</item>
<item key="last_name">Mosser</item>
<item key="org_name">Tech Orgname</item>
<item key="address1">Piazza dei Giudici 20</item>
<item key="city">Firenze</item>
<item key="state">FI</item>
<item key="country">IT</item>
<item key="postal_code">50123</item>
<item key="phone">+39.0551234567</item>
<item key="email">qafive@example.com</item>

449

Provisioning Commands
</dt_assoc>
</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="is_success">1</item>
<item key="response_text">Transfer request has been successfully
sent. Admin contact email: transferapprover@example.com</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="transfer_id">41334</item>
<item key="registration_text">Transfer request has been
successfully sent. Admin contact email:
transferapprover@example.com</item>
<item key="admin_email">transferapprover@example.com</item>
<item key="registration_code">200</item>
<item key="id">214998</item>

450

Provisioning Commands
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Examples for WHOIS Privacy


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">SW_REGISTER</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="reg_type">whois_privacy</item>
<item key="reg_password">aaaa</item>
<item key="domain">example.com</item>
<item key="reg_username">aaaa</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

451

Provisioning Commands

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="is_success">1</item>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="id">7235</item>
<item key="admin_email">admin@example.com</item>
</dt_assoc>
</item>
<item key="response_text">WHOIS Privacy order [#7298] is in
progress</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

452

Provisioning Commands

update_contacts
Description
Action & object
action = update_contacts
object = domain
cookie = cookie created to access the system, see "set (cookie)"

Usage
Submits a domain-contact information update to the system. Each contact
object is submitted as a whole, and changes are parsed against the existing
information.
Important: For .UK domains, if you use this command to submit a change to
the Organization field, it is recognized by the system, but not by the registry.
To change the .UK Organization information, you must contact the Nominet
Registry.

For .ES domains, if you use this command to submit any changes to the
owner contact information, the changes are recognized by the system, but
not by the registry. To change the .ES Owner contact information, you must
contact the Esnic Registry.
For .IT domains, the owner contact requires three additional parameters:
entity_type, nationality_code, and reg_code. For more information about
contact_set values, see .IT contact requirements.

Request parameters for update_contacts


Standard parameters
action = update_contacts
object = domain
attributes
Attributes

Parameters within the attributes associative array are described below.


Parameter
name

Obligation

Definition/Value

affect_domains

Optional

Flag indicating the domains to which to apply the


change.

0Change applies only to the specified


domain. This is the default.

1Change applies to all domains linked to

453

Provisioning Commands
Parameter
name

Obligation

Definition/Value
this profile.

contact_set

Required

Contains new contact information for each


specified contact type. For more information, see
Contact set.

domain

Required

The domain to be updated.

report_email

Optional

The End User's email address to which notification


of success or failure is sent. The notification email
is sent on behalf of the Reseller.
Note: This parameter can only be specified if
affect_domains is set to '1'

types

Required

The contact types whose information is changing.


Allowed values are; owner, admin, billing, and
tech.

Response parameters for update_contacts


Standard parameters
action = reply
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
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

details

Required

A description of the success or failure of


each affected domain.
The key is the name of the domain.
When you specify a contact_info
modification, you can specify that you
want the action to apply to all domains.
Because the modification may succeed
or fail on a case-by-case basis, you get
a response code for each domain that is
affected.
The key that is used to access this

454

Provisioning Commands
Parameter name

Obligation

Definition/Value
domain success information is the name
of the domain itself, for example,
'mydomain.com' or 'mydomain.co.uk'.
Each key contains a hash (described
below) that provides details on the
action performed on that domain.

encoding_type

Optional

The encoding type for this domain.


Valid three-character language tag. For
a list of the languages supported for
each TLD, see the gTLD and ccTLD
Reference Chart on the OpenSRS
website.

response_code

Required

The response code associated with the


modification on this domain.

response_text

Required

The response text associated with the


modification on this domain

waiting_requests_no

Required

The number of registry requests in the


waiting state.

Examples for update_contacts


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">UPDATE_CONTACTS</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="types">
<dt_array>

455

Provisioning Commands
<item key="0">admin</item>
<item key="1">billing</item>
</dt_array>
</item>
<item key="contact_set">
... see "Contact Set"
</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"></item>
<item key="is_success">1</item>
<item key="response_text">Command completed
successfully.</item>
<item key="response_code">200</item>
<item key="waiting_requests_no">0</item>
<item key="attributes">
<dt_assoc>
<item key="details">
<dt_assoc>

456

Provisioning Commands
<item key="example.com">
<dt_assoc>
<item key="response_text">Command completed

successfully</item>

<item key="response_code">200</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
<OPS_envelope>

457

Personal Names Service


The Personal Names Service enables you to offer your customers web and
email addresses based on our extensive portfolio of surnames. These names
cannot be found anywhere else, and represent an estimated 60% of the last
names of our North American Resellers' customers. This service allows your
customers to have a website address and an email address based on their
last name without actually owning the name, for example,
adam.robinson.net. In addition, email addresses are available on a secondlevel basis (adam@robinson.net).
Note: Outbound transfers to other registrars are not possible.

This section contains the following commands:

name_suggest (surname) checks whether a specified Personal


Names domain (firstname lastname) is available for registration.
su_registersubmits a new registration order for an available Personal
Names domain.
query (surname)queries the properties of the domain.
update surnamechanges properties of the Personal Names domain,
for example, changes the forwarding email address or changes from a
forwarding only account to a webmail address.
delete (surname)deletes the Personal Names domain.

458

Sub-Reseller Commands

name_suggest (surname)
Description
Action & object
action = name_suggest
object = surname

Usage
Checks whether a specified Personal Name, (firstname lastname) is available
for registration in various gTLDs and ccTLDs, suggests other similar domain
names, and checks whether they are available.
Important: This command has been deprecated. To check whether a
specified Personal Names domain, is available for registration, use the
name_suggest (domain) command and specify personal_names.

Request parameters for name_suggest (surname)


Standard parameters
action = name_suggest
object = surname
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

searchstring

Required

The name whose availability you want to check, for


example, 'john smith'. Be sure to include both the first
and the last name. If the first name is not specified,
results are returned for the last name only, along with
a message stating that a first name is required.
Note: The first level domain (for example, .COM) is
not required.

459

Sub-Reseller Commands

Response parameters for name_suggest


(surname)
Standard parameters
action = reply
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
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

suggestion

Required

The results returned.


For more information, see the Suggestion table
below.

Suggestion
Parameters within the suggestion associative array are described below.
Parameter
name

Obligation

Definition/Value

count

Required

The number of results returned.

items

Required

List of domain names and their statuses.


For more information, see the Items table below.

Items
Parameters within the items associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

Returned domain name.

status

Required

Indicates whether the returned domain name is


available and can be registered. Allowed value is
available.

460

Sub-Reseller Commands

Examples for name_suggest (surname)


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">name_suggest</item>
<item key="object">surname</item>
<item key="attributes">
<dt_assoc>
<item key="searchstring">steven smith</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>

461

Sub-Reseller Commands
<item key="action">REPLY</item>
<item key="object">SURNAME</item>
<item key="response_text">Command completed
successfully</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="suggestion">
<dt_assoc>
<item key="count">11</item>
<item key="response_text">Command completed
successfully</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="items">
<dt_array>
<item key="0">
<dt_assoc>
<item
key="domain">steven.smith.net</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item
key="domain">steven.smithemail.com</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item
key="domain">steven.smithhome.com</item>
<item key="status">available</item>
</dt_assoc>

462

Sub-Reseller Commands
</item>
<item key="3">
<dt_assoc>
<item
key="domain">steven.smithmail.com</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="4">
<dt_assoc>
<item
key="domain">steven.smithnet.net</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="5">
<dt_assoc>
<item
key="domain">steven.smithnet.org</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="6">
<dt_assoc>
<item
key="domain">steven.smithpage.net</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="7">
<dt_assoc>
<item
key="domain">steven.smithpost.com</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="8">

463

Sub-Reseller Commands
<dt_assoc>
<item
key="domain">steven.smithweb.org</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="9">
<dt_assoc>
<item
key="domain">steven.thesmith.org</item>
<item key="status">available</item>
</dt_assoc>
</item>
<item key="10">
<dt_assoc>
<item
key="domain">steven.nesmith.com</item>
<item key="status">available</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

464

Sub-Reseller Commands

su_register
Description
Action & object
action = su_register
object = surname

Usage
Submits a new registration order for an available Personal Names domain.

Request parameters for su_register


Standard parameters
action = su_register
object = surname
registrant_ip = valid IP address of the registrant (optional)
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation Definition/Value
A DNS record associated with the domain along with
its value.

dnsRecords

Optional

Note: You can only specify one DNS record: either A


or CNAME.
For more information, see the DnsRecords table
below.

domain

Required

mailbox

Required

The domain name to register.


An array that defines the type of account to create.
For more information, see the Mailbox table below.

465

Sub-Reseller Commands

DNS Records
Parameters within the dnsRecords associative array are described below.
Parameter
name

Obligation Definition/Value

content

Optional

name

Optional

type

Optional

The IP address or fully qualified domain name.


Note: When specifying the domain name for CNAME
records, put a dot after the TLD.
The unqualified name of the DNS record.
Specify @ to indicate the actual zone rather than
another record in the zone.
The type of DNS record. Allowed values are A or
CNAME.

Mailbox
Parameters within the mailbox associative array are described below.
Parameter
name

Obligation Definition/Value

forward_email

Optional

The address to which email is forwarded.


The type of mailbox account. Allowed values are:
MAILBOXCreate a regular email account.

mailbox_type

Required

WEBMAIL_ONLYCreate a Webmail only account (no


IMAP/POP/SMTP).
FORWARD_ONLYTHIS VALUE HAS BEEN
DEPRECATED. If you submit this value, the command
will fail.

password

Required

The registrant's initial email password.

Response parameters for su_register


Uses standard response message (see "Response messages").

466

Sub-Reseller Commands

Examples for su_register


Request
Register a domain with a regular mailbox
<?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">SU_REGISTER</item>
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
<item key="mailbox">
<dt_assoc>
<item key="mailbox_type">MAILBOX</item>
<item key="password">changeit</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

467

Sub-Reseller Commands

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'>SURNAME</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Command completed successfully</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Request
Register a domain with a regular mailbox and email forwarding
<?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">SU_REGISTER</item>

468

Sub-Reseller Commands
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
<item key="mailbox">
<dt_assoc>
<item key="mailbox_type">MAILBOX</item>
<item key="password">changeit</item>
<item key="forward_email">steve@example.com</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'>SURNAME</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Command completed successfully</item>
</dt_assoc>
</data_block>

469

Sub-Reseller Commands
</body>
</OPS_envelope>

Request
Register a domain with webmail only
<?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">SU_REGISTER</item>
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
<item key="mailbox">
<dt_assoc>
<item key="mailbox_type">WEBMAIL_ONLY</item>
<item key="password">changeit</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'>

470

Sub-Reseller Commands
<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'>SURNAME</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Command completed successfully</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Request
Register a domain with webmail only and email forwarding
<?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">SU_REGISTER</item>
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>

471

Sub-Reseller Commands
<item key="mailbox">
<dt_assoc>
<item key="mailbox_type">WEBMAIL_ONLY</item>
<item key="password">changeit</item>
<item key="forward_email">steve@example.com</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'>SURNAME</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Command completed successfully</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

472

Sub-Reseller Commands

Request
Register a domain with email forwarding and set the A record
<?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">SU_REGISTER</item>
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
<item key="mailbox">
<dt_assoc>
<item key="mailbox_type">MAILBOX</item>
<item key="password">changeit</item>
<item key="forward_email">steve@example.com</item>
</dt_assoc>
</item>
<item key="dnsRecords">
<dt_array>
<item key="0">
<dt_assoc>
<item key="type">A</item>
<item key="name">@</item>
<item key="content">127.0.0.2</item>
</dt_assoc>
</item>
</dt_array>
</item>

473

Sub-Reseller Commands
</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'>SURNAME</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Command completed successfully</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Request
Register a domain with a regular mailbox and set the Cname record
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>

474

Sub-Reseller Commands
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">SU_REGISTER</item>
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
<item key="mailbox">
<dt_assoc>
<item key="mailbox_type">MAILBOX</item>
<item key="password">changeit</item>
</dt_assoc>
</item>
<item key="dnsRecords">
<dt_array>
<item key="0">
<dt_assoc>
<item key="type">CNAME</item>
<item key="name">@</item>
<item key="content">steven.smith.net.</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Note: The dot after .net is required for CNAME records.

475

Sub-Reseller Commands

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'>SURNAME</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
<item key='response_text'>Command completed successfully</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

476

Sub-Reseller Commands

query (surname)
Description
Action & object
action = query
object = surname

Usage
Queries the properties of the domain.

Request parameters for query (surname)


Standard parameters
action = query
object = surname
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The Personal Names domain to be queried.

query_dns

Optional

Requests information about the DNS settings.

query_email

Optional

0Do not return DNS information; this is


the default.

1Return all DNS records for the zone.

Requests information about the associated email


account.

0Do not return email account information;


this is the default.

1Return information about the email


account.

477

Sub-Reseller Commands

Response parameters for query (surname)


Standard parameters
action = reply
object = surname
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
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

created_on

Required

Date the domain was created.

domain

Required

The Personal Names domain to which the returned


values apply.

mailbox

Optional

Information about the mailbox.


For more information, see the Mailbox table below.

state

Optional

Current status of the Personal Names domain.


Available value is active.

zone

Optional

Information about the DNS records.


For more information, see the Zone table below.

Mailbox
Parameters within the mailbox associative array are described below.
Parameter
name

Obligation

Definition/Value

forward_email

Optional

The address to which email is forwarded.

mailbox_type

Optional

The type of mailbox: MAILBOX or


WEBMAIL_ONLY.

478

Sub-Reseller Commands

Records
Parameters within the records associative array are described below.
Parameter
name

Obligation

Definition/Value

content

Optional

The IP address or fully qualified domain name.

name

Optional

The unqualified domain name or @ symbol.

type

Optional

The type of DNS record. Allowed values are A and


CNAME.

Zone
Parameters within the zone associative array are described below.
Parameter
name

Obligation

Definition/Value

records

Optional

A list of the DNS records associated with the


domain, along with their values.

zone_id

Optional

Internal identifier for the DNS zone.

Examples for query (surname)


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">QUERY</item>
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>

479

Sub-Reseller Commands
<item key="domain">steven.smith.net</item>
<item key="query_email">1</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">SURNAME</item>
<item key="is_success">1</item>
<item key="response_text">Command completed successfully</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
<item key="state">active</item>
<item key="created_on">2008-01-03T14:25:45.000-05:00</item>
<item key="mailbox">
<dt_assoc>
<item key="mailbox_type">MAILBOX</item>
<item key="response_text">OK</item>
<item key="is_success">1</item>
</dt_assoc>

480

Sub-Reseller Commands
</item>
<item key="zone">
<dt_assoc>
<item key="state">active</item>
<item key="response_text">OK</item>
<item key="is_success">1</item>
<item key="zone_id">3186929</item>
<item key="name">steven.smith.net</item>
<item key="records">
<dt_array>
<item key="0">
<dt_assoc>
<item key="content">steven.smith.net</item>
<item key="type">CNAME</item>
<item key="name">www</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

481

Sub-Reseller Commands

update (surname)
Description
Action & object
action = update
object = surname

Usage
Changes properties of the domain. You can use this command to change the
DNS records, enable or disable email forwarding, or to change the service
type, for example, to switch from Webmail (no IMAP/POP/SMTP) to a regular
mailbox.

Request parameters for update surname


Standard parameters
action = update
object = surname
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

dnsRecords

Optional

A DNS record associated with the domain along


with its value.
Note: You can only specify one DNS record: either
A or CNAME.
For more information, see the DnsRecords table
below.

domain

Required

The domain to be updated.

mailbox

Optional

An array that defines the type of account.


For more information, see the Mailbox table
below.

482

Sub-Reseller Commands

DnsRecords
Parameters within the dnsRecords associative array are described below.
Parameter
name

Obligation

Definition/Value

content

Optional

The IP address or the fully qualified domain name.

name

Optional

The new name for the DNS record


Specify @ to indicate the actual zone rather than
another record in the zone.

type

Optional

Type of DNS record. Allowed values are A or


CNAME.

Warning: If you update dnsRecords, you must supply a full list of records.
Any committed records will be deleted.

Mailbox
Parameters within the mailbox associative array are described below.
Parameter name

Obligation

Definition/Value

disable_forward_
email

Optional

Disable email forwarding.


Allowed value is 1.
Note: To enable forwarding, use the
forward_email parameter.

forward_email

Optional

The address to which email is forwarded.

mailbox_type

Optional

Change the type of mailbox account. Allowed


values are:

password

Optional

MAILBOXChange to regular email


account.

WEBMAIL_ONLYChange to Webmail
only account (no IMAP/POP/SMTP).

FORWARD_ONLYTHIS VALUE HAS


BEEN DEPRECATED.

The registrant's new email password.

483

Sub-Reseller Commands

Response parameters for update surname


Standard parameters
action = reply
object = surname
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

Examples for update surname


Request
Change a regular mailbox account to a webmail only account and
enable email forwarding
<?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">UPDATE</item>
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
<item key="mailbox">
<dt_assoc>
<item key="mailbox type">WEBMAIL_ONLY</item>
<item key="forward_email">steve@example.com</item>
</dt_assoc>
</item>

484

Sub-Reseller Commands
</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">SURNAME</item>
<item key="is_success">1</item>
<item key="response_text">Command completed
successfully</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
<OPS_envelope>

485

Sub-Reseller Commands

Request
Change a webmail only account to a regular mailbox, change the
password, and set the A record
<?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">UPDATE</item>
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
<item key="mailbox">
<dt_assoc>
<item key="mailbox_type">MAILBOX</item>
<item key="password">changeit</item>
</dt_assoc>
</item>
<item key="dnsRecords">
<dt_array>
<item key="0">
<dt_assoc>
<item key="type">A</item>
<item key="name">@</item>
<item key="content">127.0.0.2</item>
</dt_assoc>
</item>
</dt_array>
</item>

486

Sub-Reseller Commands
</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">SURNAME</item>
<item key="is_success">1</item>
<item key="response_text">Command completed
successfully</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
<OPS_envelope>

487

Sub-Reseller Commands

Request
Change a webmail only account to a regular mailbox and disable
email forwarding
<?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">UPDATE</item>
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</item>
<item key="mailbox">
<dt_assoc>
<item key="mailbox_type">MAILBOX</item>
<item key="disable_forward_email">1</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

488

Sub-Reseller Commands

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">SURNAME</item>
<item key="is_success">1</item>
<item key="response_text">Command completed
successfully</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
<OPS_envelope>

489

Sub-Reseller Commands

delete (surname)
Description
Action & object
action = delete
object = surname

Usage
Deletes the Personal Names domain. This call can delete only one domain at
a time.

Request parameters for delete (surname)


Standard parameters
action = delete
object = surname
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

domain

Required

Personal Names domain to be deleted.

Response parameters for delete (surname)


Standard parameters
action = reply
object = surname
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

490

Sub-Reseller Commands

Examples for delete (surname)


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">DELETE</item>
<item key="object">SURNAME</item>
<item key="attributes">
<dt_assoc>
<item key="domain">steven.smith.net</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>

491

Sub-Reseller Commands
<item key="action">REPLY</item>
<item key="object">SURNAME</item>
<item key="is_success">1</item>
<item key="response_text">Command completed
successfully</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

492

Transfer Commands
This section contains the following commands:
cancel_transfercancels transfers that are pending owner approval.
check_transferchecks to see if the specified domain can be
transferred in, or from one Reseller to another.
get_transfers_awaylists domains that have been transferred away.
get_transfers_inlists domains that have been transferred in.
process_transfercreates a new order with the same data as a
cancelled order.
rsp2rsp_push_transfertransfer a domain from one Reseller to
another Reseller.
send_password (transfer)resends an email to the admin contact for
a transfer that is in 'pending owner approval' state,
trade_domaintransfers ownership of a .EU or .BE domain.

493

Transfer Commands

cancel_transfer
Description
Action & object
action = cancel_transfer
object = transfer

Usage
Cancels transfers that are pending owner approval.

Request parameters for cancel_transfer


Standard parameters
action = cancel_transfer
object = transfer
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Optional - either order-id or


domain must be specified.

The domain to be cancelled.

order_id

Optional - either order-id or


domain must be specified.

The ID of the order to be


cancelled.

reseller

Required

Reseller username.

Response parameters for cancel_transfer


Standard parameters
action = reply
object = transfer
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

494

Transfer Commands

Examples for cancel_transfer


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">cancel_transfer</item>
<item key="object">transfer</item>
<item key="attributes">
<dt_assoc>
<item key="reseller">purple</item>
<item key="order_id">3533098</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
If successful
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>

495

Transfer Commands
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">TRANSFER</item>
<item key="response_text">Transfer with order id: 3533098
has been cancelled.</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If unsuccessful
<?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">TRANSFER</item>
<item key="response_text">Command Failed: Transfer State
Prohibits Cancellation</item>
<item key="is_success">0</item>
<item key="response_code">400</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

496

Transfer Commands

check_transfer
Description
Action & object
action = check_transfer
object = domain

Usage
Checks to see if the specified domain can be transferred in, or from one
Reseller to another. This call can also be used to check the status of the last
transfer request on a given domain name.
When using the check_transfer action prior to initiating a transfer, the
transferable response parameter is most relevant, and if transferable = 0,
the reason field is also important. When using the check_transfer action to
determine the progress of a transfer, the status parameter is of most
importance.

Request parameters for check_transfer


Standard parameters
action = check_transfer
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

check_status

Optional

Flag to request the status of a transfer


request. If the transfer state is returned as
pending_registry and the Registry shows
OpenSRS as the Registrar of record, OpenSRS
initiates the completion of .UK transfers, or
schedule the completion of gTLD transfers.
Allowed values are 0 or 1.

domain

Required

The fully qualified domain name in the


transfer order.

497

Transfer Commands
Parameter name

Obligation

Definition/Value

get_request_address

Optional

Flag to request the registrant's contact email


address. This is useful if you want to make
sure that your client can receive mail at that
address to acknowledge the transfer.
Allowed values are 0 or 1.

Response parameters for check_transfer


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
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

noservice

Always returned

Indication of supplier availability:

0Supplier is available

1Supplier is unavailable.

Note: When noservice is 1 then


transferable is set to 0 and is_success is
set to 1.
reason

Included only if
transferable = 0

Reason for transfer status.

request_address

Optional

Valid email address of registrant, which


can be used to make sure that they can
receive mail at that address to
acknowledge the transfer.

status

Conditional: returned
only if domain is not
transferable. If no
transfer is underway,
this is retrieved from
the previous transfer
order.

Status of the latest transfer on the domain


initiated by the Reseller.
Note: Resellers can only request status for
transfers that they initiated (any checks for
transfers initiated by other Resellers
returns 'undef').

pending_ownerAwaiting

498

Transfer Commands
Parameter
name

Obligation

Definition/Value
approval by domain's admin contact
(every transfer begins with this
status). If approval is not given
within five days, the transfer is
cancelled.

timestamp

Always returned. If no
transfer is currently
underway, timestamp
is retrieved from the
previous transfer
order.

pending_adminWaiting for
approval by support.

pending_registryAwaiting
registry approval (the transfer
completes after 7 days unless it is
declined by the current registrar). If
the Registry shows OpenSRS as the
Registrar of record, OpenSRS
initiates the completion of .UK
transfers, or schedules the
completion of gTLD transfers.

completedThe transfer
completed successfully.

cancelledThe Reseller or
OpenSRS stopped the transfer.

undefNo transfer exists for this


domain.

The date and time of the most recent


update to the state of the transfer (which
could be placement of an order, an owner
request, an owner confirmation, a registry
request, or completion/cancellation of an
order).
Date format is DD MMM YYYY 00:00:00
GMT

transferrable

Included only when a Whether the domain can be transferred.


transfer request has
0Cannot be transferred
not been submitted for
1Can be transferred
the specified domain

type

Included only if
transferable = 1

unixtime

Type of transfer initiated:

reg2regTransfer from one


registrar to another.

rsp2rspTransfer between two


Resellers of the same registrar.

Always returned. If no Conversion of timestamp, in seconds since


transfer is currently
Epoch (1 Jan 1970 00:00:00 GMT).
underway, unixtime is
retrieved from the
previous transfer
order.

499

Transfer Commands

Examples for check_transfer


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">CHECK_TRANSFER</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="check_status">1</item>
<item key="get_request_address">1</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>

500

Transfer Commands
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_text">Query successful</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="status">pending_owner</item>
<item key="transferrable">0</item>
<item key="reason">Transfer in progress</item>
<item key="request_address"/>
<item key="unixtime">1115213766</item>
<item key="timestamp">Wed May

4 09:36:06 2005</item>

</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

501

Transfer Commands

get_transfers_away
Description
Action & object
action = get_transfers_away
object = domain

Usage
Lists domains that have been transferred away. This command applies to all
domains in a Reseller's profile.
All attributes are optional, but can be used to narrow the search criteria. If
no attributes are specified, all domains that were ever transferred-away from
your profile are returned.

Request parameters for get_transfers_away


Standard parameters
action = get_transfers_away
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

domain

Optional

Submit the domain name attribute only if you


want to check if a particular domain has been
transferred away.

gaining_registrar

Optional

Search for transfers-away according to gaining


registrar. String and wildcards (*) accepted.

limit

Optional

The maximum number of domains to return


per page, up to 40.

owner_confirm_from

Optional

Search for transferred-away domains


according to the date from when the owner
confirmed or denied the transfer. Can be used
with the owner_confirm_to attribute to
specify a range within which to search. The
year specified cannot exceed 2030.
Use the format YYYY-MM-DD.

502

Transfer Commands
Parameter name

Obligation

Definition/Value

owner_confirm_ip

Optional

The IP address from where the owner


confirmed or denied the transfer-away
request.

owner_confirm_to

Optional

Search for transferred-away domains


according to the date prior to when the owner
confirmed or denied the transfer. Can be used
with the owner_confirm_from attribute to
specify a range within which to search. The
year specified cannot exceed 2030.
Use the format YYYY-MM-DD.

owner_request_from

Optional

Search for transferred domains according to


the date when the email was been sent to the
request_address. Can be used with the
owner_request_to attribute to specify a
range within which to search. If not used with
owner_request_to, all domains from the
owner_request_from date onward are
returned. The year specified cannot exceed
2030; otherwise an error is returned.
Use the format YYYY-MM-DD.

owner_request_to

Optional

Search for transferred domains according to


the date prior to when the email was sent to
the request_address. Can be used with the
owner_request_from attribute to specify a
range within which to search. If not used with
owner_request_from, all domains ever
transferred away from the
owner_request_to date and earlier are
returned. The year specified cannot exceed
2030; otherwise an error is returned.
Use the format YYYY-MM-DD.

page

Optional

Determines which page to retrieve, using the


page number. The page index starts at 0
(zero).

req_from

Optional

Search for transferred domains according to


the date when the transfer notification was
sent. Can be used with the req_to attribute to
specify a range within which to search. If not
used with req_to, all domains from the
req_from date onward are returned. The year
specified cannot exceed 2030; otherwise an
error is returned.
Use the format YYYY-MM-DD.

503

Transfer Commands
Parameter name

Obligation

Definition/Value

req_to

Optional

Search for transferred domains according to


the date up until the transfer notification was
sent. Can be used with the req_from
attribute to specify a range within which to
search. If not used with req_from, all
domains prior to the req_to date onward are
returned. The year specified cannot exceed
2030; otherwise an error is returned.
Use the format YYYY-MM-DD.

request_address

Optional

The admin email address at the time of


notification. Wildcards (*) accepted.

status

Optional

Search for transferred domains by status.


Allowed values are pending_admin,
pending_owner, pending_registry,
completed, or cancelled.

Response parameters for get_transfers_away


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
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

page

Returned if specified in the


request.

The number of the page retrieved.

page_size

Returned if specified in the


request.

The maximum number of domains


returned per page.

total

Always returned

The number of transferred-away


domains.

504

Transfer Commands
Parameter
name

Obligation

Definition/Value

transfers

Returned if a transferred-away
domain exists and meets the
specified search criteria

Contains arrays that list details


about each transfer-away.
For more information, see the
Transfers table below.

Transfers
Parameters within the transfers associative array are described below.
Parameter name

Obligation

Definition/Value

domain

Returned if a
transferred-away
domain exists and
meets the specified
search criteria.

The domain that was


transferred-away.

gaining_registrar

Always returned for


transferred away
domains.

The registrar that gained the


transferred-away domain.

owner_choice

Always returned for


transferred away
domains.

Indicates the owner's response


to the transfer-away request.
I = ignored
Y = approved
N = declined

owner_confirm_date

Always returned for


transferred away
domains.

Date when the owner responded


to the transfer request.

owner_confirm_ip

Always returned for


transferred away
domains.

The IP address from which the


owner responded to the transfer
request.

owner_confirm_date_epoch

Always returned for


transferred away
domains.

Date when the owner responded


to the transfer request, in UNIX
time.

owner_request_date

Always returned for


transferred away
domains.

Date when transfer request was


sent to the owner.

owner_request_date_epoch

Always returned for


transferred away
domains.

Date when transfer request was


sent to the owner, in UNIX time.

registry_request_date

Always returned for


transferred away
domains.

The date when the transfer


request was sent to the registry

505

Transfer Commands
Parameter name

Obligation

Definition/Value

registry_request_date_epoch

Always returned for


transferred away
domains.

The date when the transfer


request was sent to the registry,
in UNIX time.

request_address

Always returned for


transferred away
domains.

The admin contact email


address, at the time of transfer
notification

request_date

Always returned for


transferred away
domains.

The date when the transfer


request was sent.

request_date_epoch

Always returned for


transferred away
domains.

The date when the transfer


request was sent, in UNIX time.

status

Always returned for


transferred away
domains.

The status of the transfer:


Allowed values are
pending_admin,
pending_owner,
pending_registry, completed,
or cancelled.

Examples for get_transfers_away


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">GET_TRANSFERS_AWAY</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="status">completed</item>

506

Transfer Commands
<item key="request_address">girl@example.com</item>
<item key="gaining_registrar">Tucows Inc.</item>
<item key="owner_confirm_ip">10.0.10.220</item>
<item key="registry_request_date">20-JUL-2006</item>
<item key="limit">40</item>
<item key="page">1</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
<item key="attributes">
<dt_assoc>
<item key="page">1</item>
<item key="page_size">2</item>
<item key="total">1</item>
<item key="transfers">
<dt_array>

507

Transfer Commands
<item key="0">
<dt_assoc>
<item key="domain">example.com</item>
<item key="status">completed</item>
<item key="gaining_registrar">TUCOWS

Inc.</item>

<item key="owner_choice">Y</item>
<item
key="owner_confirm_ip">10.0.12.165</item>
<item key="owner_request_date">20-JUL2006 16:14:41</item>
<item
key="owner_request_date_epoch">1153426481</item>
<item key="owner_confirm_date">20-JUL2006 16:18:08</item>
<item
key="owner_confirm_date_epoch">1153426688</item>
<item
key="request_address">girl@example.com</item>
<item key="request_date">20-JUL-2006
16:14:36</item>
<item
key="request_date_epoch">1153426476</item>
<item key="registry_request_date">20-JUL2006 16:18:09</item>
<item
key="registry_request_date_epoch">1153426689</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

508

Transfer Commands

get_transfers_in
Description
Action & object
action = get_transfers_in
object = domain

Usage
Lists domains that have been transferred in. This command applies to all
domains in a Reseller's profile.
All attributes are optional, but can be used to narrow the search criteria. If
no attributes are specified, all domains that were ever transferred into your
profile are returned.

Request parameters for get_transfers_in


Standard parameters
action = get_transfers_in
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

completed_from

Optional

Specify the start date for the search. Only


domains transferred on or after the specified
date are returned.
Use the format YYYY-MM-DD.

completed_to

Optional

Specify the end date for the search. Only


domains transferred on or before the specified
date are returned.
Use the format YYYY-MM-DD.

domain

Optional

Submit the domain name attribute only if you


want to check if a particular domain has been
transferred in.

gaining_registrar

Optional

Search for transfers-in according to gaining


registrar. String and wildcards (*) accepted.

limit

Optional

The maximum number of domains to return


per page, up to 40.

509

Transfer Commands
Parameter name

Obligation

Definition/Value

order_id

Optional

ID number of the order.

owner_confirm_from

Optional

Search for transferred-in domains according to


the date from when the owner confirmed or
denied the transfer. Can be used with the
owner_confirm_to attribute to specify a
range within which to search.
Use the format YYYY-MM-DD.
Note: The year specified cannot exceed 2030.

owner_confirm_ip

Optional

The IP address from which the owner


confirmed or denied the transfer-in request.

owner_confirm_to

Optional

Search for transferred-in domains according to


the date prior to when the owner confirmed or
denied the transfer. Can be used with the
owner_confirm_from attribute to specify a
range within which to search.
Use the format YYYY-MM-DD.
Note: The year specified cannot exceed 2030.

owner_request_from

Optional

Search for transferred domains according to


the date when the email was been sent to the
request_address. Can be used with the
owner_request_to attribute to specify a
range within which to search. If not used with
owner_request_to, all domains from the
owner_request_from date onward are
returned. The year specified cannot exceed
2030; otherwise an error is returned.
Use the format YYYY-MM-DD.

owner_request_to

Optional

Search for transferred domains according to


the date prior to which the email was been
sent to the request_address. Can be used
with the owner_request_from attribute to
specify a range within which to search. If not
used with owner_request_from, all domains
ever transferred in prior to the
owner_request_to date are returned.
Use the format YYYY-MM-DD.
Note: The year specified cannot exceed 2030;
otherwise an error is returned.

page

Optional

Determines which page to retrieve, using the


page number. The page index starts at 0
(zero).

510

Transfer Commands
Parameter name

Obligation

Definition/Value

req_from

Optional

Search for transferred domains according to


the date when the transfer notification was
sent. Can be used with the req_to attribute to
specify a range within which to search. If not
used with req_to, all domains from the
req_from date onward are returned.
Use the format YYYY-MM-DD.
Note: The year specified cannot exceed 2030;
otherwise an error is returned.

req_to

Optional

Search for transferred domains according to


the date up until the transfer notification was
sent. Can be used with the req_from
attribute to specify a range within which to
search. If not used with req_from, all
domains prior to the req_to date are
returned.
Use the format YYYY-MM-DD.
Note: The year specified cannot exceed 2030;
otherwise an error is returned.

request_address

Optional

The admin email address at the time of


notification. Wildcards (*) accepted.

status

Optional

Search for transferred domains by status.


Allowed values are pending_admin,
pending_owner, pending_registry,
completed, or cancelled.

transfer_id

Optional

ID number of the transfer.

Response parameters for get_transfers_in


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

511

Transfer Commands

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

page

Returned if specified in the


request.

The number of the page retrieved.

page_size

Returned if specified in the


request.

The maximum number of domains


returned per page.

total

Always returned.

The number of transferred-in


domains.

transfers

Returned if a transferred-in
domain exists and meets the
specified search criteria.

Contains arrays that list details


about each transfer-in.
For more information, see the
Transfers table below.

Transfers
Parameters within the transfers associative array are described below.
Parameter name

Obligation

Definition/Value

domain

Returned if a
The domain that was transferred
transferred-in
in.
domain exists and
meets the
specified search
criteria.

gaining_registrar

Always returned
in the case of a
transferred-in
domain.

The registrar that gained the


transferred-in domain.

owner_choice

Always returned
in the case of a
transferred-in
domain.

Indicates the owner's response to


the transfer-in request.
I = ignored
Y = approved
N = declined

owner_confirm_date

Always returned
in the case of a
transferred-in
domain.

Date when the owner responded to


the transfer request.

owner_confirm_date_epoch

Always returned
in the case of a
transferred-in
domain.

Date when the owner responded to


the transfer request, in UNIX time.

512

Transfer Commands
Parameter name

Obligation

Definition/Value

owner_confirm_ip

Always returned
in the case of a
transferred-in
domain.

The IP address from which the


owner responded to the transfer
request.

owner_request_date

Always returned
in the case of a
transferred-in
domain.

Date when transfer request was


sent to the owner.

owner_request_date_epoch

Always returned
in the case of a
transferred-in
domain.

Date when transfer request was


sent to the owner, in UNIX time.

registry_request_date

Always returned
in the case of a
transferred-in
domain.

The date when the transfer


request was sent to the registry.

registry_request_date_epoch

Always returned
in the case of a
transferred-in
domain.

The date when the transfer


request was sent to the registry, in
UNIX time.

request_address

Always returned
in the case of a
transferred-in
domain.

The admin contact email address,


at the time of transfer notification.

request_date

Always returned
in the case of a
transferred-in
domain.

The date when the transfer


request was sent.

request_date_epoch

Always returned
in the case of a
transferred-in
domain.

The date when the transfer


request was sent, in UNIX time.

status

Always returned
in the case of a
transferred-in
domain.

The status of the


transfer:pending_owner,
pending_registry, completed,
or cancelled.

Note: pending_admin has been


deprecated.
transfer_id

Always returned.

ID number of the transfer.

513

Transfer Commands

Examples for get_transfers_in


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">GET_TRANSFERS_IN</item>
<item key="object">DOMAIN</item>
<item key="registrant_ip"/>
<item key="attributes">
<dt_assoc>
<item key="owner_request_to">2006-10-06</item>
<item key="page">1</item>
<item key="status">cancelled</item>
<item key="transfer_id">1234</item>
<item key="request_address">agnes@example.com</item>
<item key="losing_registrar">Tucows</item>
<item key="completed_to">2006-10-06</item>
<item key="domain">example.cc</item>
<item key="order_from">2006-10-04</item>
<item key="order_id">987625</item>
<item key="completed_from">2006-10-04</item>
<item key="limit">20</item>
<item key="owner_confirm_to">2006-10-06</item>
<item key="order_to">2008-10-06</item>
<item key="owner_request_from">2006-10-04</item>
<item key="owner_confirm_from">2006-10-04</item>
</dt_assoc>

514

Transfer Commands
</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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
<item key="attributes">
<dt_assoc>
<item key="page_size">20</item>
<item key="page">1</item>
<item key="total">1</item>
<item key="transfers">
<dt_array>
<item key="0">
<dt_assoc>
<item key="owner_request_date">06-OCT2006 14:23:54</item>
<item key="status">cancelled</item>
<item key="registry_request_date"/>
<item key="owner_confirm_date"/>

515

Transfer Commands
<item key="registry_request_date_epoch"/>
<item key="owner_confirm_ip"/>
<item key="completed_date">06-OCT-2006

14:59:01</item>

<item
key="order_date_epoch">1159729141</item>
<item key="owner_confirm_date_epoch"/>
<item
key="request_address">agnes@example.com</item>
<item key="losing_registrar">Tucows</item>
<item key="domain">kaka.cc</item>
<item key="order_date">06-OCT-2006
14:23:52</item>
<item
key="completed_date_epoch">1160159032</item>
<item
key="owner_request_date_epoch">1160159034</item>
<item key="transfer_id">1234</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

516

Transfer Commands

process_transfer
Description
Action & object
action = process_transfer
object = transfer

Usage
Creates a new order with the same data as a cancelled order; the existing
cancelled order is not modified. This command is only available for failed
transfers with the status of 'cancelled'.

Request parameters for process_transfer


Standard parameters
action = process_transfer
object = transfer
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

order_id

Required

The ID of the order to be resubmitted.

reseller

Required

Reseller username.

Response parameters for process_transfer


Standard parameters
action = reply
object = transfer
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

517

Transfer Commands

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation
order_id

Definition/Value

Included in success response. ID of the newly created order.

Examples for process_transfer


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">PROCESS_TRANSFER</item>
<item key="object">TRANSFER</item>
<item key="attributes">
<dt_assoc>
<item key="reseller">test_rsp</item>
<item key="order_id">111111</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

518

Transfer Commands

Response
If successful
<?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">TRANSFER</item>
<item key="is_success">1</item>
<item key="response_text">Transfer request has been
successfully sent. Admin contact email: admin@example.com'</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="order_id">1111111</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If unsuccessful
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>

519

Transfer Commands
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">TRANSFER</item>
<item key="is_success">0</item>
<item key="response_text">'Transfer status does not allow
for resubmit.'</item>
<item key="response_code">400</item>
<item key="attributes">
<dt_assoc>
<item key="order_id">undef</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

520

Transfer Commands

rsp2rsp_push_transfer
Description
Action & object
action = rsp2rsp_push_transfer
object = domain

Usage
Transfer a domain from one Reseller to another Reseller. The domain is not
renewed when it is transferred and so no charges are incurred.
Important: Before you can push a domain to another Reseller account, that
Reseller has to add you to their allow list by entering your username on the
Push Domain Settings page of the RWI. For more information, see the
Reseller's Guide to Domain Name Registration and Management guide.

Request parameters for rsp2rsp_push_transfer


Standard parameters
action = rsp2rsp_push_transfer
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain that you want to push to another Reseller

grsp

Required

The name of the gaining Reseller.

password

Optional

Registrant password. If specified, this value will be


used for the new registration; otherwise the original
password will be used.

username

Optional

Registrant username. If specified, this value will be


used for the new registration; otherwise the original
username will be used.

521

Transfer Commands

Response parameters for rsp2rsp_push_transfer


Standard parameters
action = reply
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

Examples for rsp2rsp_push_transfer


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">RSP2RSP_PUSH_TRANSFER</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</item>
<item key="grsp"/>
<item key="username">robson</item>
<item key="password">abc123</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

522

Transfer Commands

Response
If successful
<?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"></item>
<item key="is_success">1</item>
<item key="response_text">'Domain successfully
transferred'</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If unsuccessful
<?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"></item>

523

Transfer Commands
<item key="is_success">0</item>
<item key="response_text">'grsp must be another
reseller'</item>
<item key="response_code">465</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

524

Transfer Commands

send_password (transfer)
Description
Action & object
action = send_password
object = transfer

Usage
Resends an email message for a transfer that is in 'pending owner approval'
state, to the admin contact listed for the domain at the time that the transfer
request was submitted. If a transfer is currently in progress, but in a
different state, an error is returned.
Note: This does not handle bulk transfers as such if the password is
requested for a domain that is part of a bulk-transfer order, the password
returned in the email is only usable for the single domain.

Request parameters for send_password (transfer)


Standard Parameters
action = send_password
object = transfer
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain_name

Required

The domain name for which the password is to be


initiated.

Response parameters for send_password


(transfer)
Standard parameters
action = reply
object = transfer
is_success = a Boolean is returned, indicating success or failure of the

request

525

Transfer Commands
response_code = response code indicating outcome of the request
response_text = message describing the outcome of the request

Examples for send_password (transfer)


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">send_password</item>
<item key="object">transfer</item>
<item key="attributes">
<dt_assoc>
<item key="domain_name">example.com</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>

526

Transfer Commands
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">transfer</item>
<item key="response_text">Message sent.</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

527

Transfer Commands

trade_domain
Description
Action & object
action = trade_domain
object = domain

Usage
Transfers ownership of a domain name from one registrant to another. This
command may be used for the following domains: .CL, .COM.AR, .DK, FI,
.FR, .HK, .HU, .MY, .NO, .NU, .PM, .RE, .RO, .RU, .SE, .SG, .TF, .WF, and .YT.

Request parameters for trade_domain


Standard parameters
action = trade_domain
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

address1

Required for all The street address of the new owner.


except .BE.

city

Required for all The new owners city.


except .BE.

country

Required for all The new owners country.


except .BE.

domain

Required

The domain that is being traded.

domain_auth_info

Required for
.BE

The domain's Authcode. To request an


Authcode you can use the send_authcode
command; the Authcode is sent to the
domain's admin contact.

email

Required

The new owners email address.

first_name

Required

The first name of the new owner.

last_name

Required

The last name of the new owner.

org_name

Required

The name of the new owners organization.

phone

Required for all The new owners phone number.


except .BE.

528

Transfer Commands
Parameter name Obligation

Definition/Value

postal_code

Required for all The new owners postal code.


except .BE.

state

Required for all The new owners state.


except .BE.

tld_data

Required for all An associative array containing the


except .BE.
registrant_extra_info associative array
which submits additional parameters that are
required by various domain registries.
For more information, see the TLD Data
section.

Response parameters for trade_domain


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

Examples for trade_domain


Example 1
Transfers ownership of a .BE domain.

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>

529

Transfer Commands
<item key="action">TRADE_DOMAIN</item>
<item key="object">DOMAIN</item>
<item key="attributes">
<dt_assoc>
<item key="first_name">Simon</item>
<item key="last_name">Dubois</item>
<item key="domain">js4.be</item>
<item key="email">dubois@example.be</item>
<item key="org_name">Example Co.</item>
<item keyi="domain_auth_info">ewgnRwnH</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>
OK</item>

<item key="response_text">Command completed successfully


<item key="response_code">200</item>
<item key="is_success">1</item>
<item key="registry_response_code">1000</item>

530

Transfer Commands
<item key="response_text">Trade for js4.be has been
successfully issued.</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
Transfers ownership of a .DK domain

Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'> <OPS_envelope>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>TRADE_DOMAIN</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='org_name'>Example Co.</item>
<item key='domain'>example.dk</item>
<item key='first_name'>Daniel</item>
<item key='last_name'>Jensen</item>
<item key='address1'>Gammel Kongevej 1</item>
<item key='city'>Copenhagen V</item>
<item key='state'/>
<item key='country'>DK</item>
<item key='postal_code'>1610</item>
<item key='phone'>+1.33257400</item>

531

Transfer Commands
<item key='email'>djensen@example.dk</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='registrant_type'>individual</item>
</dt_assoc>
</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'>Trade for example.dk has been
successfully issued.</item>
<item key='response_code'>200</item>
<item key='is_success'>1</item>
</dt_assoc>
</data_block>
</body>

532

Transfer Commands
</OPS_envelope>

Example 3
Transfers ownership of a .FR domain.

Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>TRADE_DOMAIN</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>example.fr</item>
<item key='first_name'>Henri</item>
<item key='last_name'>LeFluer</item>
<item key='address1'>13 Rue Daze</item>
<item key='city'>Paris</item>
<item key='state'/>
<item key='country'>FR</item>
<item key='postal_code'>75002</item>
<item key='org_name'>French Impressions</item>
<item key='phone'>+1.3365551212</item>
<item key='email'>lefluer@example.com</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='date_of_birth'>1979-03-03</item>
<item key='place_of_birth'>Paris</item>

533

Transfer Commands
<item key='country_of_birth'>FR</item>
<item key='postal_code_of_birth'>75008</item>
<item key='registrant_type'>individual</item>
</dt_assoc>
</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_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Trade for example.fr has been
successfully issued.</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

534

Transfer Commands

Example 3
Transfers ownership of a .COM.AR domain

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'>TRADE_DOMAIN</item>
<item key='object'>DOMAIN</item>
<item key='attributes'>
<dt_assoc>
<item key='first_name'>Daniela</item>
<item key='last_name'>Sosa</item>
<item key='address1'>Piedras No 623</item>
<item key='city'>San Sebastian</item>
<item key='state'/>
<item key='postal_code'>B1000TBU</item>
<item key='country'>AR</item>
<item key='org_name'>Sosa Informatica S.A.</item>
<item key='domain'>example.com.ar</item>
<item key='phone'>+1.4165350123</item>
<item key='email'>sosa@example.com</item>
<item key='tld_data'>
<dt_assoc>
<item key='registrant_extra_info'>
<dt_assoc>
<item key='tax_number'>27-10563145-8</item>
<item key='id_card_number'>10563145</item>

535

Transfer Commands
<item key='registrant_type'>individual</item>
</dt_assoc>
</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_code'>200</item>
<item key='is_success'>1</item>
<item key='response_text'>Trade for example.com.ar has been
successfully issued.</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

536

Bulk Changes Commands


This section contains the following commands:
bulk_transfertransfers several domains at once.
submit (bulk_change)changes information associated with a large
set of domains.
submit_bulk_changeenable or disable WHOIS Privacy for multiple
domains.

537

Bulk Changes Commands

bulk_transfer
Description
Action & object
action = bulk_transfer
object = domain

Usage
Submits a request to transfer several domains at once. The list is grouped by
the admin contact email address and only one email message (containing a
list of the domains) is sent to each admin contact.
Note: Bulk transfers only work for .COM and .NET domains.

Request parameters for bulk_transfer (domains)


Standard parameters
action = bulk_transfer
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

affiliate_id

Optional

The associated affiliate ID.

custom_tech_contact

Required

Indicates whether to use registrant's or


Reseller's tech contact.

domain_list

Required

0Use the Reseller's tech contact


data; the tech contact data
provided with the request is
ignored

1Use the registrant's tech


contact data

A list of fully qualified domain names

538

Bulk Changes Commands


Parameter name

Obligation

Definition/Value

handle

Optional

Instructions for handling the order. If


this parameter is not specified, the
default parameter is taken from the RWI
settings.

saveSave the order to be


processed at a later time.

processProcess order
immediately.

reg_domain

Required if
The registrant's domain name
link_domains = 1.
If so, the registered
domain is linked to
the profile indicated
by reg_username
and reg_password.
Otherwise, the
reg_username and
reg_password
fields are used to
create a new profile.

reg_password

Required

The registrant's password.


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

reg_username

Required

The registrant's user name.


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

Response parameters for bulk_transfer (domains)


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

539

Bulk Changes Commands

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

bulk_transfer_id

Required

A system-generated order ID.

successful_domains

Required

List of domains for which transfers were


successfully initiated. Each item in the list is
represented as a hash, which contains a pair
consisting of the domain name and order_id for
the domain transfer.
For more information, see the
Successful_Domains table below.

Successful_Domains
Parameters within the successful_domains associative array are described
below.
Parameter name

Obligation

Definition/Value

domain

Required

The fully qualified domain name for a specific


transfer.

order_id

Required

The order ID for a specific domain transfer.

Examples for bulk_transfer (domains)


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">bulk_transfer</item>
<item key="object">domain</item>

540

Bulk Changes Commands


<item key="attributes">
<dt_assoc>
<item key="domain_list">
<dt_array>
<item key="0">aug26-1.com</item>
<item key="1">aug26-2.com</item>
<item key="2">aug26-3.com</item>
<item key="3">aug26-4.com</item>
<item key="4">aug26-5.com</item>
</dt_array>
</item>
<item key="reg_password">secret</item>
<item key="custom_tech_contact">0</item>
<item key="reg_domain">example.com</item>
<item key="contact_set">
... see "Contact Set"
</item>
<item key="reg_username">jdoe</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>

541

Bulk Changes Commands


<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="response_text">Batch transfer successfully
submitted. Please review our orders in 15 minutes to verify that they
were successfully processed.</item>
<item key="attributes">
<dt_assoc>
<item key="bulk_transfer_id">74488</item>
<item key="successful_domains">
<dt_array>
<item key="0">
<dt_assoc>
<item key="order_id">3507635</item>
<item key="domain">aug26-4.com</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="order_id">3507632</item>
<item key="domain">aug26-1.com</item>
</dt_assoc>
</item>
<item key="2">
<dt_assoc>
<item key="order_id">3507634</item>
<item key="domain">aug26-3.com</item>
</dt_assoc>
</item>
<item key="3">
<dt_assoc>
<item key="order_id">3507636</item>
<item key="domain">aug26-5.com</item>
</dt_assoc>
</item>
<item key="4">
<dt_assoc>

542

Bulk Changes Commands


<item key="order_id">3507633</item>
<item key="domain">aug26-2.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

543

Bulk Changes Commands

submit (bulk_change)
Description
Action & object
action = submit
object = bulk_change

Usage
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.

544

Bulk Changes Commands

Request parameters for submit (bulk_change)


Standard parameters
action = submit
object = bulk_change
attributes

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.

apply_to_locked_
domains

Optional

0Do not apply the change to


all domains; instead, apply to
the domains specified in the
change_items parameter

1Apply to all domains in the


Reseller's account. If this flag is
set to 1, do not specify the
change_items parameter.

Applies the bulk change to locked as


well as unlocked domains.
Note: this parameter cannot be used
for bulk renewals.

change_items

change_type

0Do not apply to locked


domains; this is the default

1Apply to locked domains

Conditional, can only


be used if
apply_to_all_
reseller_items is not
used or equals 0.

List of domains to which to apply the


bulk change. Maximum is 1000
domains

Required

The type of bulk change to perform.

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

availability_checkCheck 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,

545

Bulk Changes Commands


Parameter name

Obligation

Definition/Value
and for Premium Names, it also
specified the price of the
domain name.
Note: when this value is
specified, contact_email is
required.

dns_zoneAdd, remove or
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_recordAdd,
modify, or remove DNS records
(A, CNAME, etc) from zones for
multiple domains.

domain_contactsChange
contact information for multiple
domains

domain_forwardingAdd or
remove the domain forwarding
service for multiple domains.

domain_lockLock or unlock
multiple domains

domain_nameserversAdd,
remove, or assign nameservers

domain_parked_pages
Enable or disable Parked Pages
for multiple domains

domain_renewRenew
multiple domains in one request

push_domainsMove or
'push' domains from one
Reseller account to another.
Note: Before you can push
domains to another Reseller,
you need to add that Reseller to

546

Bulk Changes Commands


Parameter name

Obligation

Definition/Value
your allow list.

storefront_managedMove
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.

contact_email

Optional

whois_privacyEnable or
disable WHOIS Privacy

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:

dns_action

Required

using_dns_nameservers

not_using_dns_nameservers

all_selected_domains

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
iis dns_template.

force_dns_nameservers

Optional

Determines whether to change the

547

Bulk Changes Commands


Parameter name

Obligation

Definition/Value
nameservers on the domain to
ns1.systemdns.com,
ns2.systemdns.com, ns3.systemdns.com

0Do not change the


nameservers

1Change 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.
dns_record_type Allowed values
A

ip_address, subdomain

AAAA

ipv6_address,
subdomain

CNAME

hostname, subdomain

MX

priority, hostname,
subdomain

SRV

priority, weight,
subdomain, hostname,
port

TXT

subdomain, text

For an explanation of each of these record


types and allowed values, see Request
parameters for set_dns_zone.

548

Bulk Changes Commands


Parameter
name

Obligation

Definition/Value

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

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.)

549

Bulk Changes Commands

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 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

Obligation

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.

550

Bulk Changes Commands

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.

let_expire

period

Optional

Optional

0Disable auto-renew

1Enable auto-renew

Changes the status of the let expire flag. If not


specified, the current setting applies.

0Do not expire the domain silently

1Expire the domain silently

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

Obligation

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.

551

Bulk Changes Commands

For change_type = storefront_managed


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

move_to_storefrontMove all of the


specified domains from OpenSRS to Storefront

move_to_opensrsMove 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
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

552

Bulk Changes Commands


bulk_change_req_id

Required

An ID generated by the system.

Examples for submit (bulk_change)


Request
For bulk availability check
<?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>

553

Bulk Changes Commands


For bulk add dns zone
<?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>

For bulk add dns zone record


<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">

554

Bulk Changes Commands


<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>

For bulk reset dns zone


<?xml version='1.0' encoding="UTF-8" standalone="no" ?>

555

Bulk Changes Commands


<!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>

For bulk modify dns zone record


<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>
<header>

556

Bulk Changes Commands


<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>

557

Bulk Changes Commands


For bulk remove dns zone
<?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_action">remove</item>
<item key="change_items">
<dt_array>
<item key="0">dnstestingthing1.com</item>
<item key="1">dnstestingthing2.com</item>
</dt_array>
</item>
<item key="only_if">
<dt_assoc>
<item key="dns_template">my_name</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>

558

Bulk Changes Commands


</OPS_envelope>

For bulk remove dns zone record


<?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>

For bulk domain forwarding


<?xml version='1.0' encoding="UTF-8" standalone="no" ?>
<!DOCTYPE OPS_envelope SYSTEM "ops.dtd">
<OPS_envelope>

559

Bulk Changes Commands


<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>

For bulk domain locking


<?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>

560

Bulk Changes Commands


<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>

561

Bulk Changes Commands


For bulk nameserver change
<?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>

562

Bulk Changes Commands


</data_block>
</body>
</OPS_envelope>

For bulk domain contact change


<?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>

563

Bulk Changes Commands


<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>

For bulk parked pages


<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>
<body>

564

Bulk Changes Commands


<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>

For bulk domain renewal


<?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>

565

Bulk Changes Commands


<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>

For bulk WHOIS Privacy


<?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>

566

Bulk Changes Commands


<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>

For bulk push domain transfers to another Reseller


<?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>

567

Bulk Changes Commands


</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>

For bulk move domains


<?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>

568

Bulk Changes Commands


</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>

569

Bulk Changes Commands

submit_bulk_change (WHOIS Privacy)


Description
Action & object
action = submit_bulk_change
object = bulk_change

Usage
This command allows you to enable or disable WHOIS Privacy for multiple
domains. WHOIS Privacy can be enabled or disabled for .COM, .NET, .ORG,
.INFO, .BIZ, .ME, .MOBI, .NAME, .CC, .CO, and .TV TLDs.

Request parameters for submit_bulk_change


Standard parameters
action = submit_bulk_change
object = bulk_change
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

apply_to_locked_
domains

Optional

Specifies whether to apply WHOIS Privacy


to locked domains.

0Do not apply WHOIS Privacy to


locked domains. This is the
default.

1Apply WHOIS Privacy to locked


domains.

change_items

Required

List of domains for which you want to


purchase WHOIS Privacy.

change_type

Required

Identifies WHOIS Privacy as the type of


service to implement in bulk.
Allowed values are:

whois_privacy

whois_privacy_purchase DEPRECATED. If this value is part of your


current integration, it continues to work;
however, we recommend that you use
whois_privacy instead

570

Bulk Changes Commands


Parameter name

Obligation

Definition/Value

contact_email

Optional

The email address to which your request


results are sent. If blank, you do not
receive a results report or any other
notification regarding the bulk WHOIS
Privacy purchase.

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

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_bulk_change</item>
<item key="object">bulk_change</item>
<item key="attributes">
<dt_assoc>
<item key="apply_to_locked_domains">1</item>

571

Bulk Changes Commands


<item key="contact_email">jdoe@example.com</item>
<item key="change_type">whois_privacy</item>
<item key="op_type">enable</item>
<item key="change_items">
<dt_array>
<item key="0">example1.com</item>
<item key="1">example2.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="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

572

Nameserver Commands
This section contains the following commands:
advanced_update_nameserver adds or removes nameservers for a
domain.
create (nameserver)creates a nameserver in the same domain space
as the cookie's domain.
delete (nameserver)deletes a nameserver.
get (nameserver)queries nameservers that exist in the current user
profile.
modify (nameserver)modifies a nameserver.
registry_add_nsadds a nameserver to one or all registries to which a
Reseller has access.
registry_check_nameserverVerifies whether a nameserver exists at a
particular registry.

573

Nameserver Commands

advanced_update_nameservers
Description
Action & object
action = advanced_update_nameservers
object = domain

Usage
Adds nameservers to a domain, or adds or removes nameservers for a
domain that already has nameservers assigned to it. This command does not
create a nameserver; a nameserver must already be created (see "create
(nameserver").
Note: When you use this command to add or change nameservers for .IT
domains, even though the response says the command was successful, the
new nameservers are not activated immediately. The registry runs a series of
tests against the nameservers before activating them. During the time that
the tests are being run, any query about the domain, such as get
nameservers or get all_info, will return the old nameservers. If the
nameservers do not pass the registry tests within 30 days, the registry
ignores the request. If you issue another advanced_update_nameservers
command before the registry has completed their tests, the new command is
assumed to refer to the old, currently active nameservers.

Request parameters for


advanced_update_nameservers
Standard parameters
action = advanced_update_nameservers
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

add_ns

Optional

List of nameservers to add. This array cannot be


submitted in the same command with the assign_ns
parameter, but can be submitted with remove_ns.

assign_ns

Optional

List of nameservers to assign. This array cannot be


submitted in the same command with the add_ns or
remove_ns parameters.

574

Nameserver Commands
Parameter
name

Obligation

Definition/Value

op_type

Required

The type of operation to perform on the object.


Use assign when submitted with the assign_ns
array.
Use add_remove when submitted with the add_ns
or remove_ns arrays.

remove_ns

Optional

List of nameservers to remove. This array cannot be


submitted in the same command with the assign_ns
parameter, but can be submitted with add_ns.

Response parameters for


advanced_update_nameservers
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

Examples for advanced_update_nameservers


Request
Assign nameserver
<?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">advanced_update_nameservers</item>

575

Nameserver Commands
<item key="object">domain</item>
<item key="cookie">781236777:3352</item>
<item key="attributes">
<dt_assoc>
<item key="assign_ns">
<dt_array>
<item key="0">ns1.example.com</item>
<item key="1">ns2.example.com</item>
<item key="2">ns3.example.com</item>
<item key="3">ns4.example.com</item>
</dt_array>
</item>
<item key="op_type">assign</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Add or remove nameserver


<?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">advanced_update_nameservers</item>
<item key="object">domain</item>
<item key="cookie">781236777:3352</item>
<item key="attributes">
<dt_assoc>

576

Nameserver Commands
<item key="op_type">add_remove</item>
<item key="remove_ns">
<dt_array>
<item key="0">ns1.example.com</item>
<item key="1">ns2.example.com</item>
</dt_array>
</item>
<item key="add_ns">
<dt_array>
<item key="0">ns4.example.com</item>
<item key="1">ns3.example.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">domain</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command completed
successfully</item>

577

Nameserver Commands
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

578

Nameserver Commands

create (nameserver)
Description
Action & object
action = create
object = nameserver

Usage
Creates a nameserver in the same domain space as the cookie's domain.
Note: This action is not the same as modify domain nameserver_list add,
which actually assigns a nameserver created with create nameserver to
serve the cookie's domain.

Request parameters for create (nameserver)


Standard parameters
action = create
object = nameserver
registrant_ip = valid IP address of the registrant (optional)
cookie = cookie created to access the system, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

add_to_all_registry

Adds the newly created nameserver to other


registries so that the nameserver can be used
on other TLDs.

Optional

Specify OpenSRS supported TLDs where the


Registry supports nameservers as a separate
object.
ipaddress

ipv6

Required if
ipv6 is not
submitted

The IPv4 address of the nameserver.


You can specify ipaddress or ipv6, or both.
Note: This parameter is always required for
.DE, even if ipv6 is submitted.

Required if
The IPv6 address of the nameserver.
ipaddress is You can specify ipaddress or ipv6, or both.
not submitted
Note: This parameter is not supported for .CN.

579

Nameserver Commands
Parameter name Obligation

Definition/Value

name

Fully qualified domain name of the


nameserver.

Required

Response parameters for create (nameserver)


Standard parameters
action = reply
object = nameserver
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

Examples for create (nameserver)


Example 1
This example creates an IPv4 nameserver without adding to any foreign
registries.

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">create</item>
<item key="object">nameserver</item>
<item key="cookie">366828736:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="name">ns1.example.com</item>
<item key="ipaddress">212.112.123.11</item>
</dt_assoc>

580

Nameserver Commands
</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">nameserver</item>
<item key="response_text">Nameserver Created</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
This example creates an IPv4 nameserver and adds it to any foreign
registries.
Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>

581

Nameserver Commands
</header>
<body>
<data_block>
<dt_array>
<item key="0">
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">create</item>
<item key="object">nameserver</item>
<item key="attributes">
<dt_assoc>
<item key="add_to_all_registry">
<dt_array>
<item key="0">.info</item>
<item key="1">.name</item>
<item key="2">.org</item>
<item key="3">.biz</item>
<item key="4">.de</item>
<item key="5">.cc</item>
<item key="6">.us</item>
</dt_array>
</item>
<item key="ipaddress">207.136.65.24</item>
<item key="name">ns6.example.com</item>
</dt_assoc>
</item>
<item key="cookie">591236085:3210384</item>
<item key="registrant_ip">111.222.333.444</item>
</dt_assoc>
</item>
</dt_array>
</data_block>
</body>
</OPS_envelope>

582

Nameserver Commands

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_array>
<item key="0">
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">nameserver</item>
<item key="add_to_all_registry">
<dt_assoc>
<item key=".biz">
<dt_assoc>
<item key="is_success">1</item>
<item key="response_code">200</item>
successful</item>

<item key="response_text">Command
</dt_assoc>
</item>
<item key=".cc">
<dt_assoc>
<item key="is_success">1</item>
<item key="response_code">200</item>

successful</item>

<item key="response_text">Command
</dt_assoc>
</item>
<item key=".info">
<dt_assoc>
<item key="is_success">1</item>

583

Nameserver Commands
<item key="response_code">200</item>
<item key="response_text">Command
successful</item>
</dt_assoc>
</item>
<item key=".name">
<dt_assoc>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command
successful</item>
</dt_assoc>
</item>
<item key=".org">
<dt_assoc>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command
successful</item>
</dt_assoc>
</item>
<item key=".us">
<dt_assoc>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command
successful</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Nameserver Created</item>
</dt_assoc>
</item>
</dt_array>

584

Nameserver Commands
</data_block>
</body>
</OPS_envelope>

Example 3
This example submits the create nameserver command without end-user
credentials and creates an IPv4 nameserver without adding it to any foreign
registries.

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="action">create</item>
<item key="object">nameserver</item>
<item key="attributes">
<dt_assoc>
<item key="ipaddress">212.112.123.11</item>
<item key="name">ns5.example.com</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>

585

Nameserver Commands
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">NAMESERVER</item>
<item key="is_success">1</item>
<item key="response_text">Nameserver Created</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 4
This example creates an IPv6 nameserver without adding to any foreign
registries.

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">create</item>
<item key="object">nameserver</item>
<item key="cookie">366828736:3210384</item>
<item key="attributes">
<dt_assoc>

586

Nameserver Commands
<item key="name">ns1.example.com</item>
<item key="ipv6">2a00:1450:4008:c00:0:0:0:1</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">nameserver</item>
<item key="response_text">Nameserver Created</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

587

Nameserver Commands

delete (nameserver)
Description
Action & object
action = delete
object = nameserver

Usage
Deletes a nameserver, provided it is not currently serving a domain.
Note: If the registry in which the nameserver object resides is serving a
domain outside of the system, delete nameserver returns an error and the
nameserver is not deleted.

Request parameters for delete (nameserver)


Standard parameters
action = delete
object = nameserver
registrant_ip = valid IP address of the registrant (optional)
attributes

Attributes
Parameters within the attributes associative array are described below.

Parameter
name

Obligation

Definition/Value

ipaddress

Required if
ipv6 is not
submitted

The IPv4 address of the nameserver.


You can specify ipaddress or ipv6, or both.
Note: This parameter is always required for .DE,
even if ipv6 is submitted.

ipv6

Required if
The IPv6 address of the nameserver.
ipaddress is You can specify ipaddress or ipv6, or both.
not submitted
Note: This parameter is not supported for .CN.

name

Required

Fully qualified race-encoded domain name of the


nameserver.

588

Nameserver Commands

Response parameters for delete (nameserver)


Standard parameters
action = reply
object = nameserver
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

Examples for delete (nameserver)


Example 1
This example deletes an IPv4 nameserver.

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">delete</item>
<item key="object">nameserver</item>
<item key="registrant_ip">216.40.46.115</item>
<item key="cookie">435686610:3185178</item>
<item key="attributes">
<dt_assoc>
<item key="ipaddress">24.22.112.11</item>
<item key="name">ns1.example.com</item>
</dt_assoc>
</item>

589

Nameserver Commands
</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">nameserver</item>
<item key="response_text">Nameserver deleted</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Example 2
This example deletes an IPv6 nameserver.

Request
<?xml version='1.0' encoding='UTF-8' standalone='no' ?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>

590

Nameserver Commands
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">delete</item>
<item key="object">nameserver</item>
<item key="registrant_ip">216.40.46.115</item>
<item key="cookie">435686610:3185178</item>
<item key="attributes">
<dt_assoc>
<item key="ipv6">2a00:1450:4008:c00:0:0:0:1</item>
<item key="name">ns3.example.com</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">nameserver</item>
<item key="response_text">Nameserver deleted</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>

591

Nameserver Commands
</data_block>
</body>
</OPS_envelope>

592

Nameserver Commands

get (nameserver)
Description
Action & object
action = get
object = nameserver

Usage
Queries nameservers that exist in the current user profile (current cookie).
These nameservers may or may not be currently assigned to a domain.
To see a list of nameservers serving the cookie's domain, use the action get
domain nameservers.

Request parameters for get (nameserver)


Standard parameters
action = get
object = nameserver
registrant_ip = valid IP address of the registrant
cookie = cookie created to access the system, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

name

Required

Specify all.

Response parameters for get (nameserver)


Standard parameters
action = reply
object = nameserver
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

593

Nameserver Commands

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

nameserver_list

Required

A list (array) of nameservers, each of which can


contain any of the attributes listed in the
Nameserver_List table below .

Nameserver_List
Parameters within the nameserver_list associative array are described
below.
Parameter
name

Obligation

Definition/Value

can_delete

Required

A flag indicating whether the nameserver is currently


serving a domain in OpenSRS. To delete a nameserver
with can_delete set to zero, it must first be unassigned from the domain it serves.
Note: If the registry in which the nameserver object
resides is serving a domain outside of OpenSRS, a
delete_nameserver action returns an error, and the
nameserver is not deleted.

0Nameserver can be deleted.

1Nameserver cannot be deleted.

ipaddress

Required if the The IPv4 address of the nameserver.


nameserver
Note: This parameter is always required for .DE, even
has an Ipv4
if ipv6 is submitted.
address

ipv6

Required if the The IPv6 address of the nameserver.


nameserver
Note: This parameter is not supported for .CN.
has an Ipv6
address

name

Required

The fully qualified domain name of the nameserver.

Deprecated
Parameter
name

Obligation

Definition/Value

encoding_type

Deprecated

The encoding type of the nameserver.

594

Nameserver Commands

Examples for get (nameserver)


Example 1
This example returns information about an IPv4 nameserver.

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">get</item>
<item key="object">nameserver</item>
<item key="cookie">121321321:12341242424</item>
<item key="registrant_ip">111.121.121.121</item>
<item key="attributes">
<dt_assoc>
<item key="name">all</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>

595

Nameserver Commands
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">nameserver</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="name">ns1.example.com</item>
<item key="can_delete">1</item>
<item
key="ipaddress">191.11.121.111</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="name">ns2.example.com</item>
<item key="can_delete">0</item>
<item
key="ipaddress">11.111.121.111</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>

596

Nameserver Commands
</body>
</OPS_envelope>

Example 2
This example returns information about an IPv6 nameserver.

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">get</item>
<item key="object">nameserver</item>
<item key="cookie">121321321:12341242424</item>
<item key="registrant_ip">111.121.121.121</item>
<item key="attributes">
<dt_assoc>
<item key="name">all</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>

597

Nameserver Commands
<version>0.9</version>
</header>
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">nameserver</item>
<item key="response_code">200</item>
<item key="response_text">Query Successful</item>
<item key="is_success">1</item>
<item key="attributes">
<dt_assoc>
<item key="nameserver_list">
<dt_array>
<item key="0">
<dt_assoc>
<item key="name">ns3.example.com</item>
<item key="can_delete">1</item>
<item
key="ipaddress">2a00:1450:4008:c00:0:0:0:1</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="name">ns4.example.com</item>
<item key="can_delete">0</item>
<item
key="ipaddress">2001:0db8:85a3:0000:0000:8a2e:0370:7334</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>

598

Nameserver Commands
</data_block>
</body>
</OPS_envelope>

599

Nameserver Commands

modify (nameserver)
Description
Action & object
action = modify
object = nameserver

Usage
Modifies a nameserver. This command is not supported for .TEL domains.
Important: This command will overwrite the existing nameserver entries. If
a nameserver has two IPs, one for IPv4 and one for IPv6, and you specify
only one of these in the request, the other one will be removed from the
registry.

Request parameters for modify (nameserver)


Standard parameters
action = modify
object = nameserver
registrant_ip = valid IP address of the registrant (optional)
cookie = cookie created to access the system, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

ipaddress

Required if ipv6 is
not submitted

The IPv4 address of the nameserver.


You can specify ipaddress or ipv6, or both.
Note: This parameter is always required for
.DE, even if ipv6 is submitted.

ipv6

name

Required if
ipaddress is not
submitted

The IPv6 address of the nameserver.

Required

Fully qualified domain name of the


nameserver. The name key must always be
present, and must be race-encoded.

You can specify ipaddress or ipv6, or both.


Note: This parameter is not supported for .CN.

600

Nameserver Commands
Parameter
name

Obligation

Definition/Value

new_name

Optional. This field is The new, fully qualified domain name for the
only required if you nameserver
are changing the
name.

Deprecated
Parameter name

Obligation

Definition/Value

new_encoding_type

Deprecated

The new encoding type of the nameserver.

Response parameters for modify (nameserver)


Standard parameters
action = reply
object = nameserver
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

Examples for modify (nameserver)


Example 1
This example changes the name of an IPv4 nameserver.

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>

601

Nameserver Commands
<item key="action">modify</item>
<item key="object">nameserver</item>
<item key="cookie">892036263:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="name">ns1.example.com</item>
<item key="new_name">ns.boo.example.com</item>
<item key="ipaddress">212.112.123.11</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">nameserver</item>
<item key="response_text">Command successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

602

Nameserver Commands

Example 2
This example changes the name of an IPv6 nameserver.

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">modify</item>
<item key="object">nameserver</item>
<item key="cookie">892036263:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="name">ns1.example.com</item>
<item key="new_name">ns.test.example.com</item>
<item key="ipv6">2a00:1450:4008:c00:0:0:0:1</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>

603

Nameserver Commands
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reply</item>
<item key="object">nameserver</item>
<item key="response_text">Command successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

604

Nameserver Commands

registry_add_ns
Description
Action & object
action = registry_add_ns
object = nameserver

Usage
Adds a nameserver to one or all registries to which a Reseller has access.
This command does not create a nameserver; a nameserver must already be
created (see "create (nameserver)").

Request parameters for registry_add_ns


Standard parameters
action = registry_add_ns
object = nameserver
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

all

Required

Specifies to add to all registries or to only COM and


NET:

0Add to the registry specified in the tld


parameter

1Add to all registries enabled for your


account

fqdn

Required

The nameserver to be added, which must be a fully


qualified domain name.

tld

Required

The registry to which you want to add the


nameservers.
Allowed values: any available tld, for example, .com.
Note: If the all value = 1, the tld value is ignored;
however, it must be present and the value must be a
valid tld; otherwise, the command will fail.

605

Nameserver Commands

Response parameters for registry_add_ns


Standard parameters
action = reply
object = nameserver
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

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

registry_name

Included in
response

Registry Names:

NSI

DENIC

NeuLevel

TV

NSI .cc

CIRA

ISOC/PIR

UK

VC

dotName

NeuStar

Afilias

Note: Only the registries to which the Reseller is


subscribed are returned.

The following success/failure messages may be returned:

'Successfully added.'
'Couldn't add nameserver: Registry doesn't support nameserver as a
separate object.'
'Couldn't add nameserver: Our system is experiencing technical
difficulties; please try again later. If problem persists, please contact

606

Nameserver Commands
support and state error message: REM server: -702, no RAs to service
the domain 'example.cc'.

Examples for registry_add_ns


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">registry_add_ns</item>
<item key="object">nameserver</item>
<item key="attributes">
<dt_assoc>
<item key="fqdn">n99.example.aero</item>
<item key="tld">.com</item>
<item key="all">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
For "all" = "1"
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>

607

Nameserver Commands
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>reply</item>
<item key='object'>nameserver</item>
<item key='attributes'>
<dt_assoc>
<item key='DENIC'>Successfully added</item>
<item key='VC'>Couldn't add nameserver: Unexpected response
from registry: 705: No RAs to service your domain.
</item>
<item key='TV'>Couldn't add nameserver: Registry doesn't
support nameserver
as a separate object.
</item>
<item key='Neulevel'>Successfully added</item>
<item key='CIRA'>Couldn't add nameserver: Registry doesn't
support nameserver
as a separate object.
</item>
<item key='ISOC/PIR'>Successfully added</item>
<item key='GNR'>Successfully added</item>
<item key='UK'>Couldn't add nameserver: Registry doesn't
support nameserver
as a separate object.
</item>
<item key='NSI_CC'>Successfully added</item>
<item key='Neustar'>Successfully added</item>
<item key='Afilias'>Successfully added</item>
</dt_assoc>
</item>
<item key='response_text'>Command verified</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>

608

Nameserver Commands
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

For "all" = "0"


<?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'>nameserver</item>
<item key='response_text'>Command verified</item>
<item key='is_success'>1</item>
<item key='response_code'>200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

609

Nameserver Commands

registry_check_nameserver
Description
Action & object
action = registry_check_nameserver
object = nameserver

Usage
Verifies whether a nameserver exists at a particular registry.
Note: This command is not required for registries that do not have a
nameserver object, that is, .CA, .UK, .DE, .FR, and CH.

Request parameters for


registry_check_nameserver
Standard parameters
action = registry_check_nameserver
object = nameserver
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

fqdn

Required

The Fully Qualified Domain Name of the nameserver


that you want to check.

tld

Required

The Top Level Domain of the nameserver that you


want to check. If no tld is supplied, the tld is extracted
from the nameserver.

610

Nameserver Commands

Response parameters for


registry_check_nameserver
Standard parameters
action = reply
object = nameserver
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
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

status

Included in
response

Indicates whether the nameserver exists at


the registry.

Examples for registry_check_nameserver


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">REGISTRY_CHECK_NAMESERVER</item>
<item key="object">NAMESERVER</item>
<item key="attributes">
<dt_assoc>
<item key="tld">.com</item>

611

Nameserver Commands
<item key="fqdn">ns1.livedns.co.uk</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
Nameserver found
<?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_array>
<item key="0">
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">NAMESERVER</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command successful</item>
</dt_assoc>
</item>
</dt_array>
</data_block>
</body>
</OPS_envelope>

612

Nameserver Commands
Nameserver not found
<?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">NAMESERVER</item>
<item key="response_text">Command successful</item>
<item key="action">REPLY</item>
<item key="attributes">
<dt_assoc>
<item key="status">
<dt_assoc>
<item key="protocol">RAP</item>
<item key="_response_text">Authorization error</item>
<item key="_response_code">531</item>
<item key="attributes">
<dt_assoc>
<item key="trans_id">
<dt_assoc>
<item key="client_trid">216.40.33.601240404268810</item>
<item key="server_trid">4370771281240404268830</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
<item key="registry_response_code">2201</item>
<item key="is_success">0</item>
</dt_assoc>

613

Nameserver Commands
</item>
</dt_assoc>
</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Nameserver not found (registered nameserver not required by


registry)
<?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_array>
<item key="0">
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">NAMESERVER</item>
<item key="is_success">0</item>
<item key="response_code">400</item>
<item key="response_text">Registry doesn't support
nameserver as a separate entity.</item>
</dt_assoc>
</item>
</dt_array>
</data_block>
</body>
</OPS_envelope>

614

DNS Zone Commands


This section contains the following commands:
create_dns_zoneenables the DNS service for a domain.
delete_dns_zonedeletes the DNS zones defined for the specified
domain.
force_dns_nameserverschanges the nameservers on your domain to
use the DNS nameservers.
get_dns_zoneallows you to view the DNS records for a specified
domain.
reset_dns_zonesets the DNS zone to the values in the specified
template.
set_dns_zonesets the records for a domain's DNS zone.

615

DNS Zone Commands

create_dns_zone
Description
Action & object
action = create_dns_zone
object = domain

Usage
Enables the DNS service for a domain. If you have created a DNS template,
you can specify the template in the command to assign initial DNS records.
The template is then associated with the domain, so if you later issue the
reset_dns_zone command, the records are set back to what is defined in the
template.
If you specify *blank* instead of a DNS template when you issue this
command, you can submit the values for the DNS records in this command
or you can use the set_dns_zone command to define the DNS records.
For information on creating a DNS zone template, see Managing DNS Zone
Information in the Resellers Guide to Domain Name Registration and
Management.

Request parameters for create_dns_zone


Standard parameters
action = create_dns_zone
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain for which you want to define DNS records.

dns_template

Optional

Specify the name of the DNS template that you want


to use to enable DNS and assign initial DNS records.
If you do not submit this parameter, DNS is enabled
but no records are defined. In this case, you can
submit the settings for the domain's DNS zone records
(A, AAAA, CNAME, SRV, and TXT).

616

DNS Zone Commands


Parameter
name

Obligation

Definition/Value

records

Required

A 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

Records
Parameters within the records associative array are described below.
Parameter
name

Obligation

Definition/Value

Optional

Maps the domain name to the IP address.


The A record consists of the following:
ip_addressInternet Protocol Address. A
numeric address that computers recognize, for
example, 123.45.54.123.
subdomainThe third level of the domain
name, such as www or ftp.

AAAA

Optional

Maps the domain name to the IPv6 address.


The AAAA record consists of the following:
ipv6_addressThe 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
subdomainThe third level of the domain
name, such as www or ftp.

CNAME

Optional

Canonical 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:
hostnameThe FQDN of the domain that you
want to access.
subdomainThe third level of the domain
name, such as www or ftp.

617

DNS Zone Commands


Parameter
name

Obligation

Definition/Value

MX

Optional

Mail 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:
priorityThe priority of the target host, lower
value means more preferred.
subdomainThe third level of the domain
name, such as www or ftp.
hostnameThe FQDN of the domain that you
want to access.

SRV

Optional

Service Record.
The SRV record consists of the following:
priorityThe priority of the target host, lower
value means more preferred.
weightA relative weight for records with the
same priority.
subdomainThe third level of the domain
name, such as www or ftp.
hostnameThe FQDN of the domain that you
want to access.
portThe TCP or UDP port on which the service
is to be found.

Response parameters for create_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

618

DNS Zone Commands

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

nameservers_ok

Required

Indicates whether the domain is set up to use the


OpenSRS nameservers.
0nameservers are not set to the DNS
service nameservers
1nameservers are set to the DNS service
nameservers

records

Required

A 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
name

Obligation

Definition/Value

Optional

Maps the domain name to the IP address.


The A record consists of the following:
ip_addressInternet Protocol Address. A
numeric address that computers recognize, for
example, 123.45.54.123.
subdomainThe third level of the domain
name, such as www or ftp.

619

DNS Zone Commands


Parameter
name

Obligation

Definition/Value

AAAA

Optional

Maps the domain name to the IPv6 address.


The AAAA record consists of the following:
subdomainThe third level of the domain
name, such as www or ftp.
ipv6_addressThe 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

CNAME

Optional

Canonical 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:
hostnameThe FQDN of the domain that you
want to access.
subdomainThe third level of the domain
name, such as www or ftp.

MX

Optional

Mail 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:
priorityThe priority of the target host, lower
value means more preferred.
subdomainThe third level of the domain
name, such as www or ftp.
hostnameThe FQDN of the domain that you
want to access.

SRV

Optional

Service Record.
The SRV record consists of the following:
priorityThe priority of the target host, lower
value means more preferred.
weightA relative weight for records with the
same priority.
subdomainThe third level of the domain
name, such as www or ftp.
hostnameThe FQDN of the domain that you
want to access.
portThe TCP or UDP port on which the
service is to be found.

620

DNS Zone Commands


Parameter
name

Obligation

Definition/Value

TXT

Optional

Text Record. Allows you to attach comments to a


hostname, for example, SPF data to validate that
email is being sent from the IP address of the
domain's mail server.
The TXT record consists of the following:
subdomainThe third level of the domain
name, such as www or ftp.

textThe comments that you want to include.

Examples for create_dns_zone


Request
If template is specified
<?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">create_dns_zone</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">aug18dnstest1.com</item>
<item key="dns_template">business_domains</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

621

DNS Zone Commands


If template is not specified
<?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">create_dns_zone</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">aug18dnstest3.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
If template is specified
<?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>

622

DNS Zone Commands


<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_text">Command Successful</item>
<item key="response_code">200</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">17.16.156.5</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">www</item>
<item key="hostname">example.org</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="priority">1</item>
<item key="subdomain"></item>
<item
key="hostname">mx.cust.aug18dnstest1.com.hostedemail.com</item>
</dt_assoc>
</item>

623

DNS Zone Commands


</dt_array>
</item>
<item key="SRV">
<dt_array>
<item key="0">
<dt_assoc>
<item key="priority">1</item>
<item key="weight">3</item>
<item key="subdomain">w3</item>
<item key="hostname">yummynames.com</item>
<item key="port">81</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
<item key="nameservers_ok">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If template is not specified


<?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>

624

DNS Zone Commands


<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_text">Command Successful</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="records">
<dt_assoc>
</dt_assoc>
</item>
<item key="nameservers_ok">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

625

DNS Zone Commands

delete_dns_zone
Description
Action & object
action = delete_dns_zone
object = domain

Usage
Deletes the DNS zones defined for the specified domain.

Request parameters for delete_dns_zone


Standard parameters
action = delete_dns_zone
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

domain

The domain whose DNS you want to delete.

Required

Response parameters for delete_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

626

DNS Zone Commands

Examples for delete_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">delete_dns_zone</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">aug18dnstest1.com</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>

627

DNS Zone Commands


<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>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

628

DNS Zone Commands

force_dns_nameservers
Description
Action & object
action = force_dns_nameservers
object = domain

Usage
Changes the nameservers on your domain to use the DNS namservers:
ns1.systemdns.com, ns2.systemdns.com, and ns2.systemdns.com.

Request parameters for force_dns_nameservers


Standard parameters
action = force_dns_nameservers
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The domain whose nameservers you want to change


to the DNS namservers ns1.systemdns.com,
ns2.systemdns.com, and ns2.systemdns.com.

Response parameters for force_dns_nameservers


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

629

DNS Zone Commands

Examples for force_dns_nameservers


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="object">DOMAIN</item>
<item key="action">FORCE_DNS_NAMESERVERS</item>
<item key="attributes">
<dt_assoc>
<item key="domain">mydomain.com</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>

630

DNS Zone Commands


<item key="object">DOMAIN</item>
<item key="response_text">Command Successful</item>
<item key="action">REPLY</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

631

DNS Zone Commands

get_dns_zone
Description
Action & object
action = get_dns_zone
object = domain

Usage
View the DNS records for a specified domain.

Request parameters for get_dns_zone


Standard parameters
action = get_dns_zone
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name Obligation

Definition/Value

domain

The domain whose DNS you want to view.

Required

Response parameters for get_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

632

DNS Zone Commands

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

nameservers_ok

Required

Indicates whether the domain is set up to use the


OpenSRS nameservers.
0Nameservers are not set to the DNS
service nameservers
1Nameservers are set to the DNS service
nameservers

records

Required

A 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
name

Obligation

Definition/Value

Optional

Maps the domain name to the IP address.


The A record consists of the following:
ip_addressInternet Protocol Address. A
numeric address that computers recognize, for
example, 123.45.54.123.
subdomainThe third level of the domain
name, such as www or ftp.

AAAA

Optional

Maps the domain name to the IPv6 address.


The AAAA record consists of the following:
subdomainThe third level of the domain
name, such as www or ftp.
ipv6_addressThe next generation Internet
Protocol designed as the successor to version 4. It

633

DNS Zone Commands


Parameter
name

Obligation

Definition/Value
is normally written as eight groups of four
hexadecimal digits (i.e. 2003:0db8:
85a3:0000:0000:8a2e:
0370:7334

CNAME

Optional

Canonical 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:
hostnameThe FQDN of the domain that you
want to access.
subdomainThe third level of the domain
name, such as www or ftp.

MX

Optional

Mail 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:
priorityThe priority of the target host, lower
value means more preferred.
subdomainThe third level of the domain
name, such as www or ftp.
hostnameThe FQDN of the domain that you
want to access.

SRV

Optional

Service Record.
The SRV record consists of the following:
priorityThe priority of the target host, lower
value means more preferred.
weightA relative weight for records with the
same priority.
subdomainThe third level of the domain
name, such as www or ftp.
hostnameThe FQDN of the domain that you
want to access.
portThe TCP or UDP port on which the
service is to be found.

TXT

Optional

Text Record. Allows you to attach comments to a


hostname, for example, SPF data to validate that
email is being sent from the IP address of the
domain's mail server.
The TXT record consists of the following:
subdomainThe third level of the domain
name, such as www or ftp.

textThe comments that you want to include.

634

DNS Zone Commands

Examples for get_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">get_dns_zone</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">aug17dnstest1.com</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>

635

DNS Zone Commands


<item key="action">REPLY</item>
<item key="object">DOMAIN</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command Successful</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">17.16.156.5</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">www</item>
<item key="hostname">example.org</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="priority">1</item>
<item key="subdomain"></item>
<item
key="hostname">mx.cust.aug17dnstest1.com.hostedemail.com</item>
</dt_assoc>
</item>

636

DNS Zone Commands


</dt_array>
</item>
<item key="SRV">
<dt_array>
<item key="0">
<dt_assoc>
<item key="priority">1</item>
<item key="weight">3</item>
<item key="subdomain">w3</item>
<item key="hostname">yummynames.com</item>
<item key="port">81</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
<item key="nameservers_ok">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

637

DNS Zone Commands

reset_dns_zone
Description
Action & object
action = reset_dns_zone
object = domain

Usage
Sets the DNS zone to the values in the specified template. If a template is
not specified in the command, the records are set to what was in the
template that was used to enable the DNS service.

Request parameters for reset_dns_zone


Standard parameters
action = reset_dns_zone
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

dns_template

Optional

The name of the DNS template that you want to


use

domain

Required

The domain whose DNS you want to reset.

Response parameters for reset_dns_zone


Standard parameters
action = reply
object =
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

638

DNS Zone Commands

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

nameservers_ok

Required

Indicates whether the domain is set up to use the


OpenSRS nameservers.
0Nameservers are not set to the DNS
service nameservers
1Nameservers are set to the DNS service
nameservers

records

Required

A 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

Records
Parameters within the records associative array are described below.
Parameter
name

Obligation Definition/Value

Optional

Maps the domain name to the IP address.


The A record consists of the following:
ip_addressInternet Protocol Address. A
numeric address that computers recognize, for
example, 123.45.54.123.
subdomainThe third level of the domain
name, such as www or ftp.

AAAA

Optional

Maps the domain name to the IPv6 address.


The AAAA record consists of the following:
subdomainThe third level of the domain
name, such as www or ftp.
ipv6_addressThe 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

639

DNS Zone Commands


Parameter
name

Obligation Definition/Value

CNAME

Optional

Canonical 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:
hostnameThe FQDN of the domain that you
want to access.
subdomainThe third level of the domain
name, such as www or ftp.

MX

Optional

Mail 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:
priorityThe priority of the target host, lower
value means more preferred.
subdomainThe third level of the domain
name, such as www or ftp.
hostnameThe FQDN of the domain that you
want to access.

SRV

Optional

Service Record.
The SRV record consists of the following:
priorityThe priority of the target host, lower
value means more preferred.
weightA relative weight for records with the
same priority.
subdomainThe third level of the domain
name, such as www or ftp.
hostnameThe FQDN of the domain that you
want to access.
portThe TCP or UDP port on which the service
is to be found.

TXT

Optional

Text Record. Allows you to attach comments to a


hostname, for example, SPF data to validate that email
is being sent from the IP address of the domain's mail
server.
The TXT record consists of the following:
subdomainThe third level of the domain
name, such as www or ftp.

textthe comments that you want to include.

640

DNS Zone Commands

Examples for reset_dns_zone


Request
If template is specified
<?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">reset_dns_zone</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">aug17dnstest1.com</item>
<item key="dns_template">business_domains</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If template is not specified


<?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>

641

DNS Zone Commands


<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">reset_dns_zone</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">aug17dnstest1.com</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

Response
If template is specified
<?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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command Successful</item>
<item key="attributes">
<dt_assoc>
<item key="records">
<dt_assoc>

642

DNS Zone Commands


<item key="A">
<dt_array>
<item key="0">
<dt_assoc>
<item key="subdomain"></item>
<item key="ip_address">17.16.156.5</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">www</item>
<item key="hostname">example.com</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="priority">1</item>
<item key="subdomain"></item>
<item
key="hostname">mx.cust.aug18dnstest1.com.hostedemail.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="SRV">
<dt_array>
<item key="0">
<dt_assoc>
<item key="priority">1</item>
<item key="weight">3</item>
<item key="subdomain">w3</item>

643

DNS Zone Commands


<item key="hostname">yummynames.com</item>
<item key="port">81</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
<item key="nameservers_ok">0</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

If template is not specified


<?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="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command Successful</item>
<item key="attributes">
<dt_assoc>
<item key="nameservers_ok">0</item>
<item key="records">

644

DNS Zone Commands


<dt_assoc>
<item key="A">
<dt_array>
<item key="0">
<dt_assoc>
<item key="subdomain"></item>
<item key="ip_address">17.16.156.5</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">www</item>
<item key="hostname">example.org</item>
</dt_assoc>
</item>
<item key="1">
<dt_assoc>
<item key="priority">1</item>
<item key="subdomain"></item>
<item
key="hostname">mx.cust.aug18dnstest1.com.hostedemail.com</item>
</dt_assoc>
</item>
</dt_array>
</item>
<item key="SRV">
<dt_array>
<item key="0">
<dt_assoc>
<item key="priority">1</item>
<item key="weight">3</item>
<item key="subdomain">w3</item>

645

DNS Zone Commands


<item key="hostname">yummynames.com</item>
<item key="port">81</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

646

DNS Zone Commands

set_dns_zone
Description
Action & object
action = set_dns_zone
object = domain

Usage
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
name

Obligation

Definition/Value

domain

Required

The domain whose DNS you want to set.

records

Required

A 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.

647

DNS Zone Commands

Records
Parameters within the records associative array are described below.
Parameter
name

Obligation

Definition/Value

Optional

Maps the domain name to the IP address.


The A record consists of the following:
ip_addressInternet Protocol Address. A
numeric address that computers recognize, for
example, 123.45.54.123.
subdomainThe third level of the domain
name, such as www or ftp.

AAAA

Optional

Maps the domain name to the IPv6 address.


The AAAA record consists of the following:
ipv6_addressThe 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
subdomainThe third level of the domain
name, such as www or ftp.

CNAME

Optional

Canonical 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:
hostnameThe FQDN of the domain that
you want to access.
subdomainThe third level of the domain
name, such as www or ftp.

MX

Optional

Mail 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:
priorityThe priority of the target host,
lower value means more preferred.
subdomainThe third level of the domain
name, such as www or ftp.
hostnameThe FQDN of the domain that
you want to access.

648

DNS Zone Commands


Parameter
name

Obligation

Definition/Value

nameservers_ok

Required

Indicates whether the domain is set up to use the


OpenSRS nameservers.
0Domain is not set up to use the
OpenSRS nameservers
1Domain is set up to use the OpenSRS
nameservers

records

Required

A list of the record types defined for the domain;


each record includes the settings for that record.
Record types may be

SRV

Optional

A
AAAA
CNAME
MX
SRV
TXT

Service Record.
The SRV record consists of the following:
priorityThe priority of the target host,
lower value means more preferred.
weightA relative weight for records with
the same priority.
subdomainThe third level of the domain
name, such as www or ftp.
hostnameThe FQDN of the domain that
you want to access.
portThe TCP or UDP port on which the
service is to be found.

TXT

Optional

Text 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:
subdomainThe third level of the domain
name, such as www or ftp.
textThe comments that you want to
include.

649

DNS Zone Commands

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
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

nameservers_ok

Required

Indicates whether the domain is set up to use the


OpenSRS nameservers.
0Domain is not set up to use the
OpenSRS nameservers
1Domain is set up to use the OpenSRS
nameservers

records

Required

A 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.

650

DNS Zone Commands

Records
Parameters within the records associative array are described below.
Parameter
name

Obligation

Definition/Value

Optional

Maps the domain name to the IP address.


The A record consists of the following:
ip_addressInternet Protocol Address. A
numeric address that computers recognize, for
example, 123.45.54.123.
subdomainThe third level of the domain
name, such as www or ftp.

AAAA

Optional

Maps the domain name to the IPv6 address.


The AAAA record consists of the following:
subdomainThe third level of the domain
name, such as www or ftp.
ipv6_addressThe 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

CNAME

Optional

Canonical 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:
hostnameThe FQDN of the domain that you
want to access.
subdomainThe third level of the domain
name, such as www or ftp.

MX

Optional

Mail 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:
priorityThe priority of the target host, lower
value means more preferred.
subdomainThe third level of the domain
name, such as www or ftp.
hostnameThe FQDN of the domain that you
want to access.

651

DNS Zone Commands


Parameter
name

Obligation

Definition/Value

SRV

Optional

Service Record.
The SRV record consists of the following:
priorityThe priority of the target host, lower
value means more preferred.
weightA relative weight for records with the
same priority.
subdomainThe third level of the domain
name, such as www or ftp.
hostnameThe FQDN of the domain that you
want to access.
portThe TCP or UDP port on which the
service is to be found.

TXT

Optional

Text 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:
subdomainThe third level of the domain
name, such as www or ftp.

textThe 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>

652

DNS Zone Commands


<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>

653

DNS Zone Commands


</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>

654

DNS Zone Commands


<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>

655

DNS Zone Commands


<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>

656

DNS Zone Commands


<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>

657

DNS Zone Commands


</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>

658

Domain Forwarding Commands


This section contains the following commands:
create_domain_forwardingallows you to redirect visitors to another
website.
delete_domain_forwardingdeletes domain forwarding service.
get_domain_forwardingqueries the domain forwarding settings for a
specified domain.
set_domain_forwardingconfigures the domain forwarding settings for
a domain.

659

Domain Forwarding Commands

create_domain_forwarding
Description
Action & object
action = create_domain_forwarding
object = domain

Usage
Create domain forwarding service that is used to redirect visitors from one
web address to another. Once you create domain forwarding, you need to
use the set_domain_forwarding command to configure the settings.

Request parameters for


create_domain_forwarding
Standard parameters
action = create_domain_forwarding
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Optional

The domain for which you want to enable domain


forwarding.

Response parameters for


create_domain_forwarding
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

660

Domain Forwarding Commands

Examples for create_domain_forwarding


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">create_domain_forwarding</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</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>

661

Domain Forwarding Commands


<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>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

662

Domain Forwarding Commands

delete_domain_forwarding
Description
Action & object
action = delete_domain_forwarding
object = domain

Usage
Delete the domain forwarding service for the specified domain.

Request parameters for


delete_domain_forwarding
Standard parameters
action = delete_domain_forwarding
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Optional

The domain for which you want to delete domain


forwarding.

Response parameters for


delete_domain_forwarding
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

663

Domain Forwarding Commands

Examples for delete_domain_forwarding


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">delete_domain_forwarding</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</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>

664

Domain Forwarding Commands


<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>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

665

Domain Forwarding Commands

get_domain_forwarding
Description
Action & object
action = get_domain_forwarding
object = domain

Usage
Queries the domain forwarding settings for a specified domain.

Request parameters for get_domain_forwarding


Standard parameters
action = get_domain_forwarding
object = domain
cookie = cookie created to access the system, see "set (cookie)"
attributes

Response parameters for get_domain_forwarding


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
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

forwarding

Required

A list of the subdomains that are forwarded; can


be empty.
For more information, see the Forwarding table
below.

666

Domain Forwarding Commands

Forwarding
Parameters within the forwarding associative array are described below.
Parameter
name

Obligation

Definition/Value

description

Optional

The description of the website; used by search


engines.

destination_url

Optional

The full address of the destination website, for


example, http://www.mycompany.com/
mybestpage.html, or the IP address, for example,
http://12.34.56.123

enabled

Optional

Indicates whether domain forwarding is in effect.

0Domain forwarding is off

1Domain forwarding is on

keywords

Optional

Descriptive words that a visitor might use when


searching for the website; used by search engines.

masked

Optional

Indicates whether the destination website address


appears in the browser address field.

subdomain

Required

0The actual destination address displays.

1The destination address is masked and


the original domain address is displayed
instead.

The third level of the domain name, such as www


or ftp.
Note: Although this parameter is required, its value
can be null.

title

Optional

The text that appears in the browser title bar.

Examples for get_domain_forwarding


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>

667

Domain Forwarding Commands


<item key="protocol">XCP</item>
<item key="forwarding"/>
<item key="action">get_domain_forwarding</item>
<item key="object">domain</item>
<item key="cookie">ieyxnznkPpimSczo:646014</item>
<item key="attributes">
<dt_assoc>
<item key="domain">example.com</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='forwarding'>
<dt_array>
<item key='0'>

668

Domain Forwarding Commands


<dt_assoc>
<item key='keywords'/>
<item key='masked'>0</item>
<item key='subdomain'>mail</item>
<item
key='destination_url'>http://mail.example.org/webmail</item>
<item key='title'>Main Web Mail Access 1</item>
<item key='description'>Default Web Mail
Access</item>
<item key='enabled'>1</item>
</dt_assoc>
</item>
<item key='1'>
<dt_assoc>
<item key='keywords'/>
<item key='masked'>1</item>
<item key='subdomain'>www</item>
<item
key='destination_url'>http://www.example.org</item>
<item key='title'>Main Web Access 1</item>
<item key='description'>Default Site Access

Forward</item>

<item key='enabled'>1</item>
</dt_assoc>
</item>
</dt_array>
</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

669

Domain Forwarding Commands

set_domain_forwarding
Description
Action & object
action = set_domain_forwarding
object = domain

Usage
Configures the domain forwarding settings for a domain.
Note: Domain forwarding must already have been created for the domain.
See create_domain_forwarding.

The way in which the domain forwarding behaves depends on the format of
the domain name to which it applies:

domain.comApplies to all requests for this domain, unless overridden


by a second domain forwarding record. For example, if a site visitor
looks for whatever.domain.com, domain forwarding is applied (unless
a specific record has been set up for whatever.domain.com, or
*.domain.com). In other words, if no other forwarding is set up,
domain.com acts as a catch-all.
*.domain.comApplies domain forwarding to all subdomains. It will
not handle domain.com, but it will handle anything.domain.com.
whatever.domain.comDomain forwarding is applied to this
subdomain only.

Request parameters for set_domain_forwarding


Standard parameters
action = update_domain_forwarding
object = domain
cookie = cookie created to access the system, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

forwarding

Optional

A list of the subdomains that you want forwarded


and their associated attributes.
For more information, see the Forwarding table
below.

670

Domain Forwarding Commands

Forwarding
Parameters within the forwarding associative array are described below.
Parameter
name

Obligation

Definition/Value

description

Optional

A short description of your website. The maximum


number of characters allowed is 255.
Note: This parameter only takes effect if masked =
1.

destination_url Optional

The full address of the destination website, for


example, http://www.mycompany.com/
mybestpage.html, or the IP address, for example,
http://12.34.56.123
The maximum number of characters allowed is 200.

enabled

keywords

Optional

Optional

Determines whether domain forwarding is in effect.

0Turn off domain forwarding

1Turn on domain forwarding

Descriptive words that a visitor might use when


searching for your website. Separate each word or
phrase with a comma.
The maximum number of characters allowed is 900.
Note: This parameter only takes effect if masked =
1.

masked

subdomain

Optional

Required

Determines the destination website address appears in


the browser address field.

0Display the actual destination address.

1Mask the destination address and display


the original domain address instead.

The third level of the domain name, such as www or


ftp. For example, if you specify www, visitors who
type example.com are redirected to
www.example.com.
The maximum number of characters allowed is 128.
Note: Although this parameter is required, its value
can be null.

title

Optional

The text that you want to appear in the browser title


bar.
The maximum number of characters allowed is 255.
Note: This parameter only takes effect if masked =
1.

671

Domain Forwarding Commands

Response parameters for set_domain_forwarding


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

Examples for set_domain_forwarding


Request
<?xml version='1.0' encoding='UTF-8'?>
<OPS_envelope>
<header>
<version>0.9</version>
<msg_id>2.21765911726198</msg_id>
<msg_type>standard</msg_type>
</header>
<body>
<data_block>
<dt_assoc>
<item key='protocol'>XCP</item>
<item key='action'>set_domain_forwarding</item>
<item key='object'>domain</item>
<item key='cookie'>E2MRS6Fz6ZfCWr9z:647962</item>
<item key='attributes'>
<dt_assoc>
<item key='domain'>example.com</item>
<item key='forwarding'>
<dt_array>
<item key='0'>
<dt_assoc>
<item key='masked'>1</item>
<item key='keywords'>Example2.com</item>

672

Domain Forwarding Commands


<item
key='destination_url'>http://www.example2.com</item>
<item key='enabled'>1</item>
<item key='description'>Example2.com</item>
<item key='subdomain'>mail</item>
<item key='title'>Example2.com</item>
</dt_assoc>
</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">DOMAIN</item>
<item key="response_text">Command Successful</item>
<item key="response_code">200</item>
<item key="is_success">1</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

673

User Commands
This section contains the following commands:

add (subuser)creates a subuser for a user's account.


delete (subuser)deletes a sub-user.
get (subuser)queries a domain's sub-user data.
get (userinfo)retrieves a user's general information.
modify (subuser)modifies a domain's sub-user data.

674

User Commands

add (subuser)
Description
Action & object
action = add
object = subuser

Usage
Creates a subuser for a user's account. Only one subuser can exist per
account.

Request parameters for add (subuser)


Standard parameters
action = add
object = subuser
registrant_ip = valid IP address of the registrant (optional)
username = name of the user account
cookie = cookie created to access the system, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

sub_password

Required

Password for the sub-user.

sub_permission

Required

The sub_permission value is a bit-mask that


indicates which portions of the domain information
are changeable by the sub-user. The bits are as
follows:

sub_username

Required

1owner

2admin

4billing

8tech

16nameservers

32rsp_whois_info

Username for the sub-user.

675

User Commands

Response parameters for add (subuser)


Standard parameters
action = reply
object = subuser
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

Examples for add (subuser)


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">add</item>
<item key="object">subuser</item>
<item key="cookie">249880759:3210384</item>
<item key="username">aaaa</item>
<item key="attributes">
<dt_assoc>
<item key="sub_password">luda</item>
<item key="sub_permission">2</item>
<item key="sub_username">subludak</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>

676

User Commands
</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">SUBUSER</item>
<item key="response_text">Command Successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

677

User Commands

delete (subuser)
Description
Action & object
action = delete
object = subuser

Usage
Deletes a subuser.

Request parameters for delete (subuser)


Standard parameters
action = delete
object = subuser
registrant_ip = valid IP address of the registrant (optional)
username = name of the user account
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

sub_id

Required

The ID of the sub-user to be deleted.

Response parameters for delete (subuser)


Standard parameters
action = reply
object = subuser
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

678

User Commands

Examples for delete (subuser)


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="attributes">
<dt_assoc>
<item key="sub_id">2532880</item>
</dt_assoc>
</item>
<item key="protocol">XCP</item>
<item key="action">delete</item>
<item key="object">subuser</item>
<item key="cookie">249880759:3210384</item>
<item key="username">aaaa</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>

679

User Commands
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">SUBUSER</item>
<item key="response_text">Command Successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

680

User Commands

get (subuser)
Description
Action & object
action = get
object = subuser

Usage
Queries a domain's sub-user data.

Request parameters for get (subuser)


Standard parameters
action = get
object = subuser
registrant_ip = valid IP address of the registrant (optional)
username = name of the user (parent) account
cookie = cookie created to access the system, see "set (cookie)"

Response parameters for get (subuser)


Standard parameters
action = reply
object = subuser
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

Attributes
Parameters within the attributes associative array are described below. If
there is no sub-user on the domain, the attributes are empty.
Parameter
name

Obligation

Definition/Value

id

Required

The sub-user's ID.

681

User Commands
Parameter
name

Obligation

Definition/Value

permission

Required

The sub-user's permission level. The permission value


is a bit mask indicating which parts of the domain
information the sub-user can change.

username

Required

1owner

2admin

4billing

8tech

16nameservers

32rsp_whois_info

The sub-user's username.

Examples for get (subuser)


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">get</item>
<item key="object">subuser</item>
<item key="cookie">249880759:3210384</item>
<item key="username">aaaa</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

682

User Commands

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">SUBUSER</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command Successful</item>
<item key="attributes">
<dt_assoc>
<item key="permission">2</item>
<item key="username">subludak</item>
<item key="id">2532880</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

683

User Commands

get (userinfo)
Description
Action & object
action = get
object = userinfo

Usage
Retrieves a user's general information.

Request parameters for get (userinfo)


Standard parameters
action = get
object = user_info
cookie = cookie created to access the system, see "set (cookie)"
attributes = an associative array containing parameters specific to the

action-cookie combination.

Response parameters for get (userinfo)


Standard parameters
action = reply
object = userinfo
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

The Reseller Agent (RSA) could respond with a 250 response_code, which
indicates that the action was submitted for processing in an asynchronous
registry. The request is processed when the registry's reply is received.
Performing a set cookie or get userinfo command indicates if there is an
action currently waiting on a domain. This information can be used to alert
the user that there is a waiting request.

684

User Commands

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

capabilities

Required

An associative array containing parameters


specific to the action-cookie combination.

dns_errors

For .DE only

This contains the DNS errors if any, in text


format .DE only

domain

Required

Fully qualified domain name. IDN names are


returned in Punycode for .COM/.NET and in
RACE for .ORG.

domain_count

Required

Total number of domains in the current user


profile. A domain count > 1 indicates that
the get domain list action is possible.

encoding_type

Optional

Encoding type for the domain. For a list of


the languages supported for each TLD, see
the gTLD and ccTLD Reference Chart on the
OpenSRS website.

expiredate

Required

Expiration date for the domain as specified


in the 'domain' field.

f_owner

Required

A flag indicating whether the current user is


the owner of the domain(s).
If set to 1 then the current user is the owner
of the domain, if set to 0, then the user is a
subuser of the domain and may only be
authorized to do certain actions.

685

User Commands
Parameter name

Obligation

Definition/Value

permission

Required

An associative array containing parameters


specific to the action-cookie combination.

1owner

2admin

4billing

8tech

16nameservers

32rsp_whois_info

username

Required

The sub-user's username

waiting_requests_no

Required

The number of registry requests in the


waiting state.

Capabilities
Parameters within the capabilities associative array are described below.
Parameter name Obligation

Definition/Value

change_ips_tag

Indicates if option is available for end user to


change the Domain Tag; applicable to .UK
domains only.

domain_auth_info

Optional

Required

1Option available for end user to


change Domain Tag

0Option not available for end user to


change Domain Tag

Secret pass phrase stored at the registry, which


is used to authorize transfers of domains.

1True

0False

The absence of a key also signifies false.


forwarding_email

Required

Some TLDs offer an email forwarding service.


Often the end user must explicitly purchase this
service.

1True

0False

The absence of a key also signifies false.

686

User Commands
Parameter name Obligation

Definition/Value

uk_whois_opt

Indicates if option is available for end user to opt


out of display of personal information in WHOIS
for .UK. The WHOIS opt-out is available for .UK
domains only, and only to individuals (i.e. not
corporations).

Optional

1End user is eligible to use the opt-out


feature for .UK WHOIS

0End user is not eligible to use the optout feature for .UK WHOIS

Deprecated
Parameter name

Obligation

Definition/Value

waiting_request

Deprecated

Replaced by waiting_requests_no

Examples for get (userinfo)


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">GET</item>
<item key="object">USERINFO</item>
<item key="registrant_ip">216.40.46.115</item>
<item key="cookie">435686610:3185178</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

687

User Commands

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">USERINFO</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command Successful</item>
<item key="attributes">
<dt_assoc>
<item key="waiting_requests_no">8</item>
<item key="domain">example.org.uk</item>
<item key="encoding_type"/>
<item key="expiredate">2007-11-25 00:00:00</item>
<item key="permission"/>
<item key="domain_count">131</item>
<item key="f_owner">1</item>
<item key="username">aaaa</item>
<item key="capabilities">
<dt_assoc>
<item key="forwarding_email">0</item>
<item key="domain_auth_info">0</item>
<item key="uk_whois_opt">1</item>
<item key="change_ips_tag">1</item>
</dt_assoc>
</item>
</dt_assoc>

688

User Commands
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

689

User Commands

modify (subuser)
Description
Action & object
action = modify
object = subuser

Usage
Modifies a domain's sub-user data.

Request parameters for modify (subuser)


Standard parameters
action = modify
object = subuser
registrant_ip = valid IP address of the registrant (optional)
username = name of the user account
cookie = cookie created to access the system, see "set (cookie)"
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

sub_id

Required

The sub-user's ID.

sub_password

Required

Password for the sub-user.

sub_permission

Required

The sub_permission value is a bit-mask that


indicates which portions of the domain information
are changeable by the sub-user. The bits are as
follows:

sub_username

Required

1owner

2admin

4billing

8tech

16nameservers

32rsp_whois_info

Username for the sub-user.

690

User Commands

Response parameters for modify (subuser)


Standard parameters
action = reply
object = subuser
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

Examples for modify (subuser)


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">modify</item>
<item key="object">subuser</item>
<item key="cookie">249880759:3210384</item>
<item key="username">aaaa</item>
<item key="attributes">
<dt_assoc>
<item key="sub_password">luda</item>
<item key="sub_permission">4</item>
<item key="sub_id">2532880</item>
<item key="sub_username">subludak</item>
</dt_assoc>
</item>
</dt_assoc>

691

User Commands
</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">SUBUSER</item>
<item key="response_text">Command Successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

692

Authentication Commands
This section contains the following commands:
change (ownership)changes the username and password of the
profile that owns the cookie's domain.
change (password)changes the password of the profile associated
with the cookie.
send_authcodesends the Authcode for an EPP domain.
send_password (domain)sends the domain password to the domain's
admin contact.

693

Authentication Commands

change (ownership)
Description
Action & object
action = change
object = ownership

Usage
Changes the username and password of the profile that owns the cookie's
domain.
Note: After issuing this command, in order to continue issuing further
commands for the domain, you must delete the current cookie and set
another.

Request parameters for change (ownership)


Standard parameters
action = change
object = ownership
cookie = cookie created to access the system, see "set (cookie)"
registrant_ip = valid IP address of the registrant (optional)
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

move_all

Optional

Indicates whether to move all the domains to the new


profile. If not submitted, only the domains identified in
the cookie are moved.

password

Required

0Do not move all the domains to the new


profile

1Move all the domains to the new profile

The password of the registrant who is gaining


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

reg_domain

Optional

If included, the user can change the domain from one

694

Authentication Commands
Parameter
name

Obligation

Definition/Value
profile to another (already existing) profile. If
reg_domain is not included, the username and
password provided in the request are used to create a
new profile.

username

Required

The username of the registrant who is gaining


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

Response parameters for change (ownership)


Standard parameters
action = reply
object = ownership
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

Examples for change (ownership)


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">CHANGE</item>
<item key="object">OWNERSHIP</item>
<item key="cookie">992336212:3228913</item>
<item key="registrant_ip">10.0.10.138</item>

695

Authentication Commands
<item key="attributes">
<dt_assoc>
<item key="move_all">1</item>
<item key="password">newprofile</item>
<item key="username">newprofile</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">OWNERSHIP</item>
<item key="response_text">Command Successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

696

Authentication Commands

change (password)
Description
Action & object
action = change
object = password

Usage
Changes the password of the profile associated with the cookie.
Note: After issuing this action, you should delete the current cookie and set
another in order to keep the profile information current.

Request parameters for change (password)


Standard parameters
action = change
object = password
cookie = cookie created to access the system, see "set (cookie)"
registrant_ip = valid IP address of the registrant (optional)
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

reg_password

Required

The new password for the registrant.


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

Response parameters for change (password)


Standard parameters
action = reply
object = password
is_success = a Boolean is returned, indicating success or failure of the

request

response_code = response code indicating outcome of the request

697

Authentication Commands
response_text = message describing the outcome of the request

Examples for change (password)


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">change</item>
<item key="object">password</item>
<item key="cookie">201947893:3210384</item>
<item key="attributes">
<dt_assoc>
<item key="reg_password">aaaa</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>

698

Authentication Commands
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">PASSWORD</item>
<item key="response_text">Command Successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

699

Authentication Commands

send_authcode
Description
Action & object
action = send_authcode
object = domain

Usage
Sends the Authcode for an EPP domain to the admin contact. If the domain
for which the request is made does not use the EPP protocol, an error is
returned.
Note: A cookie does not need to be set to use this command.

Request parameters for send_authcode


Standard parameters
action = send_authcode
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain_name

Required

The EPP domain name for which the Authcode is to


be sent.

Response parameters for send_authcode


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

700

Authentication Commands

Examples for send_authcode


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">send_authcode</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="domain_name">example.info</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>

701

Authentication Commands
<item key="action">reply</item>
<item key="object">domain</item>
<item key="response_text">Message sent</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

702

Authentication Commands

send_password (domain)
Description
Action & object
action = send_password
object = domain

Usage
Sends an email containing the domain password to the domain's admin
contact.

Request parameters for send_password (domain)


Standard parameters
action = send_password
object = domain
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain_name

Required

The domain name for which the password is sent.

send_to

Required

An indication of the contact to which the password is


to be sent, either owner or admin (default)

sub_user

Required

An indication of whether the password is to be sent


to the sub-user of the domain. An error is returned if
this field is set to 1 but there is no sub-user
associated to the domain.

0Do not send to sub-user

1Send to sub-user

703

Authentication Commands

Response parameters for send_password


(domain)
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

Examples for send_password (domain)


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">send_password</item>
<item key="object">domain</item>
<item key="attributes">
<dt_assoc>
<item key="sub_user">0</item>
<item key="send_to">owner</item>
<item key="domain_name">example.info</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

704

Authentication Commands

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">Message sent</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

705

Cookie/Session Commands
This section contains the following commands:
delete (cookie)deletes a cookie.
quit (session)cleanly terminates the connection.
set (cookie)creates a cookie.
update (cookie)changes the domain associated with the current
cookie.

706

Cookie/Session Commands

delete (cookie)
Description
Action & object
action = delete
object = cookie

Usage
Deletes a cookie.

Request parameters for delete (cookie)


Standard parameters
action = set
object = cookie
cookie = The cookie to be deleted
registrant_ip = The IP address of the registrant (optional)
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

cookie

Required

The cookie to be deleted.


Note: The format of the cookie is subject to change,
and should be treated as a simple string.

Response parameters for delete (cookie)


Standard parameters
action = reply
object = cookie
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

707

Cookie/Session Commands

Examples for delete (cookie)


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">delete</item>
<item key="object">cookie</item>
<item key="cookie">484465641:3210384:7453745</item>
<item key="attributes">
<dt_assoc>
<item key="cookie">484465641:3210384</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>

708

Cookie/Session Commands
<item key="protocol">XCP</item>
<item key="action">REPLY</item>
<item key="object">COOKIE</item>
<item key="response_text">Command Successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

709

Cookie/Session Commands

quit (session)
Description
Action & object
action = quit
object = session

Usage
Cleanly terminates the connection. This command is required only if your
connection method is CBC (crypt type can be Blowfish or DES).

Request parameters for quit (session)


Standard parameters
protocol= XCP
action = quit
object = session

Note: No cookie is required because the quit action is not authenticated.

Response parameters for quit (session)


Standard parameters
action = reply
object = session
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

Examples for quit (session)


Request
<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<!DOCTYPE OPS_envelope SYSTEM 'ops.dtd'>
<OPS_envelope>
<header>
<version>0.9</version>
</header>

710

Cookie/Session Commands
<body>
<data_block>
<dt_assoc>
<item key="protocol">XCP</item>
<item key="action">quit</item>
<item key="object">session</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">SESSION</item>
<item key="response_text">Closing connection</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

711

Cookie/Session Commands

set (cookie)
Description
Action & object
action = set
object = cookie

Usage
Creates a cookie for use in commands where a cookie is required to access
the system.

Request parameters for set (cookie)


Standard parameters
action = set
object = cookie
registrant_ip = The IP address of the registrant (optional)
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter
name

Obligation

Definition/Value

domain

Required

The relevant domain. (Multilingual domains must


be race-encoded.)

reg_password

Required

The registrant's password.


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

reg_username

Required

The registrant's username.


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

Response parameters for set (cookie)


Standard parameters
action = reply
object = cookie

712

Cookie/Session Commands
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

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

cookie

Required

The current user's cookie.


Note: The format of the cookie is subject to
change, and should be treated as a simple
string.

domain_count

Required

The number of domains in the registrant


profile.
Note: The domain_count for a sub-user is
always 0, because a sub-user cannot be linked
with more than one domain.

expiredate

Required

The expiry date of the domain, in the format


YYYY-MM-DD hh:mm:ss.

f_owner

Required

A flag indicating whether the current user is


the owner of the domain(s):

0User is not owner

1 User is owner

last_access_time

Required

When the account was last accessed,


expressed in seconds since Epoch.

last_ip

Required

The last IP address used.

permission

Required

An indication of the permission level of the


domain's sub-user. The permission value is a
bit mask that indicates which portions of the
domain information are changeable by the
sub-user.

redirect_url

Optional

1owner

2admin

4billing

8tech

16nameservers

32rsp_whois_info

The URL for domains in the Parked Pages


Program. If you have questions about a
specific domain email

713

Cookie/Session Commands
Parameter name

Obligation

Definition/Value
tucowspark@tucows.com.
If the domain is a Storefront domain, the
value is the URL for the associated Storefront
Domain Manager.

waiting_requests_no

Required

The number of registry requests in the waiting


state.

Deprecated
Parameter name

Obligation

Definition/Value

waiting_request

Deprecated

Replaced by "waiting_requests_no"

Examples for set (cookie)


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</item>
<item key="object">cookie</item>
<item key="registrant_ip">216.40.46.115</item>
<item key="attributes">
<dt_assoc>
<item key="reg_username">robson</item>
<item key="reg_password">changeit</item>
<item key="domain">example.co.uk</item>
</dt_assoc>
</item>

714

Cookie/Session Commands
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

715

Cookie/Session Commands

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">cookie</item>
<item key="response_text">Command Successful</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="attributes">
<dt_assoc>
<item key="waiting_requests_no">0</item>
<item key="permission"/>
<item key="cookie">920954818:3214550:7453745</item>
<item key="domain_count">131</item>
<item key="f_owner">1</item>
<item key="last_access_time">1082751795</item>
<item key="encoding_type"/>
<item key="last_ip">10.0.11.215</item>
<item key="expiredate">2007-11-25 00:00:00</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

716

Cookie/Session Commands

update (cookie)
Description
Action & object
action = update
object = cookie

Usage
Allows the client to change the domain associated with the current cookie.

Request parameters for update (cookie)


Standard parameters
action = update
object = cookie
registrant_ip = The IP address of the registrant (optional)
attributes

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

domain

Required

The current domain for the cookie.

domain_new

Required

The new domain for the cookie.

reg_username

Required

The registrant's username.

reg_password

Required

The registrant's password.

Response parameters for update (cookie)


Standard parameters
action = reply
object = cookie
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

717

Cookie/Session Commands

Attributes
Parameters within the attributes associative array are described below.
Parameter name

Obligation

Definition/Value

cookie

Required

The current user's cookie.


Note: The format of the cookie is subject to
change, and should be treated as a simple
string.

domain_count

Required

The number of domains in this profile.


Note: The domain_count for a sub-user is
always 0, as a sub-user cannot be linked with
more than one domain.

expiredate

Required

The domain's expiry date in the format YYYYMM-DD hh:mm:ss.

f_owner

Required

A flag indicating whether the current user is


the owner of the domain(s):

waiting_requests_no

Required

0User is not owner

1User is owner

The number of registry requests in the waiting


state.

Deprecated
Parameter name

Obligation

Definition/Value

waiting_request

Deprecated

Replaced by "waiting_requests_no"

Examples for update (cookie)


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>

718

Cookie/Session Commands
<item key="action">update</item>
<item key="object">cookie</item>
<item key="registrant_ip">10.0.11.121</item>
<item key="cookie">880117898:3214551</item>
<item key="attributes">
<dt_assoc>
<item key="domain_new">example.me.uk</item>
<item key="reg_username">robson</item>
<item key="domain">example.co.uk</item>
<item key="reg_password"/>
</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">COOKIE</item>
<item key="is_success">1</item>
<item key="response_code">200</item>
<item key="response_text">Command Successful</item>
<item key="attributes">
<dt_assoc>
<item key="waiting_requests_no">2</item>

719

Cookie/Session Commands
<item key="f_owner">1</item>
<item key="cookie">880117898:3214551:7453745</item>
<item key="domain_count">172</item>
<item key="expiredate">2007-11-25 00:00:00</item>
</dt_assoc>
</item>
</dt_assoc>
</data_block>
</body>
</OPS_envelope>

720

Appendix A: Special Considerations for


Asynchronous Registries
Asynchronous registries are those registries that do not provide a real time
response to a requested action.
Operations (actions) on a registry that is asynchronous do not give you a
real-time success or failure response. Instead, you get a message that the
action has been sent, and is awaiting processing by the remote registry. At
some later point, you will see the actual results of your action (for example,
if you make modifications to a domain, you won't see them until some time
has elapsed).

721

WHOIS Privacy Command

Appendix B: Customizing the Transfer


Approval URL
By default, a domain's admin contact is directed to the transfer approval
URL, but you can choose to instead direct clients to your own URL for
approvals.
The scripts to parse the end-user replies back must pass responses through
https://rr-n1-tor.opensrs.net/transfers, and must include several different
actions (each of which require various fields). The required actions and fields
are listed in the following tables.

Regular transfers
Key

Value

action

Confirm

domain

<domain_name>

id

<transfer_request_id>

action

whois_transfer

domain

<domain_name>

unique_id

<transfer_request_id>

action

do_confirm

domain

<domain_name>

unique_id

<transfer_request_id>

phone

phone_number

action

cancel_transfer

domain

<domain_name>

unique_id

<transfer_request_id>

722

WHOIS Privacy Command

Page flow

Notes:

The Confirm page must contain the string value='whois_transfer'.


The Success page must contain the string 'Thank you for confirming'.
The Cancel page must contain the string 'has been cancelled'.

Bulk transfers
Key

Value

action

confirm_bulk_transfer

bt

bulk_transfer_id

< bulk_transfer_id >

id

<transfer_request_id>

action

do_confirm_bulk_transfer

bulk_transfer_id

< bulk_transfer_id >

unique_id

<transfer_request_id>

phone

phone_number

action

cancel_bulk_transfer

domain

<domain_name>

unique_id

<transfer_request_id>

723

WHOIS Privacy Command

Page flow

Notes:

The Confirm page must contain the string 'Listed below are the
domains that will be transferred:' (List of domains located between
<menu> </menu>).
The Success page must contain the string 'Thank you for confirming
batch transfer'.
The Cancel page must contain the string 'has been cancelled'.

Transfers away
Key

Value

action

confirm_transfer_away

away

domain

<domain_name>

id

<transfer_request_id>

action

do_confirm_away

domain

<domain_name>

unique_id

<transfer_request_id>

phone

phone_number

action

do_cancel_away

domain

<domain_name>

unique_id

<transfer_request_id>

724

WHOIS Privacy Command

Page flow

Notes:

The Confirm page must contain the string 'away from' (To include time
and registrar name, the page must also contain the string 'this request
was entered at <date> by <registrar>').
The Success page must contain the string 'Thank you. Your domain will
be transferred to'.
The Cancel page must contain the string 'Thank you. Your domain will
NOT be transferred to'.

725

WHOIS Privacy Command

Revisions and Updates


February 3, 2014

Added the following new commands for registrant verification:


get_registrant_verification_statusreturns the current state of
the registrant verification request.
send_registrant_verification_emailSends or resends the
verification email to the registrant.

December 3, 2013

Added new parameter trademark_smd to the sw_register command.


This is required when entering sunrise orders for the new gTLDs.

October 8, 2013

Added information about the tld_data requirements for .DE and .DK
domains.

June 20, 2013

Added contacts required for .PH to the Domain contacts table.

Added information about the tld_data requirements for .CL, .CO.ZA,


.COM.BR, .MX, .MY, and .RO.

IDNs are now allowed for .BE domain names.

In contact_set, if country = MX, you must use the 2 character code for
the state value.

February 13. 2013

Added a table listing the contacts required for each gTLD and ccTLD.

November 27, 2012

The place_or_birth parameter is no longer required for .RU and


.COM.RU domains.

November 1, 2012

The trade_domain command no longer applies to .EU domains. You


can now make changes to the registrant information either by using
the modify domain command or by specifying the new information
when you transfer the domain (using sw_register).
Auth codes are required for .EU transfers.

July 12, 2012

The following TLDs can now be registered through OpenSRS: .AE,


.AF, .COM.AR, .AS, .CL, .CM, .COOP, .CA, .EC, .COM.EC, .FIN.EC,
.INFO.EC, .MED.EC, .NET.EC, .PRO.EC, .FI, .GL, .GY, .CO.GY,

726

WHOIS Privacy Command


.COM.GY, .NET.GY, .HK, .HM, .COM.HR, .HT, .HU, .CO.HU, .IS, .KG,
.LT, .LU, .LV, .COM.LV, .LY, .COM.LY, .MA, .CO.MA, .MD, .NO, .PM, .PT,
.COM.PT, .COM.RO, .RE, .RO, .RU, .COM.RU, .SE, .SG, .SI, .SR, .TF,
.TO, .VG, .WF, .YT. Added information about the tld_data
requirements for the domains that require additional information.
May 17, 2012

Added information about the tld_data requirements for .AERO and


.JOBS domains.
Added information to sw_register, get domain, and modify domain
commands about requirements for .JOBS and .AERO domains.
Added the following new commands:
get_domain_affiliate_idRetrieves the affiliate id associated
with a domain.
set_domain_affiliate_idAssigns an affiliate id to a domain.
The get_domain all_info command now returns affiate_id, if
applicable.
The get_transfers_in command now returns affiate_id if submitted in
the transfer order.

March 15, 2012

When you register or change ownership of a .FR domain name, you


must provide information to satisfy the regional presence requirements
of the .FR registry. That information can now be submitted within the
tld_data array. The sw_register, trade_domain, and get_order_info
commands have been updated with the new values and examples.
The tld_data array is also used by the get (domain), get_order_info,
and modify (domain) commands to handle the additional information
that is required by the .ASIA, .AU, .IT. .PRO, .US, and .XXX registries.
The structure of these commands has been changed to make it
consistent with the way in which tld_data is handled by the
sw_register (domain) command.

December 8, 2011

Added information to sw_register, get domain, and modify domain


commands about additional parameters required for .PRO domains.
Incremented version to 3.9.6.

December 6, 2011

General Availability of .XXX domain names begins. Added information


to sw_register, get domain, and modify domain commands about
additional parameters for .XXX orders.

November 17, 2011

727

WHOIS Privacy Command

The name_suggest command now allows you to specify the minimum


and maximum prices of the Premium Names that you want it to return.

October 13, 2011

You can now use the redeem domain command to redeem .COM,
.NET, .IT, and .NL domains that have expired but are within the
redemption grace period (previously this command could only be used
for .CA)
The create, modify, delete and get nameserver commands now
accept IPv6 addresses.
Incremented version to 3.9.3.

June 14, 2011


When using the trade_domain command to transfer ownership
of .BE domains only, you must supply the domain_auth_info
parameter in the request.

The minimum number of characters for .TEL domain names is now


two. Additionally, .TEL names can now contain only numbers.

Incremented version to 3.8.1.

April 12, 2011


Added the redeem domain command which redeems an expired .CA
domain that is within the redemption grace period.
February 19, 2011
Cyrillic languages have been added to the list of available IDNs for
.ORG domains.
February 3, 2011
The .IT registry has moved to an industry standard platform, and as a
result, the following commands have been affected:
sw_registerThe .IT owner contact requires three additional
parameters: nationality_code, reg_code, and entity_type.
modifyThe .IT owner contact requires three additional
parameters: nationality_code, reg_code, and entity_type.
advanced_update_nameserversFor .IT domains, the
registry runs a series of tests against the nameservers before
activating them.
update_all_infoThis command can no longer be used for .IT
domains.
update_contactsThe .IT owner contact requires three
additional parameters: nationality_code, reg_code, and
entity_type.
WHOIS Privacy is now supported for .CO domains.
Incremented version to 3.6.1.

728

You might also like