RoTLD REST API Documentation

35
ROTLD REST API DOCUMENTATION REST VERSION 2.0 Revision Date January 09, 2013 Revision Number 1.0.2 Author(s) Radu Boncea Dissemination Level Public

description

RoTLD REST API documentation for implementing domain registration of .ro TLD domains.

Transcript of RoTLD REST API Documentation

Page 1: RoTLD REST API Documentation

ROTLD

REST API DOCUMENTATION REST VERSION 2.0

Revision Date January 09, 2013

Revision Number 1.0.2

Author(s) Radu Boncea

Dissemination Level Public

Page 2: RoTLD REST API Documentation

2

RREEVVIISSIIOONN HHIISSTTOORRYY

RREEVVIISSIIOONN DDAATTEE @@AAUUTTHHOORR CCOOMMMMEENNTT

1.0.1 Nov. 15, 2012 Radu Boncea Pre-release draft

1.0.2 Jan. 09, 2013 Radu Boncea DOC-14/RESTWS-17 . Domain password minimal

condition improvement.

Page 3: RoTLD REST API Documentation

3

Table of Contents Introduction ............................................................................................................................................................................ 4

Terminology & Definitions ...................................................................................................................................................... 5

General Considerations and Notes ......................................................................................................................................... 6

Workflow ................................................................................................................................................................................. 7

Domain registration ............................................................................................................................................................ 7

Attaching nameservers to a domain ................................................................................................................................... 7

Domain transfer .................................................................................................................................................................. 7

Domain trade ...................................................................................................................................................................... 7

List of commands .................................................................................................................................................................... 8

Command hello ................................................................................................................................................................... 9

Command check-availability ............................................................................................................................................. 10

Command domain-info ..................................................................................................................................................... 11

Command nameserver-info .............................................................................................................................................. 13

Command contact-info ..................................................................................................................................................... 14

Command contact-create ................................................................................................................................................. 16

Command domain-renew ................................................................................................................................................. 18

Command contact-update ................................................................................................................................................ 19

Command nameserver-create .......................................................................................................................................... 20

Command nameserver-update ......................................................................................................................................... 21

Command nameserver-delete .......................................................................................................................................... 22

Command domain-register ............................................................................................................................................... 23

Command domain-activate .............................................................................................................................................. 25

Command domain-reset-ns .............................................................................................................................................. 26

Command domain-transfer .............................................................................................................................................. 27

Command domain-trade ................................................................................................................................................... 28

Command trade-info ......................................................................................................................................................... 29

Command trade-confirm .................................................................................................................................................. 31

Returned Codes ..................................................................................................................................................................... 32

Blocks ................................................................................................................................................................................ 32

Codes ................................................................................................................................................................................. 32

Page 4: RoTLD REST API Documentation

4

Introduction The REST API is a web service in accordance with the principles of REST (Representation State Transfer) and accessible

using the http(s) protocol.

The service is secured and requires TLS authentication. Authentication is based on HTTP Digest with a RSA key generated

on 2048 bits.

The REST API is developed on top of Twisted Matrix open source platform (http://twistedmatrix.com).

The REST API accepts only POST requests. Other methods are not accepted.

We are providing a testing server at https://rest2-test.rotld.ro:6080. If you are already a .ro registrar please use your current regid and password for testing. If you are not a .ro registrar please ask for a regid and password at http://rest2-test.rotld.ro/rest-api/cerere-acces-la-api Documentation site is http://rest2-test.rotld.ro/rest-api/ We also opened a group of discussion at http://groups.google.com/group/rotldapi where we will answer your questions. Latest documentation can be found at http://rest2-test.rotld.ro/rest-api/RESTAPI%20DOCUMENTATION.pdf/at_download/file Testing registrar web control panel can be found at https://registrar2-test.rotld.ro A PHP client for the REST API service can be found at http://rest2-test.rotld.ro/rest-api/PHP_Rest_Client.tgz/at_download/file

Page 5: RoTLD REST API Documentation

5

Terminology & Definitions Registrant: domain right of use holder Registrar: company authorized by ROTLD to sell .ro domains Registry: Romania Top Level Domain Domain Transfer: the transfer of the domain from a registrar to another registrar Domain Trade: the transfer of the right of usage from a registrant to another registrant DAS: Domain Availability Service Authorization key: token obtained by the registrant to authorize a registrar to transfer or trade his domain Domain/Contact/Host Status:

Domain DeleteProhibited: domain cannot be deleted Hold: domain is not published to the DNS .ro file Locked: domain cannot be updated, except for updating its nameservers or hosts RenewProhibited: domain cannot be renewed TransferProhibited: domain cannot be transferred UpdateProhibited: domain cannot be updated RegistrantTransferProhibited: trade is prohibited Reserved: domain cannot be updated and is not published to the DNS .ro file RegistrantPendingTransfer: trade procedure is opened PendingDelete: the domain will be deleted in the near future. The domain cannot be updated

and is not published to the DNS .ro file Host

UpdateProhibited: host cannot be updated Hold: host is not published to the DNS .ro file DeleteProhibited: host cannot be deleted PendingDelete: the host will be deleted in the near future. The host cannot be updated and is

not published to the DNS .ro file Contact/Registrant

DeleteProhibited: registrant contact cannot be deleted UpdateProhibited: contact cannot be updated PendingDelete: the contact will be deleted in the near future. The contact cannot be updated

Page 6: RoTLD REST API Documentation

6

General Considerations and Notes 1. API response format can be either XML, either JSON. String types in XML are utf-8 encoded, while in JSON the

string are represented in UNICODE with the \u four-hex-digits for the characters not in ordinal range of 127. If

building your own JSON parser you have to make sure you decode the JSON strings. Most of the JSON parsers decode the JSON string automatically, so if using, for example, PHP json_decode you will not need to further decode the strings.

2. All responses contain the following data:

"srv_localtime": "yyyy-mm-dd HH:MM:SS EEST", "time_execution": "xxms", "srv_timestamp": xxxxxxxxxx.xxxx, "reqid": "………………….", "result_blockmess": "………………….", "error": x, "data": {

……………………………………… },

"result_message": "………………….", "result_code": "xxxxx"

Where, data: is specific to the request srv_localtime: the server date and time of the request srv_timestamp: the server unix time of the request time_execution: the time in miliseconds needed for the server to process the request reqid: a unique identification string for the request result_blockmess: please check the codes section error: if error is 1 then the operation has failed (the result_code is different from 00200), if error is 0 the

operation has completed successfully (the result_code is 00200) result_message: please check the codes section result_code: please check the codes section

3. REST API restrictions:

a. The system may delay registrar operations as a security measure in case the registrar “abuse” the usage of the service by doing intensive queries. Every registrar has a pool of running processes so, as the pool is growing, new processes are being delayed to ensure older processes will finished cleanly.

b. The system may temporary block the registrar from using the REST service if the registrar hits the case a) repeatedly. The system automatically do this to protect other registrars pools.

c. Having in mind a) and b), registrars should not do intensive queries, or, if they have to, to have “sleep” time between operations. Also, as an important note, most intensive operations are those running in a write context (operations that modify the database records and indexes) and which also take more time to complete as you can see from “time_execution” parameter.

Page 7: RoTLD REST API Documentation

7

Workflow

Domain registration 1. Check domain availability, either using the REST Web Service or DAS Service. Proceed only if the domain is

available for registration. 2. Create a registrant contact. Upon success and having a registrant ID (CID) proceed to 3) 3. Register or Reserve the domain with the registrant id obtained to 2) 4. If domain is registered and not reserved, you may consider attaching nameservers to its DNS resolution. If the

domain is reserved, the domain can be updated only after confirming the reservation.

Attaching nameservers to a domain There are 3 types of nameservers that can be attached to a .ro domain, for exemplification we say, mydomain.ro.

I. External hosts: non-.ro hosts like ns.mydomain.com,.net,etc. These hosts don’t need to be created by registrars, as they are automatically managed by the registry.

II. Internal hosts: .ro hosts like ns.otherdomain.ro. These hosts must exist before attaching them to any .ro domain. If they do not exist, the hosts must be created by the registrar of the otherdomain.ro. Please note that the registrar of otherdomain.ro might be different than the registrar of mydomain.ro.

III. Self hosts: like ns.mydomain.ro which need to be created if they do not exist.

1. Check if the domain allows updates (the status list must not include UpdateProhibited, Reserved, PendingDelete).

2. For self hosts check if they exist. If they do not exist, create them. If the domain has just been registered (not reserved), checking the domain is not necessary, however, the self hosts must definitely be created.

3. Update the domain with the new list of nameservers.

Domain transfer 1. The registrant who wish to transfer the domain to you, must obtain the authorization key from the registry’s

