This article describes the limits that apply to the following features and services of IoT Platform.

Products and devices

Item Description Limit
Tags The maximum number of tags that can be attached to a product, device, or device group. 100
Products The maximum number of products that can be created for each Enterprise Edition instance. 1,000
The maximum number of products that an Alibaba Cloud account can create for each public instance. 1,000
Devices The maximum number of devices that can be added to a product.
Note
  • To obtain the number of devices under a product, we recommend that you set an alert threshold for the number of devices. This prevents unexpected errors when you add devices to the product. For more information, see Create a threshold-triggered alert rule.
  • If the number of devices exceeds the limit, you must create another product.
1,000,000
The maximum number of devices that each Alibaba Cloud account can add.
Note If you need to extend the limit based on your business requirements, submit a ticket.
10,000,000
Gateways and sub-devices The maximum number of sub-devices that can be attached to a gateway. 1,500
Thing Specification Language (TSL) features The maximum number of TSL modules that can be created for a product, including the default modules and custom modules. 10
The maximum number of features that can be added to a TSL module. 300
The maximum number of parameters that can be specified for a property of the STRUCT data type. 50
The maximum number of items that can be specified for a feature of the ENUM data type. 100
The maximum length that can be specified for a feature of the TEXT data type. 10,240 characters
The maximum number of elements that can be specified for a feature of the ARRAY data type. 512
The maximum number of input and output parameters that can be added to all services and events. 300
The maximum number of input parameters that can be added to a service. 100
The maximum number of output parameters that can be added to a service. 100
The maximum number of output parameters that can be added to an event. 100
The maximum number of TSL module files that can be imported at the same time. 10
The maximum number of latest versions that can be saved for a TSL model. 10
The maximum size of an imported TSL module in the JSON format. 512 KB
The maximum number of valid characters that can be contained in an imported TSL module in the JSON format.

Valid characters does not include line feeds and alignment characters.

256 KB
The maximum size of a ZIP file that is obtained by compressing multiple JSON-formatted files when you import a TSL model. 2.5 MB
The maximum number of nesting levels if you nest the ARRAY and STRUCT data types for the ThingModelJson parameter when you call TSL-related operations.

For example, you can nest data of the STRUCT type only in data of the ARRAY type. In this case, the data of the STRUCT type cannot contain data of the ARRAY or STRUCT type.

2
Device groups The maximum number of groups and sub-groups that each Alibaba Cloud account can create. 1,000
The maximum number of devices that can be added to a group. 100,000
The maximum number of groups to which a device can be added. 10
Data parsing The maximum size of a data parsing script. 128 KB
Remote configuration The maximum size of a remote configuration file. Remote configuration files support only the JSON format. 64 KB
Data retention period The maximum number of days that property, event, and service data can be retained. Data is deleted after the retention period ends. 30
Files The maximum size of files that each Alibaba Cloud account can store on IoT Platform servers. 1 GB
The maximum number of files that can be stored for a device. 1,000
OTA update The maximum number of update packages that each Alibaba Cloud account can upload. 500
The maximum size of an update package. 2,000 MB
The maximum number of devices that can be specified for a batch update. 100,000
Device tasks The maximum number of device tasks that each Alibaba Cloud account can add to a single region. 10,000

Connections and communications

Item Description Limit
Device access The maximum number of connections that can be established with IoT Platform by using the same device certificate information. The device certificate information includes the Productkey and DeviceName parameters. 1
Connections The maximum number of MQTT connection requests that each Alibaba Cloud account can initiate per second. 500
The maximum number of connection requests that a device can send per minute without being throttled. 5
Device subscription The maximum number of topics to which a device can subscribe.

After the limit is reached, new subscription requests are rejected. The device can check whether a subscription request succeeds by verifying the SUBACK message.

