---
title: "List approval requests"
method: GET
path: "/api/v2/approval-requests"
tags: ["Approvals"]
---

# List approval requests

`GET /api/v2/approval-requests`

Get all approval requests.

### Filtering approvals

LaunchDarkly supports the `filter` query param for filtering, with the following fields:

- `notifyMemberIds` filters for only approvals that are assigned to a member in the specified list. For example: `filter=notifyMemberIds anyOf ["memberId1", "memberId2"]`.
- `requestorId` filters for only approvals that correspond to the ID of the member who requested the approval. For example: `filter=requestorId equals 457034721476302714390214`.
- `resourceId` filters for only approvals that correspond to the the specified resource identifier. For example: `filter=resourceId equals proj/my-project:env/my-environment:flag/my-flag`.
- `resourceKind` filters for only approvals that correspond to the specified resource kind. For example: `filter=resourceKind equals flag`. Currently, `flag`, `segment`, and `aiConfig` resource kinds are supported.
- `reviewStatus` filters for only approvals which correspond to the review status in the specified list. The possible values are `approved`, `declined`, and `pending`. For example: `filter=reviewStatus anyOf ["pending", "approved"]`.
- `status` filters for only approvals which correspond to the status in the specified list. The possible values are `pending`, `scheduled`, `failed`, and `completed`. For example: `filter=status anyOf ["pending", "scheduled"]`.

You can also apply multiple filters at once. For example, setting `filter=projectKey equals my-project, reviewStatus anyOf ["pending","approved"]` matches approval requests which correspond to the `my-project` project key, and a review status of either `pending` or `approved`.

### Expanding approval response

LaunchDarkly supports the `expand` query param to include additional fields in the response, with the following fields:

- `flag` includes the flag the approval request belongs to
- `project` includes the project the approval request belongs to
- `environments` includes the environments the approval request relates to

For example, `expand=project,flag` includes the `project` and `flag` fields in the response.

## Query parameters

- `filter` string, string — A comma-separated list of filters. Each filter is of the form `field operator value`. Supported fields are explained above.
- `expand` string, string — A comma-separated list of fields to expand in the response. Supported fields are explained above.
- `limit` integer — The number of approvals to return. Defaults to 20. Maximum limit is 200.
- `offset` integer — Where to start in the list. Use this with pagination. For example, an offset of 10 skips the first ten items and then returns the next items in the list, up to the query `limit`.

## Response `200`

Approval request collection response