domain administration web panel (https://domadmin.rotld.ro). After getting the authorization key proceed to 2).

2. Transfer the domain using the authorization key given by the registrant at 1).

Domain trade 1. The registrant must obtain the authorization key from the registry’s domain administration web panel

(https://domadmin.rotld.ro). After getting the authorization key proceed to 2). 2. Create a registrant contact with information about the future registrant. 3. Create a trade procedure using the authorization key from 1) and the registrant id from 2). Store the trade id

locally so you can query for the status of the trade. 4. Wait for the registry confirmation: either periodically check for the trade status, or waiting for the email

notification, or checking the status in the registrar web control panel (https://registrar.rotld.ro). 5. If registry has confirmed the trade, the registrar must:

a. Commit the changes to the registrant by confirming the trade.

Page 8: RoTLD REST API Documentation

8

List of commands Command Context Obs

hello read Checking API availability and server time

check-availability read Checks domain availability against DB and Filters

domain-info read Get domain main attributes

nameserver-info read Get a .ro nameserver main attributes

contact-info read Contact(registrant) main attributes

contact-create write Create a registrant object and get the registrant id (CID)

domain-renew write Renew a renewable domain

contact-update write Update registrant data, except for protected attributes

nameserver-create write Create .ro nameserver object

nameserver-update write Reset nameserver IPs.

nameserver-delete write Delete a nameserver.

domain-register write Register or Reserve a .ro available domain

domain-activate write Activate a reserved .ro domain

domain-reset-ns write Reset domain nameservers

domain-transfer write Registrar transfer

domain-trade write Opens a registrant transfer procedure

trade-info read Get info on an opened registrant transfer procedure

trade-confirm write Close a registrant transfer procedure

Page 9: RoTLD REST API Documentation

9

Command hello Description: Checking API availability, server time and available commands

Input parameters:

format [string]: json|xml defaults to ‘json’ [optional]

lang [string]: en|ro defaults to ‘en’ [optional]

Returned dataset:

regid [string]

regname [string]

available_methods [list]

API result codes:

00200

CURL INPUT EXAMPLE:

curl -k -u rotest:rotest --digest -d "command=hello" -d "format=json" https://rest2-test.rotld.ro:6080

JSON OUTPUT EXAMPLE: { "srv_localtime": "2011-10-11 10:58:50 EEST", "time_execution": "1ms", "srv_timestamp": 1318319930.2792709, "reqid": "hello.4e93f73ab10e890c410036f6", "result_blockmess": "OPERATION EXECUTED SUCCESSFULLY", "error": 0, "data": {

"regid": "rotest", "regname": " TEST REGISTRAR", "available_methods":

["trade-info", "nameserver-create", "domain-activate", "domain-info", "domain-trade", "contact-update", "domain-register", "check-balance", "nameserver-info", "contact-create", "contact-info", "check-availability", "nameserver-update", "domain-reset-ns", "domain-transfer", "domain-renew", "trade-confirm", "nameserver-delete", "hello"]

}, "result_message": "OK", "result_code": "00200" }

Page 10: RoTLD REST API Documentation

10

Command check-availability Description: Checks the domain availability for registration or reservation

Input parameters:

format [string]: json|xml defaults to ‘json’ [optional]

lang [string]: en|ro defaults to ‘en’ [optional]

domain [string]: a valid .ro domain name [mandatory]

Returned dataset:

status [string]: Available | Not Available | Not Allowed.

API result codes:

00200

50001 50002 50501 50502

90001

CURL INPUT EXAMPLE:

curl -k -u rotest:rotest --digest -d "command=check-availability" -d "format=json" -d "domain=justadomain4test.ro" https://rest2-

test.rotld.ro:6080

JSON OUTPUT EXAMPLE: {

"srv_localtime": "2011-10-11 11:04:25 EEST",

"time_execution": "2ms",

"srv_timestamp": 1318320265.3082931,

"reqid": "check_availability.4e93f889b10e890c41003732",

"result_blockmess": "OPERATION EXECUTED SUCCESSFULLY",

"error": 0,

"data": {

"status": "Available"

},

"result_message": "OK",

"result_code": "00200"

}

JSON OUTPUT EXAMPLE WITH ERROR WHILE QUERYING FOR xn--aaaaaa.ro: { "srv_localtime": "2011-10-11 11:06:39 EEST", "time_execution": "51ms", "srv_timestamp": 1318320399.436965, "reqid": "check_availability.4e93f90fb10e890c41003734", "result_blockmess": "PARAMETER ERROR", "error": 1, "data": {

"status": "Not Allowed" },

"result_message": "UNICODE CHARACTER NOT SUPPORTED", "result_code": "50501" }

Page 11: RoTLD REST API Documentation

11

Command domain-info Description: Get information about a .ro registered/reserved .ro domain and which is administered by the registrar.

Access to other domains, that are not administered by registrar, is denied.

Input parameters:

format [string]: json|xml defaults to ‘json’ [optional]

lang [string]: en|ro defaults to ‘en’ [optional]

domain [string]: a .ro valid domain name [mandatory]

Returned dataset:

domain [string]: the domain name subject to the query

last_ownership_transfer_date [datetime]: defaults to empty

nameservers[list]: the list of nameservers where domain zone is located

expiration_date[datetime]: empty for non-yearly payable maintenance fee

registration_date[datime]

last_registrar_transfer_date[datetime]: defaults to empty

hosts[list]: list of hosts declared under the parent domain

last_update_date[datetime]: last date time when the domain has been updated

deletion_date[datetime]: the date and time when the domain is scheduled for deletion. Defaults to empty.

registrant_id[string]: the CID of the registrant needed to fetch registrant data using contact-info

statuses[list]: list of domain statuses

API result codes:

00200

50001 50002 50501 50502

10001 10002

90001

CURL INPUT EXAMPLE:

curl -k -u rotest:rotest --digest -d "command=domain-info" -d "domain=rnc.ro" https://rest2-test.rotld.ro:6080

JSON OUTPUT EXAMPLE: {"

srv_localtime": "2011-10-11 11:23:29 EEST",

"time_execution": "7ms",

"srv_timestamp": 1318321409.3089509,

"reqid": "domain_info.4e93fd01b10e890c41003764",

"result_blockmess": "OPERATION EXECUTED SUCCESSFULLY",

"error": 0,

"data": {

"domain": "rnc.ro",

"last_ownership_transfer_date": "",

"nameservers": ["ns.rnc.ro", "ns-a.rnc.ro"],

"expiration_date": "",

"registration_date": "1996-01-01 00:00:00",

"last_registrar_transfer_date": "",

"hosts": ["ns-a.rnc.ro", "ns.rnc.ro", "ns3.rnc.ro", "ns4.rnc.ro", "rx.rnc.ro", "s2.rnc.ro", "ns2.rnc.ro", "ns1.rnc.ro"],

"last_update_date": "2011-07-12 11:37:12",

"deletion_date": "",

Page 12: RoTLD REST API Documentation

12

"registrant_id": "C538089",

"statuses": ["OK"]

},

"result_message": "OK",

"result_code": "00200"

}

JSON OUTPUT EXAMPLE WITH ERROR WHEN THE DOMAIN IS NOT ADMINISTERED BY REGISTRAR: {

"srv_localtime": "2011-10-11 11:22:20 EEST",

"time_execution": "4ms",

"srv_timestamp": 1318321340.899569,

"reqid": "domain_info.4e93fcbcb10e890c41003762",

"result_blockmess": "OBJECT ERROR",

"error": 1,

"data": {

"domain": "rotld.ro"

},

"result_message": "DOMAIN BELONGS TO ANOTHER REGISTRAR",

"result_code": "10002"

}

Page 13: RoTLD REST API Documentation

13

Command nameserver-info Description: Get information about a .ro nameserver and which is administered by the registrar. Access to other

nameservers, that are not administered by registrar, is denied.

Input parameters:

format [string]: json|xml defaults to ‘json’ [optional]

lang [string]: en|ro defaults to ‘en’ [optional]

nameserver [string]: a .ro valid nameserver [mandatory]

Returned dataset:

nameserver [string]: the nameserver subject to the query

registration_date[datime]

last_update_date[datetime]: last date time when the domain has been updated

usage_count[integer]: the number of domains using this nameserver

ips[dict]: a two keyword dictionary, ipv4 and ipv6

ipv4 [list]: list of ipv4 IPs

ipv6 [list]: list of ipv6 IPs

statuses[list]: list of nameserver statuses

API result codes:

00200

50007 50008

10006 10007 10008

90001

CURL INPUT EXAMPLE:

curl -k -u rotest:rotest --digest -d "command=nameserver-info" -d "nameserver= ns.rnc.ro " https://rest2-test.rotld.ro:6080

JSON OUTPUT EXAMPLE: {

"srv_localtime": "2011-10-11 12:06:34 EEST",

"time_execution": "63ms",

"srv_timestamp": 1318323994.7714469,

"reqid": "nameserver_info.4e94071ab10e890c410037de",

"result_blockmess": "OPERATION EXECUTED SUCCESSFULLY",

"error": 0,

"data": {

"ips": {

"ipv4": ["192.162.16.21"],

"ipv6": []

},

"usage_count": 73,

"last_update_date": "2011-07-12 11:37:12",

"nameserver": "ns.rnc.ro",

"registration_date": "2008-06-14 17:03:50",

"statuses": ["OK"]

},

"result_message": "OK",

"result_code": "00200"

}

Page 14: RoTLD REST API Documentation

14

Command contact-info Description: Get information about a registrant (domain holder) and which is administered by the registrar. Access to

other registrants, that are not administered by registrar, is denied.

Input parameters:

format [string]: json|xml defaults to ‘json’ [optional]

lang [string]: en|ro defaults to ‘en’ [optional]

cid [string]: registrant id [mandatory]

Returned dataset:

cid [string]: the registrant id subject to the query

registrant_id [string]: same as cid

registration_date[datime]

last_update_date[datetime]: last date time when the registrant has been updated

name[string]: full name of the registrant

address1[string]

address2[string]

address3[string]

city[string]

state_province[string]

postal_code[string]

country_code[string]

phone[string]

fax[string]

email[string]

person_type[string]: p|ap|nc|c|gi|pi|o|j

statuses[list]: list of contact statuses

API result codes:

00200

50005 50006

10003 10004

90001

Person types:

p = person

ap = authorized person

j = juridical person (available only for the registrants registered previous to the

release of this API)

nc = non-commercial

c = commercial

gi = government institution

pi = public institution

o = other

Page 15: RoTLD REST API Documentation

15

CURL INPUT EXAMPLE:

curl -k -u rotest:rotest --digest -d "command=contact-info" -d "cid=C538089" https://rest2-test.rotld.ro:6080

JSON OUTPUT EXAMPLE: { "srv_localtime": "2011-10-11 12:30:37 EEST", "time_execution": "8ms", "srv_timestamp": 1318325437.3345611, "reqid": "contact_info.4e940cbdb10e890c4100388a", "result_blockmess": "OPERATION EXECUTED SUCCESSFULLY", "error": 0, "data": {

"fax": "", "registration_date": "2011-07-12 11:25:34", "address1": "Strada 9 Mai", "address2": "", "address3": "", "phone": "+40.276387676", "postal_code": "", "country_code": "RO", "last_update_date": "", "registrant_id": "C538089", "statuses": ["OK"], "state_province": "", "city": "kjhskjfh", "name": "Radu Marius Boncea", "cid": "C538089", "person_type": "p", "email": [email protected] },

"result_message": "OK", "result_code": "00200" }

Page 16: RoTLD REST API Documentation

16

Command contact-create Description: Create a registrant object and retrieve the registrant id (CID).

Input parameters:

format [string]: json|xml defaults to ‘json’ [optional]

lang [string]: en|ro defaults to ‘en’ [optional]

name [string:utf-8] [mandatory]: the name of the person or the company who holds the right of use for the

domain name. Max Length: 128 chars. Min. Length: 2 chars.

address1 [string:utf-8] [mandatory]: Max Length: 128 chars. Min. Length: 2 chars.

address2[string:utf-8] [optional]: Max Length: 128 chars. Min. Length: 2 chars.

address3[string:utf-8] [optional]: Max Length: 128 chars. Min. Length: 2 chars.

city[string:utf-8] [mandatory]: Max Length: 40 chars. Min. Length: 2 chars.

state_province[string:utf-8] [optional]: Max Length: 40 chars. Min. Length: 2 chars.

postal_code[string:utf-8] [optional]: Max Length: 40 chars. Min. Length: 2 chars.

country_code[mandatory]: 2 chars country code according to ISO 3166-1-alpha-2

http://dev.rotld.ro/documents/iso-3166-2-code-countries-list

phone [string:ascii] [mandatory]: Mandatory format: +ccc.nnnnnnnnn (E.G. +40.727636787) where ccc is the

country code (http://countrycode.org/) and nnnnnnnnn is the local number. Max Length: 20 chars.

fax[string:ascii] [optional]: Mandatory format: same as the phone number format. Max Length: 20 chars.

email[string:ascii] ] [mandatory] : Max Length: 128 chars.

person_type[string] [mandatory] : Pemited values: p|ap|nc|c|gi|pi|o

cnp_fiscal_code[string:utf-8] [mandatory]: An identification number for pesons (personl ID, passport number,

driving license, etc),fiscal code for companies or other unique identification number or sequence of characters

for juridical entities. Mandatory for Romanian entities. Optional for foreigners. Max Length: 40 chars. Min.

Length: 5 chars.

registration_number [string:utf-8] [optional]. Mandatory for Romanian companies or other juridical entities

(where person_type is one of (nc,c,gi,pi,o)). Optional for foreigners. Max Length: 40 chars.

Returned dataset:

cid [string]: the registrant id subject to the query

API result codes:

00200

50101 50102 50105 50106 50107 50108 50109 50110 50111 50112 50113 50114 50115 50116

50117 50118 50119 50120 50121 50122 50123 50124 50128 50129 50130 50131 50132 50133

0136 50137

10203

90001

Person types: p = person

ap = authorized person

nc = non-commercial

c = commercial

gi = government institution

pi = public institution

o = other

Page 17: RoTLD REST API Documentation

17

CURL INPUT EXAMPLE:

curl -k --u rotest:rotest --digest -d "command=contact-create" -d "format=json" --data-urlencode "name=Radu Boncea" --data-

urlencode "address1=Strada 9 Mai Nr.6" --data-urlencode "address2=Bl.1, Sc.1, Ap.1, Et.1" --data-urlencode "city=Bucuresti" --data-

urlencode "state_province=Sector 6" --data-urlencode "phone=+40.7263888" --data-urlencode "[email protected]" --data-

urlencode "country_code=RO" --data-urlencode "person_type=p" --data-urlencode "cnp_fiscal_code=19999999999999"

https://rest2-test.rotld.ro:6080

JSON OUTPUT EXAMPLE: { "srv_localtime": "2011-10-24 12:59:15 EEST", "time_execution": "6ms", "srv_timestamp": 1319450355.4329031, "reqid": "contact_create.4ea536f3b10e89124e0033f2", "result_blockmess": "OPERATION EXECUTED SUCCESSFULLY", "error": 0, "data": {

"cid": "C613876" },

"result_message": "OK", "result_code": "00200" }

Page 18: RoTLD REST API Documentation

18

Command domain-renew Description: Extend the domain expiration date with a given number of years. This command is available only for

renewable domains and specific registrars. The command will affect the registrar trade balance with a sum equal to

domain_period*fee.

Input parameters:

format [string]: json|xml defaults to ‘json’ [optional]

lang [string]: en|ro defaults to ‘en’ [optional]

domain [string]: a .ro domain [mandatory]

domain_period [mandatory] [a number between 1 and 10]. The domain_period will be added to the current

domain expiration date. The new domain expiration date should not exceed 10 years from the moment of

issuing the command. A year has 365 days and it does not account the leap years.

Returned dataset:

expiration_date [string]: The new expiration date.

domain[string:ascii]: The domain subject to the renew.

balance[numeric]: the new balance equals domain_period*fee

fee[numeric]: total cost of the operation

API result codes:

00200

50001 50002 50015 50016 50022

20001 20002

10001 10002 10506 10508

40002

90001

CURL INPUT EXAMPLE:

curl -k -u rotest:rotest --digest -d "command=domain-renew" -d "domain=testingrenew.ro" -d "domain_period=1" https://rest2-

test.rotld.ro:6080

JSON OUTPUT EXAMPLE: { "srv_localtime": "2011-10-24 13:23:08 EEST", "time_execution": "10ms", "srv_timestamp": 1319451788.1184211, "reqid": "domain_renew.4ea53c8cb10e89124e003444", "result_blockmess": "OPERATION EXECUTED SUCCESSFULLY", "error": 0, "data": {

"expiration_date": "2013-10-25 16:22:35", "domain": "testingrenew.ro", "balance": "98.00", "fee": "1.00" },

"result_message": "OK", "result_code": "00200" }

Page 19: RoTLD REST API Documentation

19

Command contact-update Description: Update registrant data, except for protected fields: name, cnp_fiscal_code, registration_number,

person_type. Registrar can update only the registrants that he manages.

Input parameters:

format [string]: json|xml defaults to ‘json’ [optional]

lang [string]: en|ro defaults to ‘en’ [optional]

cid [string]: registrant id [mandatory]

address1 [string:utf-8] [mandatory]: Max Length: 128 chars. Min. Length: 2 chars.

address2[string:utf-8] [optional]: Max Length: 128 chars. Min. Length: 2 chars.

address3[string:utf-8] [optional]: Max Length: 128 chars. Min. Length: 2 chars.

city[string:utf-8] [mandatory]: Max Length: 40 chars. Min. Length: 2 chars.

state_province[string:utf-8] [optional]: Max Length: 40 chars. Min. Length: 2 chars.

postal_code[string:utf-8] [optional]: Max Length: 40 chars. Min. Length: 2 chars.

country_code[mandatory]: 2 chars country code according to ISO 3166-1-alpha-2

http://dev.rotld.ro/documents/iso-3166-2-code-countries-list

phone [string:ascii] [mandatory]: Mandatory format: +ccc.nnnnnnnnn (E.G. +40.727636787) where ccc is the

country code (http://countrycode.org/) and nnnnnnnnn is the local number. Max Length: 20 chars.

fax[string:ascii] [optional]: Mandatory format: same as the phone number format. Max Length: 20 chars.

email[string:ascii] ] [mandatory] : Max Length: 128 chars.

Returned dataset:

Empty dataset

API result codes:

00200

50005 50006 50105 50106 50107 50108 50109 50110 50111 50112 50113 50114 50115 50116

50117 50118 50119 50120 50121 50122 50123 50124

10003 10004

90001

CURL INPUT EXAMPLE:

curl -k --u rotest:rotest --digest -d "command=contact-update" -d "format=json" -d "cid=C609899" --data-urlencode

"address1=Strada 9 Mai Nr.6" --data-urlencode "address2=Bl.1, Sc.1, Ap.1, Et.1" --data-urlencode "city=Bucuresti" --data-urlencode

"state_province=Sector 6" --data-urlencode "phone=+40.7263888" --data-urlencode "[email protected]" --data-urlencode

"country_code=RO" https://rest2-test.rotld.ro:6080

JSON OUTPUT EXAMPLE: { "srv_localtime": "2011-10-25 09:17:20 EEST", "time_execution": "85ms", "srv_timestamp": 1319523440.8486021, "reqid": "contact_update.4ea65470b10e89124e003cc8", "result_blockmess": "OPERATION EXECUTED SUCCESSFULLY", "error": 0, "data": {}, "result_message": "OK", "result_code": "00200"

Page 20: RoTLD REST API Documentation

20

}

Command nameserver-create Description: Create a nameserver/host for a .ro domain. Registrar can create hosts only for the domains which are

administered by the registrar. The operation will fail if the domain has one of the following status codes:

UpdateProhibited, Reserved, PendingDelete.

Input parameters:

format [string]: json|xml defaults to ‘json’ [optional]

lang [string]: en|ro defaults to ‘en’ [optional]

nameserver [string:ascii][mandatory]

ips[string:ascii] [mandatory]: A comma separated list of IPs. Maximum allowed number of IPs is 2. IP version

support:IPv4 and IPv6. E.g.: 196.102.12.1, 2001:db8::1428:57ab

Returned dataset:

Empty dataset

API result codes:

00200

50007 50008 50019 50020 50021

10007 10014 10015 10503 10202

90001

CURL INPUT EXAMPLE:

curl -k -u rotest:rotest –digest -d "command=nameserver-create" -d "nameserver=ns.test-28-09.ro" --data-urlencode

"ips=196.102.12.1, 2001:db8::1428:57ab" https://rest2-test.rotld.ro:6080

JSON OUTPUT EXAMPLE: { "srv_localtime": "2011-10-25 09:42:33 EEST", "time_execution": "71ms", "srv_timestamp": 1319524953.2332749, "reqid": "nameserver_create.4ea65a59b10e89124e003d1c", "result_blockmess": "OPERATION EXECUTED SUCCESSFULLY", "error": 0, "data": {}, "result_message": "OK", "result_code": "00200" }

Page 21: RoTLD REST API Documentation

21

Command nameserver-update Description: Update the IPs of a nameserver/host administered by the registrar. The operation will fail if the parent

domain has one of the following status codes: UpdateProhibited, Reserved, PendingDelete. The operation will also fail if

the nameserver has one of the following status codes: UpdateProhibited, PendingDelete.

Input parameters:

format [string]: json|xml defaults to ‘json’ [optional]

lang [string]: en|ro defaults to ‘en’ [optional]

nameserver [string:ascii][mandatory]

ips[string:ascii] [optional]: A comma separated list of IPs. Maximum allowed number of IPs is 2. IP version

support:IPv4 and IPv6. E.g.: 196.102.12.1, 2001:db8::1428:57ab

Returned dataset:

nameserver [string]: The nameserver subject of the operation

parent_domain [string]: The parent domain of the nameserver

deleted_ips[list]: The list of IPs deleted and replaced with the new provided IPs

API result codes:

00200

50007 50008 50019 50020 50021

10006 10007 10008 10504 10505

90001

CURL INPUT EXAMPLE:

curl -k -u rotest:rotest -d "command=nameserver-update" -d "format=json" -d "nameserver=ns.test-28-09.ro" --data-urlencode

"ips=10.10.10.10" https://rest2-test.rotld.ro:6080

JSON OUTPUT EXAMPLE: { "srv_localtime": "2011-10-25 10:02:29 EEST", "time_execution": "10ms", "srv_timestamp": 1319526149.0575359, "reqid": "nameserver_update.4ea65f05b10e89124e003d32", "result_blockmess": "OPERATION EXECUTED SUCCESSFULLY", "error": 0, "data": {

"nameserver": "ns.test-28-09.ro", "parent_domain": "test-28-09.ro", "deleted_ips": ["2001:db8:0:0:0:0:1428:57ab", "196.102.12.1"] },

"result_message": "OK", "result_code": "00200" }

Page 22: RoTLD REST API Documentation

22

Command nameserver-delete Description: Delete a nameserver/host administered by the registrar. The operation will fail if the nameserver has one

of the following status codes: DeleteProhibited. The operation will also fail if the nameserver is in usage, attached for

resolving other domains.

Input parameters:

format [string]: json|xml defaults to ‘json’ [optional]

lang [string]: en|ro defaults to ‘en’ [optional]

nameserver [string:ascii][mandatory]

Returned dataset:

Empty dataset

API result codes:

00200

50007 50008 50019 50020 50021

10006 10007 10008 10510 10511

90001

CURL INPUT EXAMPLE:

curl -k -u rotest:rotest -d "command=nameserver-delete" -d "format=json" -d "nameserver=ns.test-28-09.ro" https://rest2-

test.rotld.ro:6080

JSON OUTPUT EXAMPLE: { "srv_localtime": "2011-10-25 10:33:36 EEST", "time_execution": "9ms", "srv_timestamp": 1319528016.02946, "reqid": "nameserver_delete.4ea66650b10e89124e003d9a", "result_blockmess": "OPERATION EXECUTED SUCCESSFULLY", "error": 0, "data": {}, "result_message": "OK", "result_code": "00200" }

Page 23: RoTLD REST API Documentation

23

Command domain-register Description: Register or reserve a .ro domain. The operation will fail if registrar balance value is less than the fee for

registering the domain.

Considerations:

1. Non-Yearly domains

a. Do not expire and do not need renewal

b. The fee is constant

2. Yearly domains

a. The expiration date will be the registration date plus the period(years)*365(days).

b. The total fee is equal to period*one-year-fee.

3. Registering a domain

a. Will debit from the registrar balance immediately

b. The domain will have the status OK, can be updated and will be written in DNS

4. Reserving a domain

a. Will not debit.

b. The domain will have the status RESERVED, it will not be updated nor resolved by DNS

c. Will require an activation command.

d. The same domain can be reserved two times.

e. The reserved domains which are not confirmed/activated will be deleted after a period of time.

Input parameters:

format [string]: json|xml defaults to ‘json’ [optional]

lang [string]: en|ro defaults to ‘en’ [optional]

domain [string:ascii] [mandatory]: a .ro domain

reservation [optional] [0|1 defaults to 0]. If “1” the domain will be reserved, if “0” or not present, the domain

will be registered.

c_registrant [string] [mandatory]: The registrant contact ID (a registrant must be created before registering the

domain).

domain_password[string:ascii][optional]: If not present, a password will be generated by the system. If present,

the password must have max length: 40 chars, min.length: 6 chars. Regexp: r"^[a-z0-9\-

\.\,\:\;\[\]\{\}\_\+\=\@\#\$\^\*\?\!\|\~]{6,40}$",re.IGNORECASE

domain_period [optional][a number between 1 and 10]. For non-yearly domains, the parameter is neglected.

For yearly domains, if not present, the parameter will default to 1. The domain expiration date should not

exceed 10 years from the moment of issuing the command. A year has 365 days and it does not account the leap

years.

Returned dataset:

domain[string:ascii]: The domain subject to the registration/reservation.

balance[numeric]: the new balance

fee[numeric]: total cost of the operation. If the domain is reserved, the fee will be 0.00.

registration_date [string]

expiration_date [string]: Empty for non-yearly domains.

registrant_id [string]

Page 24: RoTLD REST API Documentation

24

API result codes:

00200

50001 50002 50009 50010 50014 50016 50601

20001 20002

10009 10010 10011 10016 10101 10201

90001

CURL INPUT EXAMPLE FOR REGISTERING A NON-YEARLY DOMAIN :

curl -k -u rotest:rotest --digest -d "command=domain-register" -d "format=json" -d "domain=testing-registration.ro" --data-

urlencode "c_registrant=C614082" --data-urlencode "domain_password=somepassword" --data-urlencode "domain_period=1" --

data-urlencode "reservation=0" https://rest2-test.rotld.ro:6080

Some parameters can be ignored. The above is the same with:

curl -k -u rotest:rotest --digest -d "command=domain-register" -d "format=json" -d "domain=testing-registration.ro" --data-

urlencode "c_registrant=C614082" https://rest2-test.rotld.ro:6080

JSON OUTPUT EXAMPLE: {

"srv_localtime": "2011-10-25 13:45:00 EEST",

"time_execution": "543ms",

"srv_timestamp": 1319539500.245991,

"reqid": "domain_register.4ea6932cb10e89124e003f64",

"result_blockmess": "OPERATION EXECUTED SUCCESSFULLY",

"error": 0,

"data": {

"domain": "testing-registration.ro",

"fee": "1.00",

"expiration_date": "",

"registration_date": "2011-10-25 13:45:00",

"balance": "82712.42",

"registrant_id": "C614082"

},

"result_message": "OK", "result_code": "00200" }

CURL INPUT EXAMPLE FOR RESERVING A NON-YEARLY DOMAIN :

curl -k -u rotest:rotest --digest -d "command=domain-register" -d "format=json" -d "domain=testing-registration.ro" --data-

urlencode "c_registrant=C614082" --data-urlencode "reservation =1" https://rest2-test.rotld.ro:6080

Page 25: RoTLD REST API Documentation

25

Command domain-activate Description: Confirm/activate a domain reservation. The operation will debit from registrar balance.

Input parameters:

format [string]: json|xml defaults to ‘json’ [optional]

lang [string]: en|ro defaults to ‘en’ [optional]

domain [string:ascii] [mandatory]: a .ro domain

Returned dataset:

domain[string:ascii]

balance[numeric]: the new balance

fee[numeric]: total cost of the operation.

registration_date [string]

expiration_date [string]: Empty for non-yearly domains.

registrant_id [string]

API result codes:

00200

50001 50002 50009 50010 50014 50016 50601

20001 20002

10009 10010 10011 10016 10101 10201

90001

CURL INPUT EXAMPLE :

curl -k -u rotest:rotest --digest -d "command=domain-activate" -d "format=json" -d "domain=testing-registration.ro" https://rest2-

test.rotld.ro:6080

JSON OUTPUT EXAMPLE: {

"srv_localtime": "2011-10-25 13:45:00 EEST",

"time_execution": "543ms",

"srv_timestamp": 1319539500.245991,

"reqid": "domain_activate.4ea6932cb10e89124e003f64",

"result_blockmess": "OPERATION EXECUTED SUCCESSFULLY",

"error": 0,

"data": {

"domain": "testing-registration.ro",

"fee": "1.00",

"expiration_date": "",

"registration_date": "2011-10-25 13:45:00",

"balance": "82712.42",

"registrant_id": "C614082"

},

"result_message": "OK", "result_code": "00200" }

Page 26: RoTLD REST API Documentation

26

Command domain-reset-ns Description: Replace current domain nameservers with the new provided. The new nameservers must have been

previously created, except for non-.ro nameservers (E.G. ns.domain.ro must exists, while ns.domain.com, if does not

exist, will be created by the system). The operation will fail if the domain has one of the following status codes:

UpdateProhibited, Reserved, PendingDelete.

Input parameters:

format [string]: json|xml defaults to ‘json’ [optional]

lang [string]: en|ro defaults to ‘en’ [optional]

domain [string:ascii] [mandatory]: a .ro domain

nameservers [string:ascii] [mandatory]: A comma separated list of nameservers. Maximum allowed number of

nameservers is 6. If nameservers parameter is empty, the current nameservers of the domain will be deleted,

thus the domain will have no nameservers declared.

Returned dataset:

Empty dataset

API result codes:

00200

50001 50002 50008 50017 50018

10014 10202 10501 10502

90001

CURL INPUT EXAMPLE :

curl -k -u rotest:rotest --digest -d "command=domain-reset-ns" -d "format=json" -d "domain=testing-registration.ro" --data-

urlencode "nameservers=ns.testing-registration.ro,ns2.testing-registration.ro" https://rest2-test.rotld.ro:6080

JSON OUTPUT EXAMPLE: {

"srv_localtime": "2011-10-27 09:53:46 EEST",

"time_execution": "11ms",

"srv_timestamp": 1319698426.062572,

"reqid": "domain_reset_ns.4ea8fffab10e89124e005014",

"result_blockmess": "OPERATION EXECUTED SUCCESSFULLY",

"error": 0,

"data": {},

"result_message": "OK",

"result_code": "00200"

}

Page 27: RoTLD REST API Documentation

27

Command domain-transfer Description: Transfer the domain to the registrar who is issuing the command. Check on “Domain Transfer Workflow”

for more details. A domain cannot be transferred to or from a registrar that administers yearly-domains. Domain

transfer is free of charge. The operation will fail if the domain has one of the following status codes: TransferProhibited,

Reserved.

Input parameters:

format [string]: json|xml defaults to ‘json’ [optional]

lang [string]: en|ro defaults to ‘en’ [optional]

domain [string:ascii] [mandatory]: a .ro domain

authorization_key [string:alphanum] [mandatory]: the authorization key provided by the registrant

Returned dataset:

Empty dataset

API result codes:

00200

50001 50002 50028 50030

40002

10014 10512

90001

CURL INPUT EXAMPLE :

curl -k -u rotest:rotest --digest -d "command=domain-transfer" -d "format=json" -d "domain=testing-registration.ro" --data-

urlencode "authorization_key=BPKerUnZM7vhy2A" https://rest2-test.rotld.ro:6080

JSON OUTPUT EXAMPLE: {

"srv_localtime": "2011-10-27 10:27:05 EEST",

"time_execution": "321ms",

"srv_timestamp": 1319700425.063729,

"reqid": "domain_transfer.4ea907c9b10e89124e0050f8",

"result_blockmess": "OPERATION EXECUTED SUCCESSFULLY",

"error": 0,

"data": {},

"result_message": "OK",

"result_code": "00200"

}

Page 28: RoTLD REST API Documentation

28

Command domain-trade Description: Initiate a procedure for transferring the right of use for a .ro domain to a new registrant. Check on “Domain

Trade Workflow” for more details. The operation will fail if the domain has one of the following status codes:

RegistrantTransferProhibited, RegistrantPendingTransfer, PendingDelete.

Input parameters:

format [string]: json|xml defaults to ‘json’ [optional]

lang [string]: en|ro defaults to ‘en’ [optional]

domain [string:ascii] [mandatory]: a .ro domain

authorization_key [string:alphanum] [mandatory]: the authorization key provided by the registrant.

c_registrant [string] [mandatory]: The new registrant contact ID (a registrant must be created before).

domain_password[string:ascii][optional]: If not present, a password will be generated by the system. If present,

the password must have max length: 40 chars, min.length: 5 chars. Regexp: r"^[a-z0-9\-

\.\,\:\;\[\]\{\}\_\+\=\@\#\$\^\*\?\!\|\~]{5,40}$",re.IGNORECASE

Returned dataset:

tid[integer]: the transaction identification number

API result codes:

00200

50001 50002 50009 50010 50014 50028

40002

10010 10014 10019 10205 10513 10514

90001

CURL INPUT EXAMPLE :

curl -k -u rotest:rotest --digest -d "command=domain-trade" -d "format=json" -d "domain=testing-registration.ro" --data-urlencode

"authorization_key=hp9BVumyMAb5qX2H" https://rest2-test.rotld.ro:6080

JSON OUTPUT EXAMPLE: {

"srv_localtime": "2011-10-27 11:09:45 EEST",

"time_execution": "16ms",

"srv_timestamp": 1319702985.9672761,

"reqid": "domain_trade.4ea911c9b10e89124e00519c",

"result_blockmess": "OPERATION EXECUTED SUCCESSFULLY",

"error": 0,

"data": {"tid": "44"},

"result_message": "OK",

"result_code": "00200"}

Page 29: RoTLD REST API Documentation

29

Command trade-info Description: Get information about a trade procedure. Check on “Domain Trade Workflow” for more details. Registrars

may only query the trades initiated by themselves.

Input parameters:

format [string]: json|xml defaults to ‘json’ [optional]

lang [string]: en|ro defaults to ‘en’ [optional]

tid [integer] [mandatory]: a trade id

Returned dataset:

status[integer:0|1]: the status of the trade: 0 is the trade is opened, 1 if the trade has been successfully closed.

domain[string:ascii]: the domain subject to the trade

registry_confirm[integer:0|1]: 0 if the trade procedure has not been yet confirmed, 1 if the registry has verified

all conditions and agreed

registrar_confirm[integer:0|1]: 0 if the registrar who initiated the procedure has not confirmed the trade, 1 if

the registrar has agreed.

expiration_date[string]: the date when the trade procedure will expire. After expiration, the trade will be

deleted.

registration_date[string]: the date when the trade has been initiated

close_date[string]: the date when the trade procedure has ended successfully (trade status has become 1)

tid[integer]: the trade id

registrant_id [string]: the new registrant id

API result codes:

00200

50001 50002 50009 50010 50014 50028

40002

10010 10014 10019 10205 10513 10514

90001

CURL INPUT EXAMPLE :

curl -k -u rotest:rotest --digest -d "command=trade-info" -d "format=json" -d "tid=44" https://rest2-test.rotld.ro:6080

JSON OUTPUT EXAMPLE: {

"srv_localtime": "2011-10-27 16:01:05 EEST",

"time_execution": "5ms",

"srv_timestamp": 1319720465.20824,

"reqid": "trade_info.4ea95611b10e89124e00567c",

"result_blockmess": "OPERATION EXECUTED SUCCESSFULLY",

"error": 0,

"data": {

"status": "0",

Page 30: RoTLD REST API Documentation

30

"domain": " testing-registration.ro",

"registry_confirm": 0,

"expiration_date": "2011-12-10",

"registration_date": "2011-10-26",

"close_date": "",

"registrar_confirm": 0,

"tid": "44",

"registrant_id": "C614408"

},

"result_message": "OK",

"result_code": "00200"

}

Page 31: RoTLD REST API Documentation

31

Command trade-confirm Description: Close a trade procedure. This operation will change:

the registrant to the new registrant provided with “domain-trade”.

the registrar to the new registrar who issued the command “domain-trade”.

the registrar balance. The trade fee is equal to the registration fee.

Important Note: The changes will be committed only if the registry has also confirmed the trade.

The operation will fail if the domain has one of the following status codes upon committing :

RegistrantTransferProhibited, PendingDelete.

Input parameters:

format [string]: json|xml defaults to ‘json’ [optional]

lang [string]: en|ro defaults to ‘en’ [optional]

tid [integer] [mandatory]: a trade id

Returned dataset:

Empty dataset

API result codes:

00200

50029

10014 10020 10021 10022 10023 10024 10513

20001

90001

CURL INPUT EXAMPLE :

curl -k -u rotest:rotest --digest -d "command=trade-confirm" -d "format=json" -d "tid=44" https://rest2-test.rotld.ro:6080

JSON OUTPUT EXAMPLE: {

"srv_localtime": "2011-10-31 08:56:34 EET",

"time_execution": "37ms",

"srv_timestamp": 1320044194.4098179,

"reqid": "trade_confirm.4eae46a2b10e89124e006b02",

"result_blockmess": "OPERATION EXECUTED SUCCESSFULLY",

"error": 0,

"data": {},

"result_message": "OK",

"result_code": "00200"

}

Page 32: RoTLD REST API Documentation

32

Returned Codes

Blocks { '00':{'en':'OPERATION EXECUTED SUCCESSFULLY','ro':'OPERATIA A FOST EXECUTATA CU SUCCES'}, '10':{'en':'OBJECT ERROR','ro':'EROARE OBIECT'}, '20':{'en':'BILLING ERROR','ro':'EROARE TAXARE'}, '40':{'en':'REGISTRAR ERROR','ro':'EROARE REGISTRAR'}, '50':{'en':'PARAMETER ERROR','ro':'EROARE PARAMETRU'}, '60':{'en':'UNCAUGHT EXCEPTION RAISED','ro':'EROARE NEDEFINITA'}, '80':{'en':'API METHOD ERROR','ro':'EROARE API'}, '90':{'en':'SERVICE UNAVAILABLE','ro':'SERVICIU INDISPONIBIL'}, }

Codes { '00200':{'en':'OK','ro':'OK'}, '10001':{'en':'DOMAIN NOT FOUND','ro':'DOMENIUL NU EXISTA'}, '10002':{'en':'DOMAIN BELONGS TO ANOTHER REGISTRAR','ro':'DOMENIUL APARTINE UNUI ALT REGISTRAR'}, '10003':{'en':'CONTACT NOT FOUND','ro':'CONTACTUL NU EXISTA'}, '10004':{'en':'CONTACT BELONGS TO ANOTHER REGISTRAR','ro':'CONTACTUL APARTINE UNUI ALT REGISTRAR'}, '10005':{'en':'CONTACT HAS NO POSTAL DATA','ro':'CONTACTUL NU ARE NICI O ADRESA POSTALA ATASATA'}, '10006':{'en':'NAMESERVER NOT FOUND','ro':'NAMESERVER-UL NU EXISTA'}, '10007':{'en':'NAMESERVER NOT DELEGATED TO .RO REGISTRY','ro':'NAMESERVER-UL NU ESTE ADMINISTRAT DE REGISTRUL .RO'}, '10008':{'en':'NAMESERVER BELONGS TO ANOTHER REGISTRAR','ro':'NAMESERVER-UL APARTINE UNUI ALT REGISTRAR'}, '10009':{'en':'DOMAIN NAME IS ALREADY REGISTERED','ro':'DOMENIUL ESTE DEJA INREGISTRAT'}, '10010':{'en':'REGISTRANT CONTACT NOT FOUND','ro':'CONTACTUL DE TIP REGISTRANT NU EXISTA'}, '10011':{'en':'REGISTRANT CONTACT BELONGS TO ANOTHER REGISTRAR','ro':'CONTACTUL DE TIP REGISTRANT APARTINE UNUI ALT REGISTRAR'}, '10014':{'en':'DOMAIN NAME IS NOT REGISTERED','ro':'DOMENIUL NU ESTE INREGISTRAT'}, '10015':{'en':'NAMESERVER ALREADY REGISTERED','ro':'NAMESERVER-UL ESTE DEJA INREGISTRAT'}, '10016':{'en':'DOMAIN NAME CAN NOT BE RESERVED. TOO MANY RESERVATIONS FOR THIS DOMAIN.','ro':'DOMENIUL NU POATE FI REZERVAT. PREA MULTE REZERVARI PE ACEST NUME.'}, '10017':{'en':'DOMAIN NAME RESERVATION ALREADY CONFIRMED','ro':'DOMENIUL A FOST DEJA CONFIRMAT'}, '10018':{'en':'CONTACT NOT IN USE BY ANY DOMAIN','ro':'CONTACTUL NU ESTE FOLOSIT DE NICIUN DOMENIU'}, '10019':{'en':'CONTACT IN USE','ro':'CONTACTUL IN FOLOSINTA'}, '10020':{'en':'TRADE REQUEST FOR THIS DOMAIN NOT FOUND','ro':'CEREREA DE TRANSFER DREPT DE FOLOSINTA PENTRU ACEST DOMENIU NU EXISTA'}, '10021':{'en':'ACCESS TO THIS TRADE REQUEST RESTRICTED','ro':'ACCESUL LA ACEASTA CERERE ESTE RESTRICTIONAT'}, '10022':{'en':'THIS TRADE REQUEST HAS ALREADY BEEN CONFIRMED BY REGISTRAR','ro':'ACEASTA CERERE DE TRANSFER DREPT DE FOLOSINTA A FOST DEJA CONFIRMATA DE CATRE REGISTRAR'}, '10023':{'en':'THIS TRADE REQUEST HAS ALREADY BEEN CONFIRMED BY REGISTRY','ro':'ACEASTA CERERE DE TRANSFER DREPT DE FOLOSINTA A FOST DEJA CONFIRMATA DE CATRE REGISTRU'}, '10024':{'en':'REGISTRANT ID NOT FOUND, OPERATION ABORTED','ro':'REGISTRANTUL NU EXISTA, OPERATIA A ESUAT'}, '10101':{'en':'REGISTRANT CONTACT ALREADY ASSOCIATED WITH ANOTHER DOMAIN','ro':'CONTACTUL DE TIP REGISTRANT ESTE ASOCIAT UNUI ALT DOMENIU'}, '10102':{'en':'TECHNICAL CONTACT ALREADY ASSOCIATED WITH ANOTHER DOMAIN','ro':'CONTACTUL DE TIP TECHNICAL ESTE ASOCIAT UNUI ALT DOMENIU'}, '10201':{'en':'ERROR WHILE FETCHING NEXT DOMAIN ID','ro':'EROARE LA OBTINEREA ID-ULUI PENTRU DOMENIU'}, '10202':{'en':'ERROR WHILE FETCHING NEXT NAMESERVER ID','ro':'EROARE LA OBTINEREA ID-ULUI PENTRU NAMESERVER'}, '10203':{'en':'ERROR WHILE FETCHING NEXT CONTACT ID','ro':'EROARE LA OBTINEREA ID-ULUI PENTRU CONTACT'}, '10204':{'en':'ERROR WHILE FETCHING NEXT REGISTRAR ID','ro':'EROARE LA OBTINEREA ID-ULUI PENTRU REGISTRAR'},

Page 33: RoTLD REST API Documentation

33

'10205':{'en':'ERROR WHILE FETCHING NEXT TRADE ID','ro':'EROARE LA OBTINEREA ID-ULUI PENTRU TRANSFER DREPT DE FOLOSINTA'}, '10501':{'en':'DOMAIN CAN NOT BE UPDATED, DOMAIN STATUS PROHIBITS THIS OPERATION','ro':'DOMENIUL NU POATE FI MODIFICAT, STAREA DOMENIULUI NU PERMITE ACEASTA OPERATIE'}, '10502':{'en':'UPDATING DOMAIN NAMESERVERS FAILED, NAMESERVER NOT REGISTERED','ro':'MODIFICAREA DOMENIULUI CU NOILE NAMESERVERE A ESUAT, NAMESERVER NEINREGISTRAT'}, '10503':{'en':'CAN NOT CREATE NAMESERVER, PARENT DOMAIN STATUS PROHIBITS THIS OPERATION','ro':'NU SE POATE CREA NAMESERVER-UL, STAREA DOMENIULUI PARINTE NU PERMITE ACEASTA OPERATIE'}, '10504':{'en':'CAN NOT UPDATE NAMESERVER, PARENT DOMAIN STATUS PROHIBITS THIS OPERATION','ro':'NU SE POATE MODIFICA NAMESERVER-UL, STAREA DOMENIULUI PARINTE NU PERMITE ACEASTA OPERATIE'}, '10505':{'en':'NAMESERVER CAN NOT BE UPDATED, NAMESERVER STATUS PROHIBITS THIS OPERATION','ro':'NAMESERVER-UL NU POATE FI MODIFICAT, STAREA NAMESERVER-ULUI NU PERMITE ACEASTA OPERATIE'}, '10506':{'en':'RENEW PROHIBITED, DOMAIN STATUS PROHIBITS THIS OPERATION','ro':'PRELUNGIREA DOMENIULUI ESTE INTERZISA, STAREA DOMENIULUI NU PERMITE ACEASTA OPERATIE'}, '10507':{'en':'CONTACT CAN NOT BE UPDATED, CONTACT STATUS PROHIBITS THIS OPERATION','ro':'CONTACTUL NU POATE FI MODIFICAT, STAREA CONTACTULUI NU PERMITE ACEASTA OPERATIE'}, '10508':{'en':'DOMAIN CAN NOT BE RENEWED','ro':'DOMENIUL NU POATE FI PRELUNGIT'}, '10509':{'en':'DOMAIN CAN NOT BE DELETED, DOMAIN STATUS PROHIBITS THIS OPERATION','ro':'DOMENIUL NU POATE FI STERS, STAREA DOMENIULUI NU PERMITE ACEASTA OPERATIE'}, '10510':{'en':'NAMESERVER CAN NOT BE DELETED, NAMESERVER STATUS PROHIBITS THIS OPERATION','ro':'NAMESERVER-UL NU POATE FI STERS, STAREA SA NU PERMITE ACEASTA OPERATIE'}, '10511':{'en':'NAMESERVER CAN NOT BE DELETED, NAMESERVER IS ASSOCIATED WITH OTHER DOMAINS','ro':'NAMESERVER-UL NU POATE FI STERS, NAMESERVER-UL ESTE ASOCIAT CU ALTE DOMENII'}, '10512':{'en':'TRANSFER PROHIBITED, DOMAIN STATUS PROHIBITS THIS OPERATION','ro':'TRANSFERAREA DOMENIULUI ESTE INTERZISA, STAREA DOMENIULUI NU PERMITE ACEASTA OPERATIE'}, '10513':{'en':'TRADE PROHIBITED, DOMAIN STATUS PROHIBITS THIS OPERATION','ro':'TRASFERUL DREPTULUI DE FOLOSINTA AL DOMENIULUI ESTE INTERZISA, STAREA DOMENIULUI NU PERMITE ACEASTA OPERATIE'}, '10514':{'en':'CAN NOT OPEN NEW TRADE REQUEST, THERE IS ALREADY ONE OPENED','ro':'NU SE POATE DESCHIDE O CERERE DE TRANSFER PENTRU ACEST DOMENIU, EXISTA DEJA UNA IN LUCRU'}, '20001':{'en':'NULL/ZERO BALANCE','ro':'BALANTA ZERO/NULL'}, '20002':{'en':'INSUFFICIENT FUNDS','ro':'FONDURI INSUFICIENTE'}, '40001':{'en':'REGISTRAR ACCOUNT NOT ACTIVE','ro':'CONTUL REGISTRARULUI NU ESTE ACTIV'}, '40002':{'en':'OPERATION NOT SUPPORTED FOR YOUR REGISTRAR TYPE','ro':'OPERATIE NU ESTE SUPORTATA PENTRU TIPUL DE PARTENERIAT'}, '40003':{'en':'API ACCESS DENIED','ro':'ACCES API RESTRICTIONAT'}, '40004':{'en':'REGISTRAR NOT FOUND','ro':'REGISTRAR INEXISTENT'}, '40404':{'en':'REGISTRAR NOT ALLOWED FROM THIS REMOTE IP','ro':'ACCESUL REGISTRARULUI DE LA ACEST IP NU ESTE PERMISA'}, '40405':{'en':'NO REGISTRAR BALANCE AVAILABLE','ro':'BALANTA REGISTRARULUI NU ESTE DISPONIBILA'}, '50001':{'en':'DOMAIN NAME PARAMETER MISSING','ro':'LIPSESTE PARAMETRUL NUME DOMENIU'}, '50002':{'en':'INVALID .RO DOMAIN NAME','ro':'NUMELE DE DOMENIU ESTE INVALID'}, '50003':{'en':'YYYYMM PARAMETER MISSING','ro':'LIPSESTE PARAMETRUL YYYYMM'}, '50004':{'en':'YYYYMM PARAMETER INVALID','ro':'PARAMETRUL YYYYMM ESTE INVALID'}, '50005':{'en':'CONTACT ID {CID} PARAMETER MISSING','ro':'LIPSESTE PARAMETRUL CONTACT ID {CID}'}, '50006':{'en':'INVALID CONTACT ID {CID}','ro':'CONTACT ID {CID} ESTE INVALID'}, '50007':{'en':'NAMESERVER PARAMETER MISSING','ro':'LIPSESTE PARAMETRUL NAMESERVER'}, '50008':{'en':'INVALID NAMESERVER','ro':'NAMESERVER ESTE INVALID'}, '50009':{'en':'REGISTRANT CONTACT ID PARAMETER MISSING','ro':'ID-UL CONTACTULUI DE TIP REGISTRANT LIPSESTE'}, '50010':{'en':'INVALID REGISTRANT CONTACT ID','ro':'ID-UL CONTACTULUI DE TIP REGISTRANT ESTE INVALID'}, '50011':{'en':'TECHNICAL CONTACT ID PARAMETER MISSING','ro':'ID-UL CONTACTULUI DE TIP TECHNICAL LIPSESTE'}, '50012':{'en':'INVALID TECHNICAL CONTACT ID','ro':'ID-UL CONTACTULUI DE TIP TECHNICAL ESTE INVALID'}, '50013':{'en':'DOMAIN PASSWORD PARAMETER MISSING','ro':'LIPSESTE PARAMETRUL PAROLA DOMENIU'}, '50014':{'en':'INVALID DOMAIN PASSWORD','ro':'PAROLA DE DOMENIU ESTE INVALIDA'}, '50015':{'en':'DOMAIN PERIOD PARAMETER MISSING','ro':'LIPSESTE PARAMETRUL PERIOADA DOMENIU'}, '50016':{'en':'INVALID DOMAIN PERIOD','ro':'PERIOADA PENTRU DOMENIU ESTE INVALIDA'}, '50017':{'en':'NAMESERVERS PARAMETER MISSING','ro':'LIPSESTE PARAMETRUL NAMESERVERS'}, '50018':{'en':'MAXIMUM NUMBER OF NAMESERVERS [6] EXCEEDED','ro':'NUMARUL MAXIM DE NAMESERVERE PERMISE [6] A FOST DEPASIT'}, '50019':{'en':'IPS PARAMETER MISSING','ro':'LIPSESTE PARAMETRUL IPS'},

Page 34: RoTLD REST API Documentation

34

'50020':{'en':'INVALID IP ADDRESS','ro':'ADRESA IP ESTE INVALIDA'}, '50021':{'en':'MAXIMUM NUMBER OF IPS [2] EXCEEDED','ro':'NUMARUL MAXIM DE IP-URI PERMISE [2] A FOST DEPASIT'}, '50022':{'en':'DOMAIN EXPIRE DATE EXCEEDS 10 YEARS FROM NOW','ro':'DATE DE EXPIRARE A DOMENIULUI DEPASESTE 10 ANI FATA DE MOMENTUL ACTUAL'}, '50023':{'en':'IDNUM1 PARAMETER MISSING','ro':'LIPSESTE PARAMETRUL IDNUM1'}, '50024':{'en':'{IDNUM1} PARAMETER INVALID ','ro':'PARAMETRUL {IDNUM1} ESTE INVALID'}, '50025':{'en':'{IDNUM2} PARAMETER INVALID ','ro':'PARAMETRUL {IDNUM2} ESTE INVALID'}, '50026':{'en':'INVALID CONTACT ID','ro':'ID-UL CONTACTULUI ESTE INVALID'}, '50027':{'en':'INVALID DOMAIN STATUS','ro':'STATUS DOMENIU INVALID'}, '50028':{'en':'INVALID AUTHORIZATION KEY','ro':'CHEIA DE AUTORIZARE INVALIDA'}, '50029':{'en':'{TID} PARAMETER INVALID ','ro':'PARAMETRUL {TID} ESTE INVALID'}, '50030':{'en':'CAN NOT TRANSFER THE DOMAIN TO THE SAME REGISTRAR','ro':'NU SE POATE TRANSFERA DOMENIUL CATRE ACELASI REGISTRAR'}, '50101':{'en':'{NAME} REQUIRED','ro':'PARAMETRUL {NAME} OBLIGATORIU'}, '50102':{'en':'{NAME} INVALID','ro':'PARAMETRUL {NAME} INVALID'}, '50103':{'en':'{ORGANIZATION} REQUIRED','ro':'PARAMETRUL {ORGANIZATION} OBLIGATORIU'}, '50104':{'en':'{ORGANIZATION} INVALID','ro':'PARAMETRUL {ORGANIZATION} INVALID'}, '50105':{'en':'{PHONE} REQUIRED','ro':'PARAMETRUL {PHONE} OBLIGATORIU'}, '50106':{'en':'{PHONE} INVALID','ro':'PARAMETRUL {PHONE} INVALID'}, '50107':{'en':'{FAX} REQUIRED','ro':'PARAMETRUL {FAX} OBLIGATORIU'}, '50108':{'en':'{FAX} INVALID','ro':'PARAMETRUL {FAX} INVALID'}, '50109':{'en':'{EMAIL} REQUIRED','ro':'PARAMETRUL {EMAIL} OBLIGATORIU'}, '50110':{'en':'{EMAIL} INVALID','ro':'PARAMETRUL {EMAIL} INVALID'}, '50111':{'en':'{ADDRESS1} REQUIRED','ro':'PARAMETRUL {ADDRESS1} OBLIGATORIU'}, '50112':{'en':'{ADDRESS1} INVALID','ro':'PARAMETRUL {ADDRESS1} INVALID'}, '50113':{'en':'{ADDRESS2} REQUIRED','ro':'PARAMETRUL {ADDRESS2} OBLIGATORIU'}, '50114':{'en':'{ADDRESS2} INVALID','ro':'PARAMETRUL {ADDRESS2} INVALID'}, '50115':{'en':'{ADDRESS3} REQUIRED','ro':'PARAMETRUL {ADDRESS3} OBLIGATORIU'}, '50116':{'en':'{ADDRESS3} INVALID','ro':'PARAMETRUL {ADDRESS3} INVALID'}, '50117':{'en':'{CITY} REQUIRED','ro':'PARAMETRUL {CITY} OBLIGATORIU'}, '50118':{'en':'{CITY} INVALID','ro':'PARAMETRUL {CITY} INVALID'}, '50119':{'en':'{COUNTRY_CODE} REQUIRED','ro':'PARAMETRUL {COUNTRY_CODE} OBLIGATORIU'}, '50120':{'en':'{COUNTRY_CODE} INVALID','ro':'PARAMETRUL {COUNTRY_CODE} INVALID'}, '50121':{'en':'{STATE_PROVINCE} REQUIRED','ro':'PARAMETRUL {STATE_PROVINCE} OBLIGATORIU'}, '50122':{'en':'{STATE_PROVINCE} INVALID','ro':'PARAMETRUL {STATE_PROVINCE} INVALID'}, '50123':{'en':'{POSTAL_CODE} REQUIRED','ro':'PARAMETRUL {POSTAL_CODE} OBLIGATORIU'}, '50124':{'en':'{POSTAL_CODE} INVALID','ro':'PARAMETRUL {POSTAL_CODE} INVALID'}, '50125':{'en':'{COUNTRY_CODE} INVALID OR NOT SUPPORTED','ro':'{COUNTRY_CODE} ESTE INVALID SAU NERECUNOSCUT'}, '50126':{'en':'{REGID} REQUIRED','ro':'PARAMETRUL {REGID} OBLIGATORIU'}, '50127':{'en':'REGISTRAR {PASSWORD} REQUIRED','ro':'PARAMETRUL {PASSWORD} OBLIGATORIU PENTRU REGISTRAR'}, '50128':{'en':'{CNP_FISCAL_CODE} REQUIRED','ro':'{CNP_FISCAL_CODE} OBLIGATORIU'}, '50129':{'en':'{CNP_FISCAL_CODE} INVALID','ro':'{CNP_FISCAL_CODE} INVALID'}, '50130':{'en':'{REGISTRATION_NUMBER} REQUIRED','ro':'{REGISTRATION_NUMBER} OBLIGATORIU'}, '50131':{'en':'{REGISTRATION_NUMBER} INVALID','ro':'{REGISTRATION_NUMBER} INVALID'},

Page 35: RoTLD REST API Documentation

35

'50136':{'en':'{PERSON_TYPE} REQUIRED','ro':'{PERSON_TYPE} OBLIGATORIU'}, '50137':{'en':'{PERSON_TYPE} INVALID','ro':'{PERSON_TYPE} INVALID'}, '50501':{'en':'UNICODE CHARACTER NOT SUPPORTED','ro':'CARACTER UNICODE NEPERMIS'}, '50502':{'en':'DOMAIN NAME CONTAINS CHARACTERS FROM DIFFERENT SUBSETS','ro':'DOMENIUL CONTINE CARACTERE DIN SUBSETURI DIFERITE'}, '50601':{'en':'DOMAIN HAS BAD WORDS','ro':'DOMENIUL CONTINE CUVINTE OBSCENE SAU FILTRATE'}, '60001':{'en':'EXECUTING COMMAND FAILED','ro':'EXECUTIA COMENZII A ESUAT'}, '80001':{'en':'INVALID CALL ON RESOURCE','ro':'APELUL RESURSEI ESTE INVALID'}, '80002':{'en':'UNSUPPORTED REQUEST METHOD. ACCEPTING ONLY "POST" CALLS','ro':'METODA CERERII NU ESTE SUPORTATA. SUNT ACCEPTATE DOAR CERERI DE TIP "POST"'}, '80003':{'en':'INVALID COMMAND','ro':'COMANDA INVALIDA'}, '90001':{'en':'UNCAUGHT EXCEPTION RAISED','ro':'EROARE PRIN EXCEPTIE'}, '90002':{'en':'METHOD NOT AVAILABLE TO REGISTRAR','ro':'METODA NU ESTE DISPONIBILA REGISTRARULUI'}, '90003':{'en':'ERROR WHILE FETCHING NEXTVAL FROM SEQUENCE','ro':'EROARE LA OBTINEREA VALORII DIN SECVENTA'}, '90004':{'en':'MONGODB IS DOWN','ro':'MONGODB ESTE NEFUNCTIONALA'}, '90005':{'en':'INVALID MONGO OBJECTID','ro':'OBJECTID INVALID PENTRU MONGODB'}, }