- [HTTP request](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/batchRunReports#body.HTTP_TEMPLATE)
- [Path parameters](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/batchRunReports#body.PATH_PARAMETERS)
- [Request body](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/batchRunReports#body.request_body)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/batchRunReports#body.request_body.SCHEMA_REPRESENTATION)
- [Response body](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/batchRunReports#body.response_body)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/batchRunReports#body.BatchRunReportsResponse.SCHEMA_REPRESENTATION)
- [Authorization scopes](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/batchRunReports#body.aspect)
- [RunReportRequest](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/batchRunReports#RunReportRequest)
  - [JSON representation](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/batchRunReports#RunReportRequest.SCHEMA_REPRESENTATION)
- [Try it!](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/batchRunReports#try-it)

Returns multiple reports in a batch. All reports must be for the same Google Analytics property.

### HTTP request

`POST https://analyticsdata.googleapis.com/v1beta/{property=properties/*}:batchRunReports`

The URL uses [gRPC Transcoding](https://google.aip.dev/127) syntax.

### Path parameters

| Parameters ||
|---|---|
| `property` | `string` A Google Analytics property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). This property must be specified for the batch. The property within RunReportRequest may either be unspecified or consistent with this property. Example: properties/1234 |

### Request body

The request body contains data with the following structure:

| JSON representation |
|---|
| ``` { "requests": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/batchRunReports#RunReportRequest`) } ] } ``` |

| Fields ||
|---|---|
| `requests[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/batchRunReports#RunReportRequest`)`` Individual requests. Each request has a separate report response. Each batch request is allowed up to 5 requests. |

### Response body

The batch response containing multiple reports.

If successful, the response body contains data with the following structure:

| JSON representation |
|---|
| ``` { "reports": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/RunReportResponse`) } ], "kind": string } ``` |

| Fields ||
|---|---|
| `reports[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/RunReportResponse`)`` Individual responses. Each response has a separate report request. |
| `kind` | `string` Identifies what kind of resource this message is. This `kind` is always the fixed string "analyticsData#batchRunReports". Useful to distinguish between response types in JSON. |

### Authorization scopes

Requires one of the following OAuth scopes:

- `https://www.googleapis.com/auth/analytics.readonly`
- `https://www.googleapis.com/auth/analytics`

## RunReportRequest

The request to generate a report.

| JSON representation |
|---|
| ``` { "property": string, "dimensions": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/Dimension`) } ], "metrics": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/Metric`) } ], "dateRanges": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/DateRange`) } ], "dimensionFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/FilterExpression`) }, "metricFilter": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/FilterExpression`) }, "offset": string, "limit": string, "metricAggregations": [ enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/MetricAggregation`) ], "orderBys": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/OrderBy`) } ], "currencyCode": string, "cohortSpec": { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/CohortSpec`) }, "keepEmptyRows": boolean, "returnPropertyQuota": boolean, "comparisons": [ { object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/Comparison`) } ] } ``` |

| Fields ||
|---|---|
| `property` | `string` A Google Analytics property identifier whose events are tracked. Specified in the URL path and not the body. To learn more, see [where to find your Property ID](https://developers.google.com/analytics/devguides/reporting/data/v1/property-id). Within a batch request, this property should either be unspecified or consistent with the batch-level property. Example: properties/1234 |
| `dimensions[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/Dimension`)`` The dimensions requested and displayed. |
| `metrics[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/Metric`)`` The metrics requested and displayed. |
| `dateRanges[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/DateRange`)`` Date ranges of data to read. If multiple date ranges are requested, each response row will contain a zero based date range index. If two date ranges overlap, the event data for the overlapping days is included in the response rows for both date ranges. In a cohort request, this `dateRanges` must be unspecified. |
| `dimensionFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/FilterExpression`)`` Dimension filters let you ask for only specific dimension values in the report. To learn more, see [Fundamentals of Dimension Filters](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#dimension_filters) for examples. Metrics cannot be used in this filter. |
| `metricFilter` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/FilterExpression`)`` The filter clause of metrics. Applied after aggregating the report's rows, similar to SQL having-clause. Dimensions cannot be used in this filter. |
| `offset` | `string (https://developers.google.com/discovery/v1/type-format format)` The row count of the start row. The first row is counted as row 0. When paging, the first request does not specify offset; or equivalently, sets offset to 0; the first request returns the first `limit` of rows. The second request sets offset to the `limit` of the first request; the second request returns the second `limit` of rows. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). |
| `limit` | `string (https://developers.google.com/discovery/v1/type-format format)` The number of rows to return. If unspecified, 10,000 rows are returned. The API returns a maximum of 250,000 rows per request, no matter how many you ask for. `limit` must be positive. The API can also return fewer rows than the requested `limit`, if there aren't as many dimension values as the `limit`. For instance, there are fewer than 300 possible values for the dimension `country`, so when reporting on only `country`, you can't get more than 300 rows, even if you set `limit` to a higher value. To learn more about this pagination parameter, see [Pagination](https://developers.google.com/analytics/devguides/reporting/data/v1/basics#pagination). |
| `metricAggregations[]` | ``enum (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/MetricAggregation`)`` Aggregation of metrics. Aggregated metric values will be shown in rows where the dimensionValues are set to "RESERVED_(MetricAggregation)". Aggregates including both comparisons and multiple date ranges will be aggregated based on the date ranges. |
| `orderBys[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/OrderBy`)`` Specifies how rows are ordered in the response. Requests including both comparisons and multiple date ranges will have order bys applied on the comparisons. |
| `currencyCode` | `string` A currency code in ISO4217 format, such as "AED", "USD", "JPY". If the field is empty, the report uses the property's default currency. |
| `cohortSpec` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/CohortSpec`)`` Cohort group associated with this request. If there is a cohort group in the request the 'cohort' dimension must be present. |
| `keepEmptyRows` | `boolean` If false or unspecified, each row with all metrics equal to 0 will not be returned. If true, these rows will be returned if they are not separately removed by a filter. Regardless of this `keepEmptyRows` setting, only data recorded by the Google Analytics property can be displayed in a report. For example if a property never logs a `purchase` event, then a query for the `eventName` dimension and `eventCount` metric will not have a row eventName: "purchase" and eventCount: 0. |
| `returnPropertyQuota` | `boolean` Toggles whether to return the current state of this Google Analytics property's quota. Quota is returned in [PropertyQuota](https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/properties/batchRunReports#PropertyQuota). |
| `comparisons[]` | ``object (`https://developers.google.com/analytics/devguides/reporting/data/v1/rest/v1beta/Comparison`)`` Optional. The configuration of comparisons requested and displayed. The request only requires a comparisons field in order to receive a comparison column in the response. |