NetLicensing API (RESTful)

This is the reference documentation for the RESTful API provided by NetLicensing. The NetLicensing API (RESTful) is for developers integrating NetLicensing with applications and administrators who want to script interactions with the NetLicensing server.


API services cover all licensing aspects, allowing to fully automate your licensing flow, and/or integrate NetLicensing into your business processes: ERP, CRM or Webshop.

However, if you only need basic integration into your product, here is the shortcut to the two most essential NetLicensing RESTful API functions:

  • Validate - at a minimum, your product must call the validate method to retrieve the result of customer licenses validation.
  • Create Shop Token - if you decided to use (optional) NetLicensing Shop, you need to create SHOP type token every time you want to start a shopping session for your customer, and redirect him to the returned shopURL.

Getting started

Since NetLicensing API (RESTful) is based on open standards, you can use any programming language to access the API; there are also lots of pre-built client libraries for interacting with NetLicensing.


NetLicensing exposes all available services functionality via an Application Programming Interface (API).

To access the API methods you will need a NetLicensing vendor account. If you do not have one already, signup here.

Structure of the RESTful URIs

NetLicensing API (RESTful) provide access to resources (data entities) via URI paths. To use a RESTful API, your application will make an HTTP(S) request and parse the response. The NetLicensing API (RESTful) uses JSON or XML as its response format

Use following request headers:
Accept: application/json       # for JSON formatted responses
Accept: application/xml        # for XML formatted responses

and the standard HTTP methods like GET, PUT, POST and DELETE (see endpoints documentation to find out which methods are supported by particular resource).

URIs for NetLicensing API (RESTful) resources have the following structure:



<host> - NetLicensing API host name - Backup host name -

<port> - NetLicensing API port, can be omitted, NetLicensing uses standard https port 443.

<resource> - represents named resource (e.g. product, license etc.), you’ll find the resource name on the services page describing corresponding resource

<query> - parameters passed with the request (see below)

In case the requested resource does not exist, HTTP response with status code 404 will be returned.

Very rare, but it happens that top-level domain (TLD) DNS servers also have problems. In this case domain name can not be resolved to the IP address, rendering the service unavailable. TLD DNS is not under our control, and in case of problems there we can’t influence recovery times. To ensure uninterruptible service even in this unlikely case, we provide a backup domain name for the NetLicensing API in another TLD: In case of DNS resolution error for, retry your API request using host name.


Resources may require additional input parameters, in which case parameters must be passed as query string for GET and DELETE methods and as a message body (payload) for POST and PUT.

Parameters are passed in ‘key=value’ form, separated by ‘&’ symbol. When passed in a message body (for POST and PUT), it corresponds to the Form Encoded Data format. Use the following request header in this case:

Content-Type: application/x-www-form-urlencoded 


Depending on the value passed in the Accept: field of the request header, NetLicensing will reply in XML or JSON format. The structure of the response is documented in XML Schema Definition that can be downloaded at

Data Types

All values are transmitted over HTTP in text form. The following table summarizes the text representation of non-trivial data types:




Timestamps follow XML Schema Part 2: Datatypes Second Edition / D ISO 8601 Date and Time Formats. On input it may be specified as date only (corresponds to xsd:date) or date + time (corresponds to xsd:dateTime). On a java backend, javax.xml.bind.DatatypeConverter is used for conversion.


Always represented by two fields: decimal "price" and "currency" - 3-character code according to ISO 4217. Currently only "EUR" is supported.

Custom properties

Besides standard properties defined for each entity type (see JavaDoc), arbitrary custom properties can be added to entities. See Custom Properties for details.

Table of contents