{
  "data": {
    "a": {
      "slug": "google-people-api",
      "name": "Google People API",
      "vendor": "Google",
      "vendorUrl": "https://developers.google.com/people",
      "kind": "http-api",
      "category": "contacts",
      "summary": "Google's REST API for a user's Google Contacts, contact groups, \"Other contacts\" and Workspace directory profiles, with incremental sync tokens and a read-only remote MCP server in developer preview.",
      "url": "https://www.anchorterminal.com/tools/google-people-api",
      "markdownUrl": "https://www.anchorterminal.com/tools/google-people-api.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/google-people-api.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/google-people-api.json",
      "repo": "https://github.com/googleapis/google-api-nodejs-client",
      "license": "Proprietary service under the Google APIs Terms of Service. Client libraries are Apache-2.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://people.googleapis.com/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "@googleapis/people"
        },
        {
          "registry": "pypi",
          "name": "google-api-python-client"
        }
      ],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 access tokens from a Google Cloud project with the People API enabled. The discovery document lists 12 scopes, among them contacts (read and write), contacts.readonly, contacts.other.readonly, directory.readonly and per-field profile scopes such as user.emails.read. The MCP server at https://people.googleapis.com/mcp/v1 needs your own OAuth client and the directory.readonly, userinfo.profile and contacts.readonly scopes, and membership of the Google Workspace Developer Preview Program (https://developers.google.com/people/v1/configure-mcp-server).",
      "pricing": "free",
      "pricingNotes": "No charge for the People API was found. Requests count against per-project quotas in categories such as Critical read requests, Critical write requests and Daily Contact Writes, and the first page of a full sync has a fixed extra quota that can't be raised. Quota numbers aren't published on the developer pages and are shown in the Cloud console (checked 2026-10-14).",
      "priceSummary": "Free",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the People API docs or the discovery document (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": 3,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 177082,
        "pypiWeekly": null,
        "asOf": "2026-10-14"
      },
      "docsUrl": "https://developers.google.com/people",
      "openapi": "https://people.googleapis.com/$discovery/rest?version=v1",
      "capabilities": [
        "contacts.read",
        "contacts.write",
        "contacts.search",
        "contacts.sync",
        "contacts.groups"
      ],
      "tags": [
        "hosted",
        "official",
        "free-tier",
        "oauth",
        "mcp",
        "typescript",
        "python",
        "go",
        "java",
        "enterprise"
      ],
      "lastRelease": "2026-10-12",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 65.2,
        "grade": "B",
        "agentReady": false,
        "rank": 346,
        "ranked": true,
        "rankOf": 1076,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 83,
          "maintenance": 83,
          "payments": 35,
          "reliability": 30,
          "schema": 79,
          "security": 86,
          "transparency": 71
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": 0,
        "verdict": "Covers saved contacts, contact groups, \"Other contacts\" and the Workspace directory under 12 OAuth scopes, with seven-day sync tokens and a read-only MCP server that warns against prompt injection. No status page covers it, quota numbers are only in the Cloud console, and searches need a warmup call first.",
        "bestFor": "Agents that read or maintain a Google user's address book or look people up in a Workspace directory.",
        "strengths": [
          "Separate read-only scopes for contacts, other contacts, the directory and individual profile fields",
          "Incremental sync with tokens that return deletions, valid for 7 days",
          "Batch create, update and delete, and contact group membership changes in one call",
          "Read-only MCP tools carry readOnlyHint and tell the model to confirm before passing results on",
          "Client libraries released three times between 11 and 24 September 2026"
        ],
        "weaknesses": [
          "No status page covers Contacts or the People API",
          "Quota numbers aren't published in the docs, only quota categories and costs",
          "searchContacts needs a warmup request and writes take minutes to reach sync",
          "createContact has no idempotency key",
          "The MCP server is a developer preview behind a programme sign-up"
        ],
        "agentNotes": [
          "Send an empty searchContacts query first, wait a few seconds, then search",
          "Always pass personFields, such as names,emailAddresses,phoneNumbers, or the call fails",
          "Store nextSyncToken and do a full sync when you get EXPIRED_SYNC_TOKEN",
          "Send writes for one user one at a time and include the etag on updates",
          "Ask for contacts.readonly unless the task must create or 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": 65.2
          }
        ],
        "editorialScores": {
          "ergonomics": 83,
          "maintenance": 83,
          "payments": 35,
          "reliability": 30,
          "schema": 79,
          "security": 86,
          "transparency": 57
        },
        "provenanceScore": 84
      },
      "connect": {
        "http": "curl \"https://people.googleapis.com/v1/people/me/connections?personFields=names,emailAddresses,phoneNumbers\u0026pageSize=100\u0026requestSyncToken=true\" \\\n  -H \"Authorization: Bearer $GOOGLE_ACCESS_TOKEN\"",
        "config": {
          "mcpServers": {
            "google-people": {
              "url": "https://people.googleapis.com/mcp/v1"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/contacts.read",
        "tool": "https://letme.dev/google-people-api"
      },
      "sameCompany": [
        "gemini-api",
        "gemini-embedding",
        "vertex-ai-tuning",
        "google-model-armor",
        "google-imagen",
        "google-veo",
        "google-lyria",
        "google-speech-to-text",
        "gemini-live",
        "google-adk",
        "google-secret-manager",
        "google-cloud-document-ai",
        "google-weather-api",
        "chrome-devtools-mcp",
        "google-maps-platform",
        "google-cloud-translation",
        "google-calendar-api",
        "firebase-cloud-messaging",
        "google-drive-api",
        "gemini-enterprise",
        "gemini-cli",
        "google-search-console",
        "google-ads-api",
        "google-forms",
        "google-sheets-api",
        "gmail-api"
      ],
      "area": "everyday",
      "provenance": {
        "legalEntity": "Google LLC",
        "domain": "google.com",
        "domainRegistered": "1997-09-15",
        "endpointOnVendorDomain": true,
        "terms": "https://developers.google.com/terms",
        "privacy": "https://policies.google.com/privacy",
        "statusPage": "",
        "changelog": "https://developers.google.com/people/release-notes",
        "securityTxt": "valid",
        "checked": "2026-10-14",
        "notes": [
          "The endpoint is on people.googleapis.com, Google's API domain. google.com was registered in 1997.",
          "google.com's security.txt is valid to 2030-04-01 and points to the Google VRP.",
          "No status page covers the People API. The Google Workspace Status Dashboard has no Contacts entry.",
          "The MCP configuration page was last updated on 2026-10-09. The release notes' latest entry is 22 April 2026."
        ],
        "score": 84
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/google-people-api.json",
      "live": {
        "slug": "google-people-api",
        "probe": {
          "target": "https://people.googleapis.com/v1",
          "method": "get",
          "lastAt": "2026-10-14T09:41:52.260427325Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 39,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 43,
          "p95ms24h": 173,
          "samples24h": 17,
          "samples30d": 17,
          "days": [
            {
              "date": "2026-10-14",
              "probes": 17,
              "ok": 17
            }
          ]
        },
        "updatedAt": "2026-10-14T09:41:52.260427325Z"
      }
    },
    "answer": "Google People API and Microsoft Graph People and Contacts API score within a point of each other on agent readiness, 65.2 (B) and 64.6 (B). Microsoft Graph People and Contacts API leads on reliability.",
    "b": {
      "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"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "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"
      ],
      "area": "everyday",
      "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
      },
      "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"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Google",
        "b": "Microsoft",
        "name": "Vendor"
      },
      {
        "a": "https://people.googleapis.com/v1",
        "b": "https://graph.microsoft.com/v1.0",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Your plan",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the Google APIs Terms of Service. Client libraries are Apache-2.0",
        "b": "MIT (SDKs)",
        "name": "Licence"
      },
      {
        "a": "3",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-12",
        "b": "2026-03-12",
        "name": "Last release"
      },
      {
        "a": "2021-11-09",
        "b": "2025-10-01",
        "name": "Terms last updated"
      },
      {
        "a": "2026-10-01",
        "b": "2026-09-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "177k npm/wk",
        "b": "834 stars, 2.3M npm/wk, 1.6M PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Google People API and Microsoft Graph People and Contacts API score within a point of each other on agent readiness, 65.2 (B) and 64.6 (B). Microsoft Graph People and Contacts API leads on reliability.",
        "question": "Which is better for AI agents, Google People API or Microsoft Graph People and Contacts API?"
      },
      {
        "answer": "Both use an OAuth sign-in.",
        "question": "Do Google People API and Microsoft Graph People and Contacts API need an API key?"
      },
      {
        "answer": "Yes. Google People API has a hosted endpoint at https://people.googleapis.com/v1 and Microsoft Graph People and Contacts API at https://graph.microsoft.com/v1.0.",
        "question": "Can an agent call Google People API and Microsoft Graph People and Contacts API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Security \u0026 auth, 86 against 72",
          "Maintenance \u0026 community, 83 against 76"
        ],
        "also": [
          "No incidents deducted, where Microsoft Graph People and Contacts API loses 4 points for them"
        ],
        "goodFor": "Agents that read or maintain a Google user's address book or look people up in a Workspace directory.",
        "slug": "google-people-api",
        "watchFor": "No status page covers Contacts or the People API"
      },
      {
        "aheadOn": [
          "Reliability, 60 against 30"
        ],
        "also": null,
        "goodFor": "Agents working in Microsoft 365 tenants or with Outlook.com address books, especially to find who a user works with.",
        "slug": "microsoft-graph-people",
        "watchFor": "No idempotency key on contact creation, so retries can duplicate"
      }
    ],
    "job": {
      "capability": "contacts.read",
      "name": "Reading contacts"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/contactsplus-vs-google-people-api.json",
        "title": "ContactsPlus vs Google People API",
        "url": "https://www.anchorterminal.com/compare/contactsplus-vs-google-people-api"
      },
      {
        "json": "https://www.anchorterminal.com/compare/contactsplus-vs-microsoft-graph-people.json",
        "title": "ContactsPlus vs Microsoft Graph People and Contacts API",
        "url": "https://www.anchorterminal.com/compare/contactsplus-vs-microsoft-graph-people"
      }
    ],
    "scores": [
      {
        "by": 30,
        "edge": "microsoft-graph-people",
        "google-people-api": 30,
        "key": "reliability",
        "microsoft-graph-people": 60,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "edge": "microsoft-graph-people",
        "google-people-api": 79,
        "key": "schema",
        "microsoft-graph-people": 83,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 0,
        "edge": "",
        "google-people-api": 83,
        "key": "ergonomics",
        "microsoft-graph-people": 83,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 14,
        "edge": "google-people-api",
        "google-people-api": 86,
        "key": "security",
        "microsoft-graph-people": 72,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "google-people-api": 35,
        "key": "payments",
        "microsoft-graph-people": 35,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 7,
        "edge": "google-people-api",
        "google-people-api": 83,
        "key": "maintenance",
        "microsoft-graph-people": 76,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 2,
        "edge": "google-people-api",
        "google-people-api": 71,
        "key": "transparency",
        "microsoft-graph-people": 69,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Google People API and Microsoft Graph People and Contacts API score within a point of each other on agent readiness, 65.2 (B) and 64.6 (B). Microsoft Graph People and Contacts API leads on reliability. Both do reading contacts.",
    "verdicts": {
      "google-people-api": "Covers saved contacts, contact groups, \"Other contacts\" and the Workspace directory under 12 OAuth scopes, with seven-day sync tokens and a read-only MCP server that warns against prompt injection. No status page covers it, quota numbers are only in the Cloud console, and searches need a warmup call first.",
      "microsoft-graph-people": "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/google-people-api-vs-microsoft-graph-people",
    "json": "https://www.anchorterminal.com/compare/google-people-api-vs-microsoft-graph-people.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/google-people-api-vs-microsoft-graph-people.md",
    "slim": "https://www.anchorterminal.com/compare/google-people-api-vs-microsoft-graph-people.min.md"
  },
  "markdown": "Google People API and Microsoft Graph People and Contacts API score within a point of each other on agent readiness, 65.2 (B) and 64.6 (B). Microsoft Graph People and Contacts API leads on reliability. Both do reading contacts.\n\n- Google People API: grade B, 65.2/100, rank #346 of 1076. Markdown https://www.anchorterminal.com/tools/google-people-api.md · JSON https://www.anchorterminal.com/api/v1/tools/google-people-api.json\n- Microsoft Graph People and Contacts API: grade B, 64.6/100, rank #369 of 1076. Markdown https://www.anchorterminal.com/tools/microsoft-graph-people.md · JSON https://www.anchorterminal.com/api/v1/tools/microsoft-graph-people.json\n- All 3 contacts comparisons: https://www.anchorterminal.com/compare/contacts/index.md\n\n## Which one, for what\n\n### Google People API (B)\n\nGood for: Agents that read or maintain a Google user's address book or look people up in a Workspace directory.\n\nAhead on:\n- Security \u0026 auth, 86 against 72\n- Maintenance \u0026 community, 83 against 76\n\nAlso in its favour:\n- No incidents deducted, where Microsoft Graph People and Contacts API loses 4 points for them\n\nWatch for: No status page covers Contacts or the People API\n\n### Microsoft Graph People and Contacts API (B)\n\nGood for: Agents working in Microsoft 365 tenants or with Outlook.com address books, especially to find who a user works with.\n\nAhead on:\n- Reliability, 60 against 30\n\nWatch for: No idempotency key on contact creation, so retries can duplicate\n\n\n## Score by category\n\n| Category | Weight | Google People API | Microsoft Graph People and Contacts API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 30 | 60 | Microsoft Graph People and Contacts API +30 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 79 | 83 | Microsoft Graph People and Contacts API +4 |\n| Agent ergonomics | 13% (16.2 this run) | 83 | 83 | even |\n| Security \u0026 auth | 14% (17.5 this run) | 86 | 72 | Google People API +14 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 35 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 83 | 76 | Google People API +7 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 71 | 69 | Google People API +2 |\n| Negative events | ≤15 | 0 | -4 | |\n| **Total** | | **65.2 · B** | **64.6 · B** | |\n\n## Facts side by side\n\n| Fact | Google People API | Microsoft Graph People and Contacts API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Google | Microsoft |\n| Hosted endpoint | `https://people.googleapis.com/v1` | `https://graph.microsoft.com/v1.0` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth | OAuth |\n| Pricing | Free | Your plan |\n| x402 | no | no |\n| Licence | Proprietary service under the Google APIs Terms of Service. Client libraries are Apache-2.0 | MIT (SDKs) |\n| Tools exposed | 3 | none |\n| Read-only variant documented | yes | yes |\n| llms.txt | no | no |\n| Last release | 2026-10-12 | 2026-03-12 |\n| Terms last updated | 2021-11-09 | 2025-10-01 |\n| Privacy policy last updated | 2026-10-01 | 2026-09-01 |\n| Customer content may train models | yes | yes |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 177k npm/wk | 834 stars, 2.3M npm/wk, 1.6M PyPI/wk |\n\n## Verdicts\n\n**Google People API.** Covers saved contacts, contact groups, \"Other contacts\" and the Workspace directory under 12 OAuth scopes, with seven-day sync tokens and a read-only MCP server that warns against prompt injection. No status page covers it, quota numbers are only in the Cloud console, and searches need a warmup call first.\n\n**Microsoft Graph People and Contacts API.** 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.\n\n## Before you call either\n\n### Google People API\n\n1. Send an empty searchContacts query first, wait a few seconds, then search\n2. Always pass personFields, such as names,emailAddresses,phoneNumbers, or the call fails\n3. Store nextSyncToken and do a full sync when you get EXPIRED_SYNC_TOKEN\n4. Send writes for one user one at a time and include the etag on updates\n5. Ask for contacts.readonly unless the task must create or change contacts\n\n### Microsoft Graph People and Contacts API\n\n1. Use /me/people?$search= for fuzzy lookups and /me/contacts for the saved address book, since they return different sets\n2. Keep the @odata.deltaLink from the contact delta function and call it on the next run\n3. Check for an existing contact with $filter on emailAddresses before creating one\n4. Honour Retry-After on 429 and keep to 4 parallel calls per mailbox\n5. Ask for Contacts.Read and People.Read unless the task must change contacts\n\n## Questions\n\n### Which is better for AI agents, Google People API or Microsoft Graph People and Contacts API?\n\nGoogle People API and Microsoft Graph People and Contacts API score within a point of each other on agent readiness, 65.2 (B) and 64.6 (B). Microsoft Graph People and Contacts API leads on reliability.\n\n### Do Google People API and Microsoft Graph People and Contacts API need an API key?\n\nBoth use an OAuth sign-in.\n\n### Can an agent call Google People API and Microsoft Graph People and Contacts API without installing anything?\n\nYes. Google People API has a hosted endpoint at https://people.googleapis.com/v1 and Microsoft Graph People and Contacts API at https://graph.microsoft.com/v1.0.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/google-people-api-vs-microsoft-graph-people.json, and with the fewest tokens: https://www.anchorterminal.com/compare/google-people-api-vs-microsoft-graph-people.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"google-people-api\", \"b\": \"microsoft-graph-people\"}`. From a terminal: `anchor compare google-people-api microsoft-graph-people`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/google-people-api.json and https://www.anchorterminal.com/api/v1/tools/microsoft-graph-people.json\n\n## Other comparisons with Google People API or Microsoft Graph People and Contacts API\n\n- [ContactsPlus vs Google People API](https://www.anchorterminal.com/compare/contactsplus-vs-google-people-api.md)\n- [ContactsPlus vs Microsoft Graph People and Contacts API](https://www.anchorterminal.com/compare/contactsplus-vs-microsoft-graph-people.md)\n",
  "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"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Google People API vs Microsoft Graph People and Contacts API",
        "url": ""
      }
    ],
    "description": "Google People and Microsoft Graph People and Contacts score within a point of each other for reading contacts, 65.2 and 64.6 out of 100. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Google People API B 65.2",
      "Microsoft Graph People and Contacts API B 64.6",
      "scores"
    ],
    "h1": "Google People API vs Microsoft Graph People and Contacts API",
    "image": "https://www.anchorterminal.com/assets/og/compare-google-people-api-vs-microsoft-graph-people.png",
    "path": "/compare/google-people-api-vs-microsoft-graph-people",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Google People vs Microsoft Graph People and Contacts (2026)",
    "toc": null,
    "updated": "2026-10-14",
    "url": "https://www.anchorterminal.com/compare/google-people-api-vs-microsoft-graph-people"
  },
  "tokens": {
    "markdown": 1900,
    "slim": 680
  },
  "version": 1
}
