Dashboard
System overview and metrics
Client Management
Register and manage system clients
| Name | Auth Key | Projects | Actions |
|---|---|---|---|
Loading... | |||
Project Management
Organize devices into projects under specific clients
| Name | Client | Devices | Actions |
|---|---|---|---|
Loading... | |||
Device Management
Add and configure Shelly IoT devices
| Alias | System ID (UUID) | Project | Hardware | Actions |
|---|---|---|---|---|
Loading... | ||||
Hardware Catalog
Browse supported devices and their specifications
Loading catalog...
Live Control Panel
Monitor and control your deployed devices in real-time
Enter an Auth Key to view your devices
API Documentation
Developer guide for external integrations
1. Authentication
The API supports two methods of authentication:
Option A: User Session (JWT)
Used primarily for the web platform. Obtain a token using user credentials.
curl -X POST http://localhost:8001/api/token \
-d "username=YOUR_USER&password=YOUR_PASS"
Option B: Client API Key (Recommended for Integrations)
External systems can use the X-Client-Key header with the Client's Auth Key. This method is restricted to resources owned by that specific client.
X-Client-Key: YOUR_CLIENT_AUTH_KEY
2. Managing Resources
Use your Auth Key to list your projects and devices. You will need the id of the device for the control commands.
curl -X GET http://localhost:8001/api/projects \
-H "X-Client-Key: YOUR_CLIENT_AUTH_KEY"
curl -X GET http://localhost:8001/api/devices \
-H "X-Client-Key: YOUR_CLIENT_AUTH_KEY"
Note: The internal id (UUID) is what identifies the device in this system, distinct from the physical hardware ID.
3. Device Control
To control a device, send a POST request with your Auth Key in the headers.
curl -X POST http://localhost:8001/api/devices/DEVICE_UUID/control \
-H "X-Client-Key: YOUR_CLIENT_AUTH_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": "toggle",
"params": { "on": true }
}'
Supported Actions: toggle
Payload Example:
{
"action": "toggle",
"params": { "on": true }
}