# Area Search By Radius

> Area Search By Radius 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 local business listings within a circular radius of a given latitude/longitude coordinate point.

## Facts

- Endpoint: GET https://agents.openwebninja.com/local-business-database/area-search-by-radius?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-area-search-by-radius-09c04445
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_TsCQUP6LgSIFjl8to4GqR

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-area-search-by-radius-09c04445
```

Example prompt: Find all restaurants within 2 kilometers of latitude 41.8827, longitude -87.6233 in Chicago — give me up to 50 results with their names, addresses, ratings, and phone numbers.

## When to prefer this

Use this endpoint when you need to find businesses within a circular geographic area defined by a center point and radius. Prefer it over the bounding-box variant when working with natural proximity searches (e.g. 'within 2 km of here') rather than rectangular map tiles. Ideal when you have a precise coordinate (GPS, geocoded address) and want to discover any type of local business or filter by category, name, city, or state within that area.

## Known failure modes

- Missing required parameters (lat, lng, or radius) returns a 400 error
- Radius out of allowed range (1–100,000 meters) returns a validation error
- Invalid cursor (expired or modified) returns a pagination error
- No matching businesses returns 200 with empty businesses array (not an error)
- Authentication/payment failure returns 402 or 401

## How this service works

Search business listings within a given distance of a center coordinate point.

`lat`, `lng` and `radius` are all required, and any field parameter of the Search endpoint can be combined with them.

**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 JSON object containing an array of matching business listings with fields such as name, address, phone, rating, coordinates, business category, hours, website, Google CID, and operational status. Also includes a total match_count (not limited to the current page) and a pagination cursor for fetching subsequent pages. An empty businesses array (with status 200) is returned if no matches are found.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "lat",
  "lng",
  "radius"
 ],
 "properties": {
  "lat": {
   "type": "number",
   "maximum": 90,
   "minimum": -90,
   "description": "Latitude of the center coordinate point of the area to search in.\n\nRequired together with lng and radius."
  },
  "lng": {
   "type": "number",
   "maximum": 180,
   "minimum": -180,
   "description": "Longitude of the center coordinate point of the area to search in.\n\nRequired together with lat and radius."
  },
  "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|add
… (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-area-search-by-radius-09c04445/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)
