Limits
Organization defaults, payload limits, custom key limits and rate limits, read from the platform's own constants.
Every number on this page comes from the platform's own code, not from prose someone typed by hand. If a limit changes, this page changes with it.
Organization defaults#
These apply to a new organization. A Logable representative can raise them for your organization.
| Limit | Value | Description |
|---|---|---|
| devices | 100 | Devices one organization can hold. |
| industrial devices | 100 | Industrial devices one organization can create. |
| dashboards | 50 | Dashboards one organization can hold. |
| streams | 100 | Streams one organization can hold. |
| members | 50 | People in one organization, every role counted. |
| reports | 10 | Saved reports one organization can hold. |
| report recipients | 50 | Recipients on one scheduled report. |
| device data retention | 90 days | How long readings stay queryable. |
Payload limits#
These bound the whole payload a device or stream sends, whether a key is a declared field or a custom one.
| Limit | Value | Description |
|---|---|---|
| data keys | 100 | Maximum number of keys in the data object. |
| key length | 100 | Maximum characters in any data or metadata key. |
| string value length | 1000 | Maximum characters in a string value. |
| metadata keys | 50 | Maximum number of keys in the metadata object. |
| metadata size | 16 KB | Maximum serialised size of the metadata object. |
| nesting depth | 32 | Maximum object nesting Logable walks before it rejects the payload. |
Custom key limits#
These apply only to custom keys in a device payload: keys the device type does not declare. They are tighter than the payload limits above, because custom data is a convenience channel, not a bulk one.
| Limit | Value | Description |
|---|---|---|
| custom keys | 20 | Maximum number of custom (unregistered) keys in one payload. |
| key length | 64 | Maximum characters in a custom key. |
| string value length | 256 | Maximum characters in a custom key's string value. |
Rate limits#
Logable applies four limits, in two services: three in ingest, one in the API. They do not share a budget.
| Service | Limit | Description |
|---|---|---|
| Ingest over HTTP | 10 per second | Per device or per stream. Over the limit, the request gets a 429 with retryAfter. |
| Ingest over MQTT | 10 per second | Per device or per stream. Over the limit, the message is dropped without a reply. The device log shows the drop. |
| Ingest, per organization | 200 per second | Across every device and stream the organization owns, on both transports. A gateway that fronts many devices counts against its organization, not against an address. |
| Logable API | 100 per minute | Per signed-in user. The web and mobile apps stay under it. Devices never touch it. |
Over HTTP, going over a limit gets a 429 response with a retryAfter field. Over MQTT, an excess message is dropped without a reply. Over the api, a signed-in user's request gets a 429; a device never calls the api, so this limit never applies to a device.