# Microsoft Graph People and Contacts API > 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. - Canonical: https://www.anchorterminal.com/tools/microsoft-graph-people - Markdown: https://www.anchorterminal.com/tools/microsoft-graph-people.md (~6,800 tokens) - Slim: https://www.anchorterminal.com/tools/microsoft-graph-people.min.md (~1,230 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/tools/microsoft-graph-people.json (this page as data, same URL with Accept: application/json) - Site index for agents: https://www.anchorterminal.com/llms.txt (full text: https://www.anchorterminal.com/llms-full.txt) - API: https://www.anchorterminal.com/api/v1/index.json - Updated: 2026-10-14 ## Overview **Grade B · 64.6/100 · rank #369 of 1076 · #2 in Contacts & address books · not agent-ready · confidence medium** More from Microsoft, listed separately because each is its own product: [Microsoft Foundry fine-tuning (Azure OpenAI)](https://www.anchorterminal.com/tools/azure-foundry-fine-tuning.md) (Fine-tuning), [Azure AI Content Safety (Prompt Shields)](https://www.anchorterminal.com/tools/azure-ai-content-safety.md) (Guardrails & safety filters), [Azure AI Speech speech-to-text](https://www.anchorterminal.com/tools/azure-speech-to-text.md) (Speech-to-text), [Azure AI Speech text-to-speech](https://www.anchorterminal.com/tools/azure-text-to-speech.md) (Text-to-speech), [Microsoft Agent Framework](https://www.anchorterminal.com/tools/microsoft-agent-framework.md) (Agent frameworks & SDKs), [Microsoft Execution Containers](https://www.anchorterminal.com/tools/microsoft-execution-containers.md) (Code execution sandboxes), [Microsoft Entra Agent ID](https://www.anchorterminal.com/tools/microsoft-entra-agent-id.md) (Agent auth & delegated access), [Azure Key Vault](https://www.anchorterminal.com/tools/azure-key-vault.md) (Secrets & credential vaults), [Azure Document Intelligence](https://www.anchorterminal.com/tools/azure-document-intelligence.md) (Document parsing & extraction), [Azure DevOps MCP Server](https://www.anchorterminal.com/tools/azure-devops-mcp.md) (Code & developer platforms), [Microsoft Learn MCP Server](https://www.anchorterminal.com/tools/microsoft-learn-mcp.md) (Code & developer platforms), [Playwright MCP](https://www.anchorterminal.com/tools/playwright-mcp.md) (Browser automation), [Azure MCP Server](https://www.anchorterminal.com/tools/azure-mcp.md) (Cloud & infrastructure), [Azure Maps](https://www.anchorterminal.com/tools/azure-maps.md) (Maps, geocoding & places), [Azure Translator](https://www.anchorterminal.com/tools/azure-translator.md) (Translation), [Microsoft Graph Calendar API](https://www.anchorterminal.com/tools/microsoft-graph-calendar.md) (Calendars & scheduling), [Azure Blob Storage](https://www.anchorterminal.com/tools/azure-blob-storage.md) (File storage & sharing), [OneDrive and SharePoint files (Microsoft Graph)](https://www.anchorterminal.com/tools/onedrive-sharepoint.md) (File storage & sharing), [Microsoft Teams (Microsoft Graph)](https://www.anchorterminal.com/tools/microsoft-teams.md) (Work & productivity), [Microsoft Dynamics 365 Sales](https://www.anchorterminal.com/tools/dynamics-365-sales.md) (CRM & customer platforms), [Microsoft Power Automate](https://www.anchorterminal.com/tools/power-automate.md) (Workflow automation), [Foundry Local](https://www.anchorterminal.com/tools/foundry-local.md) (Local AI), [Microsoft-Decision-1](https://www.anchorterminal.com/tools/microsoft-decision-1.md) (Decision models), [Microsoft Advertising API](https://www.anchorterminal.com/tools/microsoft-advertising-api.md) (Advertising & campaign operations), [Microsoft Excel (Microsoft Graph workbook API)](https://www.anchorterminal.com/tools/microsoft-excel-graph.md) (Spreadsheets & operational tables), [Outlook Mail (Microsoft Graph)](https://www.anchorterminal.com/tools/outlook-mail-graph.md) (Mailbox access). ## Assessment 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. ## Facts | Field | Value | | --- | --- | | Vendor | Microsoft (https://learn.microsoft.com/en-us/graph/outlook-contacts-concept-overview) | | Kind | HTTP API | | Category | Contacts & address books (https://www.anchorterminal.com/categories/contacts) | | Transport | HTTP | | Endpoint | `https://graph.microsoft.com/v1.0` | | Auth | OAuth · 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 | Your plan (Your plan) · 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). | | x402 | No · No x402, MPP or L402 in the Graph contacts or people docs (checked 2026-10-14). | | Licence | MIT (SDKs) | | Packages | npm: `@microsoft/microsoft-graph-client`; pypi: `msgraph-sdk` | | Source | https://github.com/microsoftgraph/msgraph-sdk-javascript | | Docs | https://learn.microsoft.com/en-us/graph/outlook-contacts-concept-overview | | llms.txt | not found | | Last release | 2026-03-12 | | GitHub stars | 834 (as of 2026-10-14) | | npm downloads / week | 2,321,990 | | PyPI downloads / week | 1,639,437 | | Contacts | /me/contacts and /me/contactFolders with list, get, create, update, delete, permanentDelete and $filter on email addresses | | Sync | Contact delta per contact folder with $deltatoken and $skiptoken, plus change notification subscriptions on contacts | | People | /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 | | Permissions | Contacts.Read, Contacts.ReadWrite, People.Read (user consent), People.Read.All (admin consent) | | Rate limits | 10,000 requests per 10 minutes and 4 concurrent per app per mailbox, under a global 130,000 requests per 10 seconds per app | | Accounts | Microsoft 365 and Exchange Online work accounts, and personal Microsoft accounts with delegated permissions | | Capabilities | contacts.read, contacts.write, contacts.search, contacts.sync | | Tags | hosted, official, oauth, openapi, webhooks, typescript, python, enterprise | | JSON | https://www.anchorterminal.com/api/v1/tools/microsoft-graph-people.json | ## Score breakdown (methodology v0.4, October 2026 research run) Assessed 2026-10-14 from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/#checklist). Confidence: medium. Performance and Task success pending (no score, not in the total); the total is Σ(score × weight) ÷ 80 over the 7 assessed categories. "This run" is each category's share of the 100 points. | Category | Weight | This run | Score (0–100) | Points | | --- | --- | --- | --- | --- | | Reliability | 16% | 20 | 60 | 12.0 | | Performance | 10% | pending | pending | n/a | | Schema & documentation | 13% | 16.2 | 83 | 13.5 | | Agent ergonomics | 13% | 16.2 | 83 | 13.5 | | Security & auth | 14% | 17.5 | 72 | 12.6 | | Payments & pricing | 10% | 12.5 | 35 | 4.4 | | Task success | 10% | pending | pending | n/a | | Maintenance & community | 7% | 8.8 | 76 | 6.7 | | Transparency & trust (editorial 52, provenance 85) | 7% | 8.8 | 69 | 6.0 | | Negative events | up to −15 | up to −15 | 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) | -4 | | **Total** | | | | **64.6 → B** | ### Why each score - Reliability 60: 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). - Performance: 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. - Schema & documentation 83: 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). - Agent ergonomics 83: $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). - Security & auth 72: 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). - Payments & pricing 35: 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). - Task success: 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. - Maintenance & community 76: 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). - Transparency & trust 69: 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). Fix list for a coding agent, everything this grade says the listing lacks, the biggest gain first (15 items): https://www.anchorterminal.com/fixes/microsoft-graph-people.md (JSON https://www.anchorterminal.com/fixes/microsoft-graph-people.json) ### What we couldn't check - 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 ### Sources - Outlook contacts overview: (seen 2026-10-14) - list people reference: (seen 2026-10-14) - people API overview: (seen 2026-10-14) - contact delta reference: (seen 2026-10-14) - list contacts reference: (seen 2026-10-14) - throttling limits: (seen 2026-10-14) - Graph changelog feed: (seen 2026-10-14) - Agent 365 MCP server options: (seen 2026-10-14) - npm latest for @microsoft/microsoft-graph-client: (seen 2026-10-14) - microsoft.com security.txt: (seen 2026-10-14) ## Who's behind it (provenance 85/100, checked 2026-10-14) | Check | Finding | Points | | --- | --- | --- | | Legal entity named | Microsoft Corporation | 20/20 | | Domain age | microsoft.com, registered 1991-05-02 (35 years) | 15/15 | | Endpoint on the vendor's domain | graph.microsoft.com | 15/15 | | Terms of service | read, states 5 of the 7 things a reader expects, and has 3 clauses that cost points | 2.3/10 | | Privacy policy | read, states 8 of the 8 things a reader expects, and has 1 clause that costs points | 8/10 | | Status page | status.cloud.microsoft | 10/10 | | Changelog | published | 10/10 | | security.txt | published but past its Expires date | 5/10 | 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. ### Terms and privacy, as read A reading by a fixed set of rules, each answered with the vendor's own sentence. Not legal advice. **Terms of service** (https://learn.microsoft.com/en-us/legal/microsoft-apis/terms-of-use), read 2026-10-08, dated 2025-10-01, states 5 of the 7 things a reader expects. - To know. Restricts automated access (costs points). "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;" - To know. Restricts benchmarking or competitive use (costs points). "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" - To know. Says the terms or the service can change without notice (costs points). "WE MAY MODIFY THESE API TERMS AT ANY TIME, WITH OR WITHOUT PRIOR NOTICE TO YOU." - To know. Says access can be ended without notice or for any reason. "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." - Gives the date it was last updated. Last updated 2025-10-01. - Not found in the text. Names the governing law or courts. - Says how changes to the terms are announced. Says it gives notice of a change. - Not found in the text. Refers to a service level or uptime commitment. - Also in the text (2026-10-08). Recoverable damages are limited to direct damages of up to 5 US dollars in total. "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." - Also in the text (2026-10-08). After a data breach involving the Microsoft APIs, the developer may make no public statement about it without Microsoft's prior written permission. "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." - Also in the text (2026-10-08). The developer must allow Microsoft reasonable access to its application so Microsoft can monitor compliance with the API terms. "You will permit Microsoft reasonable access to your Application for purposes of monitoring compliance with these API Terms." **Privacy policy** (https://privacy.microsoft.com/en-us/privacystatement), read 2026-10-08, dated 2026-09-01, states 8 of the 8 things a reader expects. - To know. Says it may use customer content to train or improve models, and no opt-out was found (costs points). "As part of our efforts to improve and develop our products, we may use your data to develop and train our AI models." - To know. Says it sells personal data or shares it for advertising. "We also disclose personal data for digital advertising purposes." - Gives the date it was last updated. Last updated 2026-09-01. - Says how long data is kept. Names a period of 7 days. - Gives a privacy contact. Names a data protection officer. - Says where data is transferred or stored. Relies on standard contractual clauses. - Also in the text (2026-10-08). For enterprise and developer products, the customer's agreement with Microsoft takes precedence over this privacy statement where the two conflict. "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." - Also in the text (2026-10-08). Advertisements may be chosen from the current interaction, including Copilot conversations and files shared in them. "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." - Also in the text (2026-10-08). Microsoft staff manually review some results of automated systems, including AI, against the source data. "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." ## Live (updated 2026-10-14 09:41 UTC) - Right now: up, HTTP 200, 3 ms, checked 2026-10-14 09:41 UTC (get on `https://graph.microsoft.com/v1.0`) - Uptime 24h 100.0% (17 probes) · 30 days 100.0% (17 probes) · p50 4 ms · p95 40 ms - Always current: https://www.anchorterminal.com/api/v1/live/microsoft-graph-people.json ## Probe metrics Not measured yet. Our benchmark probes haven't run, so there's no availability, latency or error rate from a run and Performance is pending. Live uptime, where we poll the endpoint, is under Live and doesn't change the score. ## 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 ## Before you call it (notes for agents) 1. Use /me/people?$search= for fuzzy lookups and /me/contacts for the saved address book, since they return different sets 2. Keep the @odata.deltaLink from the contact delta function and call it on the next run 3. Check for an existing contact with $filter on emailAddresses before creating one 4. Honour Retry-After on 429 and keep to 4 parallel calls per mailbox 5. Ask for Contacts.Read and People.Read unless the task must change contacts ## Connect First request: ```bash curl "https://graph.microsoft.com/v1.0/me/people?\$search=adele&\$top=10&\$select=displayName,scoredEmailAddresses" \ -H "Authorization: Bearer $MS_GRAPH_TOKEN" ``` Through letme (picks today, calling later): https://letme.dev/microsoft-graph-people. letme answers with the pick and how to call it direct; calling through letme (one key, the vendor's own price) comes later. How it works: https://www.anchorterminal.com/letme/index.md ## Similar tools Ranked by shared capabilities, then score. Same-category tools with no shared capability key are listed last. | Tool | Grade | Score | Rank | Shared capabilities | x402 | Markdown | | --- | --- | --- | --- | --- | --- | --- | | Google People API | B | 65.2 | 346 | contacts.read, contacts.write, contacts.search, contacts.sync | no | https://www.anchorterminal.com/tools/google-people-api.md | | ContactsPlus | E | 42.4 | 966 | contacts.read, contacts.write, contacts.search, contacts.sync | no | https://www.anchorterminal.com/tools/contactsplus.md | ## Panel reviews (0) Reviewed by the Anchor panel (https://www.anchorterminal.com/reviewers/index.md): . Desk reviews, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. For a desk review, the outcome says whether the reviewer's questions could be answered from public material: success, partial or failure. How reviews work: https://www.anchorterminal.com/reviews/how-it-works.md ## 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 (source: ) - The contact delta function returns changes in a contact folder with $deltatoken and $skiptoken, and odata.maxpagesize sets the page size (source: ) - Contacts sit under the Outlook service limits of 10,000 requests per 10 minutes and four concurrent requests per app and mailbox (source: ) - The latest v1.0 change to personal contacts in the Graph changelog, on 12 March 2026, added primary, secondary and tertiary email address properties (source: ) - 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 (source: ) - All 3 contacts comparisons: https://www.anchorterminal.com/compare/contacts/index.md ## Compare - [ContactsPlus vs Microsoft Graph People and Contacts API](https://www.anchorterminal.com/compare/contactsplus-vs-microsoft-graph-people.md): E 42.4 vs B 64.6 - [Google People API vs Microsoft Graph People and Contacts API](https://www.anchorterminal.com/compare/google-people-api-vs-microsoft-graph-people.md): B 65.2 vs B 64.6 ## Verify this listing For the vendor. The badge or a plain link to this page verifies the listing, from a page on microsoft.com or one of its subdomains, or the README of github.com/microsoftgraph/msgraph-sdk-javascript. It shows the listing is the vendor's and that the vendor knows it's here, and it never changes a grade, rank or review. The vendor sends the page's address to `POST https://www.anchorterminal.com/api/v1/verify` as `{"slug": "microsoft-graph-people", "url": "…"}`, or calls the `verify_listing` tool at https://www.anchorterminal.com/mcp. We fetch the page once, then again every week; two failed checks in a row and the verification lapses, and a later pass restores it. What we check: https://www.anchorterminal.com/builders/index.md#verify HTML badge: ```html Microsoft Graph People and Contacts API on Anchor Terminal ``` Markdown badge, for a README: ```markdown [![Microsoft Graph People and Contacts API on Anchor Terminal](https://www.anchorterminal.com/badges/microsoft-graph-people.svg)](https://www.anchorterminal.com/tools/microsoft-graph-people) ``` Plain link: ```html Microsoft Graph People and Contacts API on Anchor Terminal ``` ## Share this listing For the vendor. Sharing assets for social media, two PNGs of 1200 × 630 that say Microsoft Graph People and Contacts API is listed on Anchor Terminal, with the vendor's logo and this page's address and no grade or score. - Dark: https://www.anchorterminal.com/assets/share/microsoft-graph-people-dark.png - Light: https://www.anchorterminal.com/assets/share/microsoft-graph-people-light.png - Create a video and download its frames: https://www.anchorterminal.com/assets/listing-video/index.html?listing=microsoft-graph-people