The Registry Advantage
Introduction to SRP version 1.1.1 Syntax

General Syntax

SRP commands follow a standard syntax. The client will send a command string, followed by a carriage return (CR) character (ASCII code 13) followed by a linefeed (LF) character (ASCII code 10). The server will reply with a response string, followed by a CR-LF combination. Because CR and LF characters are used to delineate individual commands and responses, neither commands nor responses may include CR or LF characters.

Command Syntax
All command strings are formed using the following syntax:

command [parameter argument] [parameter argument]…

Each line consists of the command, followed by zero or more parameters. Each parameter must be followed by an argument. Commands, parameters and arguments are separated by one or more whitespace (space or tab) characters.

Parameters may be transmitted in any order, but the argument for each parameter must directly follow the parameter name. For example, both of the following command strings are equivalent:

create_ns ns_name ns1.example.ie ip 192.168.1.1
create_ns ip 192.168.1.1 ns_name ns1.example.ie

Argument Syntax
Arguments may take one of two forms: variables or lists. Variables consist of a single value, while lists consist of one or more values. For each parameter, the appropriate type of argument (variable or list) is specified, and only that type of argument will be accepted.

Variables
Variables are transmitted by simply supplying the appropriate value. For variables that consist of strings containing white space characters, the data should be enclosed with quotation marks. Either single quotes or double quotes may be used. If it is necessary to transmit a value with either a single or a double quote, the other type of quote should be used to enclose the value. This is an example of a value with a single quote mark:

"John O'Rourke"

In this case, double quotes are used to enclose the value. This is an example of a value with double quote marks:

'71 "T" Street'

In this case, single quotes are used to enclose the value. Either single or double quote marks may be used to surround a value that does not require quote marks, for example this example is valid although the quote marks are unnecessary:

"example"

Lists
Lists consist of one or more values. The syntax for a list is as follows:

number value1 [value2] [value3]…

The number is the number of values within the list. The individual values follow the number. Values are separated by one or more white space characters. In the event that a value contains white space characters, it should be enclosed in quotation marks. Rules for quotation marks follow the same conventions described for variables. An example of a list containing the two values "dns1.example.ie" and "dns2.example.ie" follows:

2 dns1.example.ie dns2.example.ie

Examples
Although the specific details of the following commands are provided later in this document, several examples are provided here in order to demonstrate the proper command and response syntax.

The simplest commands require no parameters. For example, the logout command requires no parameters, as follows:

logout

Other commands require one or more variable type argument, as in the example below:

check_domain fqdn example.ie

Commands that are more complex require multiple arguments, often of mixed types, such as the create_domain command:

create_domain fqdn example.ie term 2 registrant EX123 admin_contact AC123 tech_contact TC123 nameservers 2 ns1.other.ie ns2.other.ie

Response Syntax
Responses consist of two parts: a numeric response code, and additional data. The numeric response will be separated from the rest of the data by a single space character.

The additional data will be structured into parameter/value pairs in the same format used in command syntax. All commands will return the parameter message, and some commands may return additional parameters upon their completion. The message parameter provides a description of the result, such as "Success", "Contact exists" or "Failure".

Examples
An example of a text response is below, triggered by the check_contact command, which returns only the message parameter:

check_contact contact_id 4321
0101 message "Contact exists"

The info_contact command returns additional parameters, as below:

info_contact contact_id 4321
0100 name "John Smith" organization "Widget Co." address1 "34 Main Street" city Anytown state NY zip 12345 country US phone +1.518.555.5555 email john@example.ie password mypassword registrar domainsrus create_date "01-01-2004 03:04:05" create_entity domainsrus update_date "01-01-2004 03:04:05" update_entity domainsrus linked 0 status 1 OK

Dates
All dates are provided in the following format:

MM-DD-YYYY HH:MI:SS

Where "MM" means the two digit month, "DD" means the two digit day, "YYYY" indicates the four digit year, "HH" is the two digit hour on a twenty-four hour clock, "MI" is the two digit minutes, and "SS" is the two digit seconds. For example, the date December 3, 2004 at 8:35:00 P.M. would be indicated as follows:

12-03-2004 20:35:00

Transport
A lightweight and simple transport layer is used to transmit SRP command strings. Some protection for framing errors is provided, although the transport is designed to operate on top of TCP.

The SRP transport defines messages as consisting of a header, body, and trailer. A complete example is shown below:

