Google Maps API

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.

POST/v1/run/maps.contacts
Uptime
91.63%
30d · 430 calls
Requests
473
30d · weekly, last 12 wks
Response
60.3s
median · 30d

Try it

Make your first request

Open in
Get a free key
Sample response
Free runs return only the first 3 results. Fund a key to get the full response.
{
  "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
}
Response interface
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 30d
POST /v1/run/maps.contacts
curl -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"}'
FieldTypeExample value
Request body
locationstring"Austin, TX"Free-text location to search in, ideally city plus country (e.g. Denver, USA).
querystring"coffee shop"What you would type in the Google Maps search bar (e.g. dentist).
categoryFilterWordsarrayOptional 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.
languagestringTwo-letter language code for the results (e.g. en).
limitinteger3Maximum number of results to return (1-20, default 20). You are billed per result returned, so a lower limit costs less.
placeMinimumStarsenum"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.
websiteenum"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
dataobjectThe result wrapper, or null when nothing matched.
data.itemsobject[]Matching business records, each enriched with contact details scraped from the business website. Populated whenever the provider has data for the entity.
data.items[].addressstringFull formatted street address.
data.items[].categorystringPrimary business category.
data.items[].cidstringGoogle customer/place id (cid).
data.items[].citystringCity the business is in.
data.items[].countryCodestringTwo-letter country code.
data.items[].emailsstring[]Email addresses scraped from the business website.
data.items[].facebooksstring[]Facebook profile URLs found on the business website.
data.items[].imagestringPrimary business photo URL.
data.items[].instagramsstring[]Instagram profile URLs found on the business website.
data.items[].latitudenumberLatitude of the business in decimal degrees.
data.items[].linkedInsstring[]LinkedIn profile URLs found on the business website.
data.items[].longitudenumberLongitude of the business in decimal degrees.
data.items[].namestringBusiness name. Populated whenever the provider has data for the entity.
data.items[].phonestringBusiness phone number in E.164 format, when listed on Google Maps.
data.items[].phonesstring[]Additional phone numbers scraped from the business website.
data.items[].placeIdstringGoogle Maps place id (stable identifier for the business). Populated whenever the provider has data for the entity.
data.items[].postalCodestringPostal code of the business.
data.items[].ratingnumberAverage star rating out of 5.
data.items[].reviewCountnumberTotal number of reviews.
data.items[].statestringState or region the business is in.
data.items[].tiktoksstring[]TikTok profile URLs found on the business website.
data.items[].twittersstring[]X/Twitter profile URLs found on the business website.
data.items[].urlstringCanonical Google Maps URL for the business. Populated whenever the provider has data for the entity.
data.items[].websitestringThe business website URL, when listed.
data.items[].youtubesstring[]YouTube channel URLs found on the business website.
foundbooleanTrue when the search returned at least one matching business.
Price
Price per request (ceiling)USD$0.0991
Price /1k resultsUSD$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.

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. You fund one USD wallet, each call draws it down, and a failed request costs $0.

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. The response is normalized JSON with the same envelope every AnyAPI endpoint returns, so parsing a second endpoint is a change of URL and nothing else.

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. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.