# Retrieving a list of Qlik NPrinting apps

The following code extends the previous example of a .NET console application by creating an authenticated connection and retrieving a list of Qlik NPrinting apps. Remember to substitute `server.name.com` with your actual Qlik NPrinting Server name.

Information noteThe JSON deserialization method in this example uses a third-party library from Newtonsoft to convert JSON to an object.

```
static void Main(string[] args)
{
    //Create the HTTP Request (authenticate) and add required headers
    ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@
    "https://server.name.com:4993/api/v1/login/ntlm");
    CookieContainer cookies = new CookieContainer();
    request.CookieContainer = cookies;
    request.Method = "GET";
    request.UserAgent = "Windows";
    request.Accept = "application/json";
    // specify to run as the current Microsoft Windows user
    request.UseDefaultCredentials = true;
    try
    {
        // make the web request and return the content
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        StreamReader responseReader = new StreamReader(response.GetResponseStream());
        string sResponseHTML = responseReader.ReadToEnd();
        Console.WriteLine(sResponseHTML);
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    } 
            
    //Create second HTTP request (get list of apps) and add required headers
    HttpWebRequest secondRequest = (HttpWebRequest)WebRequest.Create(@
    "https://server.name.com:4993/api/v1/apps");
    //assign cookie to request to maintain session
    secondRequest.CookieContainer = cookies;
    secondRequest.Method = "GET";
    secondRequest.UserAgent = "Windows";
    secondRequest.Accept = "application/json";
    // specify to run as the current Microsoft Windows user
    secondRequest.UseDefaultCredentials = true;
    try
    {
        HttpWebResponse response2 = (HttpWebResponse)secondRequest.GetResponse();
        StreamReader responseReader2 = new StreamReader(response2.GetResponseStream());
        string sResponseHTML2 = responseReader2.ReadToEnd();
        dynamic jsonObj = JsonConvert.DeserializeObject(sResponseHTML2);
        foreach (var app in jsonObj.data.items)
        {
            Console.WriteLine(app.name);
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
    Console.Read();
}
```