Understanding the differences between Shelly Cloud Control API, Integrator API, and Shelly Fleet Manager

Shelly provides a diverse range of APIs for its devices, allowing flexible integration. Each device can be programmed individually, operating either as a standalone unit without Shelly Cloud or through a secure cloud API for remote control.
With these APIs you can manage Shelly devices - execute commands (but cannot change device settings), receive real time events about device status changes, enabling monitoring and automation capabilities.
The purpose of this article is to describe at a very high level the difference between Shelly Cloud API, Integrator API, and Shelly Fleet Manager - SFM (SaaS). Although all 3 of them are cloud services, there are differences between them and they serve different purposes.
Quick glossary:
WebSocket - WebSocket is a communication protocol, providing permanently open connection (channel) and bi-directional communication over a single Transmission Control Protocol connection. In terms of Shelly devices management, the Shelly cloud can do pushing with the WebSocket, while the HTTP based API is on the principle of request and response (pooling) - then the connection is closed.
Cloud Control API - Secure API for controlling Shelly devices through Shelly cloud per user account level. That is for controlling programmatically devices within single account. Management of each account credentials is needed. Access to all devices within the account is provided.
Control And State over HTTP API - API intended to be used by service providers that provide added value services for single user account level integration from Shelly Cloud Control over a stateless HTTP communication.
Control And Real Time Events over WebSocket - API intended to be used by service providers that provide added value services for single user account level integration from Shelly Cloud Control but the authentication is via OAuth. Access token is long lived and is invalidated on password change.
This is live communication over WebSocket.
Integrator API - Cloud-to-Cloud API for integration, control and device status updates collection from Shelly devices from multiple Shelly users' accounts. Intended for B2B and big industrial use cases.
Shelly Fleet Manager - Shelly offered SAAS solution or self-managed open source solution, not depending on Shelly Cloud, for managing fleets of Shelly devices.
The simple logic diagram below provides a quick visualization of the concepts explained in detail later in this article.

Controlling devices from a single Shelly account
Control and State over HTTP API
Intended for managing | Single User Shelly account devices |
API type | over HTTP |
Intended for | Small number of devices and/or DIY or POC |
This is Secure API for controlling Shelly devices through Shelly cloud. With it, you can execute commands (but cannot change device settings), and retrieve device state, for a single Shelly Cloud Account.
It can be used for basic and advanced use cases and allows programmatically controlling devices within single account. Communication is over HTTPS and data exchange is via JSON structures.
You can use direct API control without Shelly Control App.
You can generate an authorization key in the app in User settings->Authorization cloud key
Having this key allows control for a single Shelly account devices.
Note - The key will change if you change your password.
A user account is associated with a server in our Shelly cloud infrastructure which processes the requests. Using this API requires knowing the host on which the user is a tenant of. The host is subject to change and is not guaranteed, as capacity considerations might lead to relocating tenants between cloud hosts.
Detailed information on single account level control can be found here - https://shelly-api-docs.shelly.cloud/cloud-control-api/
Control And Real Time Events over WebSocket
Intended for managing: | Single User Shelly account devices |
API type: | over WebSocket |
Intended for: | Small number of devices and/or DIY or POC |
Use case - to handle APIs of Shelly devices per user account on Shelly cloud. Authentication is via OAuth.
This API is intended for small business solutions with low volume of devices.
API intended to be used by service providers that provide added value services for single user account level integration from Shelly Cloud Control. Access token is long lived and is invalidated on password change.
Connection: WebSocket is established, using OAuth account credentials. Real time device status notifications are sent by Shelly cloud and device control commands can also be issued. The API allows simple way for an integrator to monitor devices statuses associated with single Shelly cloud account.
N.B. Each managed account connection requires OAuth credentials.
For non-professional use shelly-diy as client id. Tokens obtained with the shelly-diy client id MIGHT be subject of rate restrictions.
Detailed information can be found here - https://shelly-api-docs.shelly.cloud/cloud-control-api/real-time-events
Controlling devices from multiple Shelly user accounts. (Business Use Cases)
Integrator API
Intended for managing: | Multiple User Shelly account devices |
API type: | over WebSocket |
Intended for: | Big number of devices from multiple accounts and big industrial Use Cases |
Use case - to handle APIs of Shelly devices belonging to multiple user accounts on Shelly cloud. This API is for B2B solution for big volume of devices and big industrial cases.
This supports multiple Real Time Events Web Sockets, opened from single service point and is cloud-to-clod centric.
This is Cloud-to-Cloud API for integration, control and data collection from our devices. It is intended for third party integrators, that would like to monitor and control Shelly devices that are connected to our cloud systems. It allows centralized streaming of status data from many shelly accounts to a single point for data ingest. Basic control over the devices is also possible.
An integrator account holding integrator's communications endpoints must be created. For creation of the integrator's account and for obtaining a license you should contact us at support@shelly.cloud or fill this form. Licenses for personal use are not provided, and Shelly has the right to reject unreasonable requests.
User consent - Device owners willing to use a service have to log into their Shelly Cloud account and grant consent for sharing their devices with an integrator. The scope of the consent and the consent itself can be unilaterally changed or revoked by the user at any time. Consent is granted per device and can be read-only or read and control.
Detailed information can be found here - https://shelly-api-docs.shelly.cloud/integrator-api/
Device management solution for controlling multiple devices with or without Shelly accounts
Shelly Fleet Manager

