{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-14",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "tool": {
    "slug": "microsoft-graph-people",
    "name": "Microsoft Graph People and Contacts API",
    "vendor": "Microsoft",
    "vendorUrl": "https://learn.microsoft.com/en-us/graph/outlook-contacts-concept-overview",
    "kind": "http-api",
    "category": "contacts",
    "summary": "Microsoft Graph endpoints for a user's Outlook personal contacts and contact folders, with delta sync, and the people API, which ranks the people most relevant to a user and supports fuzzy search.",
    "url": "https://www.anchorterminal.com/tools/microsoft-graph-people",
    "markdownUrl": "https://www.anchorterminal.com/tools/microsoft-graph-people.md",
    "slimMarkdownUrl": "https://www.anchorterminal.com/tools/microsoft-graph-people.min.md",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/microsoft-graph-people.json",
    "repo": "https://github.com/microsoftgraph/msgraph-sdk-javascript",
    "license": "MIT (SDKs)",
    "transports": [
      "http"
    ],
    "remoteUrl": "https://graph.microsoft.com/v1.0",
    "packages": [
      {
        "registry": "npm",
        "name": "@microsoft/microsoft-graph-client"
      },
      {
        "registry": "pypi",
        "name": "msgraph-sdk"
      }
    ],
    "auth": "oauth",
    "authNotes": "OAuth 2.0 tokens from Microsoft Entra ID. Contacts use Contacts.Read or Contacts.ReadWrite, delegated (work, school or personal Microsoft account) or application. The people API uses People.Read with user consent, or People.Read.All, which needs admin consent, to read people relevant to another user. Application permissions reach every mailbox in a tenant unless RBAC for Applications limits them.",
    "pricing": "byo-plan",
    "pricingNotes": "Contacts and people endpoints aren't metered. Work accounts need an Exchange Online mailbox through a Microsoft 365 or Exchange licence. Personal Outlook.com accounts work with delegated permissions at no cost (checked 2026-10-14).",
    "priceSummary": "Your plan",
    "where": "hosted",
    "x402": {
      "level": "no",
      "evidence": "No x402, MPP or L402 in the Graph contacts or people docs (checked 2026-10-14).",
      "endpoints": []
    },
    "toolCount": null,
    "popularity": {
      "githubStars": 834,
      "npmWeekly": 2321990,
      "pypiWeekly": 1639437,
      "asOf": "2026-10-14"
    },
    "docsUrl": "https://learn.microsoft.com/en-us/graph/outlook-contacts-concept-overview",
    "openapi": "https://raw.githubusercontent.com/microsoftgraph/msgraph-metadata/master/openapi/v1.0/openapi.yaml",
    "capabilities": [
      "contacts.read",
      "contacts.write",
      "contacts.search",
      "contacts.sync"
    ],
    "tags": [
      "hosted",
      "official",
      "oauth",
      "openapi",
      "webhooks",
      "typescript",
      "python",
      "enterprise"
    ],
    "lastRelease": "2026-03-12",
    "graded": true,
    "anchor": {
      "graded": true,
      "score": 64.6,
      "grade": "B",
      "agentReady": false,
      "rank": 369,
      "ranked": true,
      "rankOf": 1076,
      "categoryRank": 2,
      "methodology": "0.4",
      "run": "2026-10-01",
      "scores": {
        "ergonomics": 83,
        "maintenance": 76,
        "payments": 35,
        "reliability": 60,
        "schema": 83,
        "security": 72,
        "transparency": 69
      },
      "pending": [
        "performance",
        "tasks"
      ],
      "breakdown": [
        {
          "key": "reliability",
          "name": "Reliability",
          "weight": 16,
          "effectiveWeight": 20,
          "score": 60,
          "points": 12,
          "reason": "Graded on the v1.0 REST API, as the microsoft-graph-calendar and outlook-mail-graph listings were. A public Microsoft service health page at status.cloud.microsoft (20). It renders only with JavaScript, so components and history weren't readable (5). Contacts fall under the Outlook limits of 10,000 requests per 10 minutes and four concurrent requests per app and mailbox (15). 429 responses carry Retry-After with backoff guidance, but contact creation has no transactionId or other idempotency key, so a retried create can duplicate (10 of 15). No SLA covering the Graph API found (0). Contacts and people endpoints are generally available on v1.0 (10)."
        },
        {
          "key": "performance",
          "name": "Performance",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
        },
        {
          "key": "schema",
          "name": "Schema \u0026 documentation",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 83,
          "points": 13.49,
          "reason": "OpenAPI for all of Graph v1.0 in microsoftgraph/msgraph-metadata, plus CSDL (25). No llms.txt on learn.microsoft.com (0). Reference pages list least-privileged permissions per account type and state limits such as $search working only for the signed-in user's relevant people and $skip not working with $search (17). Typed properties and enums in the metadata (13). Example requests and responses on every page and the shared Graph error format (13). v1.0 and beta with a dated changelog whose latest personal contacts entry is 12 March 2026 (15)."
        },
        {
          "key": "ergonomics",
          "name": "Agent ergonomics",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 83,
          "points": 13.49,
          "reason": "$select and $top on both APIs, and odata.maxpagesize on delta (23). @odata.nextLink paging, delta tokens for contact folders, $filter on email addresses, relevance ordering and fuzzy $search on people (20). Graph errors carry a code, message and request ID, and 429s say which throttle scope was hit (17). No idempotency key on contact creates and no MCP tool annotations to check, since the only MCP option is the legacy User server (10 of 20). Official SDKs in .NET, Java, Python, Go and more, with the JavaScript client last published to npm in September 2023 (13)."
        },
        {
          "key": "security",
          "name": "Security \u0026 auth",
          "weight": 14,
          "effectiveWeight": 17.5,
          "score": 72,
          "points": 12.6,
          "reason": "OAuth 2.0 through Entra ID with Contacts.Read, Contacts.ReadWrite, People.Read and People.Read.All (30). Read-only permissions for every read path, admin consent for reading other users' relevant people, and RBAC for Applications to limit application permissions to chosen mailboxes. Nothing asks for confirmation before a delete or permanentDelete (17 of 20). Contact names, notes and people results can carry text written by outsiders, and no injection guidance was found in these docs (5 of 15). Graph activity logs record app, user, IP, URI, status and scopes per request with Entra ID P1 or P2 (12). microsoft.com's security.txt expired on 23 September 2026 and was still expired on 14 October, and a token-leak fix in the JavaScript client sits unreleased with no advisory (8 of 20)."
        },
        {
          "key": "payments",
          "name": "Payments \u0026 pricing",
          "weight": 10,
          "effectiveWeight": 12.5,
          "score": 35,
          "points": 4.38,
          "reason": "No x402, MPP or L402 (0). Contacts and people endpoints aren't metered and Microsoft 365 plan prices are public, but work accounts need a licensed mailbox (15). Personal Microsoft accounts work with delegated permissions at no cost and no card (20). A person registers an app in Entra and, for application or People.Read.All permissions, an admin consents (0)."
        },
        {
          "key": "tasks",
          "name": "Task success",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
        },
        {
          "key": "maintenance",
          "name": "Maintenance \u0026 community",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 76,
          "points": 6.65,
          "reason": "msgraph-sdk-python 1.64.0 on 6 October 2026 (30). Several Python SDK releases in the last 90 days, continuing the series graded on the other Graph listings (20). Public changelog and SDK issue trackers, but the June 2026 security fix still hasn't reached npm (10). Current SDKs in most languages, with the JavaScript client the exception at 3.0.7 from September 2023 (10). Active CI on the metadata and Python repositories, none of it reaching the JavaScript package (6)."
        },
        {
          "key": "transparency",
          "name": "Transparency \u0026 trust",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 69,
          "points": 6.04,
          "note": "editorial 52, provenance 85",
          "reason": "Closed service under the Microsoft APIs terms of use, with MIT SDKs (15). The Microsoft privacy statement and product terms cover Graph, but we found no retention statement for contacts or people data through the API (15). Dated deprecations in the changelog, such as the sharedInsight list method announced on 14 January 2026 to stop returning data after November 2026 (14 of 20). Microsoft 365 sub-processor and data residency pages exist, which we didn't recheck (8)."
        }
      ],
      "assessment": {
        "date": "2026-10-14",
        "basis": "public evidence",
        "confidence": "medium",
        "notes": {
          "ergonomics": "$select and $top on both APIs, and odata.maxpagesize on delta (23). @odata.nextLink paging, delta tokens for contact folders, $filter on email addresses, relevance ordering and fuzzy $search on people (20). Graph errors carry a code, message and request ID, and 429s say which throttle scope was hit (17). No idempotency key on contact creates and no MCP tool annotations to check, since the only MCP option is the legacy User server (10 of 20). Official SDKs in .NET, Java, Python, Go and more, with the JavaScript client last published to npm in September 2023 (13).",
          "maintenance": "msgraph-sdk-python 1.64.0 on 6 October 2026 (30). Several Python SDK releases in the last 90 days, continuing the series graded on the other Graph listings (20). Public changelog and SDK issue trackers, but the June 2026 security fix still hasn't reached npm (10). Current SDKs in most languages, with the JavaScript client the exception at 3.0.7 from September 2023 (10). Active CI on the metadata and Python repositories, none of it reaching the JavaScript package (6).",
          "payments": "No x402, MPP or L402 (0). Contacts and people endpoints aren't metered and Microsoft 365 plan prices are public, but work accounts need a licensed mailbox (15). Personal Microsoft accounts work with delegated permissions at no cost and no card (20). A person registers an app in Entra and, for application or People.Read.All permissions, an admin consents (0).",
          "reliability": "Graded on the v1.0 REST API, as the microsoft-graph-calendar and outlook-mail-graph listings were. A public Microsoft service health page at status.cloud.microsoft (20). It renders only with JavaScript, so components and history weren't readable (5). Contacts fall under the Outlook limits of 10,000 requests per 10 minutes and four concurrent requests per app and mailbox (15). 429 responses carry Retry-After with backoff guidance, but contact creation has no transactionId or other idempotency key, so a retried create can duplicate (10 of 15). No SLA covering the Graph API found (0). Contacts and people endpoints are generally available on v1.0 (10).",
          "schema": "OpenAPI for all of Graph v1.0 in microsoftgraph/msgraph-metadata, plus CSDL (25). No llms.txt on learn.microsoft.com (0). Reference pages list least-privileged permissions per account type and state limits such as $search working only for the signed-in user's relevant people and $skip not working with $search (17). Typed properties and enums in the metadata (13). Example requests and responses on every page and the shared Graph error format (13). v1.0 and beta with a dated changelog whose latest personal contacts entry is 12 March 2026 (15).",
          "security": "OAuth 2.0 through Entra ID with Contacts.Read, Contacts.ReadWrite, People.Read and People.Read.All (30). Read-only permissions for every read path, admin consent for reading other users' relevant people, and RBAC for Applications to limit application permissions to chosen mailboxes. Nothing asks for confirmation before a delete or permanentDelete (17 of 20). Contact names, notes and people results can carry text written by outsiders, and no injection guidance was found in these docs (5 of 15). Graph activity logs record app, user, IP, URI, status and scopes per request with Entra ID P1 or P2 (12). microsoft.com's security.txt expired on 23 September 2026 and was still expired on 14 October, and a token-leak fix in the JavaScript client sits unreleased with no advisory (8 of 20).",
          "transparency": "Closed service under the Microsoft APIs terms of use, with MIT SDKs (15). The Microsoft privacy statement and product terms cover Graph, but we found no retention statement for contacts or people data through the API (15). Dated deprecations in the changelog, such as the sharedInsight list method announced on 14 January 2026 to stop returning data after November 2026 (14 of 20). Microsoft 365 sub-processor and data residency pages exist, which we didn't recheck (8)."
        },
        "sources": [
          {
            "what": "Outlook contacts overview",
            "url": "https://learn.microsoft.com/en-us/graph/outlook-contacts-concept-overview",
            "seen": "2026-10-14"
          },
          {
            "what": "list people reference",
            "url": "https://learn.microsoft.com/en-us/graph/api/user-list-people?view=graph-rest-1.0",
            "seen": "2026-10-14"
          },
          {
            "what": "people API overview",
            "url": "https://learn.microsoft.com/en-us/graph/people-insights-overview",
            "seen": "2026-10-14"
          },
          {
            "what": "contact delta reference",
            "url": "https://learn.microsoft.com/en-us/graph/api/contact-delta?view=graph-rest-1.0",
            "seen": "2026-10-14"
          },
          {
            "what": "list contacts reference",
            "url": "https://learn.microsoft.com/en-us/graph/api/user-list-contacts?view=graph-rest-1.0",
            "seen": "2026-10-14"
          },
          {
            "what": "throttling limits",
            "url": "https://learn.microsoft.com/en-us/graph/throttling-limits",
            "seen": "2026-10-14"
          },
          {
            "what": "Graph changelog feed",
            "url": "https://developer.microsoft.com/en-us/graph/changelog/rss",
            "seen": "2026-10-14"
          },
          {
            "what": "Agent 365 MCP server options",
            "url": "https://learn.microsoft.com/en-us/microsoft-agent-365/tooling-servers-overview",
            "seen": "2026-10-14"
          },
          {
            "what": "npm latest for @microsoft/microsoft-graph-client",
            "url": "https://registry.npmjs.org/@microsoft/microsoft-graph-client/latest",
            "seen": "2026-10-14"
          },
          {
            "what": "microsoft.com security.txt",
            "url": "https://www.microsoft.com/.well-known/security.txt",
            "seen": "2026-10-14"
          }
        ],
        "openQuestions": [
          "unchecked: status page components and incident history, which need JavaScript",
          "unchecked: rate limits specific to the people API, which the throttling page doesn't list separately",
          "Whether Microsoft will publish msgraph-sdk-javascript 3.0.8 or an advisory for the 16 June 2026 fix",
          "Whether Work IQ in Agent 365 will expose contacts or people tools to replace the legacy User server"
        ]
      },
      "negative": -4,
      "negativeNotes": [
        "2026-06-16: a fix for a token leak through URL userinfo host confusion was merged into msgraph-sdk-javascript and the version bumped to 3.0.8, but on 14 October 2026 npm still serves 3.0.7 from September 2023 and the repository has no published advisory. Exploiting it needs an attacker-influenced URL passed to the client (https://github.com/microsoftgraph/msgraph-sdk-javascript/commit/5438ae90f50ef15d3656f0cf9c5485deee351f19, https://registry.npmjs.org/@microsoft/microsoft-graph-client/latest)"
      ],
      "verdict": "Covers Outlook personal contacts with delta sync and a people API that ranks the people a user works with and supports fuzzy search, all under separate read and write permissions. Contact creates have no idempotency key, the status page needs JavaScript, and Microsoft has no current MCP server for contacts.",
      "bestFor": "Agents working in Microsoft 365 tenants or with Outlook.com address books, especially to find who a user works with.",
      "strengths": [
        "People API ranks contacts and colleagues by relevance and supports fuzzy name search",
        "Delta queries per contact folder return only what changed",
        "Contacts.Read and People.Read keep read-only agents away from writes",
        "Works for Microsoft 365 work accounts and personal Microsoft accounts",
        "Graph activity logs record every request with app, user, IP and status"
      ],
      "weaknesses": [
        "No idempotency key on contact creation, so retries can duplicate",
        "4 concurrent requests per app per mailbox",
        "The npm JavaScript client is 3.0.7 from September 2023, without the June 2026 token-leak fix",
        "The only MCP option, the User server, is kept for backward compatibility",
        "Status page renders only with JavaScript"
      ],
      "agentNotes": [
        "Use /me/people?$search= for fuzzy lookups and /me/contacts for the saved address book, since they return different sets",
        "Keep the @odata.deltaLink from the contact delta function and call it on the next run",
        "Check for an existing contact with $filter on emailAddresses before creating one",
        "Honour Retry-After on 429 and keep to 4 parallel calls per mailbox",
        "Ask for Contacts.Read and People.Read unless the task must change contacts"
      ],
      "metrics": {
        "kind": "remote",
        "measured": false
      },
      "reviewCount": 0,
      "avgRating": 0,
      "history": [
        {
          "basis": "public evidence",
          "confidence": "medium",
          "grade": "B",
          "methodology": "0.4",
          "pending": [
            "performance",
            "tasks"
          ],
          "run": "2026-10-01",
          "runLabel": "October 2026 research run",
          "score": 64.6
        }
      ],
      "editorialScores": {
        "ergonomics": 83,
        "maintenance": 76,
        "payments": 35,
        "reliability": 60,
        "schema": 83,
        "security": 72,
        "transparency": 52
      },
      "provenanceScore": 85
    },
    "connect": {
      "http": "curl \"https://graph.microsoft.com/v1.0/me/people?\\$search=adele\u0026\\$top=10\u0026\\$select=displayName,scoredEmailAddresses\" \\\n  -H \"Authorization: Bearer $MS_GRAPH_TOKEN\""
    },
    "letme": {
      "capability": "https://letme.dev/contacts.read",
      "tool": "https://letme.dev/microsoft-graph-people"
    },
    "sameCompany": [
      "azure-foundry-fine-tuning",
      "azure-ai-content-safety",
      "azure-speech-to-text",
      "azure-text-to-speech",
      "microsoft-agent-framework",
      "microsoft-execution-containers",
      "microsoft-entra-agent-id",
      "azure-key-vault",
      "azure-document-intelligence",
      "azure-devops-mcp",
      "microsoft-learn-mcp",
      "playwright-mcp",
      "azure-mcp",
      "azure-maps",
      "azure-translator",
      "microsoft-graph-calendar",
      "azure-blob-storage",
      "onedrive-sharepoint",
      "microsoft-teams",
      "dynamics-365-sales",
      "power-automate",
      "foundry-local",
      "microsoft-decision-1",
      "microsoft-advertising-api",
      "microsoft-excel-graph",
      "outlook-mail-graph"
    ],
    "notable": [
      "GET /me/people returns people ordered by relevance from the user's communication and collaboration patterns, and $search supports fuzzy matching on name or alias, only for the signed-in user (https://learn.microsoft.com/en-us/graph/api/user-list-people?view=graph-rest-1.0)",
      "The contact delta function returns changes in a contact folder with $deltatoken and $skiptoken, and odata.maxpagesize sets the page size (https://learn.microsoft.com/en-us/graph/api/contact-delta?view=graph-rest-1.0)",
      "Contacts sit under the Outlook service limits of 10,000 requests per 10 minutes and four concurrent requests per app and mailbox (https://learn.microsoft.com/en-us/graph/throttling-limits)",
      "The latest v1.0 change to personal contacts in the Graph changelog, on 12 March 2026, added primary, secondary and tertiary email address properties (https://developer.microsoft.com/en-us/graph/changelog/rss)",
      "The User MCP server in Copilot Studio (profiles, managers, direct reports, user search) is one of the workload servers Microsoft keeps only for backward compatibility and says not to use for new projects (https://learn.microsoft.com/en-us/microsoft-agent-365/tooling-servers-overview)"
    ],
    "area": "everyday",
    "details": [
      {
        "label": "Contacts",
        "value": "/me/contacts and /me/contactFolders with list, get, create, update, delete, permanentDelete and $filter on email addresses"
      },
      {
        "label": "Sync",
        "value": "Contact delta per contact folder with $deltatoken and $skiptoken, plus change notification subscriptions on contacts"
      },
      {
        "label": "People",
        "value": "/me/people and /users/{id}/people ranked by relevance, 10 results by default, $top, $skip, $select, $filter and fuzzy $search for the signed-in user"
      },
      {
        "label": "Permissions",
        "value": "Contacts.Read, Contacts.ReadWrite, People.Read (user consent), People.Read.All (admin consent)"
      },
      {
        "label": "Rate limits",
        "value": "10,000 requests per 10 minutes and 4 concurrent per app per mailbox, under a global 130,000 requests per 10 seconds per app"
      },
      {
        "label": "Accounts",
        "value": "Microsoft 365 and Exchange Online work accounts, and personal Microsoft accounts with delegated permissions"
      }
    ],
    "provenance": {
      "legalEntity": "Microsoft Corporation",
      "domain": "microsoft.com",
      "domainRegistered": "1991-05-02",
      "endpointOnVendorDomain": true,
      "terms": "https://learn.microsoft.com/en-us/legal/microsoft-apis/terms-of-use",
      "privacy": "https://privacy.microsoft.com/en-us/privacystatement",
      "statusPage": "https://status.cloud.microsoft",
      "changelog": "https://developer.microsoft.com/en-us/graph/changelog",
      "securityTxt": "expired",
      "checked": "2026-10-14",
      "notes": [
        "The endpoint is on graph.microsoft.com. www.microsoft.com/.well-known/security.txt still carried an Expires date of 2026-09-23 on 2026-10-14.",
        "The Microsoft service health page at status.cloud.microsoft needs JavaScript to show anything, per the Graph listings' earlier checks.",
        "The people API overview page is dated 2019-04-09 and the contact resource page 2026-02-27."
      ],
      "score": 85,
      "checks": [
        {
          "check": "Legal entity named",
          "value": "Microsoft Corporation",
          "points": 20,
          "max": 20,
          "state": "ok"
        },
        {
          "check": "Domain age",
          "value": "microsoft.com, registered 1991-05-02 (35 years)",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Endpoint on the vendor's domain",
          "value": "graph.microsoft.com",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Terms of service",
          "value": "read, states 5 of the 7 things a reader expects, and has 3 clauses that cost points",
          "points": 2.3,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Privacy policy",
          "value": "read, states 8 of the 8 things a reader expects, and has 1 clause that costs points",
          "points": 8,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Status page",
          "value": "status.cloud.microsoft",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "Changelog",
          "value": "published",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "security.txt",
          "value": "published but past its Expires date",
          "points": 5,
          "max": 10,
          "state": "part"
        }
      ],
      "policies": [
        {
          "kind": "terms",
          "url": "https://learn.microsoft.com/en-us/legal/microsoft-apis/terms-of-use",
          "state": "read",
          "readAt": "2026-10-08",
          "statedDate": "2025-10-01",
          "words": 4555,
          "points": 2.3,
          "max": 10,
          "expected": [
            {
              "key": "terms.date",
              "label": "Gives the date it was last updated",
              "found": true,
              "quote": "Last Updated: October 2025 What's new?",
              "says": "Last updated 2025-10-01"
            },
            {
              "key": "terms.law",
              "label": "Names the governing law or courts",
              "found": false
            },
            {
              "key": "terms.liability",
              "label": "States a limit on its liability",
              "found": true,
              "quote": "WE MAKE NO WARRANTIES, EXPRESS OR IMPLIED, GUARANTEES OR CONDITIONS WITH RESPECT TO YOUR USE OF THE MICROSOFT APIs."
            },
            {
              "key": "terms.termination",
              "label": "Says how the agreement or account can be ended",
              "found": true,
              "quote": "We may change, amend or terminate these API Terms at any time."
            },
            {
              "key": "terms.changes",
              "label": "Says how changes to the terms are announced",
              "found": true,
              "quote": "WE MAY MODIFY THESE API TERMS AT ANY TIME, WITH OR WITHOUT PRIOR NOTICE TO YOU.",
              "says": "Says it gives notice of a change"
            },
            {
              "key": "terms.use",
              "label": "Lists what users may not do",
              "found": true,
              "quote": "Unless you have use permissions expressly and specifically granted by Customers in connection with using your Application, you may not use Microsoft email protocols and APIs for any purpose other than:"
            },
            {
              "key": "terms.sla",
              "label": "Refers to a service level or uptime commitment",
              "found": false
            }
          ],
          "toKnow": [
            {
              "key": "terms.automated",
              "label": "Restricts automated access",
              "found": true,
              "quote": "Scrape, build databases or otherwise create copies of any data accessed or obtained using the Microsoft APIs, except as necessary to enable an intended usage scenario for your Application;",
              "costsPoints": true
            },
            {
              "key": "terms.benchmark",
              "label": "Restricts benchmarking or competitive use",
              "found": true,
              "quote": "Use the Microsoft APIs, or any data obtained using the Microsoft APIs, to conduct performance testing of a Microsoft Offering unless expressly permitted by Microsoft",
              "costsPoints": true
            },
            {
              "key": "terms.nonotice",
              "label": "Says the terms or the service can change without notice",
              "found": true,
              "quote": "WE MAY MODIFY THESE API TERMS AT ANY TIME, WITH OR WITHOUT PRIOR NOTICE TO YOU.",
              "costsPoints": true
            },
            {
              "key": "terms.cutoff",
              "label": "Says access can be ended without notice or for any reason",
              "found": true,
              "quote": "We may suspend or immediately terminate these API Terms, any rights granted herein, and/or your license to the Microsoft APIs, in our sole discretion at any time, for any reason."
            }
          ],
          "notes": [
            {
              "date": "2026-10-08",
              "text": "Recoverable damages are limited to direct damages of up to 5 US dollars in total.",
              "quote": "YOU AGREE THAT YOUR EXCLUSIVE REMEDY IS TO RECOVER, FROM MICROSOFT OR ANY AFFILIATES, RESELLERS, DISTRIBUTORS, SUPPLIERS (AND RESPECTIVE EMPLOYEES, SHAREHOLDERS, OR DIRECTORS) AND VENDORS, ONLY DIRECT DAMAGES UP TO USD $5.00 COLLECTIVELY."
            },
            {
              "date": "2026-10-08",
              "text": "After a data breach involving the Microsoft APIs, the developer may make no public statement about it without Microsoft's prior written permission.",
              "quote": "You agree to refrain from making public statements (e.g., press, blogs, social media, bulletin boards, etc.) without prior written and express permission from Microsoft in each instance as it relates to the Microsoft APIs."
            },
            {
              "date": "2026-10-08",
              "text": "The developer must allow Microsoft reasonable access to its application so Microsoft can monitor compliance with the API terms.",
              "quote": "You will permit Microsoft reasonable access to your Application for purposes of monitoring compliance with these API Terms."
            }
          ]
        },
        {
          "kind": "privacy",
          "url": "https://privacy.microsoft.com/en-us/privacystatement",
          "state": "read",
          "readAt": "2026-10-08",
          "statedDate": "2026-09-01",
          "words": 33580,
          "points": 8,
          "max": 10,
          "expected": [
            {
              "key": "privacy.date",
              "label": "Gives the date it was last updated",
              "found": true,
              "quote": "Last Updated: September 2026",
              "says": "Last updated 2026-09-01"
            },
            {
              "key": "privacy.collected",
              "label": "Says what personal data is collected",
              "found": true,
              "quote": "The data we collect depends on the context of your interactions with Microsoft and the choices you make, including your privacy settings and the products and features you use."
            },
            {
              "key": "privacy.retention",
              "label": "Says how long data is kept",
              "found": true,
              "quote": "When you delete an email or item from a mailbox in Outlook.com, the item generally goes into your Deleted Items folder where it remains for approximately 7 days unless you move it back to your inbox, you empty the folder, or the service empties the folder automatically, whichever comes first.",
              "says": "Names a period of 7 days"
            },
            {
              "key": "privacy.processors",
              "label": "Says who else receives the data",
              "found": true,
              "quote": "Service providers that help us determine your device’s location."
            },
            {
              "key": "privacy.sale",
              "label": "Says whether personal data is sold or shared for advertising",
              "found": true,
              "quote": "not use or share student personal data for advertising or similar commercial purposes, such as providing personalized advertising to students;"
            },
            {
              "key": "privacy.rights",
              "label": "Says what rights people have over their data",
              "found": true,
              "quote": "State Data Privacy Notice (including notice at collection details) and the Consumer Health Data Privacy Policy for additional information about your rights and the processing of your personal data."
            },
            {
              "key": "privacy.contact",
              "label": "Gives a privacy contact",
              "found": true,
              "quote": "If you have a privacy concern, complaint, or question for the Microsoft privacy team or Data Protection Officer, please visit our privacy support and requests page and click on “Contact the Microsoft privacy team or the Microsoft Data Protection Officer” menu.",
              "says": "Names a data protection officer"
            },
            {
              "key": "privacy.transfers",
              "label": "Says where data is transferred or stored",
              "found": true,
              "quote": "In such cases, we implement legal safeguards-such as standard contractual clauses approved by the European Commission – to help protect your rights and ensure your data remains protected.",
              "says": "Relies on standard contractual clauses"
            }
          ],
          "toKnow": [
            {
              "key": "training",
              "label": "Says it may use customer content to train or improve models, and no opt-out was found",
              "found": true,
              "quote": "As part of our efforts to improve and develop our products, we may use your data to develop and train our AI models.",
              "costsPoints": true
            },
            {
              "key": "privacy.sells",
              "label": "Says it sells personal data or shares it for advertising",
              "found": true,
              "quote": "We also disclose personal data for digital advertising purposes."
            }
          ],
          "notes": [
            {
              "date": "2026-10-08",
              "text": "For enterprise and developer products, the customer's agreement with Microsoft takes precedence over this privacy statement where the two conflict.",
              "quote": "In the event of a conflict between our privacy statement and the terms of any agreement(s) between a customer and Microsoft for Enterprise and Developer Products, the terms of those agreement(s) will control."
            },
            {
              "date": "2026-10-08",
              "text": "Advertisements may be chosen from the current interaction, including Copilot conversations and files shared in them.",
              "quote": "Ads may be shown that relate to the current interaction you are having with us, such as your Copilot conversations (including files you share); your current location; transactions; product usage; search queries; or the content you’re viewing."
            },
            {
              "date": "2026-10-08",
              "text": "Microsoft staff manually review some results of automated systems, including AI, against the source data.",
              "quote": "For example, to build, train, and improve the accuracy of our automated systems – such as AI - we manually review some of the results against the underlying data."
            }
          ]
        }
      ]
    },
    "pageJsonUrl": "https://www.anchorterminal.com/tools/microsoft-graph-people.json",
    "live": {
      "slug": "microsoft-graph-people",
      "probe": {
        "target": "https://graph.microsoft.com/v1.0",
        "method": "get",
        "lastAt": "2026-10-14T09:41:58.368018459Z",
        "lastOk": true,
        "lastStatus": 200,
        "lastMs": 3,
        "authRequired": false,
        "uptime24h": 100,
        "uptime30d": 100,
        "p50ms24h": 4,
        "p95ms24h": 40,
        "samples24h": 17,
        "samples30d": 17,
        "days": [
          {
            "date": "2026-10-14",
            "probes": 17,
            "ok": 17
          }
        ]
      },
      "updatedAt": "2026-10-14T09:41:58.368018459Z"
    }
  }
}
