How to Fix SharePoint Online REST API 429 Throttling Errors
Question details
The user needs to handle and prevent "429 Too Many Requests" throttling errors when executing REST API calls against SharePoint Online.

- Product
- SharePoint Online
- Device & OS
- not provided
- Scenario
- Executing REST API scripts or running long-running jobs that involve sustained traffic or resource-intensive list operations.
- Observed behavior
- SharePoint Online returns a 429 Too Many Requests error, interrupting scripts and jobs even if the REST API calls are executed sequentially.
Before modifying your application code, verify your current request volume and check if you can temporarily pause non-essential background scripts to alleviate immediate server load on your SharePoint tenant.
Implement Exponential Backoff and Honor the Retry-After Header
The most reliable way to handle throttling is to dynamically pause requests based on the server's instructions rather than using a fixed delay.
SharePoint Online uses the Retry-After header to tell your application exactly how long to wait before sending the next request. Ignoring this header can result in longer throttling periods or blocked requests.
Inspect the HTTP response headers when a 429 error occurs. Extract the integer value from the 'Retry-After' header, which represents the wait time in seconds.
Use a delay function (such as Thread.Sleep or Task.Delay in C#, or Start-Sleep in PowerShell) to pause your script for the exact duration specified by the Retry-After header.
If the Retry-After header is missing, implement a fallback exponential backoff loop. Start with a brief delay (e.g., 2 seconds) and double the wait time after each consecutive 429 error until the request succeeds.
Keep an eye on 'RateLimit' response headers in successful calls. These headers indicate your remaining API capacity, allowing you to proactively slow down requests before a 429 error is triggered.

Optimize API Requests via Batching and Pagination
Reducing the total number of round trips to the server helps prevent your application from exceeding SharePoint's service limits.
Reduce Unnecessary Data Retrieval
Modifying your queries to only fetch essential data lowers the processing cost on the server.
Boost Your Daily Productivity with WPS Office
While you optimize your SharePoint integrations and API calls, consider upgrading your local document workflow with WPS Office. It provides a lightweight, highly compatible alternative to Microsoft Office, allowing you to manage spreadsheets, documents, and presentations efficiently and for free.
- 1. Download the Installer: Visit the official WPS Office website and download the free installation package for your operating system.
- 2. Install WPS Office: Run the downloaded installer and follow the quick on-screen instructions to set up the software.
- 3. Open Your Documents: Launch WPS Office and instantly open your existing Microsoft Office files without losing any formatting.

Frequently Asked Questions
What does a 429 error mean in SharePoint Online?
A 429 error indicates "Too Many Requests." SharePoint Online throttles your tenant to ensure service stability when it detects sustained traffic, peak usage, or overly complex operations originating from your application or account.
How long should I wait before retrying a throttled request?
You should wait the exact number of seconds specified in the 'Retry-After' HTTP response header. If this header is missing, use an exponential backoff strategy, starting with a brief pause and doubling the wait time after each failure.
Can sequential REST API calls still trigger 429 throttling?
Yes. Even if calls are made one after another without concurrent processing, sustained traffic over a long duration or heavily resource-intensive list operations can still exceed SharePoint's service limits.
Will upgrading my Microsoft 365 license prevent 429 REST API errors?
No, throttling limits are enforced at the tenant level to protect Microsoft's cloud infrastructure. Upgrading licenses does not bypass these rate limits; you must optimize your application code to handle throttling gracefully.