Intended for managing: | Shelly devices with(single/multiple) or without Shelly User accounts |
API type: | over WebSocket |
Intended for: | Industrial Use Cases |
Use case - to manage Shelly devices independently from Shelly Cloud and accounts.
Shelly Fleet Manager goals as a product are to monitor, manage, and control fleets of Shelly smart devices across multiple locations.
It provides a centralized platform for real-time data acquisition, remote control, automation, and reporting.
These devices can be either bind to Shelly Cloud accounts or not. This makes it very flexible, because you can add out-of-the-box devices without any setup and even add then on bulk with the Shelly FMA (Shelly Fleet Manager Assistant).
Shelly Fleet Manager (SFM) is a Shelly standalone SaaS solution and is completely independent from Shelly Cloud for end users. This is cloud solution by Shelly and provides device management. SFM has a browser based UI (and Chrome plugin) which is similar yet different than the Shelly Cloud Control application (which is designed for end users).
SFM is designed and developed as a back-office solution for use in cases where local automation controller is needed for reasons of security or required by the system design.
SFM could be used as a Shelly cloud solution or installed as a standalone software (it is open source project) and further developed and customized by clients on their own.
With SFM you don't need Shelly Cloud account (as the regular users) to control devices - you only need to connect them to SFM.
The bulk onboarding of Shelly devices is possible via Shelly mobile apps for iOS and Android - Shelly FMA (Shelly Fleet Manager Assistant).

The app provides the commissioning of Shelly devices onto SFM instance and adds configuration and maintenance features for local diagnostics.
It will scan via Bluetooth for all new nearby devices and add them to the preconfigured SFM instance. Configuration profiles can be pushed to devices, allowing them to be placed in preconfigured groups (based on physical location for example) with preconfigured settings, Wi-Fi, etc.
Google Play Store: https://play.google.com/store/apps/details?id=com.shelly.fleetassistant&hl=en
Apple Store: https://apps.apple.com/bg/app/shelly-fma/id6526479868
Connection to backend: The devices are using outbound WebSocket to establish connection to the Fleet Manager.
Note: SFM works only with Gen2+ devices. If devices are already connected to Shelly Cloud Control, connecting them to SFM will not disconnect them from Shelly cloud, as these are independent connections.
Detailed information can be found here - https://fleet.shelly.com/
We Value Your Feedback!
Thank you for taking the time to read our article! Was it helpful or interesting?
Your insights can help us improve. We’d be grateful for any feedback. If you have a moment,
please share it with us at the following email: