One of the conversations I often get involved in with enterprises is cloud services, risk, uptime and service level agreements.
Microsoft Teams Service Level Agreement (SLA)
A service-level agreement (SLA) is a commitment between a provider and customer to provide a documented level of service and uptime. For Microsoft Teams, the SLA is 99.9%. The Service level agreement offers service credits if Microsoft falls below its SLA. Microsoft Teams SLA is documented in the Microsoft Online Services Level Agreement.
That’s the SLA for the Microsoft Teams service (and the typical SLA for other Office 365 services), but what about the Microsoft Teams API’s? It would be the same right? Actually No.
About Microsoft Graph
Microsoft Graph offers API access across many different Microsoft services exposed on a single Microsoft Graph REST endpoint. This includes Microsoft Teams.
There are currently 2 versions of Microsoft Graph REST APIs – v1.0 and beta. Often called “endpoints”.
- v1.0 endpoint (https://graph.microsoft.com/v1.0) are in general availability (GA) status and are at a level where Microsoft is happy for them to be used in production applications. Updates to APIs on this endpoint are additive in nature and do not break existing app scenarios.
- There is also the beta endpoint (https://graph.microsoft.com/beta). Be aware that APIs in preview status are subject to change, and may break existing scenarios without notice. Microsoft advise against taking a production dependency on APIs in the beta endpoint.
Microsoft makes no guarantees that a beta feature will be promoted to the current version.
Microsoft says “When we increment the major version of the API (for example, from v1.0 to v2.0), we are announcing that the current version (in this example, v1.0) is immediately deprecated and we will no longer support it 24 months after the announcement. We might make exceptions to this policy for service security or health reliability issues.” from https://docs.microsoft.com/en-us/graph/versioning-and-support
Microsoft Graph Service Level Agreement
The API’s terms of service cover API’s for:
- Microsoft Graph API (documented, for example, at https://docs.microsoft.com/graph);
- Azure Active Directory;
- Office 365 (including, but not limited to, Office 365 Services, Office 365 Business, Office 365 Business Premium, Office 365 Business Essentials, Office 365 Home, and Office 365 Personal), including, for example, all APIs in the following services:
- Office 365: Outlook/Exchange, SharePoint, OneDrive, Microsoft Teams, Excel, OneNote, Project Online, Microsoft Planner, Microsoft Kaizala Pro, and Yammer; and
- Office 365 for Education
- Outlook.com, OneDrive.com, and Yammer
- Microsoft email protocols and APIs;
- Microsoft Intune
- Project Rome
There are lots of terms about how customers should and shouldn’t use the API’s, as you might expect. Some highlights of Microsoft’s terms:
- WE MAY CHANGE OR DISCONTINUE THE AVAILABILITY OF SOME OR ALL OF THE MICROSOFT APIs AT ANY TIME FOR ANY REASON WITH OR WITHOUT NOTICE
- WE MAY MODIFY THESE API TERMS AT ANY TIME, WITH OR WITHOUT PRIOR NOTICE TO YOU. YOUR CONTINUED USE OF THE MICROSOFT APIs FOLLOWING THE RELEASE OF A SUBSEQUENT VERSION OF THESE API TERMS WILL BE DEEMED YOUR ACCEPTANCE OF ANY MODIFICATIONS TO THESE API TERMS.
- WE MAKE NO WARRANTIES, EXPRESS OR IMPLIED, GUARANTEES OR CONDITIONS WITH RESPECT TO YOUR USE OF THE MICROSOFT APIs
- YOU UNDERSTAND THAT USE OF THE MICROSOFT APIs IS AT YOUR OWN RISK AND THAT WE PROVIDE THE MICROSOFT APIs ON AN “AS IS” BASIS “WITH ALL FAULTS” AND “AS AVAILABLE” TO THE EXTENT PERMITTED UNDER YOUR LOCAL LAW, WE EXCLUDE ANY IMPLIED WARRANTIES, INCLUDING FOR MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE, WORKMANLIKE EFFORT, AND NON-INFRINGEMENT.
So, as far as I can see, there is no SLA for Microsoft Graph API’s in terms of performance or uptime.
Some other Microsoft API’s do have SLA’s
Interestingly some other Microsoft API’s do have SLA’s. For example many Azure services:
- “API Management Service instances running in the Standard tier will respond to requests to perform operations at least 99.9% of the time.”
- Machine Learning Studio “For the Batch Execution Service (BES) and management APIs, we guarantee 99.9% availability of API transactions.”
Microsoft Translator API does appear in the Service Level Agreement for Microsoft Online Services