Update an app install v1

POST /v1/apps/installs/:id

Reauthorizes an app install. The installer grants the permissions, content security policy entries, and endpoints that the version being installed requests. An account reauthorizes its own installs on any channel with its own key, which grants all of that access, so only give app_install_write to keys that may approve an app’s access. App developers and embedding platforms reauthorize installs on connected accounts through Stripe-Account. An app developer can’t grant new access. An embedding platform can grant new access only once the app’s developer approves its request to embed the app. For private apps, the version being installed is the newest completed upload.

Parameters

  • idstringRequired

    Unique identifier for the object.

Returns

Returns the app install

curl -X POST https://api.stripe.com/v1/apps/installs/appinst_test_61VGZmT4pXc8Rk2w41LUZiLcTVChK7Ab \
-u "sk_test_...sk_test_...:" \
-H "Stripe-Version: 2026-10-28.endive" \
-H "Stripe-Account: {{CONNECTED_ACCOUNT_ID}}"
Response
{
"id": "appinst_test_61VGZmT4pXc8Rk2w41LUZiLcTVChK7Ab",
"object": "apps.install",
"account": "",
"app": "app_61VGZkQ7mRbN3xPa41LUZiLcTVChQ9Ye",
"approval_required": false,
"auth_code": null,
"channel": "public",
"content_security_policy_granted": {
"connect_src": [
"https://api.example.com/"
],
"image_src": [
"https://cdn.example.com/"
]
},
"content_security_policy_pending": {
"connect_src": [],
"image_src": []
},
"created": 1725000000,
"created_by": null,
"endpoints_granted": [
"https://example.com/stripe/webhook"
],
"endpoints_pending": [],
"livemode": false,
"permissions_granted": [
"customer_read",
"event_read"
],
"permissions_pending": [],
"status": "installing"
}

Retrieve an app install v1

GET /v1/apps/installs/:id

Retrieves an app install. The installing account, the app’s developer (with the keys of the account that owns the app or of the app’s managed sandbox), and the embedding platform that created the install can retrieve it.

Parameters

  • idstringRequired

    Unique identifier for the object.

Returns

Returns the app install

curl https://api.stripe.com/v1/apps/installs/appinst_test_61VGZmT4pXc8Rk2w41LUZiLcTVChK7Ab \
-u "sk_test_...sk_test_...:" \
-H "Stripe-Version: 2026-10-28.endive"
Response
{
"id": "appinst_test_61VGZmT4pXc8Rk2w41LUZiLcTVChK7Ab",
"object": "apps.install",
"account": "",
"app": "app_61VGZkQ7mRbN3xPa41LUZiLcTVChQ9Ye",
"approval_required": false,
"auth_code": null,
"channel": "public",
"content_security_policy_granted": {
"connect_src": [
"https://api.example.com/"
],
"image_src": [
"https://cdn.example.com/"
]
},
"content_security_policy_pending": {
"connect_src": [],
"image_src": []
},
"created": 1725000000,
"created_by": null,
"endpoints_granted": [
"https://example.com/stripe/webhook"
],
"endpoints_pending": [],
"livemode": false,
"permissions_granted": [
"customer_read",
"event_read"
],
"permissions_pending": [],
"status": "installed"
}

List all app installs v1

GET /v1/apps/installs

Returns a list of app installs. An app developer filtering by its own app with its own key sees that app’s installs across the accounts that installed it. An app developer acting on a connected account through Stripe-Account and filtering by its app sees that account’s installs of the app, and an embedding platform acting on a connected account sees only the installs it created there. Other callers see the installs on their own account. A live key lists live installs and a test key lists test installs; the key of an app’s managed sandbox filtering by app lists that app’s installs across every sandbox.

Parameters

  • accountstring

    Only return installs made by this account. Only useful to an app developer filtering by its own app with its own key, whose list spans the accounts that installed the app; other lists only accept the authenticated account.

  • appstring

    Only return installs for the app specified by this app ID.

  • approval_requiredboolean

    Only return installs whose installer must authorize pending permissions, content security policy entries, or endpoints.

  • channelenum

    Only return installs in the distribution channel specified by this channel name.

    Possible enum values
    private_live

    A private app installed in live mode.

    private_test

    A private app installed in test mode.

    public

    The published version of the app.

    testing

    A pre-release version of the app installed for external testing.

  • createdobject | integer

    Only return app installs that were created during the given date interval.

  • created_bystring

    Only return installs created by the embedding platform specified by this account ID.

  • ending_beforestring

    A cursor for use in pagination. ending_before is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_bar, your subsequent call can include ending_before=obj_bar in order to fetch the previous page of the list.

  • limitinteger

    A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10.

  • starting_afterstring

    A cursor for use in pagination. starting_after is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include starting_after=obj_foo in order to fetch the next page of the list.

  • statusenum

    Only return installs with the given status: installed, installing, install_failed, uninstalling, or uninstall_failed.

    Possible enum values
    install_failed
    installed
    installing
    uninstall_failed
    uninstalling

Returns

A dictionary with a data property that contains an array of up to limit app installs, starting after app install starting_after. Each entry in the array is a separate app install object. If no more app installs are available, the resulting array will be empty.

curl -G https://api.stripe.com/v1/apps/installs \
-u "sk_test_...sk_test_...:" \
-H "Stripe-Version: 2026-10-28.endive" \
-d app=app_61VGZkQ7mRbN3xPa41LUZiLcTVChQ9Ye \
-d limit=3
Response
{
"object": "list",
"url": "/v1/apps/installs",
"has_more": false,
"data": [
{
"id": "appinst_test_61VGZmT4pXc8Rk2w41LUZiLcTVChK7Ab",
"object": "apps.install",
"account": "",
"app": "app_61VGZkQ7mRbN3xPa41LUZiLcTVChQ9Ye",
"approval_required": false,
"auth_code": null,
"channel": "public",
"content_security_policy_granted": {
"connect_src": [
"https://api.example.com/"
],
"image_src": [
"https://cdn.example.com/"
]
},
"content_security_policy_pending": {
"connect_src": [],
"image_src": []
},
"created": 1725000000,
"created_by": null,
"endpoints_granted": [
"https://example.com/stripe/webhook"
],
"endpoints_pending": [],
"livemode": false,
"permissions_granted": [
"customer_read",
"event_read"
],
"permissions_pending": [],
"status": "installed"
}
]
}