# Method: vitals.errors.reports.search

- [HTTP request](https://developers.google.com/play/developer/reporting/reference/rest/v1beta1/vitals.errors.reports/search#body.HTTP_TEMPLATE)
- [Path parameters](https://developers.google.com/play/developer/reporting/reference/rest/v1beta1/vitals.errors.reports/search#body.PATH_PARAMETERS)
- [Query parameters](https://developers.google.com/play/developer/reporting/reference/rest/v1beta1/vitals.errors.reports/search#body.QUERY_PARAMETERS)
- [Request body](https://developers.google.com/play/developer/reporting/reference/rest/v1beta1/vitals.errors.reports/search#body.request_body)
- [Response body](https://developers.google.com/play/developer/reporting/reference/rest/v1beta1/vitals.errors.reports/search#body.response_body)
  - [JSON representation](https://developers.google.com/play/developer/reporting/reference/rest/v1beta1/vitals.errors.reports/search#body.SearchErrorReportsResponse.SCHEMA_REPRESENTATION)
- [Authorization scopes](https://developers.google.com/play/developer/reporting/reference/rest/v1beta1/vitals.errors.reports/search#body.aspect)

Searches all error reports received for an app.

### HTTP request

`GET https://playdeveloperreporting.googleapis.com/v1beta1/{parent=apps/*}/errorReports:search`

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

### Path parameters

| Parameters ||
|---|---|
| `parent` | `string` Required. Parent resource of the reports, indicating the application for which they were received. Format: apps/{app} |

### Query parameters

| Parameters ||
|---|---|
| `interval` | ``object (`https://developers.google.com/play/developer/reporting/reference/rest/v1beta1/DateTimeInterval`)`` The date time interval to search error reports. Both start and end must be hour-aligned and use `UTC` as timezone (or be empty, in which case `UTC` will be used too). If set, only error reports that occurred in the interval will be returned. If unspecified, the default interval of the last 24 hours will be used. |
| `pageSize` | `integer` The maximum number of reports to return. The service may return fewer than this value. If unspecified, at most 50 reports will be returned. The maximum value is 100; values above 100 will be coerced to 100. |
| `pageToken` | `string` A page token, received from a previous `reports.search` call. Provide this to retrieve the subsequent page. When paginating, all other parameters provided to `reports.search` must match the call that provided the page token. |
| `filter` | `string` A selection predicate to retrieve only a subset of the reports. For filtering basics, please check [AIP-160](https://google.aip.dev/160). \*\* Supported field names:\*\* - `apiLevel`: Matches error reports that occurred in the requested Android versions (specified as the numeric API level) only. Example: `apiLevel = 28 OR apiLevel = 29`. - `versionCode`: Matches error reports that occurred in the requested app version codes only. Example: `versionCode = 123 OR versionCode = 456`. - `deviceModel`: Matches error issues that occurred in the requested devices. Example: `deviceModel = "google/walleye" OR deviceModel = "google/marlin"`. - `deviceBrand`: Matches error issues that occurred in the requested device brands. Example: \`deviceBrand = "Google". - `deviceType`: Matches error reports that occurred in the requested device types. Example: `deviceType = "PHONE"`. - `errorIssueType`: Matches error reports of the requested types only. Valid candidates: `CRASH`, `ANR`, `NON_FATAL`. Example: `errorIssueType = CRASH OR errorIssueType = ANR`. - `errorIssueId`: Matches error reports belonging to the requested error issue ids only. Example: `errorIssueId = 1234 OR errorIssueId = 4567`. - `errorReportId`: Matches error reports with the requested error report id. Example: `errorReportId = 1234 OR errorReportId = 4567`. - `appProcessState`: Matches error reports on the process state of an app, indicating whether an app runs in the foreground (user-visible) or background. Valid candidates: `FOREGROUND`, `BACKGROUND`. Example: `appProcessState = FOREGROUND`. - `isUserPerceived`: Matches error reports that are user-perceived. It is not accompanied by any operators. Example: `isUserPerceived`. \*\* Supported operators:\*\* - Comparison operators: The only supported comparison operator is equality. The filtered field must appear on the left hand side of the comparison. - Logical Operators: Logical operators `AND` and `OR` can be used to build complex filters following a conjunctive normal form (CNF), i.e., conjunctions of disjunctions. The `OR` operator takes precedence over `AND` so the use of parenthesis is not necessary when building CNF. The `OR` operator is only supported to build disjunctions that apply to the same field, e.g., `versionCode = 123 OR versionCode = ANR`. The filter expression `versionCode = 123 OR errorIssueType = ANR` is not valid. \*\* Examples \*\* Some valid filtering expressions: \* `versionCode = 123 AND errorIssueType = ANR` \* `versionCode = 123 AND errorIssueType = OR errorIssueType = CRASH` \* `versionCode = 123 AND (errorIssueType = OR errorIssueType = CRASH)` |

### Request body

The request body must be empty.

### Response body

Response with a paginated list of error reports matching the search query.

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

| JSON representation |
|---|
| ``` { "errorReports": [ { object (`https://developers.google.com/play/developer/reporting/reference/rest/v1beta1/vitals.errors.reports#ErrorReport`) } ], "nextPageToken": string } ``` |

| Fields ||
|---|---|
| `errorReports[]` | ``object (`https://developers.google.com/play/developer/reporting/reference/rest/v1beta1/vitals.errors.reports#ErrorReport`)`` Error reports that were found. |
| `nextPageToken` | `string` Page token to fetch the next page of reports. |

### Authorization scopes

Requires the following OAuth scope:

- `https://www.googleapis.com/auth/playdeveloperreporting`

For more information, see the [OAuth 2.0 Overview](https://developers.google.com/identity/protocols/OAuth2).