Warning: Declaration of syntax_plugin_code_code::handle($match, $state, $pos, &$handler) should be compatible with DokuWiki_Syntax_Plugin::handle($match, $state, $pos, Doku_Handler $handler) in /home/u3984cns/web/epp-drs.com/public_html/docs/wiki/lib/plugins/code/syntax/code.php on line 33

Warning: Declaration of syntax_plugin_code_code::render($mode, &$renderer, $data) should be compatible with DokuWiki_Syntax_Plugin::render($format, Doku_Renderer $renderer, $data) in /home/u3984cns/web/epp-drs.com/public_html/docs/wiki/lib/plugins/code/syntax/code.php on line 33

Warning: Cannot modify header information - headers already sent by (output started at /home/u3984cns/web/epp-drs.com/public_html/docs/wiki/lib/plugins/code/syntax/code.php:33) in /home/u3984cns/web/epp-drs.com/public_html/docs/wiki/inc/actions.php on line 38

Warning: Cannot modify header information - headers already sent by (output started at /home/u3984cns/web/epp-drs.com/public_html/docs/wiki/lib/plugins/code/syntax/code.php:33) in /home/u3984cns/web/epp-drs.com/public_html/docs/wiki/lib/tpl/dokuwiki/main.php on line 12
wiki:epp-drs.api [EPP-DRS Documentation]

User Tools

Site Tools


wiki:epp-drs.api

EPP-DRS API

Anatomy of API call

All input parameters to the API are transmitted as HTTP Query Parameters. Both GET and POST Requests are accepted.

API URL

Transaction ID

In every response from EPP-DRS, you will find a string element called transactionId. This is simply a unique identifier EPP-DRS assigns to this request for tracking and troubleshooting purposes.

Common parameters

Name Description
keyId An API key, generated by EPP-DRS. Can be found in Control panel → Settings → API settings
signature Signature that signs each and every API request. Instructions on how to generate this signature can be found below
version API version. 20111014 is the latest
action Action to trigger. See the list of actions

Generate signature

To create the signature

  1. Create the canonicalized query string that you need later in this procedure:
    1. Sort the UTF-8 query string components by parameter name with natural byte ordering. The parameters can come from the GET URI or from the POST body (when Content-Type is application/x-www-form-urlencoded).
    2. URL encode the parameter name and values
    3. Concatinate name and values to a single string (eg. var1value1var2value2)
  2. Calculate an RFC 2104-compliant HMAC with the string you just created, your API Access Key (You can get it on 'Control Panel → Settings → API settings' page) as the key, and SHA1 as the hash algorithm. For more information, go to http://www.ietf.org/rfc/rfc2104.txt.
  3. Make the resulting value base64 encoded.
  4. Use the Resulting value as the value of the Signature request parameter.

Sample request

https://epp-drs.com/api.php?action=listContacts
&version=20090622
&keyId=kRFRw0vnj88%3D
&query=C000
&limit=-1
&signature=v8x1nc%2FtND%2FHf3UgV9nd8Wi0lk4%3D

Sample response

<?xml version="1.0"?>
<listContactsResponse>
  <contactList>
    <contact>
      <clid>C000000042262-KZ</clid>
      <name>Marat Komarov</name>
      <email>marat@webta.net</email>
    </contact>
    <contact>
      <clid>C000-443042426</clid>
      <name>Kazimir Malevich</name>
      <email>kazi@painter.com</email>
    </contact>
  </contactList>
  <total>35</total>
  <transactionId>456b7dc4-aa34-4f28-8e13-361eb1205a7a</transactionId>
</listContactsResponse>

Sample error response

<?xml version="1.0"?>
<error>
  <message>'locked' parameter is required</message>
  <transactionId>d5c1bb92-4c55-4d1e-a92c-63ab3783f31d</transactionId>
</error>

Actions

getTldInfo

Get TLD meta information: - registration period, - domain extra fields - transfer options - renewal options - etc…

Request parameters

Name Type Description
tld string Domain extension

Sample request

https://epp-drs.com/api.php?action=getTldInfo
&version=20090622
&keyId=kRFRw0vnj88%3D
&tld=asia
&signature=QeT0rFZcHeZ9zHBdO6SweQykXfw%3D

Sample response