!S00000010!bc!5·j~Dk!OÓ^³4Ï^@^LK¤!E

The example shows a single command, "test", with no arguments. The command is being sent using the blowfish cipher (see below).

The header is a fixed length, at 14 bytes. It begins with the characters "!S" and is terminated by the "!" character. In between is an eight digit hexadecimal number indicating the length of the body (the header and trailer are not included in this count). The number is followed by another "!", after which comes the two character encoding indicator (see below). The trailer is simply "!E".

In this example, the word "test" in clear text, is sent as an encrypted string. The length of the body specified by the hexadecimal number should be the length of that encrypted string.

For example, the clear text string "test", when encrypted using blowfish, would need to be padded to eight bytes, using the number of data bytes as the padding value. So, the string passed to the blowfish cipher would in fact be "test4444", which might be returned as the encrypted string "5·j~Dk!OÓ^³4Ï^@^LK¤", using a key of "testtesttest". This would have a length of 16 characters, expressed as the hexadecimal number 10 (see above).

If, however, the clear text data were instead "testword", which is a full eight bytes, then a second eight bytes of data should also be included with the padding value of all zeros (e.g. "testword00000000"), and might be returned as the encrypted string "½«^X]gߣäbþÍ{w^_Á*~P^Oku=~V~_", with a length of 24 expressed as the hexadecimal number 18.

Please note that this is binary data.

The padding scheme was chosen for compatibility with older blowfish software on which this toolkit was based and may be changed at a later date to be PKCS compatible.

The header and trailer provide protection against framing errors. If the TCP/IP stack is operating properly, such errors will result only from bugs in client code or deliberate attacks.

The encoding indicator is reserved to tell the server about the format of the body (encryption type, encoding of values, etc.), but is currently restricted to "bc", for "blowfish cipher". All communications with the SRP must currently be done using blowfish encryption.

The body section of the message is thus encrypted using the type of encryption indicated by the encoding indicator, and a private key assigned by Registry Advantage. The only exception to this is the first command sent, which must be an augmented version of the login command. Within this initial login command, the password field is encrypted using the user’s “private key”, but since the session has not yet been associated with a login name, the command itself (including the now private key encrypted password) must be encrypted with a Global Key. If the login returns a success message, the user’s “private key” is used from then on to encode commands.

For example, the first data frame to be sent from the Client to the Server should be like:

!S00000020!bc!EncryptedLoginAndPasswordUsingGlobalKey!E

where the EncryptedLoginAndPasswordUsingGlobalKey is

"username EncryptedPasswordUsingPrivateKey"

encrypted with the Global key and not a login command like:

"login login username pass EncryptedPasswordUsingPrivateKey"

encrypted with the Global key.

Objects
Three types of objects exist within the SRP: domains, contacts, and name servers.

Domains
Each domain object represents one domain name within the Registry Advantage system. A summary of the fields that exist in a domain record is shown below.

fqdn

 

The name of the domain

registrant

 

The contact_id of the associated registrant

admin_contact

 

The contact_id of the associated administrative contact

tech_contact

 

The contact_id of the associated technical contact

nameservers

 

The nameservers associated with this domain

Status

 

The status of the domain

expire_date

 

The expiration date for the domain

Registrar

 

The registrar to which this domain belongs

create_date

 

The date of creation

create_entity

 

The creator of this domain

update_date

 

The date that this domain was last updated

update_entity

 

The entity who last updated the domain

Hosts

 

The nameservers that are hosted under this domain

 

Contacts
Each contact object represents one contact name within the Registry Advantage system.
A summary of the fields that exist in a contact record is shown below.

contact_id

 

The id of the contact

Name

 

The full name of the contact

Organization

 

The organization that the contact is associated with

address1

 

The first street address of the contact

address2

 

The second street address of the contact

City

 

The city that the contact resides in

State

 

The state

Zip

 

The contact’s zip code

Country

 

The contact’s country

Phone

 

The contact’s phone number

Fax

 

The contact’s fax number

Email

 

The email address of the contact

Password

 

The contact’s password

Registrar

 

The registrar to which this object belongs

create_date

 

The date of creation for this object

create_entity

 

The creator of this object

update_date

 

The date that the object was last updated

update_enitity

 

The entity who last updated this object

transfer_date

 

The date that this object was last transferred

Linked

 

Whether or not this object is linked to another

Status

 

The current status of the object

 

Nameservers
Each nameserver object represents one nameserver name within the Registry Advantage system. A summary of the fields that exist in a nameserver record is shown below.

