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