Developer resources

Your devices. One API.

Connect your application to devices through IoT Devices. Start with a read request, then add the permissions your workflow needs.

HTTPS · API v1

Start with your installation.

Ask for an installation API key. Each key is linked to one device space and a defined set of permissions. Keep it on your application server.

Base URLhttps://iotdevices.org/api/iot/v1
Request example
curl 'https://iotdevices.org/api/iot/v1/device/list?page_index=1&page_size=10' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Use the Authorization: Bearer header. Read operations accept GET or JSON POST; changes require JSON POST. Allow one second between requests for the same installation.

Examples use illustrative IDs and commands. Check the product capabilities and replace them with values for your installation.

Request API access

Key permissions

read
Read devices, products, configuration and tasks.
manage
Update device configuration and organization.
control
Send commands and manage scheduled actions.
firmware
Request firmware upgrades.

Devices

GETList devices/device/list

Required permission: read

Parameters
NameRequiredDescription
qNoSearch by device ID or name; ignored when tag is supplied.
productNoFilter by one or more IDs.
tagNoFilter by one or more IDs.
groupNoFilter by one or more IDs.
page_indexNoPage number, starting at 1.
page_sizeNoResults per page: 10, 20, 30 or 50.
10 · 20 · 30 · 50
Request example
curl 'https://iotdevices.org/api/iot/v1/device/list?page_index=1&page_size=10' \
  -H 'Authorization: Bearer YOUR_API_KEY'
GETDevice details/device/info

Required permission: read

Parameters
NameRequiredDescription
deviceYesDevice IDs, separated by commas or pipes; up to 100.
Request example
curl 'https://iotdevices.org/api/iot/v1/device/info?device=1001' \
  -H 'Authorization: Bearer YOUR_API_KEY'
POSTUpdate device tags/device/tag

Required permission: manage

Supply add, del, or both. Existing associations are left unchanged.

Parameters
NameRequiredDescription
deviceYesDevice IDs, separated by commas or pipes; up to 100.
addNoTag IDs to attach.
delNoTag IDs to detach.
Request example
curl -X POST 'https://iotdevices.org/api/iot/v1/device/tag' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"device":"1001","add":"10"}'
POSTMove devices to a group/device/group

Required permission: manage

Parameters
NameRequiredDescription
deviceYesDevice IDs, separated by commas or pipes; up to 100.
groupYesDestination group ID; 0 removes the group assignment.
Request example
curl -X POST 'https://iotdevices.org/api/iot/v1/device/group' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"device":"1001","group":10}'
GETDevice logs/device/log

Required permission: read

Parameters
NameRequiredDescription
deviceYesOne device ID.
dateNoOne date in YYYY-MM-DD format; defaults to today.
typeNoComma-separated log types: connect, disconnect, subscribe, unsubscribe, register, ota, control, event.
page_indexNoPage number, starting at 1.
page_sizeNoResults per page: 10, 20, 30 or 50.
10 · 20 · 30 · 50
Request example
curl 'https://iotdevices.org/api/iot/v1/device/log?device=1001&page_size=10' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Commands

POSTSend a device command/device/order

Required permission: control

Acceptance confirms dispatch, not execution. Check device state or events before reporting success.

Parameters
NameRequiredDescription
deviceYesDevice IDs, separated by commas or pipes; up to 100.
orderYesA JSON object with commands supported by the device model.
gatewayNoGateway IDs when forwarding is needed; up to 5.
Request example
curl -X POST 'https://iotdevices.org/api/iot/v1/device/order' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"device":"1001","order":{"power":1}}'

Configuration

GETRead device configuration/config/info

Required permission: read

Parameters
NameRequiredDescription
deviceYesOne device ID.
typeYesConfiguration section.
basic · device · network · mode
Request example
curl 'https://iotdevices.org/api/iot/v1/config/info?device=1001&type=basic' \
  -H 'Authorization: Bearer YOUR_API_KEY'
POSTWrite device configuration/config

Required permission: manage

Acceptance confirms dispatch, not execution. Check device state or events before reporting success.

Parameters
NameRequiredDescription
deviceYesDevice IDs, separated by commas or pipes; up to 100.
configYesConfiguration properties supported by the device.
Request example
curl -X POST 'https://iotdevices.org/api/iot/v1/config' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"device":"1001","config":{"relay1":"1"}}'

