Google Maps Contacts API
Search Google Maps for businesses and enrich each result with contact details (emails, phones, and social profiles from their websites), up to 20 records per request.
Try it
Make your first request
{
"data": {
"items": [
{
"address": "123 Main St",
"category": "general",
"cid": "a1b2c3d4",
"city": "San Francisco",
"countryCode": "US",
"emails": [
"alex@example.com"
],
"facebooks": [
"example"
],
"image": "https://example.com/image.jpg",
"instagrams": [
"example"
],
"latitude": 37.7749,
"linkedIns": [
"https://example.com/page"
],
"longitude": -122.4194,
"name": "Example title",
"phone": "+1 555-0142",
"phones": [
"+1 555-0142"
],
"placeId": "a1b2c3d4",
"postalCode": "94107",
"rating": 4.6,
"reviewCount": 12500,
"state": "CA",
"tiktoks": [
"example"
],
"twitters": [
"example"
],
"url": "https://example.com/page",
"website": "https://example.com/page",
"youtubes": [
"example"
]
}
]
},
"found": true
}interface MapsContactsResponse {
data: {
items: {
address?: string;
category?: string;
cid?: string;
city?: string;
countryCode?: string;
emails?: string[];
facebooks?: string[];
image?: string;
instagrams?: string[];
latitude?: number;
linkedIns?: string[];
longitude?: number;
name: string;
phone?: string;
phones?: string[];
placeId: string;
postalCode?: string;
rating?: number;
reviewCount?: number;
state?: string;
tiktoks?: string[];
twitters?: string[];
url: string;
website?: string;
youtubes?: string[];
}[];
} | null;
found: boolean;
}Full parameter and response reference - every field, type, and example for this endpoint.
Reference
Request, response, and price
Last verified 2026-09-16 · uptime and latency measured over 30dcurl -X POST https://api.getanyapi.com/v1/run/maps.contacts \
-H "Authorization: Bearer $ANYAPI_KEY" \
-H "Content-Type: application/json" \
-d '{"limit":3,"location":"Austin, TX","placeMinimumStars":"four","query":"coffee shop","website":"withWebsite"}'| Field | Type | Example value |
|---|---|---|
| Request body | ||
| location | string | "Austin, TX"Free-text location to search in, ideally city plus country (e.g. Denver, USA). |
| query | string | "coffee shop"What you would type in the Google Maps search bar (e.g. dentist). |
| categoryFilterWords | array | Optional list of Google Maps place-category names to keep; results are limited to places whose category matches one of these. Use lowercase category names as shown on Google Maps (e.g. ["dentist", "orthodontist"]). Omit to include all categories. |
| language | string | Two-letter language code for the results (e.g. en). |
| limit | integer | 3Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less. |
| placeMinimumStars | enum | "four"Only return places with at least this average rating: two (2+), twoAndHalf (2.5+), three (3+), threeAndHalf (3.5+), four (4+), or fourAndHalf (4.5+). Places with no reviews are excluded. Omit for no rating filter. |
| website | enum | "withWebsite"Filter places by whether they list a website: allPlaces (default), withWebsite (only places that have a website), or withoutWebsite (only places without one). Contact enrichment pulls emails and social profiles from a place's website, so withWebsite targets leads that can be enriched. |
| Response | ||
| data | object | The result wrapper, or null when nothing matched. |
| data.items | object[] | Matching business records, each enriched with contact details scraped from the business website. Populated whenever the provider has data for the entity. |
| data.items[].address | string | Full formatted street address. |
| data.items[].category | string | Primary business category. |
| data.items[].cid | string | Google customer/place id (cid). |
| data.items[].city | string | City the business is in. |
| data.items[].countryCode | string | Two-letter country code. |
| data.items[].emails | string[] | Email addresses scraped from the business website. |
| data.items[].facebooks | string[] | Facebook profile URLs found on the business website. |
| data.items[].image | string | Primary business photo URL. |
| data.items[].instagrams | string[] | Instagram profile URLs found on the business website. |
| data.items[].latitude | number | Latitude of the business in decimal degrees. |
| data.items[].linkedIns | string[] | LinkedIn profile URLs found on the business website. |
| data.items[].longitude | number | Longitude of the business in decimal degrees. |
| data.items[].name | string | Business name. Populated whenever the provider has data for the entity. |
| data.items[].phone | string | Business phone number in E.164 format, when listed on Google Maps. |
| data.items[].phones | string[] | Additional phone numbers scraped from the business website. |
| data.items[].placeId | string | Google Maps place id (stable identifier for the business). Populated whenever the provider has data for the entity. |
| data.items[].postalCode | string | Postal code of the business. |
| data.items[].rating | number | Average star rating out of 5. |
| data.items[].reviewCount | number | Total number of reviews. |
| data.items[].state | string | State or region the business is in. |
| data.items[].tiktoks | string[] | TikTok profile URLs found on the business website. |
| data.items[].twitters | string[] | X/Twitter profile URLs found on the business website. |
| data.items[].url | string | Canonical Google Maps URL for the business. Populated whenever the provider has data for the entity. |
| data.items[].website | string | The business website URL, when listed. |
| data.items[].youtubes | string[] | YouTube channel URLs found on the business website. |
| found | boolean | True when the search returned at least one matching business. |
| Price | ||
| Price per request (ceiling) | USD | $0.0991 |
| Price /1k results | USD | $4.72 |
FAQ
About the Google Maps Contacts API
The AnyAPI Google Maps Contacts API returns Google Maps contacts data as normalized JSON from one POST call to /v1/run/maps.contacts. Search Google Maps for businesses and enrich each result with contact details (emails, phones, and social profiles from their websites), up to 20 records per request. AnyAPI returns one normalized schema whichever source serves it. It costs $4.72 per 1,000 results, and never more than $0.0991 for a single request, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 91.6% of Google Maps contacts calls through AnyAPI succeeded, with a median response time of 60.3 seconds across 430 measured calls.