# Local Business Search

> Local Business Search 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 and filter local business listings by name, category, city, state, ZIP code, country, phone, and more with pagination support.

## Facts

- Endpoint: GET https://agents.openwebninja.com/local-business-database/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-local-business-search-6ab9ec0d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_FOUSJvF7P0ZoVdbg3XG2a

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-local-business-search-6ab9ec0d
```

Example prompt: Find me all Italian restaurants in Chicago, Illinois — return up to 50 results with their name, address, phone number, rating, and website.

## When to prefer this

Use this endpoint when you need to search business listings by structured attributes like name, category, city, state, ZIP, country, or phone. Prefer this over the bounding box or radius area search endpoints when you have named geographic filters (city/state/ZIP) rather than map coordinates. Best for directory lookups, competitor research, and lead generation by location and category.

## Known failure modes

- No matching businesses found — returns 200 with empty businesses array (not an error)
- Missing all filter parameters — returns an error since at least one filter is required
- Invalid cursor — expired or malformed cursor returns an error
- Limit out of range — values outside 1-500 are rejected
- Unsupported country code — invalid ISO 3166-1 alpha-2 values may yield no results

## How this service works

Search business listings by any combination of the field parameters below - name, category, address, city, ZIP code, state, country, phone number and more.

At least one of the filter parameters below is required for search. To search inside a map area, use the Area Search By Bounding Box or the Area Search By Radius endpoint.

**Note:** `match_count` is the total number of matching businesses, not the number returned on this page. A `cursor` is returned while further pages are available and omitted on the last page.

**Note:** a query that matches nothing is not an error. The response is a `200` with an empty `businesses` array.

## Output

Returns a paginated list of matching business objects, each containing fields such as business_id, name, address, city, state, country, phone, website, rating, review_count, categories, main_category, coordinates (lat/lng), operating hours, status (operational/closed/temporarily_closed), photos, and more. Also returns match_count (total matches) and a cursor for fetching additional pages.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "city"
 ],
 "properties": {
  "city": {
   "oneOf": [
    {
     "type": "string",
     "maxLength": 256
    },
    {
     "type": "array",
     "items": {
      "type": "string",
      "maxLength": 256
     },
     "maxItems": 32
    }
   ],
   "description": "Find businesses in a specific city.\n\nAccepts up to 32 values by repeating the parameter *(e.g. `city=value1&city=value2`)*.\n\nValues cannot be comma separated here, as a comma can be part of the value. In the POST form, send an array instead.\n\n**Examples:**\n\n`Chicago`"
  },
  "name": {
   "type": "string",
   "maxLength": 256,
   "description": "Find businesses by their display name.\n\n**Examples:**\n\n`Office of City Treasurer`\n\n`Avante Catering`\n\n`Truist`"
  },
  "limit": {
   "type": "integer",
   "description": "Maximum number of businesses to return.\n\n**Allowed values:** `1-500`"
  },
  "state": {
   "oneOf": [
    {
     "type": "string",
     "pattern": "^[^,]{0,256}(,[^,]{0,256}){0,31}$"
    },
    {
     "type": "array",
     "items": {
      "type": "string",
      "maxLength": 256
     },
     "maxItems": 32
    }
   ],
   "description": "Find businesses in a specific state or province. Accepts a comma separated list of up to 32 values, or the parameter repeated up to 32 times (values are OR'ed).\n\nUS states match either way they are sent, by full name or by two-letter code.\n\n**Examples:**\n\n`Illinois`\n\n`Illinois,Florida,Ontario`\n\n`IL,FL`"
  },
  "cursor": {
   "type": "string",
   "maxLength": 1024,
   "description": "Pagination cursor for fetching the next page. Pass the `cursor` value returned in the previous response. Omit it on the first request.\n\n**Note:** a cursor is only valid for the exact query that produced it, and it expires. Do not build or edit one."
  },
  "fields": {
   "type": "string",
   "pattern": "^\\s*$|^\\s*(business_id|name|address|lat|lng|categories|main_category|phone|website|tld|status|rating|review_count|place_id|google_mid|cid|place_link|timezone|owner_id|owner_name|owner_link|address_short|district|street_address|city|zipcode|state|country|photo_count|photos_sample|verified|opening_status|working_hours|opening_date|reviews_per_rating|price_level|reviews_link|booking_link|order_link|reservations_link|category_ids|main_category_id|about|closed_dow|open_24_7|located_in|hotel_stars|hotel_amenities|hotel_location_rating|hotel_review_summary|hotel_booking_options|hotel_results_from_web|first_seen|last_se
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "status",
  "request_id",
  "parameters",
  "data"
 ],
 "properties": {
  "data": {
   "type": "object",
   "required": [
    "businesses",
    "match_count",
    "limit"
   ],
   "properties": {
    "limit": {
     "type": "number",
     "description": "Maximum number of results requested for this page (the limit parameter, or its default)."
    },
    "businesses": {
     "type": "array",
     "items": {
      "type": "object",
      "required": [
       "business_id"
      ],
      "properties": {
       "cid": {
        "type": "string",
        "description": "Google CID (Customer ID) of the business."
       },
       "lat": {
        "type": "number",
        "description": "Latitude of the business location."
       },
       "lng": {
        "type": "number",
        "description": "Longitude of the business location."
       },
       "tld": {
        "type": "string",
        "description": "Domain of the business website."
       },
       "city": {
        "type": "string",
        "description": "City of the business location."
       },
       "name": {
        "type": "string",
        "description": "Display name of the business."
       },
       "about": {
        "type": "object",
        "required": [
         "summary",
         "details"
        ],
        "properties": {
         "details": {
          "type": "object",
          "nullable": true,
          "description": "Structured attribute map, grouped by attribute category (e.g. accessibility, amenities), each mapping an attribute identifier to a 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.",
        "additionalProperties": false
       },
       "phone": {
        "type": "string",
        "description": "Business phone number in E.164 format when available."
       },
       "state": {
        "type": "string",
        "description": "State / region of the business location."
       },
       "rating": {
        "type": "number",
        "description": "Average review rating (1-5) on Google Maps."
       },
       "status": {
        "enum": [
      
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-openwebninja-com-local-business-search-6ab9ec0d/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)