ns_name

 

The name of the nameserver

Ip

 

The ip address of the nameserver

Registrar

 

The registrar to which this nameserver belongs

create_date

 

The creation date of this object

create_entity

 

The entity who created this object

update_date

 

The date that this object was last updated

update_entity

 

The entity who last updated this object

Linked

 

Whether or not the object is linked to another

Status

 

The current status of the nameserver

 

Statuses

Synopsis
Each of the three objects contains the field “status,” describing the current status of the object. Valid statuses include:

Codes

clientDeleteProhibited
The clientDeleteProhibited status may be added to an object by either the registrar who owns the object or the registry administrator. If an object is on clientDeleteProhibited, it may not be deleted until the status is removed.

serverDeleteProhibited
The serverDeleteProhibited is the same as the clientDeleteProhibited status, except that only the registry administrator may add or remove this status from the object. If an object is on clientDeleteProhibited, it may not be deleted until the status is removed.

clientTransferProhibited
The clientTransferProhibited status may be added to an object by either the registrar who owns the object or the registry administrator. If an object is on clientTransferProhibited, it may not be transferred until the status is removed.

serverTransferProhibited
The serverTransferProhibited is the same as the clientTransferProhibited status, except that only the registry administrator may add or remove this status from the object. If an object is on clientTransferProhibited, it may not be transferred until the status is removed.

clientUpdateProhibited
The clientUpdateProhibited status may be added to an object by either the registrar who owns the object or the registry administrator. If an object is on clientUpdateProhibited, it may not be updated until the status is removed.

serverUpdateProhibited
The serverUpdateProhibited is the same as the clientUpdateProhibited status, except that only the registry administrator may add or remove this status from the object. If an object is on clientUpdateProhibited, it may not be updated until the status is removed.

clientRenewProhibited
The clientRenewProhibited status may be added to an object by either the registrar who owns the object or the registry administrator. If an object is on clientRenewProhibited, it may not be renewed until the status is removed.

serverRenewProhibited
The serverRenewProhibited is the same as the clientRenewProhibited status, except that only the registry administrator may add or remove this status from the object. If an object is on clientRenewProhibited, it may not be renewed until the status is removed.

clientHold
An object on clientHold is not published in the DNS zone file. If it is a domain, it will not resolve until the clientHold status is removed. This status may be added to an object by either the registrar who sponsors the object or the registry administrator.

serverHold
This status is the same as the clientHold status in that it prevents the domain from being published into the DNS zone file; however, it can only be added to an object by the registry administrator.

pendingTransfer
Depending on the rules of your particular registry, the pendingTransfer status may be needed. This status is used to describe an object that is currently being transferred.

pendingDelete
This status is given to an object when it is scheduled for deletion, as long as it is not deleted within the initial grace period given. The object remains pendingDelete for a period to avoid deletion mistakes, as it is easy to reverse the deletion process during this time.

ok
This status is given to an object when no other status attributes apply. This status cannot be added or removed, except by the server.

SRP Return Codes


Synopsis
The following section describes the generic return codes that are used by the RRP. In general, codes representing success begin with “0”, while error codes begin with either “1” or “2”.

Codes

0100 – success

This code represents a successful transaction. It is returned by all commands on success.

0101 – objects exists
This code is returned by check commands if the object in question exists in the registry database.

0102 – object does not exist
This code is returned by check commands if the object in question does not exist in the registry database.

1050 – no update made
This error code is returned if there are no attributes passed. For example, if one were to send a modify command with no modifications to be made, this error code would be returned.

1201 – object does not exist
The 1201 error is returned when the user tries to access an object in the registry that does not exist. The error could potentially be returned in response to any command.

1202 – nameserver or contact does not exist

This error is returned if the user tries to use a contact of nameserver object that does not exist in the registry database. For example, if the user tries to create a domain using contacts or nameservers that are not in the database,
he or she will receive 1202 in response.

1301 – object status prohibits operation
This error is returned if the status of the object prohibits the command attempted. For example, if the user tries to delete a domain that has a CLIENT-LOCK status, he or she will receive this error in response.

1302 – nameserver or contact status prohibits operation
The 1302 error is returned if the user tries to use a contact or nameserver that has a LOCK status, or another status that prohibits the command. For example, if the user tries to use a contact that is locked in the create_domain command, he or she will receive this error is response.

