SOAP API

A SOAP based API function now exists to replace the list functionality that was offered by the Automaton. Registrars can generate an API key for the test bed and live in Online Services, under Tag Settings.

Methods Using the SOAP List API tool

  • Navigate to the service URL https://listapi.nominet.org.uk/ws/automaton?wsdl
  • Save the WSDL that is displayed.
  • Use a toolkit of your choice to generate a client i.e. http://php.net/manual/en/class.soapclient.php or https://axis.apache.org/axis/java/. Point your toolkit at the WSDL to generate your client code.
  • Generate an API key from the Tag Settings page in Online Services. (See List API section)
  • Write code to call the generated client code. Include your API key on all requests.
  • Ensure you connect securely i.e. load the services SSL certificate into a trust store or equivalent. (You can download this from the browser when viewing the WDSL)
  • Download data from the API.

Methods

getAllDomainsByAutoBill

field Description
apiKey Your API key
tag Your Tag
autoBill domains with autobill. Leave blank as per example
equalTo (optional) number of days +1 that autobill will happen before expiry
pageNumber (optional) Page Number to return – defaults to 1
pageSize (optional) Page Size to return – defaults to 500, maximum is 500
remoteAddress (optional) Not implemented, ignore
Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
   xmlns:ws="http://api.nominet.uk/ws">
   <soapenv:Header/>
   <soapenv:Body>
      <ws:getAllDomainsByAutoBill>
         <autoBillDetailsDTO>
            <apiKey>
               <apiKey>API-KEY-HERE</apiKey>
            </apiKey>
            <tag>TAG-HERE</tag>
            <autoBill></autoBill>
         </autoBillDetailsDTO>
      </ws:getAllDomainsByAutoBill>
   </soapenv:Body>
</soapenv:Envelope>

Response:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:getAllDomainsByAutoBillResponse xmlns:ns2="http://api.nominet.uk/ws">
         <domainNameListDTO>
            <domainNames>adomain.co.uk</domainNames>
			...
            <domainNames>zdomain.co.uk</domainNames>
            <pageNumber>1</pageNumber>
            <pageSize>500</pageSize>
            <totalPages>1</totalPages>
            <totalRecords>66</totalRecords>
         </domainNameListDTO>
      </ns2:getAllDomainsByAutoBillResponse>
   </S:Body>
</S:Envelope>

getAllDomainsByCreatedDate

field Description
apiKey Your API key
tag Your Tag
createdDate Created date of domains in YYYY-MM-DD format
pageNumber (optional) Page Number to return – defaults to 1
pageSize (optional) Page Size to return – defaults to 500, maximum is 500
remoteAddress (optional) Not implemented – ignore
Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://api.nominet.uk/ws">
   <soapenv:Header/>
   <soapenv:Body>
      <ws:getAllDomainsByCreatedDate>
         <createdDateDetailsDTO>
            <apiKey>
               <apiKey>YOUR-API-KEY-HERE</apiKey>
            </apiKey>
            <tag>YOUR-TAG-HERE</tag>
            <createdDate>YYYY-MM-DD</createdDate>
         </createdDateDetailsDTO>
      </ws:getAllDomainsByCreatedDate>
   </soapenv:Body>
</soapenv:Envelope>

Response:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:getAllDomainsByCreatedDateResponse xmlns:ns2="http://api.nominet.uk/ws">
         <domainNameListDTO>
            <domainNames>adomain.co.uk</domainNames>
            <pageNumber>1</pageNumber>
            <pageSize>500</pageSize>
            <totalPages>1</totalPages>
            <totalRecords>1</totalRecords>
         </domainNameListDTO>
      </ns2:getAllDomainsByCreatedDateResponse>
   </S:Body>
</S:Envelope>

getAllDomainsByExpiryDate

field Description
apiKey Your API key
tag Your tag
expiryDate A date in yyyy-mm-dd format
pageNumber (optional) Page Number to return – defaults to 1
pageSize (optional) Page Size to return – defaults to 500, maximum is 500
remoteAddress (optional) Not implemented – ignore
Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://api.nominet.uk/ws">
   <soapenv:Header/>
   <soapenv:Body>
      <ws:getAllDomainsByExpiryDate>
         <expiryDateDetailsDTO>
            <apiKey>
               <apiKey>YOUR-API-KEY-HERE</apiKey>
            </apiKey>
            <tag>YOUR-TAG-HERE</tag>
            <expiryDate>YYYY-MM-DD</expiryDate>
         </expiryDateDetailsDTO>
      </ws:getAllDomainsByExpiryDate>
   </soapenv:Body>
