# Bulk Search – Local Business Multi-Query

> Bulk Search – Local Business Multi-Query 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).

Run up to 20 Google Maps business search queries in a single request and get back a deduplicated, normalized flat list of business listings.

## Facts

- Endpoint: POST 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-bulk-search-local-business-multi-query-0b47abc2
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_5yjKklbwVp8O90Ywpk2lh

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-bulk-search-local-business-multi-query-0b47abc2 -d '<json body>'
```

Example prompt: Search Google Maps for 'plumber in Texas', 'coffee shop in San Francisco', and 'hotels in New York' all at once — return up to 10 results per query, deduplicated, in English for the US region.

## When to prefer this

Choose this endpoint when you need to run multiple distinct local business searches in a single network round-trip — especially when queries span different cities, categories, or service types. It is more efficient than calling the single Search endpoint repeatedly and eliminates the need to manually deduplicate overlapping results. Prefer it for market research, multi-location scouting, competitor analysis, or any workflow where 2–20 parallel business searches would otherwise require sequential calls.

## Known failure modes

- Exceeding 20 queries in the queries array returns a validation error
- Invalid region code (non ISO 3166-1 alpha-2) may return empty or incorrect results
- Malformed coordinates string causes a bad request error
- Limit or offset values outside 0-500 range return a validation error
- Queries returning no Google Maps results contribute empty slices to the response
- Rate limiting or quota exhaustion returns a 402 or 429 error

## How this service works

Search multiple queries in a single request (up to 20 queries). Returns a flat, normalized list of businesses aggregated across all queries.

## Output

A flat, normalized JSON array of business objects aggregated across all submitted queries. Each business object includes identifiers (business_id, google_id, cid), display name, primary category, full address components (street, city, state, zip, country), geographic coordinates, average Google Maps rating, website URL, phone number, business status, and structured attribute details. Duplicates across queries are removed when dedup is enabled.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "queries"
 ],
 "properties": {
  "zoom": {
   "type": "integer",
   "default": 13,
   "example": 13,
   "description": "Map zoom level used for each query (higher = tighter area). Allowed values: 0-22."
  },
  "dedup": {
   "type": "boolean",
   "default": true,
   "example": true,
   "description": "If true, deduplicate overlapping businesses across queries."
  },
  "limit": {
   "type": "integer",
   "default": 20,
   "example": 5,
   "description": "Maximum number of businesses to return per query. Allowed values: 1-500."
  },
  "query": {
   "type": "string"
  },
  "offset": {
   "type": "integer",
   "default": 0,
   "example": 0,
   "description": "Number of businesses to skip per query, for pagination. Allowed values: 0-500."
  },
  "region": {
   "type": "string",
   "default": "us",
   "example": "us",
   "description": "Query Google Maps from a particular region / country (ISO 3166-1 alpha-2 code)."
  },
  "queries": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "example": [
    "plumber in texas",
    "coffee shop in san francisco",
    "hotels in new york"
   ],
   "maxItems": 20,
   "minItems": 1,
   "description": "List of search queries to run in a single request (each treated like a normal Search query). Up to 20 queries per request."
  },
  "language": {
   "type": "string",
   "default": "en",
   "example": "en",
   "description": "Set the language of the results (ISO 639-1 code)."
  },
  "coordinates": {
   "type": "string",
   "example": "40.685219,-74.081180",
   "description": "Bias the search toward a specific location, as a \"lat,lng\" string."
  }
 }
}
```

## 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-bulk-search-local-business-multi-query-0b47abc2/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)