<?xml version="1.0"?>
<getTldInfoResponse>
  <registration>
    <minPeriod>1</minPeriod>
    <maxPeriod>10</maxPeriod>
    <extraFields>
      <field>
        <description>Local presence for .ASIA domain registrations
        </description>
        <type>select</type>
        <options>
          <option>
            <value>1</value>
            <title>Yes</title>
          </option>
          <option>
            <value>0</value>
            <title>No</title>
          </option>
        </options>
        <name>x-asia-ced-accept-trustee-tac</name>
        <required>1</required>
      </field>
      <field>
        <description>Indicates which contact should be used as CED
        </description>
        <type>select</type>
        <options>
          <option>
            <value>registrant</value>
            <title>Registrant</title>
          </option>
          <option>
            <value>admin</value>
            <title>Administrative</title>
          </option>
          <option>
            <value>billing</value>
            <title>Billing</title>
          </option>
          <option>
            <value>tech</value>
            <title>Technical</title>
          </option>
        </options>
        <name>x-asia-ced-contact</name>
        <required>1</required>
      </field>
      <field>
        <description>Location or domicile of the entity</description>
        <type>text</type>
        <name>x-asia-ced-cclocality</name>
        <required>1</required>
        <minLength>1</minLength>
        <maxLength>255</maxLength>
      </field>
      <field>
        <description>Province of establishment of the CED</description>
        <type>text</type>
        <name>x-asia-ced-localitysp</name>
        <required>1</required>
        <minLength>1</minLength>
        <maxLength>255</maxLength>
      </field>
      <field>
        <description>City of establishment of the CED</description>
        <type>text</type>
        <name>x-asia-ced-localitycity</name>
        <required>1</required>
        <minLength>1</minLength>
        <maxLength>255</maxLength>
      </field>
      <field>
        <description>Type of entity</description>
        <type>select</type>
        <options>
          <option>
            <value>naturalperson</value>
            <title>Natural Person</title>
          </option>
          <option>
            <value>corporation</value>
            <title>Corporation</title>
          </option>
          <option>
            <value>cooperative</value>
            <title>Cooperative</title>
          </option>
          <option>
            <value>partnership</value>
            <title>Partnership</title>
          </option>
          <option>
            <value>government</value>
            <title>Government</title>
          </option>
          <option>
            <value>politicalparty</value>
            <title>Politicalparty</title>
          </option>
          <option>
            <value>society</value>
            <title>Society</title>
          </option>
          <option>
            <value>institution</value>
            <title>Institution</title>
          </option>
          <option>
            <value>other</value>
            <title>Other</title>
          </option>
        </options>
        <name>x-asia-ced-legalentitytype</name>
        <required>1</required>
      </field>
      <field>
        <description>Form of identification</description>
        <type>select</type>
        <options>
          <option>
            <value>passport</value>
            <title>Passport</title>
          </option>
          <option>
            <value>certificate</value>
            <title>Certificate</title>
          </option>
          <option>
            <value>legislation</value>
            <title>Legislation</title>
          </option>
          <option>
            <value>societyregistry</value>
            <title>Society Registry</title>
          </option>
          <option>
            <value>politicalpartyregistry</value>
            <title>Political Party Registry</title>
          </option>
          <option>
            <value>other</value>
            <title>Other</title>
          </option>
        </options>
        <name>x-asia-ced-identform</name>
        <required>1</required>
      </field>
      <field>
        <description>Identification number / code of reference</description>
        <type>text</type>
        <name>x-asia-ced-identnumber</name>
        <required>1</required>
        <minLength>1</minLength>
        <maxLength>255</maxLength>
      </field>
      <field>
        <description>Description of the type of entity</description>
        <type>text</type>
        <name>x-asia-ced-otherletype</name>
        <required>1</required>
        <minLength>1</minLength>
        <maxLength>255</maxLength>
      </field>
      <field>
        <description>Description of the form of identification</description>
        <type>text</type>
        <name>x-asia-ced-otheridentform</name>
        <required>1</required>
        <minLength>1</minLength>
        <maxLength>255</maxLength>
      </field>
    </extraFields>
  </registration>
  <renew>
    <available>1</available>
    <minPeriod>1</minPeriod>
    <maxPeriod>10</maxPeriod>
  </renew>
  <contacts>
    <groups>
      <group>
        <name>contact</name>
        <title>Admin or Technical</title>
        <fields>
          <field>
            <description>Full name</description>
            <type>text</type>
            <name>name</name>
            <required>1</required>
            <minLength>3</minLength>
            <maxLength>255</maxLength>
          </field>
          <field>
            <description>Organization</description>
            <type>text</type>
            <name>org</name>
            <required>0</required>
            <minLength>3</minLength>
            <maxLength>255</maxLength>
          </field>         
          <field>
            <description>Country</description>
            <type>select</type>
            <options>
              <option><value>AF</value><title>Afghanistan</title></option>
              <option><value>AL</value><title>Albania</title></option>
              <option><value>DZ</value><title>Algeria</title></option>
              .... 
            </options>
            <name>cc</name>
            <required>1</required>
            <minLength>2</minLength>
            <maxLength>2</maxLength>
          </field>
          <field>
            <description>City</description>
            <type>text</type><name>city</name>
            <required>1</required>
            <minLength>2</minLength>
            <maxLength>255</maxLength>
          </field>
          <field>
            <description>Zip code</description>
            <type>text</type>
            <name>pc</name>
            <required>1</required>
            <minLength>2</minLength>
            <maxLength>16</maxLength>
          </field>
          <field>
            <description>Address 1</description>
            <type>text</type>
            <name>street1</name>
            <required>1</required>
            <minLength>3</minLength>
            <maxLength>255</maxLength>
          </field>
          <field>
            <description>Address 2</description>
            <type>text</type>
            <name>street2</name>
            <required>0</required>
            <minLength>3</minLength>
            <maxLength>255</maxLength>
          </field>
          <field>
            <description>Phone</description>
            <type>phone</type>
            <name>voice</name>
            <required>0</required>
          </field>
          <field>
            <description>Fax</description>
            <type>phone</type>
            <name>fax</name>
            <required>0</required>
          </field>
          <field>
            <description>Email</description>
            <type>text</type>
            <name>email</name>
            <required>1</required>
            <minLength>2</minLength>
            <maxLength>255</maxLength>
          </field>
        </fields>
      </group>
      <group>
        <name>holder</name>
        <title>Registrant</title>
        <fields>
          ...
        </fields>
      </group>
    <groups>
    <types>
      <type>
        <name>registrant</name>
        <group>holder</group>
        <required>1</required>
      </type>
      <type>
        <name>admin</name>
        <group>contact</group>
        <required>1</required>
      </type>
      <type>
        <name>tech</name>
        <group>contact</group>
        <required>1</required>
      </type>
    </types>
  </contacts>
  <transactionId>e3f30510-7c22-4497-9b2d-89aa9def4e7f</transactionId>
