OpenAPI Specification
openapi: 3.1.0
info:
title: Tuya Device Management Device Control API
description: The Tuya Device Management API provides endpoints for querying, controlling, and managing IoT devices registered to a Tuya cloud project. Capabilities include device information retrieval, device control, factory reset, device renaming, sub-device listing, operation log queries, and user-device association management.
version: '1.0'
contact:
name: Tuya Developer Support
url: https://developer.tuya.com/en/
email: developer@tuya.com
termsOfService: https://developer.tuya.com/en/docs/iot/compliance?id=Ka9t0qa3qihn3
servers:
- url: https://openapi.tuyaus.com
description: Tuya US Data Center
- url: https://openapi.tuyaeu.com
description: Tuya EU Data Center
- url: https://openapi.tuyain.com
description: Tuya India Data Center
security:
- tuyaApiKey: []
tags:
- name: Device Control
description: Control and command IoT devices
paths:
/v1.0/devices/{device_id}/commands:
post:
operationId: sendDeviceCommands
summary: Send Device Commands
description: Send one or more control commands to a device. Commands correspond to device data points (DPs) defined in the product schema.
tags:
- Device Control
parameters:
- $ref: '#/components/parameters/DeviceId'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
commands:
type: array
description: List of commands to send to the device
items:
type: object
properties:
code:
type: string
description: Data point code (e.g., switch_1, bright_value)
value:
description: Command value matching the data point type
required:
- commands
responses:
'200':
description: Commands sent successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'400':
description: Invalid command
'401':
description: Unauthorized
'404':
description: Device not found
/v1.0/devices/{device_id}/status:
get:
operationId: getDeviceStatus
summary: Get Device Status
description: Retrieve the current status of all data points for a device.
tags:
- Device Control
parameters:
- $ref: '#/components/parameters/DeviceId'
responses:
'200':
description: Device status data points
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceStatusResponse'
'401':
description: Unauthorized
'404':
description: Device not found
/v1.0/devices/{device_id}/reset-factory:
put:
operationId: resetDeviceFactory
summary: Reset Device to Factory Settings
description: Restore a device to its factory default settings and unpair it from the current account.
tags:
- Device Control
parameters:
- $ref: '#/components/parameters/DeviceId'
responses:
'200':
description: Device reset initiated
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'401':
description: Unauthorized
'404':
description: Device not found
components:
schemas:
DeviceStatusResponse:
type: object
properties:
result:
type: array
items:
$ref: '#/components/schemas/DataPoint'
success:
type: boolean
t:
type: integer
format: int64
SuccessResponse:
type: object
properties:
result:
type: boolean
description: Whether the operation succeeded
success:
type: boolean
description: Request success flag
t:
type: integer
format: int64
description: Response timestamp in milliseconds
DataPoint:
type: object
properties:
code:
type: string
description: Data point code identifier
value:
description: Current value of the data point
parameters:
DeviceId:
name: device_id
in: path
required: true
description: Unique device identifier
schema:
type: string
securitySchemes:
tuyaApiKey:
type: apiKey
in: header
name: client_id
description: Tuya API uses HMAC-SHA256 signed requests. Include your Access ID as the client_id header and provide a sign header computed from your Access ID, Access Secret, and timestamp.