- ExpandableApprovalRequestsResponse
  - `items` ExpandableApprovalRequestResponse[], required — An array of approval requests
    - `_id` string, required — The ID of this approval request
    - `_version` integer, required — Version of the approval request
    - `creationDate` integer, required
    - `serviceKind` string, required
    - `requestorId` string — The ID of the member who requested the approval
    - `description` string — A human-friendly name for the approval request
    - `reviewStatus` 'approved' | 'declined' | 'pending', required — Current status of the review of this approval request
    - `allReviews` ReviewResponse[], required — An array of individual reviews of this approval request
      - `_id` string, required — The approval request ID
      - `kind` 'approve' | 'decline' | 'comment', required — The type of review action to take
      - `creationDate` integer
      - `comment` string — A comment describing the approval response
      - `memberId` string — ID of account member that reviewed request
      - `serviceTokenId` string — ID of account service token that reviewed request
    - `notifyMemberIds` string[], required — An array of member IDs. These members are notified to review the approval request.
    - `appliedDate` integer
    - `appliedByMemberId` string — The member ID of the member who applied the approval request
    - `appliedByServiceTokenId` string — The service token ID of the service token which applied the approval request
    - `status` 'pending' | 'completed' | 'failed' | 'scheduled', required — Current status of the approval request
    - `instructions` Instruction[], required
    - `conflicts` Conflict[], required — Details on any conflicting approval requests
      - `instruction` Instruction
      - `reason` string — Reason why the conflict exists
    - `_links` object, required — The location and content type of related resources
    - `executionDate` integer
    - `operatingOnId` string — ID of scheduled change to edit or delete
    - `integrationMetadata` IntegrationMetadata
      - `externalId` string, required
      - `externalStatus` IntegrationStatus, required
        - `display` string, required
        - `value` string, required
      - `externalUrl` string, required
      - `lastChecked` integer, required
    - `source` CopiedFromEnv
      - `key` string, required — Key of feature flag copied
      - `version` integer — Version of feature flag copied
    - `customWorkflowMetadata` CustomWorkflowMeta
      - `name` string — The name of the workflow stage that required this approval request
      - `stage` CustomWorkflowStageMeta
        - `index` integer — The zero-based index of the workflow stage
        - `name` string — The name of the workflow stage
    - `resourceId` string — String representation of a resource
    - `approvalSettings` ApprovalSettings
      - `required` boolean, required — If approvals are required for this environment
      - `bypassApprovalsForPendingChanges` boolean, required — Whether to skip approvals for pending changes
      - `minNumApprovals` integer, required — Sets the amount of approvals required before a member can apply a change. The minimum is one and the maximum is five.
      - `canReviewOwnRequest` boolean, required — Allow someone who makes an approval request to apply their own change
      - `canApplyDeclinedChanges` boolean, required — Allow applying the change as long as at least one person has approved
      - `autoApplyApprovedChanges` boolean — Automatically apply changes that have been approved by all reviewers. This field is only applicable for approval services other than LaunchDarkly.
      - `serviceKind` string, required — Which service to use for managing approvals
      - `serviceConfig` object, required
      - `requiredApprovalTags` string[], required — Require approval only on flags with the provided tags. Otherwise all flags will require approval.
      - `serviceKindConfigurationId` string — Optional field for integration configuration ID of a custom approval integration. This is an Enterprise-only feature.
      - `resourceKind` string — The kind of resource for which the approval settings apply, for example, flag or segment
    - `project` Project
      - `_links` object, required — The location and content type of related resources
      - `_id` string, required — The ID of this project
      - `key` string, required — The key of this project
      - `includeInSnippetByDefault` boolean, required — Whether or not flags created in this project are made available to the client-side JavaScript SDK by default
      - `defaultClientSideAvailability` ClientSideAvailability
        - `usingMobileKey` boolean
        - `usingEnvironmentId` boolean
      - `name` string, required — A human-friendly name for the project
      - `_access` Access
        - `denied` AccessDenied[], required
          - `action` string, required
          - `reason` AccessDeniedReason, required
            - `resources` string[] — Resource specifier strings
            - `notResources` string[] — Targeted resources are the resources NOT in this list. The <code>resources</code> and <code>notActions</code> fields must be empty to use this field.
            - `actions` ActionSpecifier[] — Actions to perform on a resource
            - `notActions` ActionSpecifier[] — Targeted actions are the actions NOT in this list. The <code>actions</code> and <code>notResources</code> fields must be empty to use this field.
            - `effect` 'allow' | 'deny', required — Whether this statement should allow or deny actions on the resources.
            - `role_name` string
        - `allowed` AccessAllowedRep[], required
          - `action` string, required
          - `reason` AccessAllowedReason, required
            - `resources` string[] — Resource specifier strings
            - `notResources` string[] — Targeted resources are the resources NOT in this list. The <code>resources</code> and <code>notActions</code> fields must be empty to use this field.
            - `actions` ActionSpecifier[] — Actions to perform on a resource
            - `notActions` ActionSpecifier[] — Targeted actions are the actions NOT in this list. The <code>actions</code> and <code>notResources</code> fields must be empty to use this field.
            - `effect` 'allow' | 'deny', required — Whether this statement should allow or deny actions on the resources.
            - `role_name` string
      - `tags` string[], required — A list of tags for the project
      - `defaultReleasePipelineKey` string — The key of the default release pipeline for this project
      - `environments` Environments
        - `_links` object — The location and content type of related resources
        - `totalCount` integer — The number of environments returned
        - `items` Environment[], required — An array of environments
          - `_links` object, required — The location and content type of related resources
          - `_id` string, required — The ID for the environment. Use this as the client-side ID for authorization in some client-side SDKs, and to associate LaunchDarkly environments with CDN integrations in edge SDKs.
          - `key` string, required — A project-unique key for the new environment
          - `name` string, required — A human-friendly name for the new environment
          - `apiKey` string, required — The SDK key for the environment. Use this for authorization in server-side SDKs.
          - `mobileKey` string, required — The mobile key for the environment. Use this for authorization in mobile SDKs.
          - `color` string, required — The color used to indicate this environment in the UI
          - `defaultTtl` integer, required — The default time (in minutes) that the PHP SDK can cache feature flag rules locally
          - `secureMode` boolean, required — Ensures that one end user of the client-side SDK cannot inspect the variations for another end user
          - `_access` Access
            - `denied` AccessDenied[], required
              - …
            - `allowed` AccessAllowedRep[], required
              - …
          - `defaultTrackEvents` boolean, required — Enables tracking detailed information for new flags by default
          - `requireComments` boolean, required — Whether members who modify flags and segments through the LaunchDarkly user interface are required to add a comment
          - `confirmChanges` boolean, required — Whether members who modify flags and segments through the LaunchDarkly user interface are required to confirm those changes
          - `tags` string[], required — A list of tags for this environment
          - `approvalSettings` ApprovalSettings
            - `required` boolean, required — If approvals are required for this environment
            - `bypassApprovalsForPendingChanges` boolean, required — Whether to skip approvals for pending changes
            - `minNumApprovals` integer, required — Sets the amount of approvals required before a member can apply a change. The minimum is one and the maximum is five.
            - `canReviewOwnRequest` boolean, required — Allow someone who makes an approval request to apply their own change
            - `canApplyDeclinedChanges` boolean, required — Allow applying the change as long as at least one person has approved
            - `autoApplyApprovedChanges` boolean — Automatically apply changes that have been approved by all reviewers. This field is only applicable for approval services other than LaunchDarkly.
            - `serviceKind` string, required — Which service to use for managing approvals
            - `serviceConfig` object, required
            - `requiredApprovalTags` string[], required — Require approval only on flags with the provided tags. Otherwise all flags will require approval.
            - `serviceKindConfigurationId` string — Optional field for integration configuration ID of a custom approval integration. This is an Enterprise-only feature.
            - `resourceKind` string — The kind of resource for which the approval settings apply, for example, flag or segment
          - `resourceApprovalSettings` object — Details on the approval settings for this environment for each resource kind
          - `critical` boolean, required — Whether the environment is critical
    - `environments` Environment[] — List of environments the approval impacts
      - `_links` object, required — The location and content type of related resources
      - `_id` string, required — The ID for the environment. Use this as the client-side ID for authorization in some client-side SDKs, and to associate LaunchDarkly environments with CDN integrations in edge SDKs.
      - `key` string, required — A project-unique key for the new environment
      - `name` string, required — A human-friendly name for the new environment
      - `apiKey` string, required — The SDK key for the environment. Use this for authorization in server-side SDKs.
      - `mobileKey` string, required — The mobile key for the environment. Use this for authorization in mobile SDKs.
      - `color` string, required — The color used to indicate this environment in the UI
      - `defaultTtl` integer, required — The default time (in minutes) that the PHP SDK can cache feature flag rules locally
      - `secureMode` boolean, required — Ensures that one end user of the client-side SDK cannot inspect the variations for another end user
      - `_access` Access
        - `denied` AccessDenied[], required
          - `action` string, required
          - `reason` AccessDeniedReason, required
            - `resources` string[] — Resource specifier strings
            - `notResources` string[] — Targeted resources are the resources NOT in this list. The <code>resources</code> and <code>notActions</code> fields must be empty to use this field.
            - `actions` ActionSpecifier[] — Actions to perform on a resource
            - `notActions` ActionSpecifier[] — Targeted actions are the actions NOT in this list. The <code>actions</code> and <code>notResources</code> fields must be empty to use this field.
            - `effect` 'allow' | 'deny', required — Whether this statement should allow or deny actions on the resources.
            - `role_name` string
        - `allowed` AccessAllowedRep[], required
          - `action` string, required
          - `reason` AccessAllowedReason, required
            - `resources` string[] — Resource specifier strings
            - `notResources` string[] — Targeted resources are the resources NOT in this list. The <code>resources</code> and <code>notActions</code> fields must be empty to use this field.
            - `actions` ActionSpecifier[] — Actions to perform on a resource
            - `notActions` ActionSpecifier[] — Targeted actions are the actions NOT in this list. The <code>actions</code> and <code>notResources</code> fields must be empty to use this field.
            - `effect` 'allow' | 'deny', required — Whether this statement should allow or deny actions on the resources.
            - `role_name` string
      - `defaultTrackEvents` boolean, required — Enables tracking detailed information for new flags by default
      - `requireComments` boolean, required — Whether members who modify flags and segments through the LaunchDarkly user interface are required to add a comment
      - `confirmChanges` boolean, required — Whether members who modify flags and segments through the LaunchDarkly user interface are required to confirm those changes
      - `tags` string[], required — A list of tags for this environment
      - `approvalSettings` ApprovalSettings
        - `required` boolean, required — If approvals are required for this environment
        - `bypassApprovalsForPendingChanges` boolean, required — Whether to skip approvals for pending changes
        - `minNumApprovals` integer, required — Sets the amount of approvals required before a member can apply a change. The minimum is one and the maximum is five.
        - `canReviewOwnRequest` boolean, required — Allow someone who makes an approval request to apply their own change
        - `canApplyDeclinedChanges` boolean, required — Allow applying the change as long as at least one person has approved
        - `autoApplyApprovedChanges` boolean — Automatically apply changes that have been approved by all reviewers. This field is only applicable for approval services other than LaunchDarkly.
        - `serviceKind` string, required — Which service to use for managing approvals
        - `serviceConfig` object, required
        - `requiredApprovalTags` string[], required — Require approval only on flags with the provided tags. Otherwise all flags will require approval.
        - `serviceKindConfigurationId` string — Optional field for integration configuration ID of a custom approval integration. This is an Enterprise-only feature.
        - `resourceKind` string — The kind of resource for which the approval settings apply, for example, flag or segment
      - `resourceApprovalSettings` object — Details on the approval settings for this environment for each resource kind
      - `critical` boolean, required — Whether the environment is critical
    - `flag` ExpandedFlagRep
      - `name` string, required — A human-friendly name for the feature flag
      - `kind` 'boolean' | 'multivariate', required — Kind of feature flag
      - `description` string — Description of the feature flag
      - `key` string, required — A unique key used to reference the flag in your code
      - `_version` integer, required — Version of the feature flag
      - `creationDate` integer, required
      - `includeInSnippet` boolean — Deprecated, use <code>clientSideAvailability</code>. Whether this flag should be made available to the client-side JavaScript SDK
      - `clientSideAvailability` ClientSideAvailability
        - `usingMobileKey` boolean
        - `usingEnvironmentId` boolean
      - `variations` Variation[], required — An array of possible variations for the flag
        - `_id` string — The ID of the variation. Leave empty when you are creating a flag.
        - `value` unknown, required
        - `description` string — Description of the variation. Defaults to an empty string, but is omitted from the response if not set.
        - `name` string — A human-friendly name for the variation. Defaults to an empty string, but is omitted from the response if not set.
      - `temporary` boolean, required — Whether the flag is a temporary flag
      - `tags` string[], required — Tags for the feature flag
      - `_links` object, required — The location and content type of related resources
      - `maintainerId` string — The ID of the member who maintains the flag
      - `_maintainer` MemberSummary
        - `_links` object, required — The location and content type of related resources
        - `_id` string, required — The member's ID
        - `firstName` string — The member's first name
        - `lastName` string — The member's last name
        - `role` string, required — The member's base role. If the member has no additional roles, this role will be in effect.
        - `email` string, required — The member's email address
      - `customProperties` CustomProperties, required
      - `archived` boolean, required — Boolean indicating if the feature flag is archived
      - `archivedDate` integer
      - `defaults` Defaults
        - `onVariation` integer, required — The index, from the array of variations for this flag, of the variation to serve by default when targeting is on.
        - `offVariation` integer, required — The index, from the array of variations for this flag, of the variation to serve by default when targeting is off.
    - `resource` ExpandedResourceRep
      - `kind` string, required — The type of resource
      - `aiConfig` AIConfigRep
        - `key` string, required — The key of the AI Config
        - `name` string, required — The name of the AI Config
      - `flag` ExpandedFlagRep
        - `name` string, required — A human-friendly name for the feature flag
        - `kind` 'boolean' | 'multivariate', required — Kind of feature flag
        - `description` string — Description of the feature flag
        - `key` string, required — A unique key used to reference the flag in your code
        - `_version` integer, required — Version of the feature flag
        - `creationDate` integer, required
        - `includeInSnippet` boolean — Deprecated, use <code>clientSideAvailability</code>. Whether this flag should be made available to the client-side JavaScript SDK
        - `clientSideAvailability` ClientSideAvailability
          - `usingMobileKey` boolean
          - `usingEnvironmentId` boolean
        - `variations` Variation[], required — An array of possible variations for the flag
          - `_id` string — The ID of the variation. Leave empty when you are creating a flag.
          - `value` unknown, required
          - `description` string — Description of the variation. Defaults to an empty string, but is omitted from the response if not set.
          - `name` string — A human-friendly name for the variation. Defaults to an empty string, but is omitted from the response if not set.
        - `temporary` boolean, required — Whether the flag is a temporary flag
        - `tags` string[], required — Tags for the feature flag
        - `_links` object, required — The location and content type of related resources
        - `maintainerId` string — The ID of the member who maintains the flag
        - `_maintainer` MemberSummary
          - `_links` object, required — The location and content type of related resources
          - `_id` string, required — The member's ID
          - `firstName` string — The member's first name
          - `lastName` string — The member's last name
          - `role` string, required — The member's base role. If the member has no additional roles, this role will be in effect.
          - `email` string, required — The member's email address
        - `customProperties` CustomProperties, required
        - `archived` boolean, required — Boolean indicating if the feature flag is archived
        - `archivedDate` integer
        - `defaults` Defaults
          - `onVariation` integer, required — The index, from the array of variations for this flag, of the variation to serve by default when targeting is on.
          - `offVariation` integer, required — The index, from the array of variations for this flag, of the variation to serve by default when targeting is off.
      - `segment` UserSegment
        - `name` string, required — A human-friendly name for the segment.
        - `description` string — A description of the segment's purpose. Defaults to <code>null</code> and is omitted in the response if not provided.
        - `tags` string[], required — Tags for the segment. Defaults to an empty array.
        - `creationDate` integer, required
        - `lastModifiedDate` integer, required
        - `key` string, required — A unique key used to reference the segment
        - `included` string[] — An array of keys for included targets. Included individual targets are always segment members, regardless of segment rules. For list-based segments over 15,000 entries, also called big segments, this array is either empty or omitted.
        - `excluded` string[] — An array of keys for excluded targets. Segment rules bypass individual excluded targets, so they will never be included based on rules. Excluded targets may still be included explicitly. This value is omitted for list-based segments over 15,000 entries, also called big segments.
        - `includedContexts` SegmentTarget[]
          - `values` string[]
          - `contextKind` string
        - `excludedContexts` SegmentTarget[]
          - `values` string[]
          - `contextKind` string
        - `_links` object, required — The location and content type of related resources
        - `rules` UserSegmentRule[], required — An array of the targeting rules for this segment.
          - `_id` string
          - `clauses` Clause[], required
            - `_id` string
            - `attribute` string, required
            - `op` string, required
            - `values` unknown[], required
              - …
            - `contextKind` string
            - `negate` boolean, required
          - `weight` integer
          - `rolloutContextKind` string
          - `bucketBy` string
          - `description` string
        - `version` integer, required — Version of the segment
        - `deleted` boolean, required — Whether the segment has been deleted
        - `_access` Access
          - `denied` AccessDenied[], required
            - `action` string, required
            - `reason` AccessDeniedReason, required
              - …
          - `allowed` AccessAllowedRep[], required
            - `action` string, required
            - `reason` AccessAllowedReason, required
              - …
        - `_flags` FlagListingRep[] — A list of flags targeting this segment. Only included when getting a single segment, using the <code>getSegment</code> endpoint.
          - `name` string, required — The flag name
          - `key` string, required — The flag key
          - `_links` object
          - `_site` Link
            - `href` string
            - `type` string
        - `unbounded` boolean — Whether this is a standard segment (<code>false</code>) or a big segment (<code>true</code>). Standard segments include rule-based segments and smaller list-based segments. Big segments include larger list-based segments and synced segments. If omitted, the segment is a standard segment.
        - `unboundedContextKind` string — For big segments, the targeted context kind.
        - `generation` integer, required — For big segments, how many times this segment has been created.
        - `_unboundedMetadata` SegmentMetadata
          - `envId` string
          - `segmentId` string
          - `version` integer
          - `includedCount` integer
          - `excludedCount` integer
          - `lastModified` integer
          - `deleted` boolean
        - `_external` string — The external data store backing this segment. Only applies to synced segments.
        - `_externalLink` string — The URL for the external data store backing this segment. Only applies to synced segments.
        - `_importInProgress` boolean — Whether an import is currently in progress for the specified segment. Only applies to big segments.
  - `totalCount` integer, required — Total number of approval requests
  - `_links` object, required — The location and content type of related resources

## Other responses

- `400` — Unsupported filter field. Filter field must be one of: requestorId, projectKey, notifyMemberIds, reviewStatus, or status
- `401` — Invalid access token
- `403` — Forbidden
- `429` — Rate limited

## Changes

- **2026-02-28** `69c5c9aafe78` — 2 info
  - added the optional property `items/items/environments/items/_access` to the response with the `200` status
  - added the optional property `items/items/project/environments/items/items/_access` to the response with the `200` status

[Change history](https://skmtc.dev/launchdarkly/apis/launchdarkly-rest-api/changes/api/v2/approval-requests/get.md)

---

[API](https://skmtc.dev/launchdarkly/apis/launchdarkly-rest-api.md) · [All operations](https://skmtc.dev/launchdarkly/apis/launchdarkly-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/launchdarkly/launchdarkly-rest-api/revisions/69c5c9aafe78/schema)
