OData Service for namespace microsoft.graph logo

OData Service for namespace microsoft.graph

OData Service for namespace microsoft.graph

Microsoft Graph is a unified API into Microsoft 365 data — mail, calendar, Teams, OneDrive, directory — the entry point for enterprise Microsoft integrations.

Visit site ↗Health checked 9h ago
Use it when

One endpoint covers the entire M365 surface

Watch for

Some permissions require tenant admin consent

First check

Register an Azure AD app at portal.azure.com, set permissions (delegated or application). Run OAuth to get an access_token, then call https://graph.microsoft.com/v1.0/... Common SDKs: @microsoft/microsoft-graph-client (JS), Microsoft.Graph (C#), msgraph-sdk (Python).

Auth
oauth
CORS
No
HTTPS
Yes
Signup
Required
Latency
109 ms
Protocol
REST
Pricing
free

Uptime · 30-day window

Probes: 1Uptime: 100%Avg latency: 109ms
01

About this API

Microsoft Graph unifies APIs spread across Outlook, Teams, SharePoint, OneDrive, Azure AD, Excel Online, and To Do into one REST endpoint. For enterprise developers that means no more writing one integration per M365 product — a single OAuth setup and one SDK can coordinate across them.

The permission model has two flavors. Delegated permissions act on behalf of a signed-in user — scopes are bounded by what the user themselves can do (e.g. read their own mail). Application permissions act as the app itself, require tenant admin consent, and can act across users (good for background jobs). Both use OAuth 2.0, but consent flows and token semantics differ. Pick the right one up front — switching later is painful.

Rate limiting is distributed: every service (Outlook, Teams, SharePoint, etc.) meters independently — there is no single global quota. Throttling returns 429 with a Retry-After header; clients must back off exponentially. Change Notifications (webhooks) let you avoid polling, but require a publicly accessible HTTPS endpoint.

02

What you can build

  • 1Build mail / calendar / task integrations for M365 users
  • 2Push external system updates into Teams channels
  • 3Read OneDrive / SharePoint files for processing
  • 4Sync users from Azure AD for SSO
  • 5Read and write Excel Online from internal tools
03

Strengths & limitations

Strengths

  • One endpoint covers the entire M365 surface
  • Fine-grained application + delegated permission model
  • Webhooks and Change Notifications push updates
  • Official SDKs maintained in JS/C#/Python and more

Limitations

  • Some permissions require tenant admin consent
  • Rate limits are per-resource and hard to predict in advance
  • Beta endpoints come with no SLA or backwards-compatibility promise
04

Example request

Generic template — replace <endpoint> with the real path from the docs.
curl https://microsoft.com/<endpoint> \
  -H "Authorization: Bearer $ACCESS_TOKEN"
05

Getting started

Register an Azure AD app at portal.azure.com, set permissions (delegated or application). Run OAuth to get an access_token, then call https://graph.microsoft.com/v1.0/... Common SDKs: @microsoft/microsoft-graph-client (JS), Microsoft.Graph (C#), msgraph-sdk (Python).

06

FAQ

Is the Graph API free?+

Yes, but you need a valid Microsoft 365 / Azure AD tenant. Some features (certain Teams workflows) require paid plans.

Delegated or application permissions?+

Delegated for actions in the context of a signed-in user (read their own mail). Application for background or cross-user jobs.

What is admin consent?+

Some scopes affect more than the signed-in user (e.g. read all tenant users). A tenant admin must explicitly grant them.

v1.0 vs beta endpoints?+

v1.0 is GA with SLA and compatibility guarantees. Beta exposes earlier capabilities without stability promises — avoid in production.

07

Technical details

CORS: NoHTTPS: YesSignup: YesOpen source: No
Auth type
oauth
Pricing
free
Protocols
REST
SDKs
javascript, typescript, python, csharp, java, go
Response time
109 ms
Last health check
5/12/2026, 7:37:52 AM
08

Endpoints

Parsed from the OpenAPI spec. Showing 12 of 11412 non-deprecated endpoints.

GET
/adminadmin.admin

Get admin

$select:query$expand:query
PATCH
/adminadmin.admin

Update admin

DELETE
/admin/serviceAnnouncementadmin.serviceAnnouncement

Delete navigation property serviceAnnouncement for admin

If-Match:header
GET
/admin/serviceAnnouncementadmin.serviceAnnouncement

Get serviceAnnouncement from admin

$select:query$expand:query
PATCH
/admin/serviceAnnouncementadmin.serviceAnnouncement

Update the navigation property serviceAnnouncement in admin

GET
/admin/serviceAnnouncement/healthOverviewsadmin.serviceAnnouncement

List healthOverviews

$orderby:query$select:query$expand:query
POST
/admin/serviceAnnouncement/healthOverviewsadmin.serviceAnnouncement

Create new navigation property to healthOverviews for admin

DELETE
/admin/serviceAnnouncement/healthOverviews/{serviceHealth-id}admin.serviceAnnouncement

Delete navigation property healthOverviews for admin

serviceHealth-id:path*If-Match:header
GET
/admin/serviceAnnouncement/healthOverviews/{serviceHealth-id}admin.serviceAnnouncement

Get healthOverviews from admin

serviceHealth-id:path*$select:query$expand:query
PATCH
/admin/serviceAnnouncement/healthOverviews/{serviceHealth-id}admin.serviceAnnouncement

Update the navigation property healthOverviews in admin

serviceHealth-id:path*
GET
/admin/serviceAnnouncement/healthOverviews/{serviceHealth-id}/issuesadmin.serviceAnnouncement

Get issues from admin

serviceHealth-id:path*$orderby:query$select:query$expand:query
POST
/admin/serviceAnnouncement/healthOverviews/{serviceHealth-id}/issuesadmin.serviceAnnouncement

Create new navigation property to issues for admin

serviceHealth-id:path*

11400 more endpoints not shown. See the OpenAPI spec for the full list.

09

Tags

10

More from Microsoft

11

Alternatives to consider

Different providers solving similar problems. Picked by category, auth, pricing, and tag overlap.