---
schema_version: "1"
id: 306fe6c4e817507731a28d6c15d8b467ac1338bf94139fc0fa21fb7936cd7813
title: ReportManager Class
collection: legacydeveloper
version: current
locale: en-us
portal_url: https://docs.salesforce.com/legacydeveloper/current/en-us/apexref/apex_class_reports_reportmanager.md
canonical_url: https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportmanager.htm
source_site: developer.salesforce.com
content_type: documentation
content_hash: cca09cff9711495ac85698446567050df05f1e30e460609d37a610097658f326
description: Runs a report synchronously or asynchronously and with or without details.Retrieves report, report type, and extended metadata for a tabular, summary, or matrix report.Lists the field data types that you can use to filter the report.Retrieves results for an instance of a report that has been run asynchronously. The settings you use when you run your asynchronous report determine whether you can retrieve summary data or detailed data.Returns a list of instances for a report that was run asynchronously. Each item in the list represents a separate instance of the report, with metadata for the time at which the report was run.Runs a report asynchronously with the report ID. Includes details if includeDetails is set to true. Filters the report based on the report metadata in reportMetadata. Runs a report asynchronously with the report ID. Includes details if includeDetails is set to true.Runs a report asynchronously with the report ID. Filters the results based on the report metadata in reportMetadata.Runs a report asynchronously with the report ID.Runs a report immediately with the report ID. Includes details if includeDetails is set to true. Filters the results based on the report metadata in reportMetadata. Runs a report immediately with the report ID. Includes details if includeDetails is set to true.Runs a report immediately with the report ID. Filters the results based on the report metadata in rmData.Runs a report immediately with the report ID.
---
# ReportManager Class

Runs a report synchronously or asynchronously and with or without details.

## Namespace

[Reports](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_namespace_Reports.htm "The Reports namespace provides classes for accessing the same data as is available in the Salesforce Reports and Dashboards REST API.")

## Usage

Gets instances of reports and describes the metadata of Reports.

## ReportManager Methods

The following are methods for ReportManager. All methods are static.

