---
title: "Update an App"
method: PUT
path: "/smartapps/{appNameOrId}"
tags: ["SmartApps"]
---

# Update an App

`PUT /smartapps/{appNameOrId}`

## Request

- Base URL: `https://api.smartthings.com/v1`
- URL: `https://api.smartthings.com/v1/smartapps/{appNameOrId}`
- Auth: one of:
  - OAuth 2
    - Implicit: `https://auth-global.api.smartthings.com`
    - Scopes: `w:smartapps`
  - OAuth 2
    - Implicit: `https://auth-global.api.smartthings.com`
    - Scopes: `service`
- TypeScript: <https://skmtc.dev/smartthings/apis/smartthings-api/docs/smartapps/:appNameOrId/put.ts> (a function with typed inputs; its response is checked against the schema)

Update an app.

## Path parameters

- `appNameOrId` string, required

## Query parameters

- `signatureType` 'APP_RSA' | 'ST_PADLOCK'
- `requireConfirmation` boolean

## Headers

- `Authorization` string, string, required

## Request body

- UpdateSmartAppRequest
  - `displayName` string, required: A default display name for an app.
  - `description` string, required: A default description for an app.
  - `singleInstance` boolean: Inform the installation systems that a particular app can only be installed once within a user's account.
  - `iconImage` IconImage: A default icon image for the app.
    - `url` string, uri: A default icon image url for an app. https url required.
  - `appType` 'API_ONLY', required: Denotes the type of app. Only API_ONLY is supported.
  - `classifications` AppClassification[], required: An App maybe associated to many classifications. A classification drives how the integration is presented to the user in the SmartThings mobile clients. These classifications include: * AUTOMATION - Denotes an integration that should display under the "Automation" tab in mobile clients. * SERVICE - Denotes an integration that is classified as a "Service". * DEVICE - Denotes an integration that should display under the "Device" tab in mobile clients. * CONNECTED_SERVICE - Denotes an integration that should display under the "Connected Services" menu in mobile clients. * HIDDEN - Denotes an integration that should not display in mobile clients * LABS - Denotes an ingration that should display under the "Labs" menu in the modile clients.
  - `apiOnly` CreateOrUpdateApiOnlyRequest: Details related to an ApiOnly implementation. This model should only be specified for apps of type API_ONLY.
    - `targetUrl` string: Optional target url to receive events. Url scheme must be https.
    - `privacyPolicyUrl` string: Link to the apps privacy policy. Url scheme must be https.
  - `ui` AppUISettings: A collection of settings to drive user interface in SmartThings clients. Currently, only applicable for LAMBDA_SMART_APP and WEBHOOK_SMART_APP app types.
    - `pluginId` string, ^[a-zA-Z._]{1,99}$
    - `pluginUri` string, uri
    - `dashboardCardsEnabled` boolean, required
    - `preInstallDashboardCardsEnabled` boolean, required

## Response `200`

An app model.

- App
  - `appName` string, ^[a-z0-9.-_]{1,250}$: A user defined unique identifier for an app. It is alpha-numeric, may contain dashes, underscores, periods, and be less then 250 characters long. It must be unique within your account.
  - `appId` string, uuid: A globally unique identifier for an app.
  - `appType` 'LAMBDA_SMART_APP' | 'WEBHOOK_SMART_APP' | 'API_ONLY': Denotes the type of app.
  - `principalType` 'LOCATION' | 'USER_LEVEL' | 'ACCOUNT_LEVEL': Denotes the principal type to be used with the app. Default is LOCATION.
  - `classifications` AppClassification[]: An App maybe associated to many classifications. A classification drives how the integration is presented to the user in the SmartThings mobile clients. These classifications include: * AUTOMATION - Denotes an integration that should display under the "Automation" tab in mobile clients. * SERVICE - Denotes an integration that is classified as a "Service". * DEVICE - Denotes an integration that should display under the "Device" tab in mobile clients. * CONNECTED_SERVICE - Denotes an integration that should display under the "Connected Services" menu in mobile clients. * HIDDEN - Denotes an integration that should not display in mobile clients * LABS - Denotes an ingration that should display under the "Labs" menu in the modile clients.
  - `displayName` string: A default display name for an app.
  - `description` string: A default description for an app.
  - `singleInstance` boolean: Inform the installation systems that a particular app can only be installed once within a user's account.
  - `iconImage` IconImage: A default icon image for the app.
    - `url` string, uri: A default icon image url for an app. https url required.
  - `installMetadata` object: System generated metadata that impacts eligibility requirements around installing an App.
  - `owner` Owner: A typed model which provides information around ownership of a specific domain.
    - `ownerType` 'USER' | 'SYSTEM' | 'IMPLICIT' | 'ACCOUNT', required: The type of owner that owns this entity. "Account" refers specifically to a coterie account ID.
    - `ownerId` string, required: A global identifier for owner.
  - `createdDate` string, date-time: A UTC ISO-8601 Date-Time String
  - `lastUpdatedDate` string, date-time: A UTC ISO-8601 Date-Time String
  - `lambdaSmartApp` LambdaSmartApp: Details related to a Lambda Smart App implementation. This model will only be available for apps of type LAMBDA_SMART_APP.
    - `functions` string[]: A list of AWS arns referencing a Lambda function.
  - `webhookSmartApp` WebhookSmartApp: Details related to a Webhook Smart App implementation. This model will only be available for apps of type WEBHOOK_SMART_APP.
    - `targetUrl` string: A URL that should be invoked during execution.
    - `targetStatus` 'PENDING' | 'CONFIRMED': The registration status of a target url.
    - `publicKey` string: The public half of an RSA key pair. Useful for verifying a Webhook execution request signature to ensure it came from SmartThings.
    - `signatureType` 'APP_RSA' | 'ST_PADLOCK': The http signature type used for authorizing event delivery. APP_RSA generates an RSA key pair that will be used to verify requests from SmartThings. ST_PADLOCK requires verifcation through SmartThings public certificate.
  - `ui` AppUISettings: A collection of settings to drive user interface in SmartThings clients. Currently, only applicable for LAMBDA_SMART_APP and WEBHOOK_SMART_APP app types.
    - `pluginId` string, ^[a-zA-Z._]{1,99}$
    - `pluginUri` string, uri
    - `dashboardCardsEnabled` boolean, required
    - `preInstallDashboardCardsEnabled` boolean, required

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `403`: Forbidden
- `422`: Unprocessable Entity
- `429`: Too many requests
- `default`: Unexpected error

## Changes

- **2026-11-07** `2788a4236800`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/smartthings/apis/smartthings-api/changes/smartapps/:appNameOrId/put.md)

---

[API](https://skmtc.dev/smartthings/apis/smartthings-api.md) - [All operations](https://skmtc.dev/smartthings/apis/smartthings-api/llms.txt) - [OpenAPI document](https://skmtc.dev/smartthings/apis/smartthings-api/revisions/2788a4236800?raw)
