# Google Maps Local Business Search with Contact Extraction

> Google Maps Local Business Search with Contact Extraction is a paid API for AI agents from agents.openwebninja.com, paid per call via MPP, price unknown, status unknown (last checked 2026-10-14).

Search for local businesses on Google Maps by keyword/location and optionally extract emails and social profile links from their websites.

## Facts

- Endpoint: GET https://agents.openwebninja.com/local-business-data/search?utm_source=zero.xyz
- Price: price unknown
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-14
- Activations on Zero: 0
- Provider: agents.openwebninja.com
- Website: https://agents.openwebninja.com
- Canonical page: https://www.zero.xyz/c/agents-openwebninja-com-google-maps-local-business-search-with-324d10dd
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_GK43ZrTL-DhgyYLiJckXB

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agents-openwebninja-com-google-maps-local-business-search-with-324d10dd
```

Example prompt: Search Google Maps for the top 20 Italian restaurants in Chicago, IL — use coordinates 41.8781, -87.6298 — and pull their emails and social media links from their websites too.

## When to prefer this

Choose this endpoint when you need to discover local businesses by keyword or category on Google Maps and want rich business profile data in a single call, especially when you also need to extract contact emails and social links from their websites. Prefer this over area-based search endpoints when you have a natural language query rather than specific bounding box or radius coordinates. It is ideal for lead generation, market research, and directory building use cases where contact extraction is valuable.

## Known failure modes

- Missing required 'query' parameter returns a 400 validation error
- Invalid or unsupported region/language code may return empty results or an error
- Coordinates outside valid lat/lng ranges cause bad request errors
- Email/contact extraction may return empty if the business website blocks scrapers or has no contact info
- Limit values outside 1-500 range are rejected
- Payment/authentication failure returns 402 or 401 errors
- Google Maps may return no results for very niche or misspelled queries

## How this service works

Search local businesses on Google Maps with an option to pull emails and social profile links  from their website (see the `extract_emails_and_contacts` parameter below).

## Output

Returns an array of business objects each containing: business ID, name, address, city, state, country, zip code, latitude/longitude, phone number, website URL, primary category/type, subtypes, rating, review count, business status, hours of operation, business description/attributes, and optionally extracted emails and social media profile links from the business website. Also includes request metadata and parameters echo.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "query"
 ],
 "properties": {
  "lat": {
   "type": "string",
   "default": 37.359428,
   "description": "Latitude of the coordinates point from which the query is applied - recommended to use so that results are biased towards this location.  \n  Defaults to some central location in the region (see the region parameter)."
  },
  "lng": {
   "type": "string",
   "default": -121.925337,
   "description": "Longitude of the coordinates point from which the query is applied - recommended to use so that results are biased towards this location.  \n  Defaults to some central location in the region (see the region parameter)."
  },
  "zoom": {
   "type": "string",
   "default": 13,
   "description": "Zoom level on which to make the search (the viewport is determined by lat, lng and zoom)."
  },
  "limit": {
   "type": "integer",
   "default": 20,
   "description": "Maximum number of businesses to return.  \n\n  **Allowed values:** `1-500`"
  },
  "query": {
   "type": "string",
   "example": "Hotels in San Francisco, USA",
   "description": "Search query / keyword  \n\n  **Examples:**  \n  `Plumbers near New-York, USA`  \n  `Bars in 94102, USA`  "
  },
  "fields": {
   "type": "string",
   "description": "A comma separated list of business fields to include in the response (field projection).  \n  By default all fields are returned."
  },
  "region": {
   "type": "string",
   "default": "us",
   "description": "Query Google Maps from a particular region or country.  \n  For a list of supported region/country codes see *https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes (Alpha-2 code)*."
  },
  "language": {
   "type": "string",
   "default": "en",
   "description": "Set the language of the results. For a list of supported language codes see *https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes*."
  },
  "subtypes": {
   "type": "string",
   "description": "Find businesses with specific subtypes, specified as a comma separated list of types (business categories).  \n  For the complete list of types, see *https://daltonluka.com/blog/google-my-business-categories*.  \n  \n  **Examples:**  \n  `Plumber,Carpenter,Electrician`  \n  `Night club,Dance club,Bar,Pub`"
  },
  "verified": {
   "type": "boolean",
   "description": "Only return verified businesses"
  },
  "business_status": {
   "type": "string",
   "description": "Find businesses with specific status, specified as a comma separated list of the following values:  \n  `O
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "status",
  "request_id",
  "parameters",
  "data"
 ],
 "properties": {
  "data": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "business_id",
     "google_id",
     "name",
     "business_status"
    ],
    "properties": {
     "cid": {
      "type": "string",
      "nullable": true,
      "description": "Google CID (Customer ID) of the business."
     },
     "tld": {
      "type": "string",
      "nullable": true,
      "description": "Top-level domain of the business website."
     },
     "city": {
      "type": "string",
      "nullable": true,
      "description": "City of the business location."
     },
     "name": {
      "type": "string",
      "description": "Display name of the business."
     },
     "type": {
      "type": "string",
      "nullable": true,
      "description": "Primary business category as labelled by Google Maps."
     },
     "about": {
      "type": "object",
      "nullable": true,
      "properties": {
       "details": {
        "type": "object",
        "nullable": true,
        "description": "Map of attribute groups (e.g. Amenities, Crowd, Service options) to attribute name -> boolean.",
        "additionalProperties": {
         "type": "object",
         "additionalProperties": {
          "type": "boolean"
         }
        }
       },
       "summary": {
        "type": "string",
        "nullable": true,
        "description": "Free-text description of the business."
       }
      },
      "description": "Free-form summary and a structured details map of business attributes."
     },
     "state": {
      "type": "string",
      "nullable": true,
      "description": "State / region of the business location."
     },
     "rating": {
      "type": "number",
      "nullable": true,
      "description": "Average review rating (1-5) on Google Maps."
     },
     "address": {
      "type": "string",
      "nullable": true,
      "description": "Street address line of the business."
     },
     "country": {
      "type": "string",
      "nullable": true,
      "description": "ISO 3166-1 alpha-2 country code of the business location."
     },
     "website": {
      "type": "string",
      "nullable": true,
      "description": "Business website URL."
     },
     "zipcode": {
      "type": "string",
      "nullable": true,
      "description": "ZIP / postal code of the business location."
     },
     "district": {
      "type": "string",
  
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-openwebninja-com-google-maps-local-business-search-with-324d10dd/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.openwebninja.com](https://www.zero.xyz/host/agents.openwebninja.com/llms.txt)
