Limits and Calling Patterns
This document explains the limits of SharePoint Embedded during public preview.
Note
These are preview limits which are subject to change.
Size limits
The following table defines the size limits of containers"
Resource | Limit |
---|---|
Container types that a partner tenant can create | 5* |
Container types that an app can own | 1 |
Containers of a container type per tenant | 100k* |
Storage per container type per tenant | 100 TB* |
Files and folders per container | 30M |
Storage per container | 25 TB |
Files and folders with additive permissions per container | 5k |
File size | 250 GB |
Version count per file | 500 (Automatic Version History Limits Default Setting) |
Number of users shared per folder or file | 5k |
Note
Limit can be increased per request.
Throttling
Patterns and best practices
When applications hit service limits, you receive an HTTP status code 429 ("Too many requests"). You might also receive an HTTP status code 503 ("Server Too Busy").
In general, the following are the best practices to handle throttling:
- Reduce the number of concurrent requests.
- Avoid request spikes.
- Honor the
Retry-After
HTTP header.
In both cases, a Retry-After
header is included in the response indicating how long the calling application should wait before retrying or making a new request. Throttled requests count towards usage limits, so failure to honor Retry-After
might result in more throttling.
API rate limits
SharePoint Embedded provides various APIs. Different APIs have different costs depending on the functionality and complexity of the API. The cost of APIs is normalized and expressed by resource units. API rate limits are also defined using resource units.
Resource units per request | Operations |
---|---|
1 | Single item query, such as get item |
2 | Multi-item query, such as list children Create, update, delete, and upload |
5 | All permission resource operations, including $expand=permissions |
Note
We reserve the right to change the API resource unit cost.
The following table lists the API rate limits for applications and containers.
Resource | Limits |
---|---|
Requests per container | 3k resource units per min |
Requests per app per tenant | 12k resource units per min* |
Requests per user | 600 resource units per min |
Note
* Limit can be increased per request.
Application limits are defined in resource units, and the actual request rate, such as requests per minute, varies based on the chosen API and its corresponding resource unit cost. As a general rule, you can estimate the request rate by averaging about two resource units per request and dividing application resource unit limits by 2. Reducing the usage of permission operations can notably improve the call rate since these operations have the most significant impact on overall resource consumption.