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
|