</soapenv:Envelope>

Response:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:getAllDomainsByExpiryDateResponse xmlns:ns2="http://api.nominet.uk/ws">
         <domainNameListDTO>
            <pageNumber>0</pageNumber>
            <pageSize>500</pageSize>
            <totalPages>0</totalPages>
            <totalRecords>0</totalRecords>
         </domainNameListDTO>
      </ns2:getAllDomainsByExpiryDateResponse>
   </S:Body>
</S:Envelope>

(i.e. no domains on your tag were registered that day)

getAllDomainsByExpiryDateRange

field description
apiKey Your API key
tag Your Tag
rangeStart A date in YYYY-MM-DD format
rangeEnd A date in YYYY-MM-DD format more recent than rangeStart
pageNumber (optional) Page Number to return – defaults to 1
pageSize (optional) Page Size to return – defaults to 500, maximum is 500
remoteAddress (optional) Not implemented – ignore
Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://api.nominet.uk/ws">
   <soapenv:Header/>
   <soapenv:Body>
      <ws:getAllDomainsByExpiryDateRange>
         <expiryDateRangeDetailsDTO>
            <apiKey>
               <apiKey>YOUR-API-KEY-HERE</apiKey>
            </apiKey>
            <tag>YOUR-TAG-HERE</tag>
            <rangeEnd>YYYY-MM-DD</rangeEnd>
            <rangeStart>YYYY-MM-DD</rangeStart>
         </expiryDateRangeDetailsDTO>
      </ws:getAllDomainsByExpiryDateRange>
   </soapenv:Body>
</soapenv:Envelope>

Response:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:getAllDomainsByExpiryDateRangeResponse xmlns:ns2="http://api.nominet.uk/ws">
         <domainNameListDTO>
            <domainNames>adomain.co.uk</domainNames>
            ...
            <domainNames>zdomain.co.uk</domainNames>
            <pageNumber>1</pageNumber>
            <pageSize>500</pageSize>
            <totalPages>1</totalPages>
            <totalRecords>31</totalRecords>
         </domainNameListDTO>
      </ns2:getAllDomainsByExpiryDateRangeResponse>
   </S:Body>
</S:Envelope>

getAllDomainsForAccount

field description
apiKey Your API key
tag Your Tag
eppId EPP id for a contact on your account
pageNumber (optional) Page Number to return – defaults to 1
pageSize (optional) Page Size to return – defaults to 500, maximum is 500
remoteAddress (optional) – Not implemented – ignore
Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://api.nominet.uk/ws">
   <soapenv:Header/>
   <soapenv:Body>
      <ws:getAllDomainsForAccount>
         <accountDetailsDto>
            <apiKey>
               <apiKey>YOUR-API-KEY-HERE</apiKey>
            </apiKey>
		  	<tag>YOUR-TAG-HERE</tag>
            <eppId>CONTACTS-EPP-ID-HERE</eppId>
         </accountDetailsDto>
      </ws:getAllDomainsForAccount>
   </soapenv:Body>
</soapenv:Envelope>

Response:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:getAllDomainsForAccountResponse xmlns:ns2="http://api.nominet.uk/ws">
         <domainNameListDTO>
            <domainNames>adomain.co.uk</domainNames>
            <pageNumber>1</pageNumber>
            <pageSize>500</pageSize>
            <totalPages>1</totalPages>
            <totalRecords>1</totalRecords>
         </domainNameListDTO>
      </ns2:getAllDomainsForAccountResponse>
   </S:Body>
</S:Envelope>

getAllDomainsForNameServer

field description
apiKey Your API key
tag Your Tag
nameServer a nameServer on your account
pageNumber (optional) Page Number to return – defaults to 1
pageSize (optional) Page Size to return – defaults to 500, maximum is 500
remoteAddress (optional) Not implemented – ignore
Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://api.nominet.uk/ws">
   <soapenv:Header/>
   <soapenv:Body>
      <ws:getAllDomainsForNameServer>
         <nameServerDetailsDTO>
            <apiKey>
               <apiKey>YOUR-API-KEY-HERE</apiKey>
            </apiKey>
            <tag>YOUR-TAG-HERE</tag>
            <nameServer>dns01.adomain.com.</nameServer>
         </nameServerDetailsDTO>
      </ws:getAllDomainsForNameServer>
   </soapenv:Body>
