Samsung Devices API

Connected device management and control.

OpenAPI Specification

samsung-devices-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Samsung SmartThings Apps Devices API
  description: 'The SmartThings REST API provides programmatic access to the SmartThings platform for controlling connected devices, creating automations, managing locations, rooms, scenes, and building smart home integrations. Supports OAuth 2.0 Bearer tokens and personal access tokens. Base URL: https://api.smartthings.com/v1.'
  version: 1.0.0
  contact:
    name: SmartThings Developer Support
    url: https://developer.smartthings.com/
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://api.smartthings.com/v1
  description: SmartThings REST API
security:
- BearerAuth: []
tags:
- name: Devices
  description: Connected device management and control.
paths:
  /devices:
    get:
      operationId: listDevices
      summary: List Devices
      description: Returns a list of devices accessible to the authenticated user, optionally filtered by location, capability, or device type.
      tags:
      - Devices
      parameters:
      - name: locationId
        in: query
        required: false
        description: Filter devices by location ID.
        schema:
          type: string
          format: uuid
      - name: capabilityId
        in: query
        required: false
        description: Filter devices by SmartThings capability (e.g., switch, lock).
        schema:
          type: string
      - name: deviceId
        in: query
        required: false
        description: Filter by specific device IDs (repeatable).
        schema:
          type: array
          items:
            type: string
      - name: max
        in: query
        required: false
        description: Maximum number of devices to return (max 200).
        schema:
          type: integer
          maximum: 200
      - name: pageToken
        in: query
        required: false
        description: Cursor token for pagination.
        schema:
          type: string
      responses:
        '200':
          description: List of devices.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Device'
                  _links:
                    $ref: '#/components/schemas/Links'
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
  /devices/{deviceId}:
    get:
      operationId: getDevice
      summary: Get Device
      description: Returns details for a specific device by its ID.
      tags:
      - Devices
      parameters:
      - $ref: '#/components/parameters/DeviceIdParam'
      responses:
        '200':
          description: Device details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Device'
        '401':
          description: Unauthorized.
        '404':
          description: Device not found.
    delete:
      operationId: deleteDevice
      summary: Delete Device
      description: Deletes a device from the SmartThings platform.
      tags:
      - Devices
      parameters:
      - $ref: '#/components/parameters/DeviceIdParam'
      responses:
        '200':
          description: Device deleted.
        '401':
          description: Unauthorized.
        '403':
          description: Forbidden.
        '404':
          description: Device not found.
  /devices/{deviceId}/status:
    get:
      operationId: getDeviceStatus
      summary: Get Device Status
      description: Returns the full status of all components and capabilities for a device, including current attribute values.
      tags:
      - Devices
      parameters:
      - $ref: '#/components/parameters/DeviceIdParam'
      responses:
        '200':
          description: Device status with component attribute values.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeviceStatus'
        '401':
          description: Unauthorized.
        '404':
          description: Device not found.
  /devices/{deviceId}/commands:
    post:
      operationId: executeDeviceCommands
      summary: Execute Device Commands
      description: Executes one or more commands on a device component. Commands invoke capability command methods (e.g., switch.on, lock.lock, thermostat.setCoolingSetpoint).
      tags:
      - Devices
      parameters:
      - $ref: '#/components/parameters/DeviceIdParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeviceCommandRequest'
            examples:
              TurnOn:
                summary: Turn on a switch
                value:
                  commands:
                  - component: main
                    capability: switch
                    command: true
              Lock:
                summary: Lock a lock
                value:
                  commands:
                  - component: main
                    capability: lock
                    command: lock
      responses:
        '200':
          description: Commands accepted for execution.
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        status:
                          type: string
                          enum:
                          - ACCEPTED
                          - COMPLETED
                          - ERROR
        '401':
          description: Unauthorized.
        '422':
          description: Invalid command or capability.
components:
  schemas:
    DeviceCommandRequest:
      type: object
      required:
      - commands
      properties:
        commands:
          type: array
          description: List of commands to execute.
          items:
            type: object
            required:
            - component
            - capability
            - command
            properties:
              component:
                type: string
                description: Component ID (e.g., main).
              capability:
                type: string
                description: Capability ID (e.g., switch, lock).
              command:
                type: string
                description: Command name (e.g., on, off, lock, unlock).
              arguments:
                type: array
                description: Command arguments.
                items: {}
    DeviceStatus:
      type: object
      description: Full status of all device components and capability attributes.
      properties:
        components:
          type: object
          description: Map of component IDs to capability status objects. Each capability contains attribute name/value pairs with timestamps.
          additionalProperties:
            type: object
            additionalProperties:
              type: object
              properties:
                value:
                  description: Current attribute value.
                unit:
                  type: string
                  description: Unit of measurement (if applicable).
                timestamp:
                  type: string
                  format: date-time
                  description: Timestamp of last update.
    Device:
      type: object
      description: A SmartThings connected device.
      properties:
        deviceId:
          type: string
          format: uuid
          description: Unique device identifier.
        name:
          type: string
          description: Device display name.
        label:
          type: string
          description: User-assigned device label.
        manufacturerName:
          type: string
          description: Manufacturer name.
        presentationId:
          type: string
          description: Device presentation identifier.
        locationId:
          type: string
          format: uuid
          description: Location ID this device belongs to.
        roomId:
          type: string
          format: uuid
          description: Room ID this device is assigned to.
        ownerId:
          type: string
          description: Owner user ID.
        type:
          type: string
          description: Device integration type.
          enum:
          - ENDPOINT_APP
          - DTH
          - MOBILE
          - VIPER
          - MATTER
          - LAN
          - BLE
          - ZWave
          - Zigbee
          - HUB
        components:
          type: array
          description: Functional sub-units of the device (main, sub).
          items:
            $ref: '#/components/schemas/DeviceComponent'
    Links:
      type: object
      description: Pagination links.
      properties:
        next:
          type: object
          properties:
            href:
              type: string
              description: URL to the next page.
        previous:
          type: object
          properties:
            href:
              type: string
              description: URL to the previous page.
    DeviceComponent:
      type: object
      description: A functional component of a SmartThings device.
      properties:
        id:
          type: string
          description: Component ID (e.g., main, sub).
        label:
          type: string
          description: Human-readable component label.
        capabilities:
          type: array
          description: Capabilities this component supports.
          items:
            type: object
            properties:
              id:
                type: string
                description: Capability ID (e.g., switch, lock).
              version:
                type: integer
                description: Capability version.
        categories:
          type: array
          description: Device category classifications.
          items:
            type: object
            properties:
              name:
                type: string
                description: Category name.
              categoryType:
                type: string
                enum:
                - manufacturer
                - user
  parameters:
    DeviceIdParam:
      name: deviceId
      in: path
      required: true
      description: Unique device identifier (UUID).
      schema:
        type: string
        format: uuid
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: OAuth 2.0 Bearer token or SmartThings personal access token. Obtain tokens at https://account.smartthings.com/tokens.