Citrix ADC


The Citrix ADC NITRO protocol allows you to configure and monitor the Citrix ADC appliance programmatically by using Representational State Transfer (REST) interfaces. Therefore, NITRO applications can be developed in any programming language. Additionally, for applications that must be developed in Java or .NET or Python, NITRO APIs are exposed through relevant libraries that are packaged as separate Software Development Kits (SDKs).


  • XML API are deprecated from NetScaler 10.5 onwards.

  • Until specified otherwise, this NITRO documentation applies to NetScaler versions 11.0 and 10.5.

To use NITRO, you must have a basic understanding of the Citrix ADC appliance and you must make sure that the client application has the following:

  • Access to a NetScaler appliance, version 9.2 or later.
  • To use REST interfaces, you must have a system to generate HTTP or HTTPS requests (payload in JSON format) to the Citrix ADC appliance. You can use any programming language or tool.

  • For Java clients, you must have a system where Java Development Kit (JDK) 1.5 or later is available. The JDK can be downloaded from

  • For .NET clients, you must have a system with .NET framework 3.5 or later installed. The .NET framework can be downloaded from

  • The Python SDK is available from NetScaler 10.5 onwards. For Python clients, you must have a system with Python 2.7 or above version and the Requests library (available in /lib) installed. The NITRO library must be installed on the client path. For installation instructions, read the /README.txt file.

Obtaining the NITRO Package

The NITRO package is available as a tar file on the Downloads page of the configuration utility of the Citrix ADC appliance. You must download and untar the file to a folder on your local system. This folder is referred to as in this documentation. The folder contains the NITRO libraries in the lib subfolder. The libraries must be added to the client application classpath to access NITRO functionality. The folder also provides samples and documentation that can help you understand the NITRO SDK.


  • The REST package contains only documentation for using the REST interfaces.
  • For the Python SDK, the library must be installed on the client path. For installation instructions, read the /README.txt file.

How NITRO Works

The NITRO infrastructure consists of a client application and the NITRO Web service running on a Citrix ADC appliance. The communication between the client application and the NITRO web service is based on REST architecture using HTTP or HTTPS.

localized image

As shown in the above figure, a NITRO request is executed as follows:

  1. The client application sends REST request message to the NITRO web service. When using the SDKs, an API call is translated into the appropriate REST request message.
  2. The web service processes the REST request message.
  3. The NITRO web service returns the corresponding REST response message to the client application. When using the SDKs, the REST response message is translated into the appropriate response for the API call.

To minimize traffic on the Citrix ADC network, you retrieve the whole state of a resource from the server, make modifications to the state of the resource locally, and then upload it back to the server in one network transaction. For example, to update a load balancing virtual server, you must retrieve the object, update the properties, and then upload the changed object in a single transaction.

Note: Local operations on a resource (changing its properties) do not affect its state on the server until the state of the object is explicitly uploaded.

NITRO APIs are synchronous in nature. This means that the client application waits for a response from the NITRO web service before executing another NITRO API.