# GetCALConfiguration Method

## Overloads

| [GetCALConfiguration(Guid, CALConfigurationScope)](https://help.qlik.com/en-US/qlikview-developer/September2026/Subsystems/QMSAPIref/Content/PIX.Services.V12.Api6.IQMS6.GetCALConfiguration.htm#PIX_Services_V12_Api6_IQMS6_GetCALConfiguration_System_Guid_PIX_QMSAPI_DataObjects_CALConfigurationScope_) |  | Gets the current session/document and named CAL configuration from a QVS. |
| --- | --- | --- |

[](https://help.qlik.com/en-US/qlikview-developer/Subsystems/QMSAPIref/Content/PIX.Services.V12.Api6.IQMS6.GetCALConfiguration.htm) [](https://help.qlik.com/en-US/qlikview-developer/Subsystems/QMSAPIref/Content/PIX.Services.V12.Api6.IQMS6.GetCALConfiguration.htm)

## GetCALConfiguration(Guid, CALConfigurationScope)

Gets the current session/document and named CAL configuration from a QVS.

### Declaration

```

          CALConfiguration GetCALConfiguration(Guid qvsID, CALConfigurationScope scope)
    
  
```

### Parameters

| Type | Name | Description |
| --- | --- | --- |
| System.Guid | qvsID | The QVS ID. |
| [CALConfigurationScope](https://help.qlik.com/en-US/qlikview-developer/September2026/Subsystems/QMSAPIref/Content/PIX.QMSAPI.DataObjects.CALConfigurationScope.htm) | scope | The scope. |

### Returns

| Type | Description |
| --- | --- |
| [CALConfiguration](https://help.qlik.com/en-US/qlikview-developer/September2026/Subsystems/QMSAPIref/Content/PIX.QMSAPI.DataObjects.CALs.CALConfiguration.htm) | If successful, the CAL configuration is returned. |

### Remarks

##### security

Requires membership of local groups *QlikView Management API* and *QlikView Administrator*.

### Examples

The following code example retrieves the CAL information from a QVS and prints information to the console.

The service key injection is assumed to be handled behind the scenes. For an example of how to inject the service key, see Samples.

```
using System;
using System.Collections.Generic;
using System.Linq;
using QMSAPI;

class Program
{
    static void Main(string[] args)
    {
        try
        {
           // create a QMS API client
           IQMS apiClient = new QMSClient();

           //retrieve a time limited service key
           ServiceKeyClientMessageInspector.ServiceKey = apiClient.GetTimeLimitedServiceKey();
           ServiceInfo qvsService = apiClient.GetServices(ServiceTypes.QlikViewServer).First();

           CALConfiguration config = apiClient.GetCALConfiguration(qvsService.ID,CALConfigurationScope.All);
           if(config != null)
           {
               //Document CALs
               Console.WriteLine("Document CALs\n");
               Console.WriteLine("# assigned document CALs:" + config.DocumentCALs.Assigned);
               Console.WriteLine("# in license document CALs:" + config.DocumentCALs.InLicense);
               Console.WriteLine("# limit document CALs:" + config.DocumentCALs.Limit);

               //Named CALs
               Console.WriteLine("\n\nNamed CALs\n");
               Console.WriteLine("Identification mode:" + config.NamedCALs.IdentificationMode);
               Console.WriteLine("# assigned named CALs:" + config.NamedCALs.Assigned);
               Console.WriteLine("# in license named CALs:" + config.NamedCALs.InLicense);
               Console.WriteLine("# limit document CALs:" + config.NamedCALs.Limit);
               config.NamedCALs.AssignedCALs.ForEach(
                   assignedCal => Console.WriteLine(String.Format("User:{0}\nLast used:{1}", assignedCal.UserName, assignedCal.LastUsed))
                   );

               config.NamedCALs.LeasedCALs.ForEach(
                   leasedCal => Console.WriteLine(String.Format("User:{0}\nLast used:{1}", leasedCal.UserName, leasedCal.LastUsed))
                   );

               //Session CALs
               Console.WriteLine("\n\nSession CALs\n");
               Console.WriteLine("# available session CALs:" + config.SessionCALs.Available);
               Console.WriteLine("# in license session CALs:" + config.SessionCALs.InLicense);
               Console.WriteLine("# limit session CALs:" + config.SessionCALs.Limit);
           }
        }
        catch (Exception ex)
        {
            Console.WriteLine("An exception occurred: " + ex.Message);
        }
        // wait for user to press any key
        Console.ReadLine();
    }
}
```

### Exceptions

| Type | Condition |
| --- | --- |
| System.Exception | Thrown if there were any problems retrieving the CAL configuration. |