</soapenv:Envelope>

Response:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:getAllDomainsForNameServerResponse xmlns:ns2="http://api.nominet.uk/ws">
         <domainNameListDTO>
            <domainNames>adomain.co.uk</domainNames>
            ...
            <domainNames>bdomain.co.uk</domainNames>
            <pageNumber>1</pageNumber>
            <pageSize>500</pageSize>
            <totalPages>7</totalPages>
            <totalRecords>3325</totalRecords>
         </domainNameListDTO>
      </ns2:getAllDomainsForNameServerResponse>
   </S:Body>
</S:Envelope>

Notes: The last dot on the end of the nameserver is required

getAllDomainsLikeRegistrantName

field description
apiKey Your API key
tag Your Tag
registrantName the string you are searching for (case sensitive)
pageNumber (optional) Page Number to return – defaults to 1
pageSize (optional) Page Size to return – defaults to 500, maximum is 500
remoteAddress (optional) Not implemented – ignore
Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://api.nominet.uk/ws">
   <soapenv:Header/>
   <soapenv:Body>
      <ws:getAllDomainsLikeRegistrantName>
         <registrantDetailsDTO>
            <apiKey>
               <apiKey>YOUR-API-KEY-HERE</apiKey>
            </apiKey>
            <tag>YOUR-TAG-HERE</tag>
            <registrantName>Richard</registrantName>
         </registrantDetailsDTO>
      </ws:getAllDomainsLikeRegistrantName>
   </soapenv:Body>
</soapenv:Envelope>

Response:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:getAllDomainsLikeRegistrantNameResponse xmlns:ns2="http://api.nominet.uk/ws">
         <domainNameListDTO>
            <domainNames>adomain.co.uk</domainNames>
            <domainNames>bdomain.co.uk</domainNames>
            <domainNames>ydomain.co.uk</domainNames>
            <domainNames>zdomain.co.uk</domainNames>
            <pageNumber>1</pageNumber>
            <pageSize>500</pageSize>
            <totalPages>1</totalPages>
            <totalRecords>4</totalRecords>
         </domainNameListDTO>
      </ns2:getAllDomainsLikeRegistrantNameResponse>
   </S:Body>
</S:Envelope>

Notes: The search is a case sensitive search against registrants of domains on your tag. So in the above example, if there are four domains on your tag where the registrant name contains Richard, and one domain name on your tag where the registrant name contains richard, you will only get the four domains returned

getAllDomainsOnTag

field description
apiKey Your API key
tag Your Tag
pageNumber (optional) Page Number to return – defaults to 1
pageSize (optional) Page Size to return – defaults to 500, maximum is 500
remoteAddress (optional) Not implemented – ignore
Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://api.nominet.uk/ws">
   <soapenv:Header/>
   <soapenv:Body>
      <ws:getAllDomainsOnTag>
         <tagDetailsDTO>
            <apiKey>
               <apiKey>YOUR-API-KEY-HERE</apiKey>
            </apiKey>
            <tag>YOUR-TAG-HERE</tag>
         </tagDetailsDTO>
      </ws:getAllDomainsOnTag>
   </soapenv:Body>
</soapenv:Envelope>

Response:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:getAllDomainsOnTagResponse xmlns:ns2="http://api.nominet.uk/ws">
         <domainNameListDTO>
            <domainNames>adomain.co.uk</domainNames>
            ...
            <domainNames>zdomain.co.uk</domainNames>
            <pageNumber>1</pageNumber>
            <pageSize>500</pageSize>
            <totalPages>8</totalPages>
            <totalRecords>3551</totalRecords>
         </domainNameListDTO>
      </ns2:getAllDomainsOnTagResponse>
   </S:Body>
</S:Envelope>

getAllDomainsWithDQLock

field description
apiKey Your API key
tag Your Tag
pageNumber (optional) Page Number to return – defaults to 1
pageSize (optional) Page Size to return – defaults to 500, maximum is 500
remoteAddress (optional) Not implemented – ignore
Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://api.nominet.uk/ws">
   <soapenv:Header/>
   <soapenv:Body>
      <ws:getAllDomainsWithDQLock>
         <tagDetailsDTO>
            <apiKey>
               <apiKey>YOUR-API-KEY-HERE</apiKey>
            </apiKey>
            <tag>YOUR-TAG-HERE</tag>
         </tagDetailsDTO>
      </ws:getAllDomainsWithDQLock>
   </soapenv:Body>