1304 – object association prohibits this operation
Once an object is associated with another one in the registry, certain actions cannot be performed on it. For instance, if a contact is associated with one or more domains in the registry, one cannot delete the contact.

1305 – object already exists
This error is returned if the user tries to create an object that already exists in the registry. More than one instance of an object cannot exist in the registry database.

1306 – parent domain status prohibits operation
The 1306 error code is returned if the parent domain of an object’s status prohibits the operation. For instance, if the user tries to delete a nameserver that is hosted under a domain with a LOCK status, the server will return a 1306 error.

1401 – permission denied
This error code is returned if the user tries to perform a command on an object that he or she does not have access to.

1602 – a required parameter was omitted
This error is returned if the user tries to execute a command but is missing a required parameter.

1603 – an unrecognized parameter was passed

The 1603 error is returned if the user passes a parameter name that is not recognized.

2700 – a parameter was not properly formatted
This error code is returned if the user passes a parameter that is not properly formatted. For instance, if a list is required for the parameter and the user uses the single variable format, he or she will receive the 2700 error.

SRP Commands

login


Synopsis

login
login VARIABLE
pass VARIABLE

Description
The login command is used to authenticate the connection and gain access to the registry system. The required login and pass parameters are used to identify and authenticate the connecting entity. This command must be performed before any other commands are permitted. Upon success, the session will be associated with the login ID provided by the login parameter, and all future commands will performed with the appropriate level of permission granted to that ID.

Parameters


login
The login parameter is used to provide the login ID that identifies the connecting entity (usually a registrar). The login parameter requires a VARIABLE argument that may be up to 30 characters in length. This parameter is required as part of all login commands.

pass
The pass parameter is used to provide the password that authenticates the connecting entity. The pass parameter requires a VARIABLE argument may be up to 32 characters in length. This parameter is required as part of all login commands.

Errors

2500 – Login Failed
If a correct login and password combination is not transmitted to the server, an error of type 2500 will be returned.

Examples

login login example pass password
0100 ok

logout

Synopsis
logout

Description

The logout command is used to end a session. Once this command is issued, the session ceases to be associated with the login ID provided by the login command. No further commands may be issued, with the exception of an additional login command to re-associate the session with a login ID.

The logout command does not accept any arguments.

Examples

logout
0100 ok

create_contact

Synopsis

create_contact

[name VARIABLE]
[organization VARIABLE]
address1 VARIABLE
[address2 VARIABLE]
city VARIABLE
state VARIABLE
[zip VARIABLE]
country VARIABLE
phone VARIABLE
[fax VARIABLE]
email VARIABLE
[password VARIABLE]

Description
The create_contact command is used to create a contact object. Once created, contact objects can be associated with domain names. Values for the individual fields within the contact objects can be provided via the following parameters: name, organization, address1, address2, city, state, zip, country, phone, fax, email and password. The address1, city, state, country, phone and email parameters are required for successful contact creation. Additionally, either the name or the organization parameter must be present.

Parameters

address1
This parameter is used to provide the first line of the contact's address. This field may be up to 250 characters in length, and must be present for successful object creation.

address2
This parameter is used to provide the second line of the contact's address. This field may be up to 250 characters in length. This is an optional parameter.

city
This parameter is used to provide the contact's city. This field may be up to 50 characters in length, and must be present for successful object creation.

country
This parameter is used to provide the contact's country. This field must be 2 characters in length, and is limited to valid ISO 3166 country codes. The country field must be present for successful object creation.

email
This parameter is used to provide the contact's e-mail address. This field may be up to 80 characters in length, and must be present for successful object creation.

fax
This parameter is used to provide the contact's fax number. This field may be up to 30 characters in length, and should be in E.164 format. This is an optional parameter.

name
This parameter is used to provide the contact's name. This field may be up to 60 characters in length. Either the name or the organization field must be present for successful object creation.

organization
This parameter is used to provide the contact's organization. This field may be up to 100 characters in length. Either the name or the organization field must be present for successful object creation.

password
This parameter is used to provide a password for the contact. The password is used to authenticate the contact for functions such as transfers. The password can be up to 250 characters in length. This is an optional parameter.

phone
This parameter is used to provide the contact's phone number. This field may be up to 30 characters in length, and should be in E.164 format. This parameter is required for successful object creation.

state
This parameter is used to provide the contact's state or province. This field may be up to 50 characters in length. For U.S. states, data should be provided in two character format. This is an optional parameter.

