For Agents
Read and write a user's Google contacts and profile data, manage contact groups, and look up people by resourceName with field masks.
Use for: I need to fetch the signed-in user's full Google profile, Search for a contact by name across the user's Google Contacts, List all contacts in a specific contact group, Create a new contact with a phone number and email address
Not supported: Does not handle email sending, calendar events, or Workspace-wide directory administration - use for reading and writing a single user's Google Contacts and profile only.
The Google People API provides programmatic access to a user's profile and contacts stored in their Google Account. Applications can read and write personal contacts, organise them into contact groups, and access read-only profile data and other-contacts inferred from email and chat interactions. The API supports batched lookups and structured field masks so callers fetch only the fields they need across 23 endpoints covering people, contactGroups, and otherContacts resources.
Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the People API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fgoogleapis.com%2Fpeople" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Fgoogleapis.com%2Fpeople" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with People API.
Retrieve authenticated user profile data and connected contacts with field-mask scoping
Create, update, and delete personal contacts in a user's Google Contacts list
Organise contacts into contact groups and assign or remove members in batch
Search auto-saved otherContacts surfaced from Gmail and Chat interactions
Batch-create or batch-delete up to 200 contacts per request to minimise round trips
List a user's directory people from Google Workspace domain directories
Resolve people resourceNames to full Person objects across multiple sources
Patterns agents use People API for, with concrete tasks.
★ CRM Contact Sync
Synchronise a user's Google Contacts into a third-party CRM so sales reps see the same address book on every device. The People API exposes 23 endpoints covering personal contacts, contact groups, and otherContacts, with sync tokens that return only changes since the last poll. A typical initial backfill of a 5,000-contact list completes in minutes, then incremental syncs run in seconds.
List all connections for the authenticated user with personFields=names,emailAddresses,phoneNumbers and pageSize=200, then upsert each Person into the target CRM keyed by resourceName.
User Profile Onboarding
Pull a signed-in user's profile fields during sign-up so an application does not need to re-collect names, photos, and email addresses already verified by Google. Calling people/me with the right field mask returns names, emailAddresses, and photos in a single request, cutting onboarding form steps and improving conversion. The OAuth scope used here is contacts.readonly or userinfo.profile depending on which fields are requested.
Call GET /v1/people/me with personFields=names,emailAddresses,photos using the user's OAuth access token and map the returned Person object to the app's user record.
Contact Group Management
Build features that group contacts into segments such as Customers, Vendors, or Investors and apply bulk operations to each group. The People API exposes contactGroups CRUD endpoints plus a members:modify endpoint for batch membership changes. Groups can hold up to several thousand members and a single modify call can add or remove up to 1,000 contacts per request.
POST /v1/contactGroups to create a group named 'Customers', then call /v1/contactGroups/{resourceName}/members:modify with resourceNamesToAdd containing the IDs of 25 customer contacts.
Other Contacts Discovery
Surface contacts that Google has inferred from a user's Gmail and Chat history but never explicitly saved. The otherContacts.list and otherContacts.search endpoints return these auto-detected people with email and name fields, making it easy to suggest 'add to contacts' or autocomplete sender lists. This data is read-only and limited to the contacts.other.readonly scope.
Call GET /v1/otherContacts:search?query=acme&readMask=emailAddresses,names to find every inferred contact whose name or email contains 'acme'.
AI Agent Contact Lookup via Jentic
Agents that need to resolve a person mentioned in a prompt can use Jentic to call the People API without managing OAuth tokens or field masks directly. Jentic stores the user's Google credentials in its vault, exposes a single search query to find the right operation, and returns a typed schema the agent fills in. This turns a multi-day OAuth integration into a sub-hour wiring task.
Search Jentic for 'find a Google contact by name', load the people.connections.list schema, and execute it with personFields=names,emailAddresses and a query filter.
23 endpoints — the google people api provides programmatic access to a user's profile and contacts stored in their google account.
METHOD
PATH
DESCRIPTION
/v1/people/{resourceName}
Get a single Person with field mask
/v1/people:batchGet
Fetch multiple people in one call
/v1/people:batchCreateContacts
Create up to 200 contacts at once
/v1/people:batchDeleteContacts
Delete up to 500 contacts at once
/v1/contactGroups
List the user's contact groups
/v1/contactGroups/{resourceName}/members:modify
Add or remove contact group members in bulk
/v1/otherContacts:search
Search inferred contacts from Gmail and Chat
/v1/people/{resourceName}
Get a single Person with field mask
/v1/people:batchGet
Fetch multiple people in one call
/v1/people:batchCreateContacts
Create up to 200 contacts at once
/v1/people:batchDeleteContacts
Delete up to 500 contacts at once
/v1/contactGroups
List the user's contact groups
/v1/contactGroups/{resourceName}/members:modify
Add or remove contact group members in bulk
/v1/otherContacts:search
Search inferred contacts from Gmail and Chat
What agents get from Jentic-routed access to this vendor.
Setup
Wiring the People API by hand means configuring Google OAuth 2.0 with the right contact scopes, minting scoped access tokens, and assembling the batch contact and contact-group requests against people.googleapis.com yourself. Through Jentic you install once, import the People API from the API Directory, store the OAuth credential once, and your agent calls it.
Permission scoping
The People API puts the contact group in the URL path (/v1/contactGroups/{resourceName}/members:modify) and reads a person by resourceName, so a rule can pin your agent to one contact group: it can read members and modify that group and nothing else. You choose the operations it may call, so batch contact deletion is not included unless you add it.
Credential isolation
Your Google OAuth credential for the People API is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'list Google contacts' or 'create a Google contact group', and Jentic returns the matching People API operation with its input schema so the agent calls the right endpoint without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using People API through Jentic.
What authentication does the Google People API use?
The People API uses OAuth 2.0 with user-consented scopes such as https://www.googleapis.com/auth/contacts, contacts.readonly, contacts.other.readonly, and userinfo.profile. Through Jentic the user's refresh token is stored encrypted in your Jentic One instance and short-lived access tokens are injected at call time, so the agent never sees the raw credential.
Can I create contacts in bulk with the People API?
Yes. POST /v1/people:batchCreateContacts accepts up to 200 contacts per call and returns the created Person resources, and POST /v1/people:batchDeleteContacts accepts up to 500 resourceNames per call. For very large imports loop over batches with a backoff to respect per-user quotas.
What are the rate limits for the Google People API?
The People API enforces standard Google quotas measured in queries per minute per user and per project. Default project quotas can be raised in Google Cloud Console. When using Jentic, transient 429 responses are surfaced to the agent so it can back off rather than retrying blindly.
How do I list all of a user's contacts through Jentic?
Run jentic search 'list a user's Google contacts', load the returned operation schema for GET /v1/people/me/connections, and execute it with personFields set to the fields you need (for example names,emailAddresses,phoneNumbers) and pageSize=200. Jentic handles the OAuth token exchange and pagination cursor automatically.
Is the People API free?
The Google People API is free to use within standard Google API quotas. There is no per-request charge, but each Google Cloud project has rate limits and a daily quota that can be increased on request.
Can I retrieve contacts inferred from Gmail without saving them?
Yes. The otherContacts resource exposes contacts auto-detected from email and chat interactions. Use GET /v1/otherContacts to list them or GET /v1/otherContacts:search to filter by name or email. This data requires the contacts.other.readonly scope and is read-only.
GET STARTED