ThingsBoard Private Cloud provides subscription plans based on the pay-as-you-go model.
Main characteristics of the subscription plan are the number of connected devices and amount of messages they produce.
However, to keep the environment safe, certain Entity, API and Rate limits apply.
| Feature | Launch | Growth | Scale | Enterprise |
|---|
| Data & configuration migration | ✓ | ✓ | ✓ | ✓ |
| Automatic backups | ✓ | ✓ | ✓ | ✓ |
| 24/7 monitoring | ✓ | ✓ | ✓ | ✓ |
| Support | ✓ | ✓ | ✓ | ✓ |
| Custom data retention policies | ✓ | ✓ | ✓ | ✓ |
| Geo-region deployment choice | ✓ | ✓ | ✓ | ✓ |
| Maintenance window picking | ✓ | ✓ | ✓ | ✓ |
| Database | SQL + NoSQL | SQL + NoSQL | SQL + NoSQL | SQL + NoSQL |
| Multi-AZ database replication | ✓ | ✓ | ✓ | ✓ |
| High availability services | | | ✓ | ✓ |
| Architecture reviews and consults | Upon request | Upon request | Upon request | ✓ |
| Parameter | Launch | Growth | Scale | Description |
|---|
| Devices | 5,000 | 25,000 | 50,000 | Maximum number of devices |
| Assets | 5,000 | 25,000 | 50,000 | Maximum number of assets |
| Customers | 5,000 | 25,000 | 50,000 | Maximum number of customers |
| Users | 5,000 | 25,000 | 50,000 | Maximum number of users |
| Dashboards | 1,000 | 5,000 | 10,000 | Maximum number of dashboards |
| Scheduler Events | 1,000 | 5,000 | 10,000 | Maximum number of scheduler events |
| Integrations | 30 | 50 | 100 | Maximum number of integrations |
| Converters | 100 | 200 | 400 | Maximum number of converters |
| Rule Chains | 50 | 100 | 150 | Maximum number of rule chains |
Monthly API limits unless stated otherwise.
| Parameter | Launch | Growth | Scale | Description |
|---|
| Transport messages | 2.5B | 5B | 25B | Total messages received by any transport (MQTT, HTTP, CoAP, etc.) or integration |
| Transport data points | 2.5B | 5B | 25B | Total key-value pairs in telemetry or attribute transport messages |
| Rule Engine executions | 25B | 50B | 250B | Total rule node executions. A single telemetry message may cause multiple executions. Periodic messages from Generator nodes are also counted. |
| TBEL executions | 25B | 50B | 250B | Total executions of user-defined TBEL functions (like Script filter/transformation nodes, data converters, etc.) |
| JavaScript executions | 500M | 1B | 5B | Total executions of user-defined JS functions (like Script filter/transformation nodes, data converters, etc.) |
| Default storage TTL | 365 days | 365 days | 365 days | How many days to store telemetry. Configurable upon request. |
| Default alarms TTL | 365 days | 365 days | 365 days | How many days to store alarms. Configurable upon request. |
| Default RPC TTL | 1 week | 1 week | 1 week | How many days to store persistent RPC. Configurable upon request. |
| Default notifications TTL | 30 days | 30 days | 30 days | How many days to store notifications. Configurable upon request. |
| Default debug event TTL | 1 week | 1 week | 1 week | How many days to store debug events. Configurable upon request. |
| Rule Engine exceptions TTL | 14 days | 30 days | 60 days | How many days to store Rule Engine exception stats. |
| New alarms per month | 50K | 75K | 100K | Total alarms created per month |
| Rule Engine executions per message | 40 | 45 | 50 | Maximum rule node executions to process a single message |
| Calculated fields per entity | 10 | 20 | 30 | Number of calculated fields per entity |
| Arguments per calculated field | 10 | 10 | 10 | Maximum arguments in a calculated field |
| Data points in rolling argument | 1,000 | 1,000 | 1,000 | Maximum data points stored in a calculated field’s rolling argument |
| Max debug mode duration | 15 min | 15 min | 15 min | Maximum duration of an active rule node debug session |
K = 1 thousand, M = 1 million, B = 1 billion.
| Parameter | Launch | Growth | Scale | Description |
|---|
| Min scheduled update interval | 10 sec | 10 sec | 10 sec | Minimum interval between scheduled re-evaluations of a calculated field |
| Min deduplication interval | 10 sec | 5 sec | 1 sec | Minimum interval for calculated field deduplication |
| Min aggregation interval | 60 sec | 60 sec | 30 sec | Minimum aggregation window for a calculated field |
| Intermediate aggregation flush interval | 300 sec | 300 sec | 300 sec | Interval between intermediate aggregation flushes |
| Re-evaluation check interval | 60 sec | 60 sec | 60 sec | Interval between calculated field re-evaluation checks |
| Alarm rule re-evaluation interval | 60 sec | 60 sec | 60 sec | Interval between alarm rule re-evaluation checks |
| Max relation depth per argument | 2 | 4 | 6 | Maximum relation depth for entity-relation-based arguments |
| Max related entities per argument | 1,000 | 1,000 | 1,000 | Maximum related entities returned per argument |
| Max state size | 32 KB | 32 KB | 32 KB | Maximum calculated field state size |
| Max single value argument size | 16 KB | 16 KB | 16 KB | Maximum size of a single-value argument |
| Parameter | Launch | Growth | Scale | Description |
|---|
| All messages | 2K/s, 50K/min, 2.4M/h | 10K/s, 125K/min, 6M/h | 20K/s, 600K/min, 30M/h | Total messages received by any transport or integration for all devices |
| All data points | 2K/s, 50K/min, 2.4M/h | 10K/s, 125K/min, 6M/h | 20K/s, 600K/min, 30M/h | Total data points received by any transport or integration for all devices |
| Messages per device or asset | 200/s, 6K/min, 20K/h | 200/s, 6K/min, 20K/h | 200/s, 6K/min, 20K/h | Messages per device or asset via any transport, integration, or Gateway |
| Data points per device | 200/s, 6K/min, 20K/h | 200/s, 6K/min, 20K/h | 200/s, 6K/min, 20K/h | Data points per device via any transport, integration, or Gateway |
| All REST requests | 100/s, 2,000/min | 100/s, 3,000/min | 100/s, 4,000/min | Total REST API calls from all users |
| REST requests per customer | 50/s, 1,000/min | 50/s, 1,000/min | 50/s, 1,000/min | REST API calls from users belonging to a particular customer |
| WebSocket updates per session | 1K/s, 10K/min | 1K/s, 10K/min | 1K/s, 10K/min | Messages per WebSocket session |
| WebSocket sessions | 1K | 5K | 10K | Maximum concurrent WebSocket sessions |
| WebSocket subscriptions | 10K | 50K | 100K | Maximum active subscriptions across all WebSocket sessions |
| WebSocket sessions per customer | 500 | 500 | 500 | Maximum active WebSocket sessions per customer |
| WebSocket subscriptions per customer | 5K | 5K | 5K | Maximum WebSocket subscriptions per customer |
| WebSocket sessions per user | 100 | 100 | 100 | Maximum WebSocket sessions per user |
| WebSocket subscriptions per user | 1K | 1K | 1K | Maximum WebSocket subscriptions per user |
| WebSocket queue size per session | 500 | 500 | 500 | Maximum size of in-transit messages queue per session |
| Telemetry read queries | 20K/10s, 60K/min | 100K/10s, 180K/min | 200K/10s, 400K/min | Total telemetry and Rule Engine read queries from WebSocket sessions, REST API calls, or rule nodes |
| Telemetry write queries | 10K/10s, 30K/min | 50K/10s, 150K/min | 100K/10s, 300K/min | Total telemetry write queries to the database |
| Rule Engine write queries | 20K/10s, 600K/min | 100K/10s, 180K/min | 200K/10s, 400K/min | Total Rule Engine write queries to the database |
A platform-wide limit is enforced at the load balancer layer per source IP address. It applies to HTTP traffic — REST API, WebSocket, and Web UI — on all Private Cloud plans. MQTT, CoAP, LwM2M, and SNMP transports bypass this limit.
| Window | Steady-state | Burst capacity |
|---|
| Per second | 50 req/s | +100 req |
| Per minute | 500 req/min | +1,000 req |
Both windows apply — whichever fires first returns HTTP 429. The limit is keyed on the client source IP, not the tenant. If your REST or WebSocket traffic is concentrated behind a single proxy or NAT egress IP, you may hit this gateway-level limit before reaching your plan’s tenant-level REST limit.