zip
This parameter is used to provide the contact's ZIP or postal code. This field may be up to 20 characters in length, and is required for successful object creation.

Responses


contact_id
Upon successful contact creation, the server will return a contact_id. This unique identifier is used to refer to the contact object in future commands and should be stored by the client. The contact_id can be up to 25 characters in length.

Errors

1604 – Either name or organization is required
An error of type 1604 indicates that the create_contact command did not include either a name or organization parameter. At least one of these parameters must be present for successful object creation.

Examples

create_contact name "John Smith" organization "Widget Co." address1 "34 Main Street" city Anytown state NY zip 12345 country US phone +1.518.555.5555 email john@example.ie password mypassword
0100 contact_id 4321

check_contact

Synopsis
check_contact
contact_id VARIABLE

Description

The check_contact command is used to verify the existence of a contact object. The client supplies the contact_id parameter, and the server returns a simple binary response indicating whether the object is present within the database.

Parameters

contact_id
The contact_id is the identifier returned by the server at the time the contact object was created. This parameter can be up to 25 characters in length, and is required for successful command completion.

Responses

0101 – Contact exists
This response indicates that the contact object exists within the registry database.

0102 – Contact does not exist
This response indicates that the contact object does not exist within the registry database.

Examples
check_contact contact_id 4321
0101 Contact exists

info_contact

Synopsis
info_contact
contact_id VARIABLE

Description
The info_contact command is used to obtain information on an existing contact object. The client supplies the contact_id parameter, and the server returns a set of parameters containing the data for the contact object.

Parameters

contact_id
The contact_id is the identifier returned by the server at the time the contact object was created. This parameter can be up to 25 characters in length, and is required for successful command completion.

Responses

address1
address2
city
country
email
fax
name
organization
password
phone
state
zip


These parameters are described in the create_contact command. The address2, fax, name, organization, password and state parameters are optional and may not be provided by the server.

registrar
The registrar parameter provides the ID of the sponsoring entity of the contact object.

create_date
This parameter indicates the date on which the contact object was originally created.

create_entity
This parameter provides the ID of the entity (usually registry or registrar) that originally created the contact object.

update_date
This parameter indicates the date on which the contact object was last updated.

update_entity
This parameter provides the ID of the entity (usually registry or registrar) that last updated the contact object.

transfer_date
This parameter indicates the date on which the contact object was last transferred between sponsoring entities. This parameter will not appear if the object has never been transferred.

linked
The linked parameter indicates whether other objects refer to this contact object. If one or more such references exist, this parameter will have a value of 1; if no such references exist, the value will be 0.

status
This parameter provides a list of status attributes for the contact object.

Examples
info_contact contact_id 4321
0100 name "John Smith" organization "Widget Co." address1 "34 Main Street" city Anytown state NY zip 12345 country US phone +1.518.555.5555 email john@example.ie password mypassword registrar domainsrus create_date "01-01-2004 03:04:05" create_entity domainsrus update_date "01-01-2004 03:04:05" update_entity domainsrus linked 0 status 1 OK

delete_contact

Synopsis

delete_contact
contact_id VARIABLE

Description
The delete_contact command removes a contact object from the database.

Parameters

contact_id
The contact_id is the identifier returned by the server at the time the contact object was created. This parameter can be up to 25 characters in length, and is required for successful command completion.

Examples
delete_contact 4321
0100 ok

modify_contact

Synopsis

modify_contact

contact_id VARIABLE
[new_name VARIABLE]
[new_organization VARIABLE]
[new_address1 VARIABLE]
[new_address2 VARIABLE]
[new_city VARIABLE]
[new_state VARIABLE]
[new_zip VARIABLE]
[new_country VARIABLE]
[new_phone VARIABLE]
[new_fax VARIABLE]
[new_email VARIABLE]
[new_password VARIABLE]
[status_toadd LIST]
[status_toremove LIST]

Description
This command allows an existing contact object to be modified. The client identifies the object to be modified via the contact_id parameter, and then provides one or more additional parameters that are used to modify the contact's data.

Parameters

contact_id

The contact_id is the identifier returned by the server at the time the contact object was created. This parameter can be up to 25 characters in length, and is required for successful command completion.

new_address1
new_address2
new_city
new_country
new_email
new_fax
new_name
new_organization
new_password
new_phone
new_state
new_zip

These parameters are used to provide new values for the contact data fields described in the documentation for the create_contact command, above. Only those fields that are being modified should be provided—other fields will retain their existing values.