</getTldInfoResponse>

createContact

Creates domain contact. Server will reply with contact CLID, that can be used in creatDomain action.

Request parameters

Name Type Description
tld string Domain extension
type string Contact type. See getTldInfo
group string Contact group. See getTldInfo
userId int User ID to which assign created contact. (Available for admin)

Sample request

https://epp-drs.com/api.php?action=createContact
&version=20100524
&keyId=xinmOym9vLE%3D
&tld=lu
&type=tech
&name=Marat+Komarov
&org=Webta
&street1=str
&pc=99022
&city=Sebastopol
&cc=UA
&email=marat%40localhost
&voice=%2B38.111111111
&signature=NCIEUqvlV89CykVH9gbaBIezKm0%3D

Sample response

<?xml version="1.0"?>
<createContactResponse>
  <clid>C77327613</clid>
  <transactionId>b523f60a-895a-4152-996d-1ad1d6300331</transactionId>
</createContactResponse>

checkDomain

Checks whether domain names exist. The server will reply with registered / not registered

Request parameters

Name Type Description
name string Domain name

Sample request

https://epp-drs.com/api.php?action=checkDomain
&version=20090622
&keyId=kRFRw0vnj88%3D
&name=f00t00morrow.gr
&signature=fvatTFVwRNF1cyH%2Fj%2Flaig8QytY%3D

Sample response

<?xml version="1.0"?>
<checkDomainResponse>
  <name>f00t00morrow.gr</name>
  <avail>1</avail>
  <transactionId>1e367fa6-fac7-46de-a117-e6abc51ac2b6</transactionId>
</checkDomainResponse>

createDomain

Register domain name

Request parameters

Name Type Description
name string Domain name
period int Registration period
registrant string Registrant contact CLID. See listContacts
admin string Admin contact CLID. See listContacts
billing string Billing contact CLID. See listContacts
tech string Technical contact CLID. See listContacts
ns array[string] Array of nameservers
extraFields array[key ⇒ value] Assoc array of domain registration extra parameters. See getTldInfo
userId int User ID to which assign registered domain. (Available for admin)
noBilling bool Disable billing for domain opeartion (Available for admin)

Sample request

https://epp-drs.com/api.php?action=createDomain
&version=20090622
&keyId=kRFRw0vnj88%3D
&name=miumau.no
&period=1
&registrant=GL1O
&admin=MK10P
&tech=MK10P
&ns%5B0%5D=ns.google.com
&ns%5B1%5D=ns2.google.com
&userId=14
&signature=3Z63EsrPlWKaclU3mECsUfHt%2BN0%3D

Sample response

<?xml version="1.0"?>
<createDomainResponse>
  <name>miumau.no</name>
  <status>ok</status>
  <transactionId>719a9232-5815-448c-8dc8-9ad6c2d4c0cd</transactionId>
</createDomainResponse>

renewDomain

Renew domain name

Request parameters

Name Type Description
name string Domain name
period int Renewal period
userId int User ID to which assign registered domain. (Available for admin)
noBilling bool Disable billing for domain opeartion (Available for admin)