- **[describeReport(reportId)](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportmanager.htm#apex_Reports_ReportManager_describeReport)**  
    Retrieves report, report type, and extended metadata for a tabular, summary, or matrix report.
- **[getDatatypeFilterOperatorMap()](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportmanager.htm#apex_Reports_ReportManager_getDatatypeFilterOperatorMap)**  
    Lists the field data types that you can use to filter the report.
- **[getReportInstance(instanceId)](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportmanager.htm#apex_Reports_ReportManager_getReportInstance)**  
    Retrieves results for an instance of a report that has been run asynchronously. The settings you use when you run your asynchronous report determine whether you can retrieve summary data or detailed data.
- **[getReportInstances(reportId)](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportmanager.htm#apex_Reports_ReportManager_getReportInstances)**  
    Returns a list of instances for a report that was run asynchronously. Each item in the list represents a separate instance of the report, with metadata for the time at which the report was run.
- **[runAsyncReport(reportId, reportMetadata, includeDetails)](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportmanager.htm#apex_Reports_ReportManager_runAsyncReport)**  
    Runs a report asynchronously with the report ID. Includes details if includeDetails is set to true. Filters the report based on the report metadata in reportMetadata.
- **[runAsyncReport(reportId, includeDetails)](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportmanager.htm#apex_Reports_ReportManager_runAsyncReport_2)**  
    Runs a report asynchronously with the report ID. Includes details if includeDetails is set to true.
- **[runAsyncReport(reportId, reportMetadata)](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportmanager.htm#apex_Reports_ReportManager_runAsyncReport_3)**  
    Runs a report asynchronously with the report ID. Filters the results based on the report metadata in reportMetadata.
- **[runAsyncReport(reportId)](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportmanager.htm#apex_Reports_ReportManager_runAsyncReport_4)**  
    Runs a report asynchronously with the report ID.
- **[runReport(reportId, reportMetadata, includeDetails)](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportmanager.htm#apex_Reports_ReportManager_runReport)**  
    Runs a report immediately with the report ID. Includes details if includeDetails is set to true. Filters the results based on the report metadata in reportMetadata.
- **[runReport(reportId, includeDetails)](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportmanager.htm#apex_Reports_ReportManager_runReport_2)**  
    Runs a report immediately with the report ID. Includes details if includeDetails is set to true.
- **[runReport(reportId, reportMetadata)](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportmanager.htm#apex_Reports_ReportManager_runReport_3)**  
    Runs a report immediately with the report ID. Filters the results based on the report metadata in rmData.
- **[runReport(reportId)](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportmanager.htm#apex_Reports_ReportManager_runReport_4)**  
    Runs a report immediately with the report ID.

### describeReport(reportId)

Retrieves report, report type, and extended metadata for a tabular, summary, or matrix report.

#### Syntax

public static Reports.ReportDescribeResult describeReport(Id reportId)

#### Parameters

- **reportId**:
    
    Type: [Id](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_id.htm#apex_methods_system_id "Contains methods for the ID primitive data type.")

#### Return Value

Type: [Reports.ReportDescribeResult](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportdescriberesult.htm#apex_class_reports_reportdescriberesult "Contains report, report type, and extended metadata for a tabular, summary, or matrix report.")

### getDatatypeFilterOperatorMap()

Lists the field data types that you can use to filter the report.

#### Syntax

public static MAP<String,LIST<Reports.FilterOperator>> getDatatypeFilterOperatorMap()

#### Return Value

Type: [Map](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_map.htm#apex_methods_system_map "Contains methods for the Map collection type.")<[String](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_string.htm#apex_methods_system_string "Contains methods for the String primitive data type."), [List](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_list.htm#apex_methods_system_list "Contains methods for the List collection type.")<[Reports.FilterOperator](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_filteroperator.htm#apex_class_reports_filteroperator "Contains information about a filter operator, such as display name and API name.")\>>

### getReportInstance(instanceId)

Retrieves results for an instance of a report that has been run asynchronously. The settings you use when you run your asynchronous report determine whether you can retrieve summary data or detailed data.

#### Syntax

public static Reports.ReportInstance getReportInstance(Id instanceId)

#### Parameters

- **instanceId**:
    
    Type: [Id](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_id.htm#apex_methods_system_id "Contains methods for the ID primitive data type.")

#### Return Value

Type: [Reports.ReportInstance](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportinstance.htm#apex_class_reports_reportinstance "Returns an instance of a report that was run asynchronously. Retrieves the results for that instance.")

### getReportInstances(reportId)

Returns a list of instances for a report that was run asynchronously. Each item in the list represents a separate instance of the report, with metadata for the time at which the report was run.

#### Syntax

public static LIST<Reports.ReportInstance> getReportInstances(Id reportId)

#### Parameters

- **reportId**:
    
    Type: [Id](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_id.htm#apex_methods_system_id "Contains methods for the ID primitive data type.")

#### Return Value

Type: [List](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_list.htm#apex_methods_system_list "Contains methods for the List collection type.")<[Reports.ReportInstance](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportinstance.htm#apex_class_reports_reportinstance "Returns an instance of a report that was run asynchronously. Retrieves the results for that instance.")\>

### runAsyncReport(reportId, reportMetadata, includeDetails)

Runs a report asynchronously with the report ID. Includes details if includeDetails is set to true. Filters the report based on the report metadata in reportMetadata.

#### Syntax

public static Reports.ReportInstance runAsyncReport(Id reportId, Reports.ReportMetadata reportMetadata, Boolean includeDetails)

#### Parameters

- **reportId**:
    
    Type: [Id](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_id.htm#apex_methods_system_id "Contains methods for the ID primitive data type.")
- **reportMetadata**:
    
    Type: [Reports.ReportMetadata](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportmetadata.htm#apex_class_reports_reportmetadata "Contains report metadata for a tabular, summary, or matrix report.")
- **includeDetails**:
    
    Type: [Boolean](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_boolean.htm#apex_methods_system_boolean "Contains methods for the Boolean primitive data type.")

#### Return Value

Type: [Reports.ReportInstance](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportinstance.htm#apex_class_reports_reportinstance "Returns an instance of a report that was run asynchronously. Retrieves the results for that instance.")

### runAsyncReport(reportId, includeDetails)

Runs a report asynchronously with the report ID. Includes details if includeDetails is set to true.

#### Syntax

public static Reports.ReportInstance runAsyncReport(Id reportId, Boolean includeDetails)

#### Parameters

- **reportId**:
    
    Type: [Id](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_id.htm#apex_methods_system_id "Contains methods for the ID primitive data type.")
- **includeDetails**:
    
    Type: [Boolean](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_boolean.htm#apex_methods_system_boolean "Contains methods for the Boolean primitive data type.")

#### Return Value

Type: [Reports.ReportInstance](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportinstance.htm#apex_class_reports_reportinstance "Returns an instance of a report that was run asynchronously. Retrieves the results for that instance.")

### runAsyncReport(reportId, reportMetadata)

Runs a report asynchronously with the report ID. Filters the results based on the report metadata in reportMetadata.

#### Syntax

public static Reports.ReportInstance runAsyncReport(Id reportId, Reports.ReportMetadata reportMetadata)

#### Parameters

- **reportId**:
    
    Type: [Id](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_id.htm#apex_methods_system_id "Contains methods for the ID primitive data type.")
- **reportMetadata**:
    
    Type: [Reports.ReportMetadata](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportmetadata.htm#apex_class_reports_reportmetadata "Contains report metadata for a tabular, summary, or matrix report.")

#### Return Value

Type: [Reports.ReportInstance](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportinstance.htm#apex_class_reports_reportinstance "Returns an instance of a report that was run asynchronously. Retrieves the results for that instance.")

### runAsyncReport(reportId)

Runs a report asynchronously with the report ID.

#### Syntax

public static Reports.ReportInstance runAsyncReport(Id reportId)

#### Parameters

- **reportId**:
    
    Type: [Id](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_id.htm#apex_methods_system_id "Contains methods for the ID primitive data type.")

#### Return Value

Type: [Reports.ReportInstance](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportinstance.htm#apex_class_reports_reportinstance "Returns an instance of a report that was run asynchronously. Retrieves the results for that instance.")

### runReport(reportId, reportMetadata, includeDetails)

Runs a report immediately with the report ID. Includes details if includeDetails is set to true. Filters the results based on the report metadata in reportMetadata.

#### Syntax

public static Reports.ReportResults runReport(Id reportId, Reports.ReportMetadata reportMetadata, Boolean includeDetails)

#### Parameters

- **reportId**:
    
    Type: [Id](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_id.htm#apex_methods_system_id "Contains methods for the ID primitive data type.")
- **reportMetadata**:
    
    Type: [Reports.ReportMetadata](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportmetadata.htm#apex_class_reports_reportmetadata "Contains report metadata for a tabular, summary, or matrix report.")
- **includeDetails**:
    
    Type: [Boolean](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_boolean.htm#apex_methods_system_boolean "Contains methods for the Boolean primitive data type.")

#### Return Value

Type: [Reports.ReportResults](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportresults.htm#apex_class_reports_reportresults "Contains the results of running a report.")

### runReport(reportId, includeDetails)

Runs a report immediately with the report ID. Includes details if includeDetails is set to true.

#### Syntax

public static Reports.ReportResults runReport(Id reportId, Boolean includeDetails)

#### Parameters

- **reportId**:
    
    Type: [Id](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_id.htm#apex_methods_system_id "Contains methods for the ID primitive data type.")
- **includeDetails**:
    
    Type: [Boolean](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_boolean.htm#apex_methods_system_boolean "Contains methods for the Boolean primitive data type.")

#### Return Value

Type: [Reports.ReportResults](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportresults.htm#apex_class_reports_reportresults "Contains the results of running a report.")

### runReport(reportId, reportMetadata)

Runs a report immediately with the report ID. Filters the results based on the report metadata in rmData.

#### Syntax

public static Reports.ReportResults runReport(Id reportId, Reports.ReportMetadata reportMetadata)

#### Parameters

- **reportId**:
    
    Type: [Id](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_id.htm#apex_methods_system_id "Contains methods for the ID primitive data type.")
- **reportMetadata**:
    
    Type: [Reports.ReportMetadata](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportmetadata.htm#apex_class_reports_reportmetadata "Contains report metadata for a tabular, summary, or matrix report.") [Reports.ReportMetadata](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportmetadata.htm#apex_class_reports_reportmetadata "Contains report metadata for a tabular, summary, or matrix report.")

#### Return Value

Type: [Reports.ReportResults](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportresults.htm#apex_class_reports_reportresults "Contains the results of running a report.")

### runReport(reportId)

Runs a report immediately with the report ID.

#### Syntax

public static Reports.ReportResults runReport(Id reportId)

#### Parameters

- **reportId**:
    
    Type: [Id](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_methods_system_id.htm#apex_methods_system_id "Contains methods for the ID primitive data type.")

#### Return Value

Type: [Reports.ReportResults](https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_class_reports_reportresults.htm#apex_class_reports_reportresults "Contains the results of running a report.")