# Listing the approval data

The APIs below provide the approval data for an approver or a company.

| Name  | Endpoint  | Details  |
|  --- | --- | --- |
| [List approval data for an approver](/openapi/tripapi#operation/getapprovaluserapprovaldatalist) | `/v3/approvals/approvers/{userId}/list` | Retrieve the list of approval data using the approver’s `userId`.
**URL path requires:** `userId` of the approver.
The request body can contain optional [filter](/spotnana/listing_approvals_workflow#filters-for-listing-approval-data) parameters.
For example, filter by approval type, approval status, etc.
**Response will contain:** The list of approval data such as the `approvalId`, `pnrId`, `tripId`, `approvalStatus`, `approvalType`, `approvalVoidDeadline`, etc.
**Note:** The [process PNR approval](/openapi/tripapi#operation/processpnrapproval) endpoint uses
both `approvalId` and `pnrId` in the request. |
| [List approval data for a company](/openapi/tripapi#operation/getcompanyapprovaldatalist) | `/v3/approvals/companies/{companyId}/list` | Retrieve the list of approval data using the `companyId`.
**URL path requires:** `companyId` of the company.
The request body can contain optional [filter](/spotnana/listing_approvals_workflow#filters-for-listing-approval-data) parameters. For example, filter by the approver's user ID, approval type, approval status, etc.
**Response will contain:** The list of approval data such as the `approvalId`, `pnrId`, `tripId`, `approvalStatus`, `approvalType`, `approvalVoidDeadline`, etc.
**Other APIs will use:** `approvalId` and `pnrId` |


## Filters for listing approval data

Both of the [list approval data](/spotnana/listing_approvals_workflow) endpoints allow you to filter the approval data results using specific parameters.
The request schema of the `approvalFilters` > `filterType` field contains the following filters.

| Filters  | Description  |
|  --- | --- |
| `APPROVER_USER_ID_FILTER` | Filter by `userId` of the approvers.
**Note:** This filter is only applicable for the [list approval data for a company](/openapi/tripapi#operation/getcompanyapprovaldatalist) endpoint. |
| `APPROVAL_TYPE_FILTER` | Filter by [approval types](/spotnana/basic_approval_concepts#types-of-approvals). |
| `APPROVAL_STATUS_FILTER` | Filter by [approval statuses](/spotnana/basic_approval_concepts#approval-statuses). |
| `APPROVAL_DEADLINE_DATE_RANGE_FILTER` | Filter by the [approval deadlines](/spotnana/basic_approval_concepts#approval-deadline). For this filter, specify the date range (using the `startDate` and `endDate`) within which the deadline occurs. |
| `PRIMARY_TRAVELER_ID_FILTER` | Filter by travelers. Specify the list of traveler userIDs for which to retrieve the approval data. |
| `PNR_TYPE_FILTER` | Filter by [booking type](/spotnana/basic_trip_concepts#travel-services) (e.g., air, hotel, rail, car, limo, or miscellaneous). |
| `OUT_OF_POLICY_FILTER` | Filter by out-of-policy bookings.
If the `OUT_OF_POLICY_FILTER` is set to `true`, the results will only contain out-of-policy approvals.
If the `OUT_OF_POLICY_FILTER` is `false`, the results will contain the approvals that are within the policy. |
| `TRIP_ID_FILTER` | Filter by specific [trip IDs](/spotnana/basic_trip_concepts). |


> **Note:** Since the `approvalFilters` field is an array object,
you can combine two or more filters in the API request.
For example, the request can contain both `APPROVER_USER_ID_FILTER` and `APPROVAL_TYPE_FILTER`.
The response will contain the approval data that matches the approver user IDs and approval type mentioned in the request.


## Pagination

You can use pagination when listing the approval data.
Use the `paginationRequestParams` > `offset` and `limit` fields to paginate the approval data in the results.

For example, assume you need to display a list of 75 approval data items per page.

1. In the first API call, set the `offset` to `0` and `limit` to `75`. This will return the first 75 approval data items.
2. In the second API call, set the `offset` to `75` and `limit` to `75`. This will return the next list of 75 approval data items.


> **Notes:**
* The `limit` field can contain an integer value between `1` and `100`. This means a maximum of 100 approval data items can be returned in a single API call.
* The `paginationRequestParams` is an optional field. If the `offset` and `limit` fields are not specified in the request, a default value of `offset: 0` and `limit: 100` will be set.