# Microsoft Graph People and Contacts API (slim) > 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. - Full: https://www.anchorterminal.com/tools/microsoft-graph-people.md (~6,800 tokens) · this version ~1,230 tokens · JSON https://www.anchorterminal.com/tools/microsoft-graph-people.json · canonical https://www.anchorterminal.com/tools/microsoft-graph-people - Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · Updated: 2026-10-14 **B · 64.6/100 · rank #369 of 1076 · #2 in Contacts & address books · not agent-ready · confidence medium** 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 - Kind: HTTP API · vendor: Microsoft · category: Contacts & address books · legal entity: Microsoft Corporation · provenance 85/100 - Endpoint: `https://graph.microsoft.com/v1.0` (HTTP) - Auth: OAuth · pricing: Your plan · x402: no · licence: MIT (SDKs) - Probe metrics: not measured yet (probes haven't run) - 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 - Scores: Reliability 60, Performance pending, Schema & documentation 83, Agent ergonomics 83, Security & auth 72, Payments & pricing 35, Task success pending, Maintenance & community 76, Transparency & trust 69 · negative events -4 · total over the 7 assessed categories - Why: Reliability, Graded on the v1.0 REST API, as the microsoft-graph-calendar and outlook-mail-graph listings were. · Schema & documentation, OpenAPI for all of Graph v1.0 in microsoftgraph/msgraph-metadata, plus CSDL (25). · Agent ergonomics, $select and $top on both APIs, and odata.maxpagesize on delta (23). · Security & auth, OAuth 2.0 through Entra ID with Contacts.Read, Contacts.ReadWrite, People.Read and People.Read.All (30). · Payments & pricing, No x402, MPP or L402 (0). · Maintenance & community, msgraph-sdk-python 1.64.0 on 6 October 2026 (30). · Transparency & trust, Closed service under the Microsoft APIs terms of use, with MIT SDKs (15). - Sources: 10, open questions: 4, both in the full twin - Capabilities: contacts.read, contacts.write, contacts.search, contacts.sync - JSON: https://www.anchorterminal.com/api/v1/tools/microsoft-graph-people.json - Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/microsoft-graph-people.svg` or a link to https://www.anchorterminal.com/tools/microsoft-graph-people from a page on microsoft.com or one of its subdomains, or the README of github.com/microsoftgraph/msgraph-sdk-javascript, then `POST https://www.anchorterminal.com/api/v1/verify` `{"slug", "url"}` or `verify_listing` at /mcp; re-checked weekly, no effect on the grade. Snippets in the full twin. ## Before you call it 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 ```bash curl "https://graph.microsoft.com/v1.0/me/people?\$search=adele&\$top=10&\$select=displayName,scoredEmailAddresses" \ -H "Authorization: Bearer $MS_GRAPH_TOKEN" ``` Full config and headless snippets are in the full page. Through letme (picks today, calling later): https://letme.dev/microsoft-graph-people ## Similar tools | Tool | Grade | Score | Shared capabilities | Slim | | --- | --- | --- | --- | --- | | Google People API | B | 65.2 | contacts.read, contacts.write, contacts.search, contacts.sync | https://www.anchorterminal.com/tools/google-people-api.min.md | | ContactsPlus | E | 42.4 | contacts.read, contacts.write, contacts.search, contacts.sync | https://www.anchorterminal.com/tools/contactsplus.min.md | ## Panel reviews (0, desk reviews from public material, no calls made)