{
  "data": {
    "category": {
      "area": "everyday",
      "capabilities": [
        "contacts.read",
        "contacts.write",
        "contacts.search",
        "contacts.sync",
        "contacts.groups"
      ],
      "description": "APIs that read and update a person's own contacts and address book, search people they know and keep contact records in sync across accounts. Compared on read and write coverage, search, sync tokens, OAuth scopes and limits.",
      "json": "https://www.anchorterminal.com/categories/contacts.json",
      "name": "Contacts \u0026 address books",
      "slug": "contacts",
      "test": "In this run, public evidence against the published checklist. When the task suites run, one test account's contacts read, searched, created, updated and deleted through each listing's API, then synced after a change made elsewhere. We check field coverage, incremental sync, scopes and error handling.",
      "title": "Contact and address book APIs for AI agents",
      "toolCount": 3,
      "tools": [
        "google-people-api",
        "microsoft-graph-people",
        "contactsplus"
      ],
      "url": "https://www.anchorterminal.com/categories/contacts"
    },
    "tools": [
      {
        "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"
        }
      },
      {
        "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"
        }
      },
      {
        "slug": "contactsplus",
        "name": "ContactsPlus",
        "vendor": "Contacts Plus LLC",
        "vendorUrl": "https://www.contactsplus.com",
        "kind": "http-api",
        "category": "contacts",
        "summary": "ContactsPlus (Contacts+) is a contact manager that syncs, deduplicates and enriches address books across Google, iCloud and Outlook. Agents reach it through an OAuth REST Contacts API with webhooks and a remote MCP server for Premium users.",
        "url": "https://www.anchorterminal.com/tools/contactsplus",
        "markdownUrl": "https://www.anchorterminal.com/tools/contactsplus.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/contactsplus.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/contactsplus.json",
        "license": "Proprietary service under the ContactsPlus Terms of Use (version 2.0, 26 June 2026). The old Node and Clojure API clients are archived",
        "transports": [
          "http"
        ],
        "remoteUrl": "https://api.contactsplus.com/api/v1",
        "packages": [
          {
            "registry": "npm",
            "name": "contacts-api-node"
          }
        ],
        "auth": "oauth",
        "authNotes": "The REST API uses OAuth 2.0 with an app registered at ui.contactsplus.com/apps, a client ID and secret, and 10 comma-separated scopes (account.read, contacts.read, contacts.write, tags.read, tags.write, teams.read and team variants). Refresh tokens are long-lived. The MCP server at https://mcp.contactsplus.com/mcp uses OAuth with PKCE (S256) and dynamic client registration, and the user picks Read only or Full access when connecting.",
        "pricing": "freemium",
        "pricingNotes": "Free plan at $0 with no credit card (1 synced account, 1,000 contacts, daily sync). Premium from $9.99 a month billed annually or $13.99 monthly (5 accounts, 25,000 contacts). Teams from $12.99 a user a month annually or $17.99 monthly. The MCP integration needs Premium. The developer page says the API is free to start and names no API price (https://www.contactsplus.com/pricing/, checked 2026-10-14).",
        "priceSummary": "$9.99 / mo",
        "where": "hosted",
        "x402": {
          "level": "no",
          "evidence": "No x402, MPP or L402 in the developer pages, the MCP page or the pricing page (checked 2026-10-14).",
          "endpoints": []
        },
        "toolCount": 7,
        "popularity": {
          "githubStars": null,
          "npmWeekly": 13,
          "pypiWeekly": null,
          "asOf": "2026-10-14"
        },
        "docsUrl": "https://www.contactsplus.com/developers/contacts-api/",
        "llmsTxt": "https://www.contactsplus.com/llms.txt",
        "capabilities": [
          "contacts.read",
          "contacts.write",
          "contacts.search",
          "contacts.sync",
          "contacts.groups"
        ],
        "tags": [
          "hosted",
          "freemium",
          "mcp",
          "oauth",
          "webhooks",
          "llms-txt",
          "consumer"
        ],
        "lastRelease": "2026-09-28",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 42.4,
          "grade": "E",
          "agentReady": false,
          "rank": 966,
          "ranked": true,
          "rankOf": 1076,
          "categoryRank": 3,
          "methodology": "0.4",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 42,
            "maintenance": 25,
            "payments": 30,
            "reliability": 28,
            "schema": 38,
            "security": 71,
            "transparency": 62
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-14"
          },
          "negative": 0,
          "verdict": "An address book that already merges Google, iCloud and Outlook contacts, reachable through OAuth scopes split by read and write and an MCP server that cannot delete or export and holds edits for the owner's approval. The REST reference has no rate limits, error codes or changelog, and its client libraries were archived in 2023.",
          "bestFor": "Agents serving one person or a small team whose contacts are spread across Google, iCloud and Outlook.",
          "strengths": [
            "One API over contacts synced from Google, iCloud and Outlook",
            "MCP server can't delete or export, and edits wait for the owner's approval",
            "Read only or Full access chosen at connection, with OAuth PKCE and dynamic client registration",
            "Separate read and write scopes for contacts, tags and team data",
            "Free plan with no card, and webhooks for contact changes"
          ],
          "weaknesses": [
            "No rate limits, error responses or changelog in the API reference",
            "No OpenAPI spec, and MCP tool schemas aren't public",
            "Node and Clojure clients last released in 2020 and archived",
            "Status page is a static page last updated 26 June 2026",
            "MCP access needs the Premium plan"
          ],
          "agentNotes": [
            "Pass the contact's current etag on update and delete, or the call will be refused",
            "Use contacts.scroll with includeDeletedContacts to keep a copy in step, or subscribe to webhooks",
            "Tell the user that MCP edits land in Suggestions and need their approval",
            "Ask only for contacts.read and tags.read when the task is lookup",
            "Search with field criteria such as company:Acme AND title:CTO to keep results small"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 0,
          "avgRating": 0,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "E",
              "methodology": "0.4",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 42.4
            }
          ],
          "editorialScores": {
            "ergonomics": 42,
            "maintenance": 25,
            "payments": 30,
            "reliability": 28,
            "schema": 38,
            "security": 71,
            "transparency": 48
          },
          "provenanceScore": 75
        },
        "connect": {
          "http": "curl -X POST https://api.contactsplus.com/api/v1/contacts.search \\\n  -H \"Authorization: Bearer $access_token\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"searchQuery\": \"company:Contacts+\"}'",
          "config": {
            "mcpServers": {
              "contactsplus": {
                "url": "https://mcp.contactsplus.com/mcp"
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/contacts.read",
          "tool": "https://letme.dev/contactsplus"
        },
        "area": "everyday",
        "unitPrices": [
          {
            "item": "Premium plan",
            "unit": "month",
            "usd": 9.99,
            "note": "Billed annually ($119.88 a year), or $13.99 monthly. Needed for the MCP integration"
          },
          {
            "item": "Teams plan",
            "unit": "seat-month",
            "usd": 12.99,
            "note": "Billed annually, or $17.99 monthly, up to 50 members"
          }
        ],
        "provenance": {
          "legalEntity": "Contacts Plus LLC",
          "domain": "contactsplus.com",
          "domainRegistered": "1998-02-25",
          "endpointOnVendorDomain": true,
          "terms": "https://www.contactsplus.com/terms/",
          "privacy": "https://www.contactsplus.com/privacy/",
          "statusPage": "https://www.contactsplus.com/status/",
          "changelog": "",
          "securityTxt": "none",
          "checked": "2026-10-14",
          "notes": [
            "The terms (version 2.0, 26 June 2026) name Contacts Plus LLC, a Delaware limited liability company at 3636 S. Geyer Road, Suite 100, Saint Louis, MO 63127.",
            "www.contactsplus.com/.well-known/security.txt answers with an HTML page, not a security.txt file. The security page names security@contactsplus.com and OpenBugBounty.",
            "The REST API answers at api.contactsplus.com and the MCP server at mcp.contactsplus.com.",
            "The API clients on npm and GitHub sit under the fullcontact organisation, and the GitHub repository was archived in 2023.",
            "RDAP gives contactsplus.com a registration date of 1998-02-25."
          ],
          "score": 75
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/contactsplus.json",
        "live": {
          "slug": "contactsplus",
          "probe": {
            "target": "https://api.contactsplus.com/api/v1",
            "method": "get",
            "lastAt": "2026-10-14T09:41:47.032434985Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 337,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 337,
            "p95ms24h": 416,
            "samples24h": 17,
            "samples30d": 17,
            "days": [
              {
                "date": "2026-10-14",
                "probes": 17,
                "ok": 17
              }
            ]
          },
          "vendorStatus": {
            "page": "https://www.contactsplus.com/status",
            "indicator": "unknown",
            "summary": "no machine-readable status found",
            "checkedAt": "2026-10-14T08:52:59.734792189Z"
          },
          "updatedAt": "2026-10-14T09:41:47.032434985Z"
        }
      }
    ]
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/categories/contacts",
    "json": "https://www.anchorterminal.com/categories/contacts.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/categories/contacts.md",
    "slim": "https://www.anchorterminal.com/categories/contacts.min.md"
  },
  "markdown": "APIs that read and update a person's own contacts and address book, search people they know and keep contact records in sync across accounts. Compared on read and write coverage, search, sync tokens, OAuth scopes and limits.\n\n- Tools ranked: 3 · agent-ready (BB or better): 0 · accept x402: 0 · hosted endpoints: 3 · desk reviews by the panel: 0\n- JSON: https://www.anchorterminal.com/api/v1/tools.json (list) · https://www.anchorterminal.com/api/v1/rankings.json (ranked) · https://www.anchorterminal.com/api/v1/x402.json (payable) · https://www.anchorterminal.com/api/v1/capabilities.json (by capability)\n- Grades run AA, A, BB, B, C, D, E, F · methodology: https://www.anchorterminal.com/benchmark/\n\n- Head-to-head comparisons (3): https://www.anchorterminal.com/compare/contacts/index.md\n- Capabilities in this category: contacts.read, contacts.write, contacts.search, contacts.sync, contacts.groups\n- https://letme.dev/contacts.read picks the top-graded tool in this list and says how to call it direct; calling through letme comes later (https://www.anchorterminal.com/letme/index.md)\n\n## Ranking\n\n| # | Tool | Vendor | Kind | Category | Grade | Score | Confidence | x402 | Auth | Where | Reviews | Page |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| 346 | Google People API | Google | HTTP API | Contacts | B | 65.2 | medium | no | OAuth | hosted | none | https://www.anchorterminal.com/tools/google-people-api.md |\n| 369 | Microsoft Graph People and Contacts API | Microsoft | HTTP API | Contacts | B | 64.6 | medium | no | OAuth | hosted | none | https://www.anchorterminal.com/tools/microsoft-graph-people.md |\n| 966 | ContactsPlus | Contacts Plus LLC | HTTP API | Contacts | E | 42.4 | medium | no | OAuth | hosted | none | https://www.anchorterminal.com/tools/contactsplus.md |\n\nScores are from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/), with Performance and Task success pending. p95 latency and context cost come from our probes, which haven't run yet.\n\n## Summaries\n\n### 346. Google People API, B (65.2)\n\nGoogle'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. 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- Page: https://www.anchorterminal.com/tools/google-people-api · Markdown: https://www.anchorterminal.com/tools/google-people-api.md · JSON: https://www.anchorterminal.com/api/v1/tools/google-people-api.json\n- Capabilities: contacts.read, contacts.write, contacts.search, contacts.sync, contacts.groups · endpoint: `https://people.googleapis.com/v1`\n\n### 369. Microsoft Graph People and Contacts API, B (64.6)\n\nMicrosoft 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. 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- Page: https://www.anchorterminal.com/tools/microsoft-graph-people · Markdown: https://www.anchorterminal.com/tools/microsoft-graph-people.md · JSON: https://www.anchorterminal.com/api/v1/tools/microsoft-graph-people.json\n- Capabilities: contacts.read, contacts.write, contacts.search, contacts.sync · endpoint: `https://graph.microsoft.com/v1.0`\n\n### 966. ContactsPlus, E (42.4)\n\nContactsPlus (Contacts+) is a contact manager that syncs, deduplicates and enriches address books across Google, iCloud and Outlook. Agents reach it through an OAuth REST Contacts API with webhooks and a remote MCP server for Premium users. An address book that already merges Google, iCloud and Outlook contacts, reachable through OAuth scopes split by read and write and an MCP server that cannot delete or export and holds edits for the owner's approval. The REST reference has no rate limits, error codes or changelog, and its client libraries were archived in 2023.\n\n- Page: https://www.anchorterminal.com/tools/contactsplus · Markdown: https://www.anchorterminal.com/tools/contactsplus.md · JSON: https://www.anchorterminal.com/api/v1/tools/contactsplus.json\n- Capabilities: contacts.read, contacts.write, contacts.search, contacts.sync, contacts.groups · endpoint: `https://api.contactsplus.com/api/v1`\n\n## How we test this category\n\nIn this run, public evidence against the published checklist. When the task suites run, one test account's contacts read, searched, created, updated and deleted through each listing's API, then synced after a change made elsewhere. We check field coverage, incremental sync, scopes and error handling. This test hasn't run yet, so Task success is pending and the grades here come from the categories assessed from public evidence.\n\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": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Contacts \u0026 address books",
        "url": ""
      }
    ],
    "description": "3 contacts \u0026 address books ranked by the Anchor benchmark. Leader Google People API (B). APIs that read and update a person's own contacts and address book, search people they know and keep contact records in sync across accounts. Compared on read and write coverage, search, sync tokens, OAuth scopes and limits.",
    "facts": [
      "Google People API B",
      "Microsoft Graph People and Contacts API B",
      "ContactsPlus E"
    ],
    "h1": "Contact and address book APIs for AI agents",
    "image": "https://www.anchorterminal.com/assets/og/categories-contacts.png",
    "path": "/categories/contacts",
    "published": "",
    "section": "tools",
    "title": "Contact and address book APIs for AI agents, ranked | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-14",
    "url": "https://www.anchorterminal.com/categories/contacts"
  },
  "tokens": {
    "markdown": 1500,
    "slim": 330
  },
  "version": 1
}