status_toadd
This parameter is used to provide a list of status attributes to be added to the contact object.

status_toremove

This parameter is used to provide a list of status attributes to be removed from the contact object.

Examples
modify_contact contact_id 4321 new_phone +1.212.555.1234 status_toadd 1 CLIENT-LOCK
0100 ok

create_ns

Synopsis

create_ns
ns_name VARIABLE
[ip VARIABLE]

Description
The create_ns command is used to create a name server object. The command takes a mandatory ns_name parameter, which is the fully qualified domain name of the name server, and an optional ip parameter that is the IP address of the name server. Name server objects must be created before the name server may be associated with domain names. For name servers within domains in the Registry Advantage system, an IP address must be provided and only the sponsoring registrar for that domain may create the name server object.

Parameters

ns_name
This parameter takes the fully qualified domain name of the name server as an argument. This parameter may be up to 255 characters in length, and is required for successful object creation.

ip
The ip parameter is used to provide the IP address of the name server, which is used to create glue records in the DNS. If the name server is within a domain managed by the Registry Advantage system, this parameter is required for successful object creation. For name servers in all other domain names, IP addresses are not allowed, and the inclusion of this parameter will generate an error. This parameter may be up to 15 characters in length.

Errors


1063 – Invalid Parameter
This error message indicates that the client has provided an ip parameter for a name server that is not within a domain managed by the Registry Advantage system.

1306 – Parent domain prohibits operation
This error message indicates that the parent domain of the name server object has one or more of the following statuses: LOCK, CLIENT-LOCK or PENDING-DELETE. These statuses prohibit the creation of name server objects within the domain.

1401 – Permission Denied
This error occurs when a client attempts to create a name server within a domain for which they are not the sponsoring registrar. This error applies only to names within domains in the Registry Advantage system.

Examples
create_ns ns_name ns1.sample.ie ip 192.168.1.1
100 ok

check_ns

Synopsis
check_ns
ns_name VARIABLE

Description
The check_ns command is used to verify the existence of a name server object. The client supplies the ns_name parameter, and the server returns a simple binary response indicating whether the object is present within the database.

Parameters
ns_name
The ns_name is the fully qualified domain name of the name server object. This parameter can be up to 255 characters in length, and is required for successful command completion.

Responses

0101 – NS exists
This response indicates that the name server object exists within the registry database.

0102 – NS does not exist
This response indicates that the name server object does not exist within the registry database.

Examples
check_ns ns_name ns1.sample.ie
0101 Contact exists

info_ns

Synopsis
check_ns
ns_name VARIABLE

Description

The info_ns command is used to obtain information on an existing name server object. The client supplies the ns_name parameter, and the server returns a set of parameters containing the data for the contact object.

Parameters

ns_name
The ns_name is the fully qualified domain name of the name server. This parameter can be up to 255 characters in length, and is required for successful command completion.

Responses

ip
This is the IP address of the name server. This parameter will only be present if the name server is within a domain in the Registry Advantage system, and can be up to 15 characters in length.

registrar
This parameter provides the sponsoring entity (usually registrar) of the name server object. This parameter may be up to 100 characters in length.

create_date
This parameter indicates the date on which the name server object was originally created.

create_entity
This parameter provides the ID of the entity (usually registry or registrar) that originally created the name server object.

update_date
This parameter indicates the date on which the name server object was last updated. This parameter will not appear if the object has never been updated.

update_entity
This parameter provides the ID of the entity (usually registry or registrar) that last updated the name server object. This parameter will not appear if the object has never been updated.

transfer_date
This parameter indicates the date on which the name server object was last transferred between sponsoring entities. This parameter will not appear if the object has never been transferred.

linked
The linked parameter indicates whether other objects refer to this name server object. If one or more such references exist, this parameter will have a value of 1; if no such references exist, the value will be 0.

status
This parameter provides a list of status attributes for the contact object. Status attributes are described a pervious section of this document.

Examples

info_ns ns_name ns1.sample.ie
0100 ip 192.168.1.1 registrar domainsrus create_date "01-01-2004 03:04:05" create_entity domainsrus linked 0 status 1 OK

delete_ns


Synopsis

delete_ns
ns_name VARIABLE

Description
The delete_ns command removes a name server object from the database.

Parameters

ns_name
The ns_name is fully qualified domain name of the name server object. This parameter can be up to 255 characters in length, and is required for successful command completion.