100
Requests The maximum number of requests that the devices of an Alibaba Cloud account can send to IoT Platform per second. 10,000
The maximum number of requests that IoT Platform can send to the devices of an Alibaba Cloud account per second. 2,000
Message communication The maximum number of messages that a device can send to IoT Platform per second.
Note If you use the MQTT protocol to publish messages, no throttling information is returned. You can view device logs to find the devices whose messages are blocked due to throttling.
  • QoS 0: 30 messages per second
  • QoS 1: 10 messages per second
The maximum number of messages that a device can receive per second. The limit changes based on the network environment.

If the maximum TCP write buffer size is exceeded, an error message is returned. If IoT Platform uses the Pub API operation to send requests to a device and the device cannot process the requests in a timely manner, a throttling error message is returned.

50 messages per second
Bandwidth The maximum throughput (bandwidth) per connection. 8 Mbit/s
Cache requests The maximum number of unacknowledged message publishing requests from a device.

After the limit is reached, IoT Platform rejects new message publishing requests from the device unless a PUBACK message is received.

100
Message retention period The maximum number of days that a QoS 1 message can be retained.

If no PUBACK message is received before the maximum retention period ends, the message publishing request is rejected.

7
MQTT message size The maximum size of a message that can be sent by using the MQTT protocol. Messages that exceed this limit are discarded. 256 KB
CoAP message size The maximum size of a message that can be sent by using the CoAP protocol. Messages that exceed this limit are discarded. 1 KB
MQTT keep-alive mechanism The heartbeat interval of an MQTT connection. If a heartbeat interval is out of the specified value range, the server rejects the connection request.

We recommend that you set the heartbeat interval to a value that is greater than 300 seconds.

A timer starts when IoT Platform sends a CONNACK message as a response to a CONNECT message. When IoT Platform receives a PUBLISH, SUBSCRIBE, PING, or PUBACK message, the timer is reset. If no message is received within 1.5 times the specified heartbeat interval, the server terminates the connection.

30 to 1,200 seconds
RRPC timeout period The timeout period for devices to respond to RRPC requests. 8 seconds
MQTT 5.0 protocol The maximum number of custom properties that can be added. 20
The maximum length of a custom property key or value. 128 characters
The maximum length of the ResponseTopic or CorrelationData parameter in the request/response communication mode. 128 characters

Topics

Item Description Limit
Custom topic categories The maximum topic categories that can be defined for a product. 50
Permission control A device can publish messages and subscribe only to its own topics. None
Topic length The maximum length of a topic that is encoded in UTF-8. 128 bytes
Topic levels The maximum number of category levels that a topic can include. The number of category levels is indicated by the number of slashes (/) in the topic. 7
Subscriptions The maximum number of topics that can be included in a subscription request. 8
Time to take effect The period that a subscribe or unsubscribe operation requires to take effect. A subscription remains effective until you unsubscribe from the topic. We recommend that you subscribe to topics in advance to avoid missing information.

For example, a device sends a subscription request to Topic A. After 10 seconds, the subscription takes effect and the device starts to receive messages from Topic A in real time. The device keeps receiving messages from Topic A unless you unsubscribe from the topic.

10 seconds
Topic broadcasting The maximum size of a message to be broadcasted.

To generate a message body, you must convert a raw message into binary data and encode the data by using Base64.

64 KB
The number of messages that can be broadcasted per minute by using the server SDK. 1

device shadow

Item Description Limit
JSON levels The maximum number of levels that can be specified in a device shadow JSON file. 5
File size The maximum size of a device shadow JSON file. 16 KB
Properties The maximum number of properties that can be specified in a device shadow JSON file. 128
Requests per second The maximum number of requests that a device can send per second. 20

Data forwarding

Item Description Limit
Rules The maximum number of rules that each Alibaba Cloud account can create. 1,000
Data forwarding destinations The maximum number of data forwarding operations in a rule. 10
Messages processed by the rules engine The maximum number of data forwarding queries that can be processed per second for an Alibaba Cloud account. RAM users of an Alibaba Cloud account share the quota of the account.

After a message is processed, it can be written to multiple Alibaba Cloud services. For more information, see the next section: Messages written to Alibaba Cloud services.