Firmware

GETList available firmware/ota/firmware

Required permission: read

Parameters
NameRequiredDescription
deviceYesOne device ID.
Request example
curl 'https://iotdevices.org/api/iot/v1/ota/firmware?device=1001' \
  -H 'Authorization: Bearer YOUR_API_KEY'
POSTUpgrade firmware/ota

Required permission: firmware

Acceptance confirms dispatch, not execution. Check device state or events before reporting success.

Parameters
NameRequiredDescription
deviceYesDevice IDs, separated by commas or pipes; up to 100.
firmwareNoFor one device, supply name and size from the firmware list. Multiple devices use the latest version.
Request example
curl -X POST 'https://iotdevices.org/api/iot/v1/ota' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"device":"1001","firmware":{"name":"VERSION_FROM_FIRMWARE_LIST","size":"300.68"}}'

Products

GETSearch products/product/list

Required permission: read

Parameters
NameRequiredDescription
qYesSearch by product ID, title or model.
page_indexNoPage number, starting at 1.
page_sizeNoResults per page: 10, 20, 30 or 50.
10 · 20 · 30 · 50
Request example
curl 'https://iotdevices.org/api/iot/v1/product/list?q=switch&page_size=10' \
  -H 'Authorization: Bearer YOUR_API_KEY'
GETProduct capabilities/product/detail

Required permission: read

Parameters
NameRequiredDescription
idYesProduct ID from the product list.
Request example
curl 'https://iotdevices.org/api/iot/v1/product/detail?id=100' \
  -H 'Authorization: Bearer YOUR_API_KEY'
GETProducts in your installation/product/list/stock

Required permission: read

No parameters required.

Request example
curl 'https://iotdevices.org/api/iot/v1/product/list/stock' \
  -H 'Authorization: Bearer YOUR_API_KEY'

Groups

GETList groups/group/list

Required permission: read

Parameters
NameRequiredDescription
formatNoFlat list or nested tree.
list · tree
page_indexNoPage number, starting at 1.
page_sizeNoResults per page: 10, 20, 30 or 50.
10 · 20 · 30 · 50
Request example
curl 'https://iotdevices.org/api/iot/v1/group/list?format=tree' \
  -H 'Authorization: Bearer YOUR_API_KEY'
PendingCreate a group

This endpoint is awaiting parameter verification and is not enabled. Contact us if your integration needs it.

PendingUpdate a group

This endpoint is awaiting parameter verification and is not enabled. Contact us if your integration needs it.

POSTDelete groups/group/delete

Required permission: manage

Parameters
NameRequiredDescription
groupYesGroup IDs to remove; up to 100. Devices are retained.
Request example
curl -X POST 'https://iotdevices.org/api/iot/v1/group/delete' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"group":"10"}'
POSTControl a group/group/control

Required permission: control

Acceptance confirms dispatch, not execution. Check device state or events before reporting success.

Parameters
NameRequiredDescription
groupYesOne group ID.
orderNoA JSON object with commands supported by the device model.
actionNoAn existing action ID.
Request example
curl -X POST 'https://iotdevices.org/api/iot/v1/group/control' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"group":"10","order":{"power":1}}'

Tags

PendingList tags

This endpoint is awaiting parameter verification and is not enabled. Contact us if your integration needs it.

POSTCreate a tag/tag/create

Required permission: manage

Parameters
NameRequiredDescription
titleYesUp to 32 Chinese or English letters, digits or underscores.
remarkNoOptional note.
Request example
curl -X POST 'https://iotdevices.org/api/iot/v1/tag/create' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"title":"room_100"}'
PendingUpdate a tag

This endpoint is awaiting parameter verification and is not enabled. Contact us if your integration needs it.

PendingDelete tags

This endpoint is awaiting parameter verification and is not enabled. Contact us if your integration needs it.

PendingControl tagged devices

This endpoint is awaiting parameter verification and is not enabled. Contact us if your integration needs it.

Tasks

GETList tasks/task/list

Required permission: read

Parameters
NameRequiredDescription
deviceNoFilter by one or more device IDs.
stageNoSchedule types, separated by commas or pipes.
page_indexNoPage number, starting at 1.
page_sizeNoResults per page: 10, 20, 30 or 50.
10 · 20 · 30 · 50
Request example
curl 'https://iotdevices.org/api/iot/v1/task/list?page_size=10' \
  -H 'Authorization: Bearer YOUR_API_KEY'
POSTCreate a task/task/create

Required permission: control

Supply commands or action, plus the fields for the selected schedule. Examples create paused tasks.

Schedule fields: datetime → datetime; minute → second; hour → minute + second; day → time; week → week + time; month → day + time; loop → interval. Confirm the installation timezone before scheduling.

Parameters
NameRequiredDescription
devicesYesDevice IDs; use d_, g_ or t_ prefixes when mixing devices, groups and tags.
typeYesSchedule type.
datetime · minute · hour · day · week · month · loop
timesNoExecution count; 0 means no count limit.
datetimeNoExecution date and time, or a Unix timestamp.
secondNoSecond within a minute, from 0 to 59.
minuteNoMinute within an hour, from 0 to 59.
timeNoTime of day in HH:mm:ss format.
weekNoWeekdays as comma-separated numbers, from 1 to 7.
dayNoDay of the month, from 1 to 31.
intervalNoInterval in seconds; at least 3.
commandsNoA JSON object containing the commands to schedule.
actionNoAn existing action ID.
enableNo1 enables the task; 0 keeps it paused.
0 · 1
Request example
curl -X POST 'https://iotdevices.org/api/iot/v1/task/create' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"devices":"1001","type":"loop","interval":60,"commands":{"power":1},"enable":0}'
GETTask details/task/detail

Required permission: read

Parameters
NameRequiredDescription
taskYesOne or more task IDs.
Request example
curl 'https://iotdevices.org/api/iot/v1/task/detail?task=10' \
  -H 'Authorization: Bearer YOUR_API_KEY'
POSTUpdate a task/task/modify

Required permission: control

Only supplied fields change. Sending times resets the execution counter.

Schedule fields: datetime → datetime; minute → second; hour → minute + second; day → time; week → week + time; month → day + time; loop → interval. Confirm the installation timezone before scheduling.

Parameters
NameRequiredDescription
taskYesOne task ID.
devicesNoDevice IDs; use d_, g_ or t_ prefixes when mixing devices, groups and tags.
typeNoSchedule type.
datetime · minute · hour · day · week · month · loop
timesNoExecution count; 0 means no count limit.
datetimeNoExecution date and time, or a Unix timestamp.
secondNoSecond within a minute, from 0 to 59.
minuteNoMinute within an hour, from 0 to 59.
timeNoTime of day in HH:mm:ss format.
weekNoWeekdays as comma-separated numbers, from 1 to 7.
dayNoDay of the month, from 1 to 31.
intervalNoInterval in seconds; at least 3.
commandsNoA JSON object containing the commands to schedule.
actionNoAn existing action ID.
enableNo1 enables the task; 0 keeps it paused.
0 · 1
Request example
curl -X POST 'https://iotdevices.org/api/iot/v1/task/modify' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"task":"10","enable":0}'
POSTDelete tasks/task/delete

Required permission: control

Parameters
NameRequiredDescription
taskYesTask IDs to delete; up to 100.
Request example
curl -X POST 'https://iotdevices.org/api/iot/v1/task/delete' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  --data '{"task":"10"}'
PendingStart or pause tasks

This endpoint is awaiting parameter verification and is not enabled. Contact us if your integration needs it.

Responses and errors

Responses include code and msg, with data when available. Lists can include page_index, page_count, is_more and total. Read the returned shape: single-object and array responses vary by endpoint.

Acceptance confirms dispatch, not execution. Check device state or events before reporting success.

A timed-out write may already have been accepted. Check the device or task before repeating it; writes are never retried automatically. Event callbacks and an MQTT endpoint are not provided by this API version.

400 / 415
Check parameter names, required fields and JSON content type.
401 / 403
Check your API key and its permissions.
429
Wait at least one second, then retry a read request.
501
This endpoint is awaiting contract verification.
502 / 504
The device service is unavailable or the result is unknown.
503
The integration still needs server configuration.
Chat on WhatsApp