---
title: "Get a Capability Presentation by ID and Version"
method: GET
path: "/capabilities/{capabilityId}/{capabilityVersion}/presentation"
tags: ["Presentations"]
---

# Get a Capability Presentation by ID and Version

`GET /capabilities/{capabilityId}/{capabilityVersion}/presentation`

## Request

- Base URL: `https://api.smartthings.com/v1`
- URL: `https://api.smartthings.com/v1/capabilities/{capabilityId}/{capabilityVersion}/presentation`
- Auth: OAuth 2
  - Implicit: `https://auth-global.api.smartthings.com`
  - Scopes: `r:customcapability`
- TypeScript: <https://skmtc.dev/smartthings/apis/smartthings-api/docs/capabilities/:capabilityId/:capabilityVersion/presentation/get.ts> (a function with typed inputs; its response is checked against the schema)

Get a Capability presentation with a given ID and version.

**Note:** This API functionality is in BETA

## Headers

- `Accept-Language` string

## Response `200`

Successful return of a Capability presentation

- CapabilityPresentation: The capability presentation describes how the capability will look in the app, what actions and states are shown, as well as how conditions and actions are expressed in an automation.
  - `id` string, required
  - `version` integer, required: The version number of the capability.
  - `dashboard` DashboardForCapability: The dashboard is the main view in the SmartThings app that shows a list of devices and their state.
    - `states` StateItem[]
      - `label` string, required: This displays a string. This can be a formatted string with variables. Example: `{{attribute.value}} {{attribute.unit}}` (where `attribute` is the name of an attribute in your capability)
      - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
        - `key` string, required: The label string to be displayed when the 'key' is evaluated.
        - `value` string, required: The alternative string to be displayed when the `key` is selected.
        - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
        - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
        - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
    - `actions` ActionItem[]
      - `displayType` 'pushButton' | 'toggleSwitch' | 'switch' | 'standbyPowerSwitch' | 'statelessPowerToggle' | 'playPause' | 'playStop', required: To specify the type of UI component to display this action or state. The corresponding field must also be included. For example, if you specify "switch" here, you must also include the "switch" key and its object definition for this action or state.
      - `pushButton` PushButton
        - `command` string, required
        - `argument` string
        - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
      - `toggleSwitch` ToggleSwitchForDashboard: A button style switch element for the UI.
        - `command` object, required: To specify separate commands with no arguments for on and off, use the "on" and "off" fields respectively. To specify a single command, use "name" for the command and the "on" and "off" fields for the arguments.
          - `name` string
          - `on` string, required
          - `off` string, required
          - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
        - `state` object: To describe "on" and "off" state of a switch
          - `value` string: Notation which indicates the value of an attribute
          - `on` string, required
          - `off` string, required
          - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
          - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
            - `key` string, required: The label string to be displayed when the 'key' is evaluated.
            - `value` string, required: The alternative string to be displayed when the `key` is selected.
            - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
            - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
            - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
      - `switch` SwitchForDashboard
        - `command` object, required: To specify separate commands with no arguments for on and off, use the "on" and "off" fields respectively. To specify a single command, use "name" for the command and the "on" and "off" fields for the arguments.
          - `name` string
          - `on` string, required
          - `off` string, required
          - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
        - `state` object: To describe "on" and "off" state of a switch
          - `value` string: Notation which indicates the value of an attribute
          - `on` string, required
          - `off` string, required
          - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
          - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
            - `key` string, required: The label string to be displayed when the 'key' is evaluated.
            - `value` string, required: The alternative string to be displayed when the `key` is selected.
            - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
            - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
            - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
      - `standbyPowerSwitch` StandbyPowerSwitchForDashboard: A button switch in the UI. Similar to the `toggleSwitch` displayType except for the `off` state is replaced by `standby`.
        - `command` object, required: To specify separate commands with no arguments for on and off, use the "on" and "off" fields respectively. To specify a single command, use "name" for the command and the "on" and "off" fields for the arguments.
          - `name` string
          - `on` string, required
          - `off` string, required
          - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
        - `state` object: To describe "on" and "off" state of a switch
          - `value` string, required: Notation which indicates the value of an attribute
          - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
          - `on` string, required: The attribute value that corresponds to the `on` state.
          - `off` string, required: The attribute value that corresponds to the `off` state.
          - `label` string: This displays a string. This can be a formatted string with variables. Example: `{{attribute.value}} {{attribute.unit}}` (where `attribute` is the name of an attribute in your capability)
          - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
            - `key` string, required: The label string to be displayed when the 'key' is evaluated.
            - `value` string, required: The alternative string to be displayed when the `key` is selected.
            - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
            - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
            - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
      - `statelessPowerToggle` StatelessPowerToggleForDashboard: This switch triggers power toggle action without showing any status.
        - `command` string, required
        - `argument` string
        - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
      - `playPause` PlayPause: Display type for a play/pause button.
        - `command` object, required: To specify separate commands with no arguments for on and off, use the "play" and "pause" fields respectively. To specify a single command, use "name" for the command and the "play" and "pause" fields for the arguments.
          - `name` string
          - `play` string, required
          - `pause` string, required
          - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
        - `state` object, required
          - `value` string, required: Notation which indicates the value of an attribute
          - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
          - `play` string, required: The value of "attribute" which indicates playing state. When the attribute value equals to this then UI will show playing state.
          - `pause` string, required: The value of "attribute" which indicates paused state. When the attribute value equals to this then UI will show paused state.
          - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
            - `key` string, required: The label string to be displayed when the 'key' is evaluated.
            - `value` string, required: The alternative string to be displayed when the `key` is selected.
            - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
            - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
            - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
      - `playStop` PlayStop: To specify separate commands for play and stop, use the "play" and "stop" fields respectively. To specify a single command, use "name" for the command and the " play" and "stop" fields for the arguments.
        - `command` object, required: To specify separate commands with no arguments for on and off, use the "play" and "stop" fields respectively. To specify a single command, use "name" for the command and the "play" and "stop" fields for the arguments.
          - `name` string
          - `play` string, required
          - `stop` string, required
          - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
        - `state` object, required
          - `value` string, required: Notation which indicates the value of an attribute
          - `play` string, required: The value of "attribute" which indicates playing state. When the attribute value equals to this then UI will show playing state.
          - `stop` string, required: The value of "attribute" which indicates stopped state. When the attribute value equals to this then UI will show stopped state.
          - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
            - `key` string, required: The label string to be displayed when the 'key' is evaluated.
            - `value` string, required: The alternative string to be displayed when the `key` is selected.
            - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
            - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
            - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
          - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
      - `group` string: The group name to which this belongs. Some complex devices can be shown grouped in the dashboard card. This is used for grouping states and actions in the dashboard.
    - `panelItems` PanelItemForCapability[]
      - `label` string
      - `displayType` 'stepper' | 'list' | 'pushButton' | 'invokeButton' | 'state' | 'slider' | 'empty', required: To specify the type of UI component to display this action or state. The corresponding field must also be included. For example, if you specify "stepper" here, you must also include the "stepper" key and its object definition for this action or state.
      - `stepper` StepperWithAvailableSize: This display type creates a stepper which can trigger "increase" and "decrease" commands. The user must specify either a "command" field alone or "increase" / "decrease" fields for commands without an argument.
        - `command` object, required
          - `name` string: To specify a single command like "setValue(number)", use "command" field for the command name. If this field is specified then "increase" and "descrease" fields should not be specified. App will calculate desired value when user clicks "+" and "-" button in the UI based on the current value of "attribute" with specified "step".
          - `increase` string: To specify a command for "increase" without an argument.
          - `decrease` string: To specify a command for "decrease" without an argument.
          - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
        - `step` number, double, required: The incremental step that increases or decreases for numeric values.
        - `range` number[], required: The inclusive range of a numeric value or bounds of a string depending on the data type it is applied to.
        - `supportedValues` string: To specify an attribute path that has a dynamic numeric constraint. The constraint can be updated in real-time to reflect changing values and ranges.
        - `state` object, required
          - `value` string, required: Notation which indicates the value of an attribute
          - `unit` string: Unit value. Can be either a device state reference in the format `{attribute}.unit` (e.g., `level.unit`) or a literal unit value (e.g., `%`, `dB`).
          - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
          - `label` string: To display a current value of the specified attribute, the user must specify this field. If this is ommited, App shows controller without any value. This displays a string. This can be a formatted string with variables. Example: `{{attribute.value}} {{attribute.unit}}` (where `attribute` is the name of an attribute in your capability)
          - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
            - `key` string, required: The label string to be displayed when the 'key' is evaluated.
            - `value` string, required: The alternative string to be displayed when the `key` is selected.
            - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
            - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
            - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
        - `availableSizes` string[]: To specify the available sizes of UI component to display this item in panel. The notation of `size` is the combination of width and height.(`width x height`) The range of width value is from 1 to 4 and height value is from 1 to 2. The bigger size value, the more space it occupies in the panel.
      - `list` ListWithAvailableSize: To specify available values shown in a drop-down UI. User can select one of the value among the list items
        - `command` object, required
          - `name` string: name refers to command name and key of the alternatives is the argument of the command
          - `description` string: Additional description of a command. This description is shown in the list.
          - `alternatives` AlternativeItem[], required: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
            - `key` string, required: The label string to be displayed when the 'key' is evaluated.
            - `value` string, required: The alternative string to be displayed when the `key` is selected.
            - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
            - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
            - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
          - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
          - `supportedValues` string: The attribute name specified in supportedValues is an array that has values supported at runtime.
        - `state` object
          - `value` string, required: Notation which indicates the value of an attribute
          - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
          - `alternatives` AlternativeItem[], required: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
            - `key` string, required: The label string to be displayed when the 'key' is evaluated.
            - `value` string, required: The alternative string to be displayed when the `key` is selected.
            - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
            - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
            - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
        - `availableSizes` string[]: To specify the available sizes of UI component to display this item in panel. The notation of `size` is the combination of width and height.(`width x height`) The range of width value is from 1 to 4 and height value is from 1 to 2. The bigger size value, the more space it occupies in the panel.
      - `pushButton` PushButtonWithAvailableSize
        - `command` string, required
        - `argument` string
        - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
        - `iconUrl` string
        - `availableSizes` string[]: To specify the available sizes of UI component to display this item in panel. The notation of `size` is the combination of width and height.(`width x height`) The range of width value is from 1 to 4 and height value is from 1 to 2. The bigger size value, the more space it occupies in the panel.
      - `invokeButton` InvokeButtonWithAvailableSize: Defines a UI component that displays executable commands and allows users to invoke them.
        - `value` string, required: The path to an attribute value(`{attribute}.value`) used as context for command selection.
        - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
        - `refreshInterval` integer: To specify the interval time (in seconds) for refreshing the attribute value in the UI client.
        - `commands` CommandsForInvokeButton[], required
          - `state` string, required: The condition value resolved from `invokeButton.value`. It's used to determine whether this command is available to the user.
          - `label` string
          - `iconUrl` string
          - `command` object, required
            - `name` string, required: A command name to be executed. If neither `argument` nor `arguments` is defined, this command is `enumCommand`.
            - `argument` string: The predefined argument value passed when the command is executed. Must not be defined when `arguments` is defined.
            - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
            - `confirmation` object: Defines a `popup` shown before command execution. It can be used only to ask for user confirmation, or to collect `arguments` before executing the command.
              - …
            - `arguments` ArgumentsForInvokeButton[]: A list of arguments used when invoking the command. Arguments may be provided via user input or predefined values. If this field is defined, `argument` must not be defined.
              - …
            - `supportedValues` string: The attribute name specified in supportedValues is an array that has arguments supported at runtime.
        - `availableSizes` string[]: To specify the available sizes of UI component to display this item in panel. The notation of `size` is the combination of width and height.(`width x height`) The range of width value is from 1 to 4 and height value is from 1 to 2. The bigger size value, the more space it occupies in the panel.
      - `state` StateWithAvailableSize: This display type creates a state UI that shows state only.
        - `label` string, required: This displays a string. This can be a formatted string with variables. Example: `{{attribute.value}} {{attribute.unit}}` (where `attribute` is the name of an attribute in your capability)
        - `unit` string: Unit value. Can be either a device state reference in the format `{attribute}.unit` (e.g., `level.unit`) or a literal unit value (e.g., `%`, `dB`).
        - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
          - `key` string, required: The label string to be displayed when the 'key' is evaluated.
          - `value` string, required: The alternative string to be displayed when the `key` is selected.
          - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
          - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
          - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
        - `availableSizes` string[]: To specify the available sizes of UI component to display this item in panel. The notation of `size` is the combination of width and height.(`width x height`) The range of width value is from 1 to 4 and height value is from 1 to 2. The bigger size value, the more space it occupies in the panel.
      - `slider` SliderWithAvailableSize: To display slider display type, at least one of the command and value must be specified.
        - `range` number[], required: The inclusive range of a numeric value or bounds of a string depending on the data type it is applied to.
        - `step` number, double: The incremental step that increases or decreases for numeric values.
        - `unit` string: Unit value. Can be either a device state reference in the format `{attribute}.unit` (e.g., `level.unit`) or a literal unit value (e.g., `%`, `dB`).
        - `supportedValues` string: To specify an attribute path that has a dynamic numeric constraint. The constraint can be updated in real-time to reflect changing values and ranges.
        - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
          - `key` string, required: The label string to be displayed when the 'key' is evaluated.
          - `value` string, required: The alternative string to be displayed when the `key` is selected.
          - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
          - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
          - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
        - `command` string, required: The command which will send the value of the slider as an argument
        - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
        - `value` string: Notation which indicates the value of an attribute
        - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
        - `availableSizes` string[]: To specify the available sizes of UI component to display this item in panel. The notation of `size` is the combination of width and height.(`width x height`) The range of width value is from 1 to 4 and height value is from 1 to 2. The bigger size value, the more space it occupies in the panel.
      - `empty` EmptyWithAvailableSize
        - `availableSizes` string[]: To specify the available sizes of UI component to display this item in panel. The notation of `size` is the combination of width and height.(`width x height`) The range of width value is from 1 to 4 and height value is from 1 to 2. The bigger size value, the more space it occupies in the panel.
  - `detailView` object[]
    - `label` string, required
    - `displayType` 'toggleSwitch' | 'standbyPowerSwitch' | 'switch' | 'slider' | 'pushButton' | 'textButton' | 'playPause' | 'playStop' | 'list' | 'textField' | 'numberField' | 'stepper' | 'state', required: To specify the type of UI component to display this action or state. The corresponding field must also be included. For example, if you specify "switch" here, you must also include the "switch" key and its object definition for this action or state.
    - `toggleSwitch` ToggleSwitch: A button style switch element for the UI.
      - `command` object, required: To specify separate commands with no arguments for on and off, use the "on" and "off" fields respectively. To specify a single command, use "name" for the command and the "on" and "off" fields for the arguments.
        - `name` string
        - `on` string, required
        - `off` string, required
        - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
      - `state` object: To describe "on" and "off" state of a switch
        - `value` string, required: Notation which indicates the value of an attribute
        - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
        - `on` string, required: The attribute value that corresponds to the `on` state.
        - `off` string, required: The attribute value that corresponds to the `off` state.
        - `label` string: This displays a string. This can be a formatted string with variables. Example: `{{attribute.value}} {{attribute.unit}}` (where `attribute` is the name of an attribute in your capability)
        - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
          - `key` string, required: The label string to be displayed when the 'key' is evaluated.
          - `value` string, required: The alternative string to be displayed when the `key` is selected.
          - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
          - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
          - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
    - `standbyPowerSwitch` StandbyPowerSwitch: A button switch in the UI. Similar to the `toggleSwitch` displayType except for the `off` state is replaced by `standby`.
      - `command` object, required: To specify separate commands with no arguments for on and off, use the "on" and "off" fields respectively. To specify a single command, use "name" for the command and the "on" and "off" fields for the arguments.
        - `name` string
        - `on` string, required
        - `off` string, required
        - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
      - `state` object: To describe "on" and "off" state of a switch
        - `value` string, required: Notation which indicates the value of an attribute
        - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
        - `on` string, required: The attribute value that corresponds to the `on` state.
        - `off` string, required: The attribute value that corresponds to the `off` state.
        - `label` string: This displays a string. This can be a formatted string with variables. Example: `{{attribute.value}} {{attribute.unit}}` (where `attribute` is the name of an attribute in your capability)
        - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
          - `key` string, required: The label string to be displayed when the 'key' is evaluated.
          - `value` string, required: The alternative string to be displayed when the `key` is selected.
          - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
          - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
          - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
    - `switch` Switch
      - `command` object, required: To specify separate commands with no arguments for on and off, use the "on" and "off" fields respectively. To specify a single command, use "name" for the command and the "on" and "off" fields for the arguments.
        - `name` string
        - `on` string, required
        - `off` string, required
        - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
      - `state` object: To describe "on" and "off" state of a switch
        - `value` string, required: Notation which indicates the value of an attribute
        - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
        - `on` string, required: The attribute value that corresponds to the `on` state.
        - `off` string, required: The attribute value that corresponds to the `off` state.
        - `label` string: This displays a string. This can be a formatted string with variables. Example: `{{attribute.value}} {{attribute.unit}}` (where `attribute` is the name of an attribute in your capability)
        - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
          - `key` string, required: The label string to be displayed when the 'key' is evaluated.
          - `value` string, required: The alternative string to be displayed when the `key` is selected.
          - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
          - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
          - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
    - `slider` SliderType: To display slider display type, at least one of the command and value must be specified.
      - `range` number[], required: The inclusive range of a numeric value or bounds of a string depending on the data type it is applied to.
      - `step` number, double: The incremental step that increases or decreases for numeric values.
      - `unit` string: Unit value. Can be either a device state reference in the format `{attribute}.unit` (e.g., `level.unit`) or a literal unit value (e.g., `%`, `dB`).
      - `supportedValues` string: To specify an attribute path that has a dynamic numeric constraint. The constraint can be updated in real-time to reflect changing values and ranges.
      - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
        - `key` string, required: The label string to be displayed when the 'key' is evaluated.
        - `value` string, required: The alternative string to be displayed when the `key` is selected.
        - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
        - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
        - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
      - `command` string: The command which will send the value of the slider as an argument
      - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
      - `value` string: Notation which indicates the value of an attribute
      - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
    - `pushButton` PushButton
      - `command` string, required
      - `argument` string
      - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
    - `textButton` TextButton: To specify available values shown in buttons with text label.
      - `command` string: To specify command name with argument(s) and key of the buttons is the argument of the command. If this is omitted then keys at `buttons` array are the enumCommands without arguments.
      - `value` string: Notation which indicates the value of an attribute
      - `buttons` object[], required
        - `key` string, required: A command name or an argument name of a command to be mapped with this button.
        - `label` string, required: The alternative string to be displayed when the `key` is evaluated.
        - `state` string: To focus this button according to the current status of given attribute which is mapped with this button.
      - `supportedValues` string: The attribute name specified in supportedValues is an array that has values supported at runtime.
    - `playPause` PlayPause: Display type for a play/pause button.
      - `command` object, required: To specify separate commands with no arguments for on and off, use the "play" and "pause" fields respectively. To specify a single command, use "name" for the command and the "play" and "pause" fields for the arguments.
        - `name` string
        - `play` string, required
        - `pause` string, required
        - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
      - `state` object, required
        - `value` string, required: Notation which indicates the value of an attribute
        - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
        - `play` string, required: The value of "attribute" which indicates playing state. When the attribute value equals to this then UI will show playing state.
        - `pause` string, required: The value of "attribute" which indicates paused state. When the attribute value equals to this then UI will show paused state.
        - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
          - `key` string, required: The label string to be displayed when the 'key' is evaluated.
          - `value` string, required: The alternative string to be displayed when the `key` is selected.
          - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
          - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
          - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
    - `playStop` PlayStop: To specify separate commands for play and stop, use the "play" and "stop" fields respectively. To specify a single command, use "name" for the command and the " play" and "stop" fields for the arguments.
      - `command` object, required: To specify separate commands with no arguments for on and off, use the "play" and "stop" fields respectively. To specify a single command, use "name" for the command and the "play" and "stop" fields for the arguments.
        - `name` string
        - `play` string, required
        - `stop` string, required
        - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
      - `state` object, required
        - `value` string, required: Notation which indicates the value of an attribute
        - `play` string, required: The value of "attribute" which indicates playing state. When the attribute value equals to this then UI will show playing state.
        - `stop` string, required: The value of "attribute" which indicates stopped state. When the attribute value equals to this then UI will show stopped state.
        - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
          - `key` string, required: The label string to be displayed when the 'key' is evaluated.
          - `value` string, required: The alternative string to be displayed when the `key` is selected.
          - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
          - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
          - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
        - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
    - `list` ListForDetailView: To specify available values shown in a drop-down UI. User can select one of the value among the list items
      - `command` object, required
        - `name` string: name refers to command name and key of the alternatives is the argument of the command
        - `description` string: Additional description of a command. This description is shown in the list.
        - `alternatives` AlternativeItem[], required: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
          - `key` string, required: The label string to be displayed when the 'key' is evaluated.
          - `value` string, required: The alternative string to be displayed when the `key` is selected.
          - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
          - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
          - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
        - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
        - `supportedValues` string: The attribute name specified in supportedValues is an array that has values supported at runtime.
      - `state` object
        - `value` string, required: Notation which indicates the value of an attribute
        - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
        - `alternatives` AlternativeItem[], required: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
          - `key` string, required: The label string to be displayed when the 'key' is evaluated.
          - `value` string, required: The alternative string to be displayed when the `key` is selected.
          - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
          - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
          - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
    - `textField` TextField: This display type creates textfield that the user enters a new value and that the new value is passed as an argument to the command
      - `command` string, required
      - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
      - `value` string: Notation which indicates the value of an attribute
      - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
      - `range` number[]: The inclusive range of a numeric value or bounds of a string depending on the data type it is applied to.
    - `numberField` NumberField: This display type creates numberfield that the user enters a new value and that the new value is passed as an argument to the command
      - `value` string: Notation which indicates the value of an attribute
      - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
      - `unit` string: Unit value. Can be either a device state reference in the format `{attribute}.unit` (e.g., `level.unit`) or a literal unit value (e.g., `%`, `dB`).
      - `command` string, required
      - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
      - `range` number[]: The inclusive range of a numeric value or bounds of a string depending on the data type it is applied to.
      - `supportedValues` string: To specify an attribute path that has a dynamic numeric constraint. The constraint can be updated in real-time to reflect changing values and ranges.
    - `stepper` Stepper: This display type creates a stepper which can trigger "increase" and "decrease" commands. The user must specify either a "command" field alone or "increase" / "decrease" fields for commands without an argument.
      - `command` object, required
        - `name` string: To specify a single command like "setValue(number)", use "command" field for the command name. If this field is specified then "increase" and "descrease" fields should not be specified. App will calculate desired value when user clicks "+" and "-" button in the UI based on the current value of "attribute" with specified "step".
        - `increase` string: To specify a command for "increase" without an argument.
        - `decrease` string: To specify a command for "decrease" without an argument.
        - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
      - `step` number, double, required: The incremental step that increases or decreases for numeric values.
      - `range` number[], required: The inclusive range of a numeric value or bounds of a string depending on the data type it is applied to.
      - `supportedValues` string: To specify an attribute path that has a dynamic numeric constraint. The constraint can be updated in real-time to reflect changing values and ranges.
      - `value` string: Notation which indicates the value of an attribute
      - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
    - `state` State: This display type creates a state UI that shows state only.
      - `label` string, required: This displays a string. This can be a formatted string with variables. Example: `{{attribute.value}} {{attribute.unit}}` (where `attribute` is the name of an attribute in your capability)
      - `unit` string: Unit value. Can be either a device state reference in the format `{attribute}.unit` (e.g., `level.unit`) or a literal unit value (e.g., `%`, `dB`).
      - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
        - `key` string, required: The label string to be displayed when the 'key' is evaluated.
        - `value` string, required: The alternative string to be displayed when the `key` is selected.
        - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
        - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
        - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
    - `visibleCondition` VisibleConditionBase: Use `visibleCondition` to specify under what conditions the resource may be interacted with from the UI. When the specified condition is met, the resource may be interacted with from the UI. If the condition is not met, the resource will appear grayed out and unusable in the UI in the detail view; all other views, including the dashboard, will not display the resource. If `visibleCondition` is omitted, the resource is always displayed and may be interacted with from the UI. The `visibleCondition` object may reference a different component, capability, and version.
      - `value` string, required: Notation which indicates the value of an attribute
      - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
      - `operator` 'CONTAINS' | 'DOES_NOT_CONTAIN' | 'EQUALS' | 'DOES_NOT_EQUAL' | 'GREATER_THAN' | 'GREATER_THAN_OR_EQUALS' | 'LESS_THAN' | 'LESS_THAN_OR_EQUALS' | 'ONE_OF', required: The method to compare
      - `operand` string, required: The value that the visible condition evaluates against.
  - `automation` AutomationForCapability: In the SmartThings app, you can build custom Automations to automatically trigger actions when certain condition regarding device state is met.
    - `conditions` object[]: To specify the conditions of device state to trigger actions in the automation view of SmartThings app.
      - `label` string, required
      - `description` string: To specify the introductory description for the condition or action item.
      - `displayType` 'slider' | 'list' | 'dynamicList' | 'numberField' | 'textField' | 'enumSlider' | 'numberPicker', required: Specify the type of UI component to use to display this action or state. The corresponding field must also be included. For example, if you specify "switch" here, you must also include the "switch" key and its object definition for this action or state.
      - `slider` SliderForAutomationCondition: To display slider display type, at least one of the command and value must be specified.
        - `range` number[], required: The inclusive range of a numeric value or bounds of a string depending on the data type it is applied to.
        - `step` number, double: The incremental step that increases or decreases for numeric values.
        - `unit` string: Unit value. Can be either a device state reference in the format `{attribute}.unit` (e.g., `level.unit`) or a literal unit value (e.g., `%`, `dB`).
        - `supportedValues` string: To specify an attribute path that has a dynamic numeric constraint. The constraint can be updated in real-time to reflect changing values and ranges.
        - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
          - `key` string, required: The label string to be displayed when the 'key' is evaluated.
          - `value` string, required: The alternative string to be displayed when the `key` is selected.
          - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
          - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
          - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
        - `value` string, required: Notation which indicates the value of an attribute
        - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
        - `description` string: To specify informative descriptions for the condition or action item.
      - `list` ListForAutomationCondition
        - `alternatives` AlternativeItem[], required: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
          - `key` string, required: The label string to be displayed when the 'key' is evaluated.
          - `value` string, required: The alternative string to be displayed when the `key` is selected.
          - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
          - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
          - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
        - `supportedValues` string: The attribute name specified in supportedValues is an array that has values supported at runtime.
        - `value` string, required: Notation which indicates the value of an attribute
        - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
        - `description` string: To specify informative descriptions for the condition or action item.
        - `multiSelectable` boolean: To specify whether to allow multiple selection within a list or not. Default value is false.
      - `dynamicList` DynamicListForAutomationCondition
        - `value` string, required: Notation which indicates the value of an attribute
        - `valueType` string: The data type of the items in given `supportedValues` array. The data type is automatically assigned from the given capability definition.
        - `supportedValues` SupportedValuesForDynamicList, required: To specify the list of dynamic items provided by the device at runtime and make-up option(`valueMap`) if necessary. If the `valueMap` is omitted then the supported values specified in `value` itself become both a key and value.
          - `value` string, required
          - `valueMap` object: To specify the make-up of a map when the provided value is an array of maps.
            - `key` string, required: Notation which indicates the value of an attribute, command or argument.
            - `value` string, required: Notation which indicates the value to be displayed on UI
        - `alternatives` AlternativeItem[]: To assign the alternative properties to specific keys among the dynamic items provided by `supportedValues`. If the value of the key for the given alternatives is not found, the original value from `supportedValues` is used as it is.
          - `key` string, required: The label string to be displayed when the 'key' is evaluated.
          - `value` string, required: The alternative string to be displayed when the `key` is selected.
          - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
          - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
          - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
        - `description` string: To specify informative descriptions for the condition or action item.
        - `multiSelectable` boolean: To specify whether to allow multiple selection within a list or not. Default value is false.
      - `numberField` NumberFieldForAutomationCondition
        - `value` string, required: Notation which indicates the value of an attribute
        - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
        - `unit` string: Unit value. Can be either a device state reference in the format `{attribute}.unit` (e.g., `level.unit`) or a literal unit value (e.g., `%`, `dB`).
        - `range` number[]: The inclusive range of a numeric value or bounds of a string depending on the data type it is applied to.
        - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
          - `key` string, required: The label string to be displayed when the 'key' is evaluated.
          - `value` string, required: The alternative string to be displayed when the `key` is selected.
          - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
          - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
          - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
        - `supportedValues` string: To specify an attribute path that has a dynamic numeric constraint. The constraint can be updated in real-time to reflect changing values and ranges.
        - `description` string: To specify informative descriptions for the condition or action item.
      - `textField` TextFieldForAutomationCondition
        - `value` string, required: Notation which indicates the value of an attribute
        - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
        - `range` number[]: The inclusive range of a numeric value or bounds of a string depending on the data type it is applied to.
        - `description` string: To specify informative descriptions for the condition or action item.
      - `enumSlider` EnumSliderForAutomationCondition: This display type creates slider composed with enumeration that the user can set an automation to compare between enumeration and device's status. An alternatives array should be `ascending` order.
        - `alternatives` AlternativeItem[], required: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
          - `key` string, required: The label string to be displayed when the 'key' is evaluated.
          - `value` string, required: The alternative string to be displayed when the `key` is selected.
          - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
          - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
          - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
        - `value` string, required: Notation which indicates the value of an attribute
        - `supportedOperators` object[]
          - `operator` 'EQUALS' | 'GREATER_THAN_OR_EQUALS' | 'LESS_THAN_OR_EQUALS', required: The operator to be supported by this display type.
          - `label` string, required: The alternative string of given operator.
      - `numberPicker` NumberPickerForAutomationCondition: To display the scrollable lists of distinct numbers that user can choose from.
        - `value` string, required: Notation which indicates the value of an attribute
        - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
        - `unit` string: Notation which indicates the unit
        - `range` number[]: The inclusive range of a numeric value or bounds of a string depending on the data type it is applied to.
        - `supportedValues` string: To specify an attribute path that has a dynamic numeric constraint. The constraint can be updated in real-time to reflect changing values and ranges.
        - `description` string: To specify informative descriptions for the condition or action item.
      - `emphasis` boolean: The effect used to emphasize this resource widget. The default value is false. If the emphasis value is true and this object has alternatives, a list will appear without a label
      - `visibleCondition` VisibleConditionBase: Use `visibleCondition` to specify under what conditions the resource may be interacted with from the UI. When the specified condition is met, the resource may be interacted with from the UI. If the condition is not met, the resource will appear grayed out and unusable in the UI in the detail view; all other views, including the dashboard, will not display the resource. If `visibleCondition` is omitted, the resource is always displayed and may be interacted with from the UI. The `visibleCondition` object may reference a different component, capability, and version.
        - `value` string, required: Notation which indicates the value of an attribute
        - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
        - `operator` 'CONTAINS' | 'DOES_NOT_CONTAIN' | 'EQUALS' | 'DOES_NOT_EQUAL' | 'GREATER_THAN' | 'GREATER_THAN_OR_EQUALS' | 'LESS_THAN' | 'LESS_THAN_OR_EQUALS' | 'ONE_OF', required: The method to compare
        - `operand` string, required: The value that the visible condition evaluates against.
    - `actions` object[]: To specify the actions of device control based on the device state in the automation view of SmartThings app.
      - `label` string, required
      - `description` string: To specify the introductory description for the condition or action item.
      - `displayType` 'slider' | 'list' | 'dynamicList' | 'numberField' | 'textField' | 'numberPicker' | 'multiArgCommand', required: To specify the type of UI component to display this action or state. The corresponding field must also be included. For example, if you specify "switch" here, you must also include the "switch" key and its object definition for this action or state.
      - `slider` SliderForAutomationAction: To display slider display type, at least one of the command and value must be specified.
        - `range` number[], required: The inclusive range of a numeric value or bounds of a string depending on the data type it is applied to.
        - `step` number, double: The incremental step that increases or decreases for numeric values.
        - `unit` string: Unit value. Can be either a device state reference in the format `{attribute}.unit` (e.g., `level.unit`) or a literal unit value (e.g., `%`, `dB`).
        - `supportedValues` string: To specify an attribute path that has a dynamic numeric constraint. The constraint can be updated in real-time to reflect changing values and ranges.
        - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
          - `key` string, required: The label string to be displayed when the 'key' is evaluated.
          - `value` string, required: The alternative string to be displayed when the `key` is selected.
          - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
          - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
          - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
        - `command` string, required
        - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
        - `description` string: To specify informative descriptions for the condition or action item.
      - `list` ListForAutomationAction
        - `alternatives` AlternativeItem[], required: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
          - `key` string, required: The label string to be displayed when the 'key' is evaluated.
          - `value` string, required: The alternative string to be displayed when the `key` is selected.
          - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
          - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
          - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
        - `supportedValues` string: The attribute name specified in supportedValues is an array that has values supported at runtime.
        - `command` string: The name of the command that is called when an item is chosen from the list
        - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
        - `description` string: To specify informative descriptions for the condition or action item.
      - `dynamicList` DynamicListForAutomationAction
        - `command` string: To specify a command name with argument(s) and keys of the dynamic items specified in `supportedValues` are the arguments of the command. If this is omitted then keys at dynamic items specified in `supportedValues` are the enumCommands without arguments.
        - `argumentType` string: The data type of the items in given `supportedValues` array. The data type is automatically assigned from the given capability definition.
        - `supportedValues` SupportedValuesForDynamicList, required: To specify the list of dynamic items provided by the device at runtime and make-up option(`valueMap`) if necessary. If the `valueMap` is omitted then the supported values specified in `value` itself become both a key and value.
          - `value` string, required
          - `valueMap` object: To specify the make-up of a map when the provided value is an array of maps.
            - `key` string, required: Notation which indicates the value of an attribute, command or argument.
            - `value` string, required: Notation which indicates the value to be displayed on UI
        - `alternatives` AlternativeItem[]: To assign the alternative properties to specific keys among the dynamic items provided by `supportedValues`. If the value of the key for the given alternatives is not found, the original value from `supportedValues` is used as it is.
          - `key` string, required: The label string to be displayed when the 'key' is evaluated.
          - `value` string, required: The alternative string to be displayed when the `key` is selected.
          - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
          - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
          - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
        - `description` string: To specify informative descriptions for the condition or action item.
      - `textField` TextFieldForAutomationAction
        - `command` string, required
        - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
        - `range` number[]: The inclusive range of a numeric value or bounds of a string depending on the data type it is applied to.
        - `description` string: To specify informative descriptions for the condition or action item.
      - `numberField` NumberFieldForAutomationAction
        - `command` string, required
        - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
        - `unit` string: Unit value. Can be either a device state reference in the format `{attribute}.unit` (e.g., `level.unit`) or a literal unit value (e.g., `%`, `dB`).
        - `range` number[]: The inclusive range of a numeric value or bounds of a string depending on the data type it is applied to.
        - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
          - `key` string, required: The label string to be displayed when the 'key' is evaluated.
          - `value` string, required: The alternative string to be displayed when the `key` is selected.
          - `type` 'inactive' | 'active': This shows the active or inactive state of the value. `active` is shown in color, while `inactive` value is shown dimmed in the UI view. For example, Motion sensor capability would have `detected` as active and in color and `clear` as inactive and dimmed so that a user can see the `detected` event easily.
          - `iconUrl` string: Icon Id used to retrieve icons to be drawn on the UI Client. If iconUrl is omitted, then UI client shows default icon of device's category.
          - `description` string: Additional description for each value. This description is shown in detail view or automation under this particular key.
        - `supportedValues` string: To specify an attribute path that has a dynamic numeric constraint. The constraint can be updated in real-time to reflect changing values and ranges.
        - `description` string: To specify informative descriptions for the condition or action item.
      - `numberPicker` NumberPickerForAutomationAction: To display the scrollable lists of distinct numbers that user can choose from.
        - `command` string, required
        - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
        - `unit` string: Notation which indicates the unit
        - `range` number[]: The inclusive range of a numeric value or bounds of a string depending on the data type it is applied to.
        - `supportedValues` string: To specify an attribute path that has a dynamic numeric constraint. The constraint can be updated in real-time to reflect changing values and ranges.
        - `description` string: To specify informative descriptions for the condition or action item.
      - `multiArgCommand` MultiArgCommand: To specify multiple arguments command and displayType of each argument.
        - `command` string, required: The name of a command that is executed with multiple arguments.
        - `arguments` object[], required
          - `label` string, required
          - `displayType` 'slider' | 'list' | 'textField' | 'numberField', required: Specify the type of UI component to use to display this action or state. The corresponding field must also be included. For example, if you specify "list" here, you must also include the "list" key and its object definition for this action or state.
          - `slider` SliderForArgument: To display slider display type, at least one of the command and value must be specified.
            - `range` number[], required: The inclusive range of a numeric value or bounds of a string depending on the data type it is applied to.
            - `step` number, double: The incremental step that increases or decreases for numeric values.
            - `unit` string: Unit value. Can be either a device state reference in the format `{attribute}.unit` (e.g., `level.unit`) or a literal unit value (e.g., `%`, `dB`).
            - `supportedValues` string: To specify an attribute path that has a dynamic numeric constraint. The constraint can be updated in real-time to reflect changing values and ranges.
            - `name` string, required: The name of a command argument. If the argument's type is an object, its sub-properties can be defined using dot notation (e.g. `argumentName.propertyName`).
            - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
            - `alternatives` AlternativeItem[]: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
              - …
          - `list` ListForArgument
            - `alternatives` AlternativeItem[], required: A collection of strings that can replace the attribute value in the `label` or `value` or `unit`. Must be human-readable for the UI client to display.
              - …
            - `supportedValues` string: The attribute name specified in supportedValues is an array that has values supported at runtime.
            - `name` string, required: The name of a command argument. If the argument's type is an object, its sub-properties can be defined using dot notation (e.g. `argumentName.propertyName`).
            - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
          - `textField` TextFieldForArgument
            - `name` string, required: The name of a command argument. If the argument's type is an object, its sub-properties can be defined using dot notation (e.g. `argumentName.propertyName`).
            - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
            - `range` number[]: The inclusive range of a numeric value or bounds of a string depending on the data type it is applied to.
          - `numberField` NumberFieldForArgument
            - `name` string, required: The name of a command argument. If the argument's type is an object, its sub-properties can be defined using dot notation (e.g. `argumentName.propertyName`).
            - `unit` string: Unit value. Can be either a device state reference in the format `{attribute}.unit` (e.g., `level.unit`) or a literal unit value (e.g., `%`, `dB`).
            - `argumentType` string: The data type of the `argument`. The data type is automatically assigned from the given capability definition.
            - `range` number[]: The inclusive range of a numeric value or bounds of a string depending on the data type it is applied to.
            - `supportedValues` string: To specify an attribute path that has a dynamic numeric constraint. The constraint can be updated in real-time to reflect changing values and ranges.
        - `supportedValues` string: The attribute name specified in supportedValues is an array that has arguments supported at runtime.
      - `emphasis` boolean: The effect used to emphasize this resource widget. The default value is false. If the emphasis value is true and this object has alternatives, a list will appear without a label
      - `visibleCondition` VisibleConditionBase: Use `visibleCondition` to specify under what conditions the resource may be interacted with from the UI. When the specified condition is met, the resource may be interacted with from the UI. If the condition is not met, the resource will appear grayed out and unusable in the UI in the detail view; all other views, including the dashboard, will not display the resource. If `visibleCondition` is omitted, the resource is always displayed and may be interacted with from the UI. The `visibleCondition` object may reference a different component, capability, and version.
        - `value` string, required: Notation which indicates the value of an attribute
        - `valueType` string: The data type of the `value`. The data type is automatically assigned from the given capability definition.
        - `operator` 'CONTAINS' | 'DOES_NOT_CONTAIN' | 'EQUALS' | 'DOES_NOT_EQUAL' | 'GREATER_THAN' | 'GREATER_THAN_OR_EQUALS' | 'LESS_THAN' | 'LESS_THAN_OR_EQUALS' | 'ONE_OF', required: The method to compare
        - `operand` string, required: The value that the visible condition evaluates against.
  - `presentationSettings` PresentationSettings: Defines presentation-level settings that are independent of the three UI views (`dashboard, detailView, automation`) and can be shared across multiple features. This object is used to describe how a capability’s values should be interpreted or transformed when rendered, rather than how the UI components themselves are structured.
    - `temperatureConversions` object[]: Defines which capability fields are subject to temperature conversion based on a user preference. This property is used to explicitly mark the value/unit pairs that must be converted to match the user’s preferred temperature unit (`Celsius / Fahrenheit`), regardless of the raw device status.
      - `value` string, required: Notation which indicates the value of an attribute
      - `unit` string: Unit value. Can be either a device state reference in the format `{attribute}.unit` (e.g., `level.unit`) or a literal unit value (e.g., `%`, `dB`).

## Other responses

- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `409`: Conflict
- `429`: Too many requests
- `default`: Unexpected error

## Changes

- **2026-01-22** `6acc46f51053`: 1 info
  - added the new optional `header` request parameter `Accept-Language`

[Operation history](https://skmtc.dev/smartthings/apis/smartthings-api/changes/capabilities/:capabilityId/:capabilityVersion/presentation/get.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)
