No advertising use of Graph data
You may not use or transfer data from Microsoft APIs, including aggregated, anonymised or derived data, for advertising or marketing (targeting or serving ads). [7]
Guides · productivity · Verification-gated
Give an Entra app permission to call Microsoft Graph (Microsoft 365 mail, calendar, files, Teams, users and more). The gates are choosing least-privilege permissions, getting user or admin consent in every tenant that uses the app, and, for a few metered APIs, linking an Azure subscription.
Researched · not yet run liveLast researched 25 October 2026 · Microsoft · provider site
Graph access belongs to an Entra app registration in your tenant. Each customer tenant that uses the app gets its own service principal and its own consent record, granted by its own users or admins. Delegated permissions act as the signed-in user; application permissions act as the app across the whole tenant.
Personal Microsoft accounts can use only some delegated permissions, and apps that allow personal accounts can request at most 30 permissions.
Steps marked “human step” are ones only you can do: verapli never signs in, submits, pays or accepts terms for you.
Use delegated permissions when a user is signed in (the app can never exceed what that user can do). Use application permissions only for background services; they reach all matching data in the tenant. Pick the least-privileged permission listed on each API's reference page and avoid Directory.AccessAsUser.All, Directory.ReadWrite.All and similar broad permissions.
Where: https://learn.microsoft.com/en-us/graph/permissions-reference
In App registrations > your app > API permissions > Add a permission > Microsoft Graph, add the delegated and/or application permissions you chose.
Where: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade
Select Grant admin consent on the API permissions page. A Privileged Role Administrator can grant any permission; a Cloud Application, Application or AI Administrator can grant everything except Graph application permissions. Granting tenant-wide consent can revoke earlier tenant-wide grants.
Where: https://entra.microsoft.com/#view/Microsoft_AAD_RegisteredApps/ApplicationsListBlade
Customers' users consent at first sign-in where their tenant policy allows. For application permissions, send the customer's admin to https://login.microsoftonline.com/{tenant}/adminconsent?client_id={client-id}. Unverified multitenant apps may be blocked by risk-based step-up consent.
AADSTS90094): The customer's admin must grant consent through the admin consent URL or Enterprise apps. [5]AADSTS65001): Trigger an interactive sign-in so the user can consent, or ask the admin to grant tenant-wide consent. [5]AADSTS65004): Ask the user to retry and accept, and explain why each permission is needed. [5]AADSTS650052): The customer tenant lacks the Microsoft 365 service behind that permission; their admin must enable or license it. [5]Only needed for metered APIs, currently SharePoint/OneDrive assignSensitivityLabel. Teams APIs stopped being metered on 25 August 2025 and need no billing setup. Some metered APIs are protected and need a request to Microsoft before use.
Where: https://learn.microsoft.com/en-us/graph/metered-api-setup
Try your calls in Graph Explorer, then in code. When throttled, Graph returns 429 with a Retry-After header; wait that long before retrying. Use delta queries and change notifications instead of polling, and Microsoft Graph Data Connect for bulk extraction.
429): Wait for the Retry-After seconds (or back off exponentially if absent), then retry; retry failed requests from JSON batches yourself. [3]Where: https://developer.microsoft.com/graph/graph-explorer
Plain-English summary, not legal advice. Each card links its source.
You may not use or transfer data from Microsoft APIs, including aggregated, anonymised or derived data, for advertising or marketing (targeting or serving ads). [7]
You may not scrape or build databases of API data beyond your app's intended scenario, request more than the minimum data or permissions, circumvent Microsoft's limits, or resell or sublicense API data. Violations can lead to suspension or termination. [7]
Unless customers expressly grant more, Outlook/Exchange mail APIs (including Graph mail) may only be used to sync or back up mail, calendar and contacts. [7]
Get consent before processing, keep stored data current, delete all data when a user leaves or uninstalls your app, and publish a privacy statement at least as protective as Microsoft's. [7]
Report vulnerabilities and data breaches involving the APIs to secure@microsoft.com, make no public statement without Microsoft's permission, and give Microsoft audit access (up to two full-featured instances) on request or risk losing access. [7]
An app with an application permission such as Files.Read.All can read every matching item in the organisation; admins will scrutinise these requests. [1]
Older guides send you to a Teams "protected API" request form. People report Microsoft retired that form and manual approval on 18 May 2023 [to verify for any API you plan to use]. [9]
Source [4]
The same entry as JSON: /api/v1/entries/microsoft/graph-api · requirements /api/v1/requirements/microsoft/graph-api · terms /api/v1/terms/microsoft/graph-api.
claude mcp add --transport http verapli https://verapli.com/mcp
> "What do I need for Microsoft Graph API access, and how long will it take?"
→ tools/call requirements { "provider_id": "microsoft/graph-api" }Provider rules change. This page is generated from verapli registry version 2026.1025.316; spotted something out of date? Tell us. Microsoft is not affiliated with verapli.