IoT Hub quotas and throttling
Overview
Azure IoT Hub enforces a set of quotas and throttling rules to ensure reliable service for all customers. These limits protect the platform from excessive usage, maintain performance, and provide predictable pricing.
Service limits
Resource | Limit (per IoT Hub) | Notes |
---|---|---|
Device identities | 10 million (standard tier) / 1 billion (enterprise tier) | Includes disabled devices. |
Device-to-cloud messages per second | 400 / 2 000 (standard) / 10 000 (enterprise) | Depends on selected tier. |
Cloud-to-device messages per second | 50 / 250 (standard) / 1 250 (enterprise) | One message per device per second. |
Device twins | 10 million | Each device may have one twin. |
Modules per device | 32 | Only for IoT Edge devices. |
Device method calls per second | 200 (standard) / 1 000 (enterprise) | Aggregated across all devices. |
Throttling behavior
If an operation exceeds a quota, the service returns an HTTP 429 Too Many Requests
response. The response includes a Retry-After
header indicating how long to wait before retrying.
Operation | Throttle limit | Retry strategy |
---|---|---|
Device telemetry | Exceeding messages per second | Exponential back‑off with jitter. |
Device twin updates | 50 operations / second per hub | Queue locally and retry after Retry-After . |
Cloud‑to‑device messages | Exceeding messages per second | Batch and resend after delay. |
Device provisioning | 30 requests / second per DPS scope | Implement client‑side rate limiting. |
Best practices
- Implement exponential back‑off with jitter when handling
429
responses. - Batch telemetry where possible to reduce per‑message overhead.
- Use Azure IoT Hub SDKs which handle throttling automatically.
- Monitor
IncomingMessages
andOutgoingMessages
metrics in Azure Monitor. - Scale to a higher tier if you regularly approach quota limits.