Sample request

https://epp-drs.com/api.php?action=renewDomain
&version=20100408
&keyId=kRFRw0vnj88%3D
&name=miumau.no
&period=1
&userId=14
&signature=3Z63EsrPlWKaclU3mECsUfHt%2BN0%3D

Sample response

<?xml version="1.0"?>
<renewDomainResponse>
  <transactionId>719a9232-5815-448c-8dc8-9ad6c2d4c0cd</transactionId>
</renewDomainResponse>

transferDomain

Request ingoing transfer

Request parameters

Name Type Description
name string Domain name
authCode string EPP auth code
period int Registration period
registrant string Registrant contact CLID. See listContacts
admin string Admin contact CLID. See listContacts
billing string Billing contact CLID. See listContacts
tech string Technical contact CLID. See listContacts
ns array[string] Array of nameservers
extraFields array[key ⇒ value] Assoc array of domain registration extra parameters. See getTldInfo
userId int User ID to which assign registered domain. (Available for admin)
noBilling bool Disable billing for domain opeartion (Available for admin)

Sample request

https://epp-drs.com/api.php?action=transferDomain
&version=20090622
&keyId=kRFRw0vnj88%3D
&name=api-for-transfer-3.gr
&authCode=200839921
&userId=15
&noBilling=1
&signature=VG4MwYFNkK%2BEWAqN2eMekML9DbM%3D

Sample response

<?xml version="1.0"?>
<transferDomainResponse>
  <transactionId>4c2b4f68-0b17-4f13-82d2-88160ada60eb</transactionId>
</transferDomainResponse>

updateDomainContact

Updates one of the domain contacts (registrant, admin, billing, tech). For some registries change registrant contact may cause trade. User will be billed for it.

Request parameters

Name Type Description
name string Domain name
contactType string Contact type. 'registrant', 'admin', 'billing', 'tech' are available.
clid string Contact CLID
noBilling bool Disable billing for domain operation (Available for admin)

Sample request

https://epp-drs.com/api.php?action=updateDomainContact
&version=20090622
&keyId=PybmwXwMZnI%3D
&name=epp-drs.be
&contactType=registrant
&clid=c49027
&signature=Uu20bIn8I8WeDUZXbsq75K2t%2Bwo%3D

Sample response

<?xml version="1.0"?>
<updateDomainContactResponse>
  <transactionId>db3fe3fd-a83a-4809-ace6-cdf1f20a20e4</transactionId>
</updateDomainContactResponse>

updateDomainLock

Set domain transfer lock.

Request parameters

Name Type Description
name string Domain name
locked bool Locked flag

Sample request

https://epp-drs.com/api.php?action=updateDomainLock
&version=20090622
&keyId=kRFRw0vnj88%3D
&name=epp-drs.no
&locked=1
&signature=1RsjDlRfP5gdR%2BPetV0ydR8p%2Buc%3D

Sample response

<?xml version="1.0"?>
<updateDomainLockResponse>
  <transactionId>d5c1bb92-4c55-4d1e-a92c-63ab3783f31d</transactionId>
</updateDomainLockResponse>

updateDomainNameservers

Set domains nameservers.

Request parameters

Name Type Description
name string Domain name
ns array[string] Array of nameservers

Sample request

https://epp-drs.com/api.php?action=updateDomainNameservers
&version=20090622
&keyId=kRFRw0vnj88%3D
&name=epp-drs.no
&ns%5B0%5D=ns.nsmatrix.com
&ns%5B1%5D=ns2.nsmatrix.com
&signature=HdpAw2zaChG8IlM574jIJLrgBC4%3D

Sample response

<?xml version="1.0"?>
<updateDomainNameserversResponse>
  <transactionId>55794de3-2f8b-417c-8729-57734498a2bd</transactionId>
</updateDomainNameserversResponse>

updateDomainFlags

Modify domain flags

Request parameters

Name Type Description
name string Domain name
add array[string] Flags to add
remove array[string] Flags to remove

Sample request

https://epp-drs.com/api.php?action=updateDomainFlags
&version=20110217
&keyId=kRFRw0vnj88%3D
&name=epp-drs.no
&add%5B0%5D=clientRenewProhibited
&remove%5B1%5D=clientTradeProhibited
&signature=HdpAw2zaChG8IlM574jIJLrgBC4%3D

Sample response

<?xml version="1.0"?>
<updateDomainFlagsResponse>
  <transactionId>55794de3-2f8b-417c-8729-57734498a2bd</transactionId>
</updateDomainFlagsResponse>

getDomainInfo

listDomains

importDomains

listContacts

getContactInfo

updateContact

getBalanceInfo

Sample API client