If a message is blocked due to throttling, IoT Platform retries to process the message. If multiple retries fail, the message is discarded.

1,000 TPS
Messages written to Alibaba Cloud services

The maximum number of data forwarding queries that can be processed per second for an Alibaba Cloud account. The maximum number can be reached only if the instance of an Alibaba Cloud service provides a high level of performance. RAM users of an Alibaba Cloud account share the quota of the account.

If the limit is exceeded or if the number of concurrent write requests to an Alibaba Cloud service exceeds 40, data forwarding fails due to throttling.

If a destination service such as Message Queue for Apache RocketMQ, ApsaraDB RDS, or TSDB is unavailable due to the resource changes of the service, IoT Platform stops forwarding messages and displays the abnormal rule. If an error occurs due to another cause when you send a message, IoT Platform retries three times at the intervals of 1, 3, and 10 seconds. If all retries fail, the message is discarded and an error message is sent to the destination cloud service.

2,000 TPS
Requirements of data forwarding destinations Make sure that the instance of a destination cloud service runs properly. Data forwarding fails in multiple scenarios. These scenarios include instance failure, overdue payments, improper configurations, and invalid parameter settings, such as invalid values and lack of permissions. None
Message deduplication When you forward a message, the message may be repeatedly sent until the client returns ACK or the message expires. If multiple messages have the same message ID, you can deduplicate the messages based on the ID. None

Server-side subscription

The following table describes the limits of AMQP server-side subscription.

Limit Description
Authentication timeout An authentication request is sent immediately after a connection is established. If the authentication fails within 15 seconds, the server ends the connection.
Data timeout When a server establishes a connection with IoT Platform, the heartbeat timeout period (the idle-timeout parameter in AMQP) must be specified. The timeout period ranges from 30 to 300 seconds. If no frame is transmitted after the heartbeat timeout period expires, IoT Platform ends the connection.
After the connection is established, the server must send ping packets within the heartbeat timeout period to maintain the connection. If no ping packet is sent within the heartbeat time, IoT Platform ends the connection.
Note If the connection is established by using an Alibaba Cloud SDK, the server does not need to send ping packets to maintain the connection. During the keep-alive time that is provided by the SDK, make sure that the main process does not exit.
Policy for message pushing retries

Messages may not be consumed in real time due to some issues. In this case, these messages are accumulated. These issues include that consumers disconnect from IoT Platform and the speed at which these messages are consumed is slow.

  • After these consumers re-connect to IoT Platform and start to consume messages at a stable speed, IoT Platform pushes accumulated messages to these consumers again.
  • If consumers fail to consume these pushed messages, the queue where accumulated messages reside may be blocked. After an interval of about 1 minute, IoT Platform retries to push accumulated messages to consumers.
Maximum number of saved messages A consumer group can retain a maximum of 100 million messages.
Message retention period One day.
Maximum push rate for real-time messages A consumer group can process a maximum of 1,000 transactions per second (TPS).
Maximum push rate for accumulated messages A consumer group can process a maximum of 200 TPS.
Note To prevent a large number of accumulated messages, make sure that consumers are connected to IoT Platform. You must also make sure that these consumers send ACK responses to messages that are pushed by IoT Platform in a timely manner.
Maximum number of consumer groups with which a product can be associated 10.
Maximum number of products with which a consumer group can be associated 1,000.
Maximum number of consumer groups An account can create a maximum of 1,000 consumer groups.
Maximum number of consumers A consumer group can have a maximum of 64 consumers.
Maximum connection requests A consumer can issue a maximum of 100 connection requests within 1 minute.
Note Consumers correspond to AMQP clients that are used to receive IoT Platform messages. These consumers are not devices.

For more information about the limits of MNS server-side subscription, see the limits of MNS queues in MNS limits.

Cloud API operations

The maximum number of queries per second (QPS) for the IoT Platform API. For more information, see List of API operations by function.

If a throttling error message is returned when you call an operation, you can try again.For more information about throttling errors, see Type 29 to 31 in common errors.