Pick the portal family first
Each spec maps to a different portal surface, auth model, and backend. Start with the API page that matches the portal you already use.
Getting Started
nodoc documents internal Microsoft portal APIs. The fastest way to get value is to match the right portal family, auth model, and required headers before you try to automate anything.
These four steps are the safest way to move from portal browsing to reliable API usage.
Each spec maps to a different portal surface, auth model, and backend. Start with the API page that matches the portal you already use.
Validate cookies, tokens, tenant context, and required headers with read-only endpoints before attempting any state-changing operations.
The site ships both OpenAPI specs and checked-in Postman collections so you can inspect requests before building any automation.
Assume POST, PATCH, PUT, and DELETE will change tenant state unless an endpoint is explicitly documented as safe. Use a non-production tenant whenever possible.
The repo currently spans 12 distinct ways of authenticating to portal-backed APIs.
Defender and Purview rely on the portal's sccauth cookie and an authenticated browser session.
Portals: Defender, Purview
Exchange uses the authenticated Exchange admin center browser session with .AspNetCore.Cookies and same-origin x-requested-with: XMLHttpRequest requests.
Portals: Exchange
Purview Portal uses the same sccauth browser session, but its same-origin /api/ calls also depend on portal bootstrap state and are where Purview mints downstream bearer tokens.
Portals: Purview Portal
M365 Admin requires AjaxSessionKey plus portal routing and hosting headers extracted from the admin shell.
Portals: M365 Admin
SharePoint uses the tenant's -admin.sharepoint.com browser session together with same-origin SharePoint headers such as x-requestdigest, SdkVersion, and odata-version on POST requests.
Portals: SharePoint
Teams admin center uses browser-acquired bearer tokens across multiple Teams and Office service hosts, plus same-origin portal context for /api/log and resolver calls that map the tenant to regional backends.
Portals: Teams
Viva Engage admin uses a browser-acquired bearer token from the Engage MSAL PKCE flow with the Yammer user_impersonation scope, then calls same-origin persisted GraphQL on engage.cloud.microsoft, a bearer-backed token helper on api.engage.cloud.microsoft, and a transient *.rt.yammer.com Bayeux relay chain whose auth material is carried in the handshake body rather than in Authorization or cookie headers. No cookie header was observed on the authenticated admin API requests captured for this pass.
Portals: Viva Engage
M365 Apps uses browser-obtained bearer tokens together with diagnostic headers such as x-api-name, x-correlationid, x-manageoffice-client-sid, and x-requested-with.
Portals: M365 Apps Config, M365 Apps Services, M365 Apps Inventory
Power Platform reuses browser-obtained bearer tokens from the admin center, but different backends expect different audiences plus portal context headers such as correlation IDs, session IDs, tenant IDs, and app identifiers.
Portals: Power Platform
Intune Portal and Intune Autopatch use browser-obtained bearer tokens plus same-origin cookies or portal headers from the authenticated Intune session.
Portals: Intune Portal, Intune Autopatch
Entra IAM uses the ADIbizaUX resource with delegated user auth only and typically needs X-Ms-Client-Request-Id.
Portals: Entra IAM
Entra PIM, IGA, IDGov, and B2C use Azure AD bearer tokens, with tenant- or feature-specific constraints on top.
Portals: Entra PIM, Entra IGA, Entra IDGov, Entra B2C
The notes below separate spec-confirmed details from practical operating guidance for each family.
Portals: Defender, Purview
sccauth)https://security.microsoft.com/apiproxyhttps://purview.microsoft.com/apiproxyPortalSession as an API key in the sccauth cookie./apiproxy and call out shared backend prefixes such as /di/, /gws/, /medeina/, /msgraph/, and /shell/.GET /mtoapi/tenants/TenantPicker, which reflects the operator's current multi-tenant scope.XSRF-TOKEN/X-XSRF-TOKEN context and mtoproxyurl=MTO routing hint in addition to the sccauth session.Portals: Purview Portal
sccauth) + same-origin portal contexthttps://purview.microsoft.com/api//api/ calls rather than /apiproxy backend routes.GET /api/Auth/getToken mints short-lived downstream tokens for Purview services, Microsoft Graph, and Azure Resource Manager resources.GET /api/v2/auth/GetCachedRoles and POST /api/auth/IsInRoles before many blades fully light up./api/ calls to be bootstrap or lookup helpers that front other services rather than the final workload APIs themselves./api/ as a live write until you have mapped its side effects./api/Auth/getToken to mint a downstream bearer token, validate the target resource with harmless GETs before invoking its write APIs directly./api/ and /apiproxy/ are distinct surfaces with different responsibilities, so don't assume routing or auth behavior from one applies cleanly to the other.Portals: Security Copilot
https://api.securitycopilot.microsoft.comhttps://api.securityplatform.microsoft.comhttps://us.api.securityplatform.microsoft.comhttps://prod.cds.securitycopilot.microsoft.comhttps://securitymarketplaceapi-prod.microsoft.comapi.securitycopilot.microsoft.com, api.securityplatform.microsoft.com, and the regional us.api.securityplatform.microsoft.com content plane.GET /userPreferences/currentWorkspace, then loaded workspace content from regional /pods/{podId}/workspaces/{workspaceName}/securitycopilot/* routes.POST /provisioning/create and returned OperationWhatIfSuccess before any real submission, which makes it a useful safe write-shape capture point.api.securitycopilot.microsoft.com bootstrap host and the Security Platform content hosts as one portal family; you need both to understand startup and page-specific reads.POST /provisioning/create call appears to be a safe preflight when the dialog is opened and then canceled, but real provisioning and builder save flows still need separate intercepted capture before publication.skillsets//authSettings and sessions//prompts/; those are useful artifact clues but not strong enough for direct publication as stable paths.400 or 404 responses in the current workspace, which still confirms the route family but means tenant state matters heavily.Portals: M365 Admin
https://admin.cloud.microsoftAjaxSessionKey as the session cookie and documents x-portal-routekey, x-adminapp-request, x-ms-mac-appid, and x-ms-mac-hostingapp as required headers for most requests.x-ms-mac-appid is blade-specific rather than globally stable: /homepage, /MicrosoftSearch, /brandcenter, /Settings/enhancedRestore, and /Settings/Services/:/Settings/L1/OfficeOnline all emitted different GUIDs while reusing M365AdminPortal./admin/api/ and a separate /fd/msgraph/ proxy instead of the shared Defender/Purview /apiproxy layout.x-ms-mac-appid for the whole portal.Portals: Exchange
x-requested-withhttps://admin.exchange.microsoft.com/beta/beta/ routes on admin.exchange.microsoft.com, not Microsoft Graph..AspNetCore.Cookies plus companion chunk cookies and same-origin x-requested-with: XMLHttpRequest requests.admin.microsoft.com support, SharePoint, and feedback traffic appeared in the same browsing session but was excluded from Exchange coverage because it was generic shell traffic or already documented elsewhere.ExchangeAdminCenter.* routes as parameterized functions, not as fixed timestamped paths copied straight out of one capture.GET /beta/Shell, GET /beta/UserProfile, GET /beta/AcceptedDomainFullListIC, and GET /beta/MigrationBatch before mapping writes.POST /beta/UserPreference; treat additional POST, PUT, PATCH, or DELETE flows as live writes until you have captured and reviewed them carefully.admin.microsoft.com and portal.office.com; do not confuse those hosts with the Exchange beta surface./api/instrument/logclient returned 404 during live capture and was intentionally left out of published coverage.Portals: SharePoint
FedAuth) + same-origin SharePoint headershttps://{tenant}-admin.sharepoint.com/_api/_api/* traffic on the tenant's -admin.sharepoint.com host rather than graph.microsoft.com or the generic Microsoft 365 shell.x-requestdigest, SdkVersion, odata-version, and a SharePoint admin Referer alongside the authenticated browser cookies./_api.-admin.sharepoint.com host intact when replaying requests./_api/TenantAdminEndpoints, /_api/TenantInformationCollection, /_api/SPO.Tenant/sites('{siteId}'), or /_api/StorageQuotas() before attempting POST requests.RenderAdminListData, ExportToCSV, GetSitesByState, GetSiteAdministrators, and UpdateJobsWorkItems as live portal operations even when they look report-like or read-heavy./_api traffic with generic shell calls to admin.microsoft.com, portal.office.com, and telemetry endpoints; only the same-origin SharePoint host belongs in this family.Portals: Teams
https://admin.teams.microsoft.comhttps://teams.microsoft.com/apihttps://api.interfaces.records.teams.microsoft.comhttps://monitoringplatform.teams.microsoft.com/apiPOST /api/log depended on the active portal context.teams.microsoft.com/api, api.interfaces.records.teams.microsoft.com, monitoring, config, virtual visits, monetization, reports, CQD bootstrap, tags, and app catalog services.POST /api/authsvc/v1.0/users/region, GET /api/v1/regionalDomainNameForTenant, and GET /api/v1/mta/TenantclusterLookup.admin.teams.microsoft.com browser tab and validate access with resolver or lookup endpoints before replaying partitioned or regional service calls.PUT /api/v1/userpreference and any future Teams POST or PUT outside the confirmed read-like bootstrap calls as live writes with tenant impact.POST /api/authsvc/v1.0/users/region or POST /hasActiveCapabilities should be captured from the portal first so you preserve the exact auth and request shape.422 responses when replayed without the right state.teams.microsoft.com hostname.Portals: Viva Engage
https://engage.cloud.microsoft/graphqlhttps://api.engage.cloud.microsoft/api/v1/oauth2/aad_access_tokenhttps://www.yammer.com/user_impersonation openid profile offline_access scope.RealtimeConnectionSettingsClients, the cross-host https://api.engage.cloud.microsoft/api/v1/oauth2/aad_access_token helper, and the transient *.rt.yammer.com/cometd/ relay chain that the GraphQL response bootstraps./api/v1/yamalytics/webui, /api/v2/events, and /api/v3/events were observed in bundles and are intentionally excluded from the published spec.https://engage.cloud.microsoft/main/admin tab and capture the first hydrated GraphQL requests, especially RealtimeConnectionSettingsClients, before chasing bundle-only route hints.Authorization or X-Request-Id headers, and the redacted Bayeux handshake shape, but never store raw token or cookie values in committed artifacts.Generate code and Redeem code as one-time access-code actions used to link an external network, not as a visible billing or purchase flow, but they should still be treated as live writes until the underlying mutation is captured./graphql or api.engage.cloud.microsoft as live writes until the browser flow proves they are read-only.msgraph.yammer.com, broadcast.yammer.com, and transient *.rt.yammer.com; only the realtime relay family has direct live-confirmed admin traffic so far.X-Yam-* headers appear to depend on request scope and may not be present on every admin request.Portals: M365 Apps Config, M365 Apps Services, M365 Apps Inventory
https://config.office.comhttps://clients.config.office.nethttps://query.inventory.insights.office.netx-api-name, x-correlationid, x-manageoffice-client-sid, and x-requested-with.config.office.com session and validate access with read-only calls on the same host family you intend to automate.config.office.com, clients.config.office.net, and query.inventory.insights.office.net serve different parts of the M365 Apps experience.Portals: Intune Portal, Intune Autopatch
https://intune.microsoft.com/apihttps://services.autopatch.microsoft.comx-ms-client-request-id, x-ms-client-session-id, x-ms-extension-flags, and x-requested-with.services.autopatch.microsoft.com, with additional support detail and mutation shapes recovered from the Support requests bundle.GET /api/Flighting, GET /api/v1.0/tenant/resolve, or POST /api/Settings/Select.POST /api/Settings/Update and any undocumented Autopatch onboarding/support mutations as live writes with tenant impact.PreOnboardTenant returned 405 Method Not Allowed when probed as a GET and should be treated as a likely write-oriented flow.Portals: Power Platform
https://api.bap.microsoft.comhttps://api.admin.powerplatform.microsoft.comhttps://{region}.adminanalytics.powerplatform.microsoft.comhttps://{region}.csanalytics.powerplatform.microsoft.comhttps://licensing.powerplatform.microsoft.comhttps://{tenantHost}.tenant.api.powerplatform.comhttps://{organizationHost}.crm.dynamics.comhttps://{portalInfraHost}.portal-infra.dynamics.comadmin.powerplatform.microsoft.com, including new *.crm.dynamics.com and *.portal-infra.dynamics.com sections recovered from environment, deployment, security, and Power Pages detail surfaces.Portals: Entra IAM
X-Ms-Client-Request-Idhttps://main.iam.ad.ext.azure.com/api74658136-14ec-4630-ad9b-26e160ff0fc6.X-Ms-Client-Request-Id to be set to a GUID.X-Ms-Client-Request-Id can break otherwise valid requests.Portals: Entra PIM, Entra IGA, Entra IDGov, Entra B2C
https://api.azrbac.mspim.azure.comhttps://elm.iga.azure.comhttps://api.accessreviews.identitygovernance.azure.comhttps://main.b2cadmin.ext.azure.comtenantId query context as required on most endpoints and allows either a GUID or tenant domain.These principles apply across every portal surface in the site.
Every published spec page in the site has a matching checked-in Postman collection in the repository.
594 modeled operations · Portal session cookie (sccauth)
Security operations coverage across alerts, incidents, case management, hunting, multi-tenant management, cloud apps, investigation pivots, endpoint, identity, vulnerability, configuration, and exposure workflows.
standardized nav · complete metadata · 457 placeholders · 8 response examples
280 modeled operations · Portal session cookie + custom admin headers
Tenant settings, Copilot controls, reports, user and group management, app settings, and admin shell surfaces.
standardized nav · complete metadata · 204 placeholders · 9 response examples
61 modeled operations · Portal session cookie + same-origin x-requested-with
Same-origin Exchange admin center beta coverage for shell bootstrap, preferences, mail flow, recipients, migration, public folders, and report widgets.
standardized nav · complete metadata · no placeholders · 2 response examples
41 modeled operations · Portal session cookie (FedAuth) + SharePoint form digest
Tenant bootstrap, site inventory, site-detail blades, storage quota, migration helpers, and settings workflows from the SharePoint admin center same-origin /_api surface.
standardized nav · complete metadata · 1 placeholders · 1 response examples
99 modeled operations · Portal bearer token + same-origin portal context
Exhaustive Teams admin center coverage spanning left-nav routes, list/detail drill-ins, report interactions, records-backed policy and telephony surfaces, Frontline orchestration, devices, CQD data, app catalog detail pages, monetization, and planning helpers.
standardized nav · complete metadata · 4 placeholders · 4 response examples
5 modeled operations · MSAL PKCE bearer token + same-origin GraphQL
Authenticated Viva Engage admin coverage now documents the same-origin persisted GraphQL contract, the bearer-backed token helper observed behind engage.cloud.microsoft/main/admin, and the transient Yammer-era realtime relay chain bootstrapped from RealtimeConnectionSettingsClients, together with direct-route captures for segmentation and external-network admin pages.
standardized nav · complete metadata · no placeholders · 4 response examples
23 modeled operations · Portal bearer token + diagnostic headers
Cloud Update, servicing profiles, policy management, device configuration, rollout metadata, and portal bootstrap state from the M365 Apps admin center.
standardized nav · complete metadata · no placeholders · 5 response examples
9 modeled operations · Portal bearer token + diagnostic headers
Shared M365 Apps service coverage for onboarding state, feature availability, release catalogs, component sharding, and OneDrive Sync health.
standardized nav · complete metadata · no placeholders · 1 response examples
27 modeled operations · Portal bearer token + diagnostic headers
Device inventory, build currency, add-ins, setup state, and security update status from the M365 Apps admin center inventory surface.
standardized nav · complete metadata · no placeholders · 1 response examples
53 modeled operations · Portal bearer token + x-ms portal headers
Windows Autopatch tenant state, roles, groups, messages, support, and reporting surfaces from the Intune admin center.
standardized nav · complete metadata · 2 placeholders · 4 response examples
5 modeled operations · Portal bearer token + same-origin portal context
Same-origin Intune admin center experimentation and persistent portal settings storage used across tenant administration blades.
standardized nav · complete metadata · 1 placeholders · 3 response examples
244 modeled operations · Portal bearer tokens + service-specific audiences
Exhaustive admin-center coverage across Business App Platform, analytics, licensing, Dataverse CRM, Power Pages portal infrastructure, tenant governance, notifications, and internal portal helpers used by the Power Platform admin center.
standardized nav · complete metadata · 1 placeholders · 1 response examples
124 modeled operations · Portal session cookie (sccauth)
Compliance, governance, DLP, insider risk, information protection, and Purview for AI coverage from the Purview portal proxy surface.
standardized nav · complete metadata · 109 placeholders · 4 response examples
8 modeled operations · Portal session cookie (sccauth) + same-origin portal context
Same-origin Purview bootstrap, token minting, role evaluation, audit settings, and label-activity analytics used directly by the portal UX.
standardized nav · complete metadata · no placeholders · 2 response examples
32 modeled operations · Portal bearer tokens + workspace context
Security Copilot portal coverage for bootstrap and preference reads, workspace provisioning and policy resolution, session and promptbook inventory, agent and builder discovery, and Security Store catalog flows.
standardized nav · complete metadata · no placeholders · 1 response examples
286 modeled operations · Delegated OAuth2 + X-Ms-Client-Request-Id
Deep IAM coverage spanning users, groups, applications, policies, directories, MFA, and related admin workflows.
standardized nav · complete metadata · 73 placeholders · 14 response examples
16 modeled operations · Azure AD bearer token
Privileged Identity Management role assignments, requests, permissions, and role-setting workflows.
standardized nav · complete metadata · no placeholders · 3 response examples
11 modeled operations · Azure AD bearer token
Legacy Identity Governance administration coverage for entitlement management, guest billing, connected organizations, and governance settings.
standardized nav · complete metadata · no placeholders · 3 response examples
17 modeled operations · Azure AD bearer token
Access Reviews and approval workflow coverage including providers, requests, decisions, and feature flags.
standardized nav · complete metadata · no placeholders · 4 response examples
6 modeled operations · Azure AD bearer token + tenantId query context
External ID / B2C admin flows, user journeys, tenant information, and initialization-related endpoints.
standardized nav · complete metadata · no placeholders · 3 response examples