Service limits for Azure Communication Services
This document explains some of the limitations of Azure Communication Services and what to do if you are running into these limitations.
Throttling patterns and architecture
When you hit service limitations you will generally receive an HTTP status code 429 (Too many requests). In general, the following are best practices for handling throttling:
- Reduce the number of operations per request.
- Reduce the frequency of calls.
- Avoid immediate retries, because all requests accrue against your usage limits.
You can find more general guidance on how to set up your service architecture to handle throttling and limitations in the Azure Architecture documentation for throttling patterns.
Acquiring phone numbers
Before trying to acquire a phone number, make sure your subscription meets the geographic and subscription requirements, otherwise you can't purchase a phone number. The below limitations apply to purchasing numbers through the Phone Numbers SDK and the Azure portal.
| Operation | Scope | Timeframe | Limit (number of requests) |
|---|---|---|---|
| Purchase phone number | Azure tenant | - | 1 |
| Search for phone numbers | Azure tenant | 1 week | 5 |
Action to take
For more information, see the phone number types concept page and the telephony concept overview page.
If you would like to purchase more phone numbers or put in a special order, follow the instructions here. If you would like to port toll-free phone numbers from external accounts to their Azure Communication Services account follow the instructions here.
Identity
| Operation | Timeframes (seconds) | Limit (number of requests) |
|---|---|---|
| Create identity | 30 | 500 |
| Delete identity | 30 | 500 |
| Issue access token | 30 | 500 |
| Revoke access token | 1 | 100 |
| createUserAndToken | 30 | 1000 |
| exchangeTokens | 30 | 500 |
Action to take
We always recommend you acquire identities and tokens in advance of starting other transactions like creating chat threads or starting calls, for example, right when your webpage is initially loaded or when the app is starting up.
For more information, see the identity concept overview page.
SMS
When sending or receiving a high volume of messages, you might receive a 429 error. This indicates you are hitting the service limitations and your messages will be queued to be sent once the number of requests is below the threshold.
Rate Limits for SMS:
| Operation | Scope | Timeframe (seconds) | Limit (number of requests) | Message units per minute |
|---|---|---|---|---|
| Send Message | Per Number | 60 | 200 | 200 |
Action to take
If you require sending an amount of messages that exceeds the rate-limits, please email us at phone@microsoft.com.
For more information on the SMS SDK and service, see the SMS SDK overview page or the SMS FAQ page.
Chat
Size Limits
| Name | Limit |
|---|---|
| Number of participants in thread | 250 |
| Batch of participants - CreateThread | 200 |
| Batch of participants - AddParticipant | 200 |
| Page size - ListMessages | 200 |
Operation Limits
| Operation | Bucketed by | Limit per 10 seconds | Limit per minute |
|---|---|---|---|
| Create chat thread | User | 10 | - |
| Delete chat thread | User | 10 | - |
| Update chat thread | Chat thread | 5 | - |
| Add participants / remove participants | Chat thread | 10 | 30 |
| Get chat thread / List chat threads | User | 50 | - |
| Get chat message / List chat messages | User and chat thread | 50 | - |
| Get chat message / List chat messages | Chat thread | 250 | - |
| Get read receipts | User and chat thread | 5 | - |
| Get read receipts | Chat thread | 250 | - |
| List chat thread participants | User and chat thread | 10 | - |
| List chat thread participants | Chat thread | 250 | - |
| Send message / update message / delete message | Chat thread | 10 | 30 |
| Send read receipt | User and chat thread | 10 | 30 |
| Send typing indicator | User and chat thread | 5 | 15 |
| Send typing indicator | Chat thread | 10 | 30 |
Voice and video calling
Call maximum limitations
| Name | Limit |
|---|---|
| Number of participants | 350 |
Calling SDK streaming support
The Communication Services Calling SDK supports the following streaming configurations:
| Limit | Web | Windows/Android/iOS |
|---|---|---|
| Maximum # of outgoing local streams that can be sent simultaneously | 1 video or 1 screen sharing | 1 video + 1 screen sharing |
| Maximum # of incoming remote streams that can be rendered simultaneously | 4 videos + 1 screen sharing | 6 videos + 1 screen sharing |
While the Calling SDK won't enforce these limits, your users may experience performance degradation if they're exceeded.
Calling SDK timeouts
The following timeouts apply to the Communication Services Calling SDKs:
| Action | Timeout in seconds |
|---|---|
| Reconnect/removal participant | 120 |
| Add or remove new modality from a call (Start/stop video or screen sharing) | 40 |
| Call Transfer operation timeout | 60 |
| 1:1 call establishment timeout | 85 |
| Group call establishment timeout | 85 |
| PSTN call establishment timeout | 115 |
| Promote 1:1 call to a group call timeout | 115 |
Action to take
For more information about the voice and video calling SDK and service, see the calling SDK overview page or known issues.
Teams Interoperability and Microsoft Graph
If you are using a Teams interoperability scenario, you will likely end up using some Microsoft Graph APIs to create meetings.
Each service offered through Microsoft Graph has different limitations; service-specific limits are described here in more detail.
Action to take
When you implement error handling, use the HTTP error code 429 to detect throttling. The failed response includes the Retry-After response header. Backing off requests using the Retry-After delay is the fastest way to recover from throttling because Microsoft Graph continues to log resource usage while a client is being throttled.
You can find more information on Microsoft Graph throttling limits in the Microsoft Graph documentation.
Network Traversal
| Operation | Timeframes (seconds) | Limit (number of requests) |
|---|---|---|
| Issue TURN Credentials | 5 | 30000 |
| Issue Relay Configuration | 5 | 30000 |
Action to take
We always recommend you acquire tokens in advance of starting other transactions like creating a relay connection.
For more information, see the network traversal concept overview page.
Still need help?
See the help and support options available to you.
Next steps
Povratne informacije
Pošalјite i prikažite povratne informacije za