specification: API Commons Rate Limits specificationVersion: '0.1' schema: https://raw.githubusercontent.com/api-evangelist/interface-research/main/schema/api-commons.yml#/$defs/RateLimits provider: Microsoft Excel providerId: microsoft-excel created: '2026-05-04' # Provenance stamped 2026-08-11: this artifact was written by the API Evangelist # bulk sweep dated 2026-05-04, not harvested from the provider. See roadmap#35. method: generated modified: '2026-05-05' reconciled: true tags: - Rate Limiting - Spreadsheets - Microsoft Graph - Microsoft description: The Microsoft Excel REST API is delivered through Microsoft Graph workbook endpoints and is throttled per (application, tenant) by the Excel service. Limits apply to all workbook requests regardless of the underlying Microsoft 365 plan. Returns 429 Too Many Requests with a Retry-After header. sources: - https://learn.microsoft.com/en-us/graph/throttling-limits#excel-service-limits - https://learn.microsoft.com/en-us/graph/workbook-best-practice headers: retryAfter: Retry-After requestId: request-id throttleScope: x-ms-throttle-scope throttleLimit: x-ms-throttle-limit-percentage responseCodes: throttled: 429 serviceUnavailable: 503 limits: - name: Excel — any request, per app per tenant scope: app/tenant metric: requests_per_10_seconds limit: 1500 timeFrame: second - name: Excel — any request, per app across all tenants scope: application metric: requests_per_10_seconds limit: 5000 timeFrame: second - name: Microsoft Graph global ceiling scope: application metric: requests_per_10_seconds limit: 130000 timeFrame: second notes: Hard global ceiling per app across all Microsoft Graph services policies: - name: Persist sessions description: Re-use the workbook-session-id header across calls; non-persisting sessions are limited to ~5 minutes and create unnecessary recompute. - name: Batch requests description: Use $batch on Microsoft Graph to combine up to 20 workbook calls per round-trip. Each batched call counts individually toward the limit but reduces network overhead. - name: Backoff Strategy description: Honour the Retry-After header on 429; exponential backoff with jitter otherwise. - name: Avoid recompute storms description: Set workbook calculation mode to manual for bulk writes, then trigger calculate at the end. maintainers: - FN: Kin Lane email: kin@apievangelist.com