Samsung Rules API

Automation rule management.

OpenAPI Specification

samsung-rules-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Samsung SmartThings Apps Rules 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: Rules
  description: Automation rule management.
paths:
  /rules:
    get:
      operationId: listRules
      summary: List Rules
      description: Returns all automation rules for the authenticated user.
      tags:
      - Rules
      parameters:
      - name: locationId
        in: query
        required: false
        description: Filter rules by location ID.
        schema:
          type: string
          format: uuid
      - name: max
        in: query
        required: false
        description: Maximum number of rules to return.
        schema:
          type: integer
      - name: offset
        in: query
        required: false
        description: Pagination offset.
        schema:
          type: integer
      responses:
        '200':
          description: List of rules.
          content:
            application/json:
              schema:
                type: object
                properties:
                  items:
                    type: array
                    items:
                      $ref: '#/components/schemas/Rule'
                  _links:
                    $ref: '#/components/schemas/Links'
        '401':
          description: Unauthorized.
    post:
      operationId: createRule
      summary: Create Rule
      description: Creates a new SmartThings automation rule with trigger conditions and actions.
      tags:
      - Rules
      parameters:
      - name: locationId
        in: query
        required: true
        description: Location ID where the rule will be created.
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRuleRequest'
      responses:
        '200':
          description: Rule created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
        '401':
          description: Unauthorized.
        '422':
          description: Validation error.
  /rules/{ruleId}:
    get:
      operationId: getRule
      summary: Get Rule
      description: Returns details for a specific automation rule.
      tags:
      - Rules
      parameters:
      - $ref: '#/components/parameters/RuleIdParam'
      - name: locationId
        in: query
        required: true
        description: Location ID of the rule.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Rule details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
        '401':
          description: Unauthorized.
        '404':
          description: Rule not found.
    put:
      operationId: updateRule
      summary: Update Rule
      description: Updates an existing SmartThings automation rule.
      tags:
      - Rules
      parameters:
      - $ref: '#/components/parameters/RuleIdParam'
      - name: locationId
        in: query
        required: true
        description: Location ID of the rule.
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateRuleRequest'
      responses:
        '200':
          description: Rule updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Rule'
        '401':
          description: Unauthorized.
        '404':
          description: Rule not found.
    delete:
      operationId: deleteRule
      summary: Delete Rule
      description: Deletes a SmartThings automation rule.
      tags:
      - Rules
      parameters:
      - $ref: '#/components/parameters/RuleIdParam'
      - name: locationId
        in: query
        required: true
        description: Location ID of the rule.
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Rule deleted.
        '401':
          description: Unauthorized.
        '404':
          description: Rule not found.
components:
  parameters:
    RuleIdParam:
      name: ruleId
      in: path
      required: true
      description: Unique rule identifier.
      schema:
        type: string
  schemas:
    Rule:
      type: object
      description: A SmartThings automation rule.
      properties:
        id:
          type: string
          description: Unique rule identifier.
        name:
          type: string
          description: Rule name.
        actions:
          type: array
          description: Actions to execute when rule conditions are met.
          items: {}
        timeZoneId:
          type: string
          description: IANA time zone for time-based conditions.
        executionLocation:
          type: string
          description: Where the rule executes.
          enum:
          - Cloud
          - Local
        ownerId:
          type: string
          description: Owner user ID.
    CreateRuleRequest:
      type: object
      required:
      - name
      - actions
      properties:
        name:
          type: string
          description: Rule name.
        actions:
          type: array
          description: Rule action definitions.
          items: {}
        timeZoneId:
          type: string
          description: IANA time zone for time-based conditions.
    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.
  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.