Examples
delete_ns ns1.example.ie
0100 ok

modify_ns

Synopsis
modify_ns
ns_name VARIABLE
[new_ip VARIABLE]
[status_toadd LIST]
[status_toremove LIST]

Description
This command allows an existing name server object to be modified. The client identifies the object to be modified via the ns_name parameter, and then provides one or more additional parameters that are used to modify the contact's data.

Parameters

ns_name
The ns_name is the fully qualified domain name of the name server. This parameter can be up to 255 characters in length, and is required for successful command completion.

new_ip
This parameter allows the IP address of the name server to be modified. If this parameter is successfully passed to the server, the IP address of the object will be changed to the value specified. This optional parameter can be up to 15 characters in length, and should be in dotted quad format.

status_toadd
This parameter is used to provide a list of status attributes to be added to the name server object. Status attributes are described in the beginning of this document in the section entitled Statuses.

status_toremove
This parameter is used to provide a list of status attributes to be removed from the name server object.

Examples
modify_ns ns_name ns1.example.ie new_ip 10.20.30.40 status_toadd 1 CLIENT-LOCK
0100 ok

create_domain


Synopsis
create_domain

fqdn VARIABLE
term VARIABLE
registrant VARIABLE
admin_contact VARIABLE
tech_contact VARIABLE
[nameservers LIST]

Description
The create_domain command is used to create a domain object within the registry. The client provides a fully qualified domain name, registration term, registrant, admin contact, technical contact, and optional list of name servers to provide the necessary data to create the object.

Parameters

fqdn
This parameter is the fully qualified domain name. The fqdn may be up to 255 characters in length, and is required for successful object creation. Any given fqdn may only be registered once within the Registry Advantage system.

term
This parameter is the term of the registration, in years. This parameter must always be a positive integer.

registrant
This parameter is the contact id of the contact that is to be used as the registrant for the domain. The registrant’s information is subject to the rules of the TLD to which you are adding the domain. If the contact is missing required fields by the rules of the TLD, the domain will not be created.

admin_contact
This parameter is the contact id of the contact that is to be used as the administrative contact for the domain. Again, the contact’s information is subject to the rules of the TLD to which you are adding the domain.

tech_contact
This parameter is the contact id of the contact that is to be used as the technical contact for the domain. Again, the contact’s information is subject to the rules of the TLD to which you are adding the domain.

nameservers
This parameter is an optional list of nameservers to associate with the domain. If nameservers are not added on creation, they may be added later through the modify_domain command. Nameservers that are to be associated with the domain must exist in the registry prior to use.

Examples

create_domain fqdn new_domain.ag term 2 registrant 1234 admin_contact 2345 tech_contact 3456 nameservers 1 ns1.register.com
0100 ok

check_domain

Synopsis
check_domain
fqdn VARIABLE

Description
The check_domain command is used to verify the existence of a domain object. The client supplies the fqdn parameter, which is simply the domain name, and the server returns a simple binary response indicating whether the object is present within the registry database.

Parameters

fqdn
This parameter is simply the name of the domain in question. This parameter can be up to 63 characters in general, but can vary by TLD. The parameter is required for successful command completion.

Responses

0101 – Domain exists
This response indicates that the domain object exists within the registry database.

0102 – Domain does not exist
This response indicates that the domain object does not exist within the registry database.

Examples
Check_domain fqdn registry_advantage.sc
0102 Domain does not exist

info_domain
Synopsis

info_domain
fqdn VARIABLE
Description
The info_domain command is used to obtain information on an existing domain object. The client supplies the parameter fqdn, which is simply the name of the domain, and the server returns a set of parameters containing the data for the domain object.
Parameters

fqdn
The fqdn parameter is simply the name of the domain that is to be queried. This parameter can be up to 63 characters in general, but the maximum length may vary by TLD. This parameter is required for successful completion of the command.

Responses

registrant
This parameter provides the contact id of the registrant associated with this domain. This parameter may be up to 25 characters long.

admin_contact
This parameter is the contact id of the administrative contact associated with this domain. This parameter may be up to 25 characters long.

tech_contact
This parameter is the contact id of the technical contact associated with this domain. This parameter may be up to 25 characters long.

nameservers
This parameter is a list of the nameservers that are currently associated with this domain. It is optional and will not be returned if there are no nameservers associated with the domain.

