OpenAPI Specification
openapi: 3.0.3
info:
title: Samsung SmartThings Apps Locations 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: Locations
description: Location and room management.
paths:
/locations:
get:
operationId: listLocations
summary: List Locations
description: Returns all SmartThings locations accessible to the authenticated user.
tags:
- Locations
parameters:
- name: pageToken
in: query
required: false
description: Pagination cursor.
schema:
type: string
responses:
'200':
description: List of locations.
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Location'
_links:
$ref: '#/components/schemas/Links'
'401':
description: Unauthorized.
post:
operationId: createLocation
summary: Create Location
description: Creates a new SmartThings location.
tags:
- Locations
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateLocationRequest'
responses:
'200':
description: Location created.
content:
application/json:
schema:
$ref: '#/components/schemas/Location'
'401':
description: Unauthorized.
'422':
description: Validation error.
/locations/{locationId}:
get:
operationId: getLocation
summary: Get Location
description: Returns details for a specific SmartThings location.
tags:
- Locations
parameters:
- $ref: '#/components/parameters/LocationIdParam'
responses:
'200':
description: Location details.
content:
application/json:
schema:
$ref: '#/components/schemas/Location'
'401':
description: Unauthorized.
'404':
description: Location not found.
put:
operationId: updateLocation
summary: Update Location
description: Updates a SmartThings location's properties.
tags:
- Locations
parameters:
- $ref: '#/components/parameters/LocationIdParam'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateLocationRequest'
responses:
'200':
description: Location updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Location'
'401':
description: Unauthorized.
'404':
description: Location not found.
delete:
operationId: deleteLocation
summary: Delete Location
description: Deletes a SmartThings location and all associated devices and automations.
tags:
- Locations
parameters:
- $ref: '#/components/parameters/LocationIdParam'
responses:
'200':
description: Location deleted.
'401':
description: Unauthorized.
'404':
description: Location not found.
/locations/{locationId}/rooms:
get:
operationId: listRooms
summary: List Rooms
description: Returns all rooms within a SmartThings location.
tags:
- Locations
parameters:
- $ref: '#/components/parameters/LocationIdParam'
responses:
'200':
description: List of rooms.
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Room'
'401':
description: Unauthorized.
'404':
description: Location not found.
post:
operationId: createRoom
summary: Create Room
description: Creates a new room within a SmartThings location.
tags:
- Locations
parameters:
- $ref: '#/components/parameters/LocationIdParam'
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- name
properties:
name:
type: string
description: Room name.
responses:
'200':
description: Room created.
content:
application/json:
schema:
$ref: '#/components/schemas/Room'
'401':
description: Unauthorized.
components:
parameters:
LocationIdParam:
name: locationId
in: path
required: true
description: Unique location identifier (UUID).
schema:
type: string
format: uuid
schemas:
Location:
type: object
description: A SmartThings location (home, office, etc.).
properties:
locationId:
type: string
format: uuid
description: Unique location identifier.
name:
type: string
description: Location name.
countryCode:
type: string
description: ISO 3166-1 alpha-3 country code.
latitude:
type: number
format: double
description: Location latitude.
longitude:
type: number
format: double
description: Location longitude.
regionRadius:
type: integer
description: Geofence radius in meters.
temperatureScale:
type: string
enum:
- F
- C
description: Temperature unit preference.
timeZoneId:
type: string
description: IANA time zone ID (e.g., America/Chicago).
locale:
type: string
description: BCP 47 locale tag.
CreateLocationRequest:
type: object
required:
- name
properties:
name:
type: string
description: Location name.
countryCode:
type: string
description: ISO 3166-1 alpha-3 country code.
latitude:
type: number
format: double
longitude:
type: number
format: double
regionRadius:
type: integer
description: Geofence radius in meters.
temperatureScale:
type: string
enum:
- F
- C
timeZoneId:
type: string
description: IANA time zone ID.
locale:
type: string
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.
Room:
type: object
description: A room within a SmartThings location.
properties:
roomId:
type: string
format: uuid
description: Unique room identifier.
locationId:
type: string
format: uuid
description: Location this room belongs to.
name:
type: string
description: Room name.
backgroundImage:
type: string
description: Room background image URL.
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.