Microsoft Office 365 · Rate Limits

Microsoft Office 365 Rate Limits

Microsoft Office 365 / Microsoft 365 programmatic access is provided through Microsoft Graph, Exchange Web Services, and the legacy Outlook REST API. The dominant throttling regime is the Microsoft Graph per-app-per-tenant and per-app-across-all-tenants quotas, with a global ceiling of 130,000 requests per 10 seconds per app. Each Office 365 service (Exchange, SharePoint / OneDrive, Teams, Excel) has its own service-specific quota.

8 Limits Throttle: 429
Rate LimitingMicrosoft 365Microsoft GraphMicrosoft

Limits

Microsoft Graph global ceiling application
requests_per_10_seconds · second
130000
Excel — per app/tenant app/tenant
requests_per_10_seconds · second
1500
Excel — per app across tenants application
requests_per_10_seconds · second
5000
Teams Calls per app/tenant app/tenant
requests_per_15_seconds · second
50000
Teams Presence per app/tenant app/tenant
requests_per_30_seconds · second
10000
Exchange Message Trace tenant
requests_per_5_minutes · minute
100
SharePoint / OneDrive app/tenant
varies
see SharePoint Online throttling guidance — no fixed numeric per-app per-second quota published
Identity & Access (read) per app/tenant app/tenant
resource_units_per_10_seconds · second
3500–8000 RU per 10s based on tenant size

Policies

Backoff Strategy
Honour Retry-After on 429 / 503; the Microsoft Graph SDK handlers do this by default.
Use change notifications
Subscribe to change notifications instead of polling.
Use $batch
Combine up to 20 requests in a single $batch envelope.
Service-specific guidance
SharePoint / OneDrive throttling is handled separately by the SharePoint Online service; always implement client-side backoff and avoid generic User-Agent strings.
Microsoft Graph Data Connect for bulk
For tenant-scale exports, use Data Connect to bypass REST throttling.

Sources