</soapenv:Envelope>

Response:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:getAllDomainsWithDQLockResponse xmlns:ns2="http://api.nominet.uk/ws">
         <domainNameListDTO>
            <pageNumber>0</pageNumber>
            <pageSize>500</pageSize>
            <totalPages>0</totalPages>
            <totalRecords>0</totalRecords>
         </domainNameListDTO>
      </ns2:getAllDomainsWithDQLockResponse>
   </S:Body>
</S:Envelope>

getCreditUsedDetails

field description
apiKey Your API key
tag Your Tag
pageNumber (optional) Page Number to return – defaults to 1
pageSize (optional) Page Size to return – defaults to 500, maximum is 500
remoteAddress (optional) Not implemented – ignore
Request:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://api.nominet.uk/ws">
   <soapenv:Header/>
   <soapenv:Body>
      <ws:getCreditUsedDetails>
         <creditUsedDetailsDTO>
            <apiKey>
               <apiKey>YOUR-API-KEY-HERE</apiKey>
            </apiKey>
            <tag>YOUR-TAG-HERE</tag>
         </creditUsedDetailsDTO>
      </ws:getCreditUsedDetails>
   </soapenv:Body>
</soapenv:Envelope>

Response:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:getCreditUsedDetailsResponse xmlns:ns2="http://api.nominet.uk/ws">
         <creditUsedDetailsDTO>
            <creditAvailable>10000</creditAvailable>
            <creditUsed>128</creditUsed>
            <tag>YOUR-TAG-HERE</tag>
         </creditUsedDetailsDTO>
      </ns2:getCreditUsedDetailsResponse>
   </S:Body>
</S:Envelope>

Additional paging tags

Responses are limited to 500 domains per page, and include:

pageNumber
pageSize
totalPages
totalRecords 

in the response. Use this response a guide to navigate and get further pages, by adding:

<pageNumber>VALUE</pageNumber>
<pageSize>VALUE</pageSize>

after the apiKey example

Request the first page:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://api.nominet.uk/ws">
   <soapenv:Header/>
   <soapenv:Body>
      <ws:getAllDomainsOnTag>
         <tagDetailsDTO>
            <apiKey>
               <apiKey>YOUR-API-KEY-HERE</apiKey>
            </apiKey>
            <pageNumber>1</pageNumber>
		  <pageSize>500</pageSize>
            <tag>YOUR-TAG-HERE</tag>
         </tagDetailsDTO>
      </ws:getAllDomainsOnTag>
   </soapenv:Body>
</soapenv:Envelope>

Response:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:getAllDomainsOnTagResponse xmlns:ns2="http://api.nominet.uk/ws">
         <domainNameListDTO>
            <domainNames>adomain.co.uk</domainNames>
            ...
            <domainNames>bdomain.co.uk</domainNames>
            <pageNumber>1</pageNumber>
            <pageSize>500</pageSize>
            <totalPages>8</totalPages>
            <totalRecords>3551</totalRecords>
         </domainNameListDTO>
      </ns2:getAllDomainsOnTagResponse>
   </S:Body>
</S:Envelope>

Request the second page:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://api.nominet.uk/ws">
   <soapenv:Header/>
   <soapenv:Body>
      <ws:getAllDomainsOnTag>
         <tagDetailsDTO>
            <apiKey>
               <apiKey>YOUR-API-KEY-HERE</apiKey>
            </apiKey>
            <pageNumber>2</pageNumber>
		  <pageSize>500</pageSize>
            <tag>YOUR-TAG-HERE</tag>
         </tagDetailsDTO>
      </ws:getAllDomainsOnTag>
   </soapenv:Body>
</soapenv:Envelope>

Response:
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Body>
      <ns2:getAllDomainsOnTagResponse xmlns:ns2="http://api.nominet.uk/ws">
         <domainNameListDTO>
            <domainNames>burningham-and-brown.co.uk</domainNames>
            ...
            <domainNames>electropatent.co.uk</domainNames>
            <pageNumber>2</pageNumber>
            <pageSize>500</pageSize>
            <totalPages>8</totalPages>
            <totalRecords>3551</totalRecords>
         </domainNameListDTO>
      </ns2:getAllDomainsOnTagResponse>
   </S:Body>
</S:Envelope>

Minerva House, Edmund Halley Road, Oxford Science Park, OX4 4DQ, United Kingdom