hosts
This parameter is a list of the nameservers that are currently hosted under this domain. It is optional and will not be returned if there are no nameservers hosted under this domain.

expire_date
This is the expiration date of the domain. It is returned in the format:
MM-DD-YYYY HH24:MI:SS.

registrar
This parameter provides the name of the registrar who registered the domain.

create_date
This parameter is the date that the domain was created. It is returned in the format: MM-DD-YYYY HH24:MI:SS.

create_entity
This parameter is the id of the creator of the domain. This will usually be a registrar or registry.

update_date
This parameter provides the date that the last update was made to the domain. It is returned in the format: MM-DD-YYYY HH24:MI:SS. If the domain has never been updated, this parameter will not be returned.

update_entity
This parameter provides the ID of the entity (usually registry or registrar) that last updated the domain object. This parameter will not appear if the object has never been updated.

transfer_date
This parameter indicates the date on which the domain object was last transferred between sponsoring entities. This parameter will not appear if the object has never been transferred.

status
This parameter provides a list of status attributes for the domain object.

Examples
info_domain fqdn fake_domain.nr
0100 registrant “1234” admin_contact “2345” tech_contact “3456” nameservers 1 “ns1.register.com” hosts 1 “ns99.fake_domain.nr” expire_date “01-01-2004 03:04:05” registrar regcom create_date “01-01-2001 03:04:05” create_entity “regcom” update_date “02-01-2001 05:06:07” update_entity “regcom” status 1 ok

delete_domain

Synopsis

delete_domain
fqdn VARIABLE

Description
The delete_domain command removes a domain object from the database.

Parameters

fqdn
The fqdn parameter is simply the name of the domain to be deleted. This parameter can be up to 63 characters in general but can vary by TLD. The domain must exist in the registry database to be successfully deleted.

Examples
delete_domain fqdn not_needed.ag
0100 ok

modify_domain

Synopsis
modify_domain
fqdn VARIABLE
[new_registrant VARIABLE]
[new_admin_contact VARIABLE]
[new_tech_contact VARIABLE]
[nameservers_toadd LIST]
[nameservers_toremove LIST]
[status_toadd LIST]
[status_toremove LIST]

Description
The modify_domain command allows an existing domain object to be modified. The client identifies the object to be modified via the fqdn parameter, and then provides one or more additional parameters that are used to modify the domain’s data. If no additional parameters are passed, no update is made.

Parameters

fqdn
The fqdn parameter is simply the name of the domain that is to be modified. The domain object must already exist in the registry database to be modified.

new_registrant
The new_registrant parameter is the contact id of a contact that is to become the registrant for this domain. The contact must already exist in the registry database to be used.

new_admin_contact
This parameter is the contact id of a contact that is to become the administrative contact for this domain. The contact must already exist in the registry database to be used.

new_tech_contact
This parameter is the contact id of a contact that is to become the technical contact for this domain. The contact must already exist in the registry database to be used.

nameservers_toadd
This parameter is a list of nameservers to associate with this domain. Each of the nameservers must already exist in the registry database to prior to use.

nameservers_toremove
This parameter is a list of nameservers to disassociate with the domain. Each of the nameservers in the list must currently be associated with the domain.

status_toadd
The status_toadd parameter is a list of statuses to add for this domain.

status_toremove
This parameter is a list of statuses to remove from the domain. Each of the statuses in the list must currently be associated with the domain.

Examples

modify_domain fqdn my_house.sc new_registrant 1234 new_tech_contact 2345 nameservers_toadd 1 “ns1.register.com” status_toad 1 CLIENT-LOCK
0100 ok

renew_domain

Synopsis

renew_domain
fqdn VARIABLE
term VARIABLE
current_exp_year VARIABLE

Description
The renew_domain command renews the domain provided by the parameter fqdn for the number of years specified by the parameter term. The variable current_exp_year is required as a fail-safe mechanism to stop accidental repetition of the command. Generally, a domain may not be renewed beyond 10 years from the present date. This may vary, however, by the rules of your particular registry.

Parameters

fqdn
The fqdn parameter is simply the name of the domain to be renewed. The domain must exist in the database to be renewed.

term
This parameter is the number of years that the domain specified via the fqdn parameter is to be extended.

current_exp_year
The current_exp_year parameter is the year that the domain currently expires. This parameter is required as a fail-safe mechanism to stop accidental repetition of the renew_domain command.

Examples
renew_domain fqdn fake_domain.sc term 2 current_exp_year 2001
0100 ok