---
title: "List all app installs"
method: GET
path: "/v1/apps/installs"
---

# List all app installs

`GET /v1/apps/installs`

## Request

- Base URL: `https://api.stripe.com`
- URL: `https://api.stripe.com/v1/apps/installs`
- Auth: one of:
  - HTTP basic
  - HTTP bearer

Returns a list of app installs. An app developer or embedding platform filtering by its own app sees the installs across the accounts that installed it; other callers see the installs on their own account. The key selects the environment: a live key lists live installs, a sandbox API key lists the installs on that sandbox, and the key of an app’s managed sandbox filtering by `app` lists that app’s installs across every sandbox. For existing accounts that still use legacy test mode, a test mode key lists legacy test mode installs.

## Query parameters

- `account` string
- `app` string
- `approval_required` boolean
- `channel` 'private_live' | 'private_test' | 'public' | 'testing'
- `created` union
  - object
    - `gt` integer
    - `gte` integer
    - `lt` integer
    - `lte` integer
  - integer
- `created_by` string
- `ending_before` string
- `expand` string[]
- `limit` integer
- `starting_after` string
- `status` 'install_failed' | 'installed' | 'installing' | 'uninstall_failed' | 'uninstalling'

## Response `200`

Successful response.

- object
  - `data` AppsInstall[], required
    - `account` string, required: The ID of the account that the app install belongs to.
    - `app` string, required: The ID of the app installed.
    - `approval_required` boolean, required: Whether the installer must authorize pending permissions, content security policy entries, or endpoints. For private apps, `approval_required` stays `false`; creating or reauthorizing the install through the API installs the newest completed upload and grants its permissions.
    - `auth_code` string, nullable: The authorization code for an oauth app install.
    - `channel` 'private_live' | 'private_test' | 'public' | 'review' | 'testing', required: The distribution channel associated with the app install.
    - `content_security_policy_granted` AppServiceResourceInstallContentSecurityPolicy, required
      - `connect_src` string[], required: The URLs that the app can make network requests to.
      - `image_src` string[], required: The URLs that the app can load images from.
    - `content_security_policy_pending` AppServiceResourceInstallContentSecurityPolicy, required
      - `connect_src` string[], required: The URLs that the app can make network requests to.
      - `image_src` string[], required: The URLs that the app can load images from.
    - `created` integer, required: Time at which the object was created. Measured in seconds since the Unix epoch.
    - `created_by` string, nullable: The ID of the embedding platform that created the install, if applicable.
    - `endpoints_granted` string[], required: The endpoint URLs authorized by the installer.
    - `endpoints_pending` string[], required: The endpoint URLs requested by the latest app version that the installer has not authorized.
    - `id` string, required: Unique identifier for the object.
    - `livemode` boolean, required: If the object exists in live mode, the value is `true`. If the object exists in test mode, the value is `false`.
    - `object` 'apps.install', required: String representing the object's type. Objects of the same type share the same value.
    - `permissions_granted` string[], required: The permissions authorized by the installer.
    - `permissions_pending` string[], required: The permissions requested by the latest app version that the installer has not authorized.
    - `status` 'install_failed' | 'installed' | 'installing' | 'uninstall_failed' | 'uninstalling', required: The status of the app install.
  - `has_more` boolean, required: True if this list has another page of items after this one that can be fetched.
  - `object` 'list', required: String representing the object's type. Objects of the same type share the same value. Always has the value `list`.
  - `url` string, required: The URL where this list can be accessed.

## Other responses

- `default`: Error response.

## Changes

> 19 revisions in range; 7 not diffed, 2 could not be searched.

- **2026-09-25** `8b5c2f03d4cd`: 11 info
  - added the optional property `error/payment_intent/latest_charge/anyOf[subschema #2: Charge]/payment_method_details/anyOf[subschema #1: payment_method_details]/bancontact/generated_sepa_debit_mandate/anyOf[subschema #2: Mandate]/payment_method_details/card/india` to the response with the `default` status
  - added the optional property `error/payment_intent/latest_charge/anyOf[subschema #2: Charge]/payment_method_details/anyOf[subschema #1: payment_method_details]/card/mandate/anyOf[subschema #2: Mandate]/payment_method_details/card/india` to the response with the `default` status
  - added the optional property `error/payment_intent/latest_charge/anyOf[subschema #2: Charge]/payment_method_details/anyOf[subschema #1: payment_method_details]/ideal/generated_sepa_debit_mandate/anyOf[subschema #2: Mandate]/payment_method_details/card/india` to the response with the `default` status
  - added the optional property `error/payment_intent/latest_charge/anyOf[subschema #2: Charge]/payment_method_details/anyOf[subschema #1: payment_method_details]/sofort/generated_sepa_debit_mandate/anyOf[subschema #2: Mandate]/payment_method_details/card/india` to the response with the `default` status
  - …7 more
  - …this revision’s changelog is incomplete

[Operation history](https://skmtc.dev/stainless-api/apis/stripe-api/changes/v1/apps/installs/get.md)

---

[API](https://skmtc.dev/stainless-api/apis/stripe-api.md) · [All operations](https://skmtc.dev/stainless-api/apis/stripe-api/llms.txt) · [OpenAPI document](https://skmtc.dev/stainless-api/apis/stripe-api/revisions/7cff4cc46d06?raw)
