# GetReports Method

## Overloads

| [GetReports(QDSDocumentSession)](https://help.qlik.com/en-US/qlikview-developer/September2026/Subsystems/QMSAPIref/Content/PIX.Services.V12.Api3.IQMS3.GetReports.htm#PIX_Services_V12_Api3_IQMS3_GetReports_PIX_QMSAPI_DataObjects_QDSDocumentSession_) |  | Retrieves reports defined within a document. |
| --- | --- | --- |

[](https://help.qlik.com/en-US/qlikview-developer/Subsystems/QMSAPIref/Content/PIX.Services.V12.Api3.IQMS3.GetReports.htm) [](https://help.qlik.com/en-US/qlikview-developer/Subsystems/QMSAPIref/Content/PIX.Services.V12.Api3.IQMS3.GetReports.htm)

## GetReports(QDSDocumentSession)

Retrieves reports defined within a document.

### Declaration

```

          IEnumerable<Report> GetReports(QDSDocumentSession session)
    
  
```

### Parameters

| Type | Name | Description |
| --- | --- | --- |
| [QDSDocumentSession](https://help.qlik.com/en-US/qlikview-developer/September2026/Subsystems/QMSAPIref/Content/PIX.QMSAPI.DataObjects.QDSDocumentSession.htm) | session | The session to be used. |

### Returns

| Type | Description |
| --- | --- |
| System.Collections.Generic.IEnumerable&lt;[Report](https://help.qlik.com/en-US/qlikview-developer/September2026/Subsystems/QMSAPIref/Content/PIX.QMSAPI.DataObjects.Document.Report.htm)&gt; | A list of reports defined within the document referred to by the session.. |

### Remarks

This method can be used when creating a document task which distributes PDF reports.

##### security

Requires membership of local group *QlikView Management API* and the role *Document Folder Administrator*.

### Examples

This example retrieves the reports within a document.

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 serviceInfo = apiClient.GetServices(ServiceTypes.QlikViewDistributionService).FirstOrDefault();
            if (serviceInfo != null)
            {
                QDSDocumentSessionConfiguration sessionConfig = new QDSDocumentSessionConfiguration();

                sessionConfig.QDSID = serviceInfo.ID;
                sessionConfig.FilePath = @"C:\ProgramData\QlikTech\SourceDocuments\Sales.qvw";

                QDSDocumentSession documentSession = apiClient.CreateSession(sessionConfig);

                if (documentSession != null && documentSession.OpenDocumentResult == DocumentState.OpenedSuccessfully)
                {
                    List<Report> reports = apiClient.GetReports(documentSession);
                    reports.ForEach(r=>Console.WriteLine(string.Format("{0} {1}",r.ID, r.Name)));
                    apiClient.CloseSession(documentSession);
                }
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine("An exception occurred: " + ex.Message);
        }
        // wait for user to press any key
        Console.ReadLine();
    }
}
```