Class ServerApi


Function documentation

This document lists all the functions (methods) that can be called via ISNIC's SOAP API interface.

Production server
The WSDL is located at

Developement server
There is also a test interface that can be used for developement. All functions are availabe just like in the production system.
It has the following limitations:

  • Domains created won't be created in the .is zone.
  • Payments are only possible with special test card numbers

The WSDL for the developement server is located at

Developement creditcard number:
VISA, 4571999400007492, CVC 150, (exp. date any date in the future)
This card is of course only usable on ISNIC's developement API server.

Return values

Since functions need to return multiple things, they all return a object instance (instead of a primative type). Ideally they all should return a object of the same type to make things more simple.

This is however not possible, since some functions need to return a different type of data. Even though there is a common variable '$value' in all the objects returned, and used for function specific data, we need to specify it's type. The type of $value for the function infoContact() would be IsnicContact but for infoDomain() the would be IsnicDomain

Whenever possible, the function's return value is of type IsnicApiResult

The IsnicApiResult contains the following variables:
A human readable message

A unique Reference ID for asynchronous functions (see below)

The type of success or failure as a result of this function call.
See the constants in IsnicApiConstants for possibles values.

The data returned by the function. Note that many functions don't need to return any data (the $resultCode indicates success or failure)

In some cases a function need to return a different type than IsnicApiResult. Those different return types still have the variables mentioned above, but usually the $value variable is of a different type.

For example, infoHost() returns a object of type IsnicInfoHostResult, which is identical to IsnicApiResult except $value is of type IsnicHost instead of 'string'.

Synchronous/Asynchronous functions

Please note that the term synchronous does not refer to the usual 'program waits until the previous instance has finished' definition.

Synchronous function returns with a $resultCode that is final and the function has completed what it was asked to do.

Asynchronous function returns with a $resultCode of SUCCESS_PENDING (if successful), but the processing hasn't finished. The variable $processReferenceID in the returned object is set to a unique ID for future reference.
A message will be sent (and received via pollMessages() indicating final success or failure of the command, and the $processReferenceID of the message will match the one returned by the function.

Functions are marked either synchronous/asynchronous in the documentation for each function.

Located in /Api/Server/ServerApi.php (line 132)

Class Constant Summary
 VERSION = "1.0"
Method Summary
 IsnicApiResult createDomain (IsnicDomain $domain, integer $creditcardID, integer $creditcardCVC)
 IsnicInfoDomainResult infoDomain (string $domainName)
 IsnicApiResult login (string $username, string $password)
 IsnicApiResult renewDomain (string $domainName, integer $creditcardID, integer $creditcardCVC)
 IsnicApiResult transferRegistrant (string $domainName, IsnicRegistrant $newRegistrant)
 IsnicApiResult updateDomain (string $domainName, IsnicDomain $updatedDomain)
 IsnicApiResult updateDomainNameserver (string $domainName, string[] $hostnames)
createDomain (line 263)

Create a new .is domain.

NOTE: This function uses the IsnicRegistrant object that is missing the nic handle, type(role/person) and if it should be publicly visible in whois (instead use EPP).Aynchronous

When registering a new domain, the following variables have to be set in the $domain object parameter:
domainNameIdn, registrant, adminContact, techContact, billingContact, nameserver1, nameserver2, isParked.

  • access: public
IsnicApiResult createDomain (IsnicDomain $domain, integer $creditcardID, integer $creditcardCVC)
  • IsnicDomain $domain: object describing the domain being registered
  • integer $creditcardID: ID of the creditcard to be billed for the domain.
  • integer $creditcardCVC: the CVC number on the back of the card
infoDomain (line 617)

Returns information about a domain.


If domain exists, domain information is returned in the $value variable, which is a instance of IsnicDomain. Otherwise $value is null.

Note that this function is rate limited at 15 requests per hour.
If rate limit is exceeded, $resultCode variable is set to ERROR_SESSION_LIMIT_EXCEEDED. Rate limit does not apply to domains which the currently logged in user has access to.

  • access: public
IsnicInfoDomainResult infoDomain (string $domainName)
  • string $domainName: ascii version of the domain name to lookup
login (line 243)

Authenticate the user.


All functions will return ERROR_AUTHENTICATION as $resultCode until the user has successfully logged on.

After login pass in the value from the value variable got from the login into the http get variable named session.

Please note that only usernames with special attributes set by ISNIC can use the API interface.

Note that this function is rate limited at 20 requests per 10 min.
If rate limit is exceeded, $resultCode variable is set to ERROR_SESSION_LIMIT_EXCEEDED

  • access: public
IsnicApiResult login (string $username, string $password)
  • string $username: NIC handle for the user
  • string $password: plaintext password
logout (line 806)

Logs out the currently logged in user.

  • access: public
IsnicApiResult logout ()
pollMessages (line 418)

Returns messages that indicate result code of pending asynchronous functions.


The messages are returned in the $value variable, which is an array of IsnicApiMessage objects.

Each IsnicApiMessage has a $processReferenceID variable that links it with the specific function call.
The message also has an $resultCode which indicates the success/failure of the function call.

  • access: public
IsnicPollMessagesResult pollMessages ()
renewDomain (line 435)

Renew a domain.

Domain's expire date is increased by a year.


  • access: public
IsnicApiResult renewDomain (string $domainName, integer $creditcardID, integer $creditcardCVC)
  • string $domainName: ascii version of the domain names to renew, with the .is suffix.
  • integer $creditcardID: ID of the creditcard to be charged.
  • integer $creditcardCVC: CVC number from the back of the card.
transferRegistrant (line 796)

Request the transfer of the domain to new registrant.

NOTE: This function uses the IsnicRegistrant object that is missing the nic handle, type(role/person) and if it should be publicly visible in whois (instead use EPP).Asynchronous>

Current user must be domain's admin contact.

  • access: public
IsnicApiResult transferRegistrant (string $domainName, IsnicRegistrant $newRegistrant)
  • string $domainName: ascii version of the domain name.
  • IsnicRegistrant $newRegistrant: information about the new registrant.
updateDomain (line 672)

Update domain information.


Currently logged in user must be admin contact for the domain that is to be modified.

The domain $domainName will be updated, with information found in $updatedDomain.

  • access: public
IsnicApiResult updateDomain (string $domainName, IsnicDomain $updatedDomain)
  • string $domainName: ascii version of the domain name that is to be updated
  • IsnicDomain $updatedDomain: how the object should look like after the update.
updateDomainNameserver (line 693)

Update the nameserver for a domain.


Logged in user must be admin contact for the domain being modified.

  • access: public
IsnicApiResult updateDomainNameserver (string $domainName, string[] $hostnames)
  • string $domainName
  • string[] $hostnames: array of fully qualified hostnames, which will be set as the domain's nameservers. At least 2 nameservers are required and a maximum of 4 can be set. Nameservers must be registered with ISNIC before, see ServerApi::createHost()
Class Constants
VERSION = "1.0" (line 134)

Documentation generated on Wed, 11 Nov 2015 11:35:24 +0000 by phpDocumentor 1.4.4