# Brave Local Place Search

> Brave Local Place Search is a paid API for AI agents from AIsa MPP Data APIs at api.aisa.one, paid per call via MPP, $0.005/call, status unknown (last checked 2026-10-14).

Search for nearby points of interest and local businesses using Brave's local search, filtered by query, location, radius, and country.

## Facts

- Endpoint: GET https://api.aisa.one/apis/v1/brave/local/place_search?utm_source=zero.xyz
- Price: $0.005/call
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-14
- Activations on Zero: 0
- Provider: AIsa MPP Data APIs
- Website: https://aisa.one
- Tags: web-search, financial-data, prediction-markets, weather, travel, data, search
- Canonical page: https://www.zero.xyz/c/aisa-mpp-data-apis-brave-local-place-search-3d413a8d
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_QwgZnXyAZlfYlMtjPue_X

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 aisa-mpp-data-apis-brave-local-place-search-3d413a8d
```

Example prompt: Can you find the top 10 Italian restaurants within 2 kilometers of 48.8566x2.3522 in France, using metric units?

## When to prefer this

Choose this endpoint when you need structured local place/POI search results powered by Brave Search, especially when you need geolocation-biased results with distance calculations, country scoping, and multi-language support. Prefer over generic web search endpoints when the goal is specifically finding nearby businesses or points of interest rather than general web documents.

## Known failure modes

- Invalid geoloc format (must be latitudexlongitude) returns a 422 validation error
- Unsupported country code returns a validation error
- Count exceeding 100 results in a parameter validation error
- No results found for query returns empty results array
- Radius of 0 or negative value returns validation error
- Unsupported ui_lang or language code returns validation error

## How this service works

<!-- aisa-pricing:start -->
Published reference price: $0.005 USD per successful request. Account-specific pricing and final settlement may differ.
<!-- aisa-pricing:end -->

## Output

Returns a structured JSON object containing ranked place listings (businesses, POIs, cities) with names, addresses, coordinates, distances from the provided geolocation, ratings, and metadata. Also includes the original query details and a mixed-ranking guide for result display order.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "q": {
   "type": "string",
   "title": "Q",
   "default": "",
   "description": "Query string to search for points of interest in an area. If no <code>q</code> is provided, the endpoint will return general points of interest in the given area."
  },
  "count": {
   "type": "integer",
   "title": "Count",
   "default": 20,
   "maximum": 100,
   "minimum": 1,
   "description": "Number of results to return. The maximum is 100."
  },
  "units": {
   "allOf": [
    {
     "enum": [
      "imperial",
      "metric"
     ],
     "type": "string",
     "title": "MeasurementUnit"
    },
    {
     "default": "metric"
    }
   ],
   "description": "Units of measurement for distance values: <code>metric</code> is kilometres, <code>imperial</code> is miles."
  },
  "geoloc": {
   "anyOf": [
    {
     "type": "string"
    },
    {
     "type": "null"
    }
   ],
   "title": "Geoloc",
   "description": "Optional geolocation of the user in the format <code>&lt;latitude&gt;x&lt;longitude&gt;</code>. Used to calculate distance values in results."
  },
  "radius": {
   "anyOf": [
    {
     "type": "number",
     "minimum": 0
    },
    {
     "type": "null"
    }
   ],
   "title": "Radius",
   "description": "Search radius bias around the given coordinates, in meters. <strong>NOTE</strong>: This is not strictly the radius of the search (nor the resulting radius of the results), but rather a bias towards results that are closer to the given coordinates. Search is performed globally if no radius is provided."
  },
  "country": {
   "allOf": [
    {
     "enum": [
      "AR",
      "AU",
      "AT",
      "BE",
      "BR",
      "CA",
      "CL",
      "DK",
      "FI",
      "FR",
      "DE",
      "GR",
      "HK",
      "IN",
      "ID",
      "IT",
      "JP",
      "KR",
      "MY",
      "MX",
      "NL",
      "NZ",
      "NO",
      "CN",
      "PL",
      "PT",
      "PH",
      "RU",
      "SA",
      "ZA",
      "ES",
      "SE",
      "CH",
      "TW",
      "TR",
      "GB",
      "US",
      "ALL"
     ],
     "type": "string",
     "title": "SearchCountry"
    },
    {
     "default": "US"
    }
   ],
   "description": "Two-letter country code (ISO 3166-1 alpha-2) to scope the search."
  },
  "ui_lang": {
   "allOf": [
    {
     "enum": [
      "es-AR",
      "en-AU",
      "de-AT",
      "nl-BE",
      "fr-BE",
      "pt-BR",
      "en-CA",
      "fr-CA",
      "es-CL",
      "da-DK",
      "fi-FI",
      "fr-FR",
   
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "title": "LocalPlaceSearchApiResponse",
 "properties": {
  "type": {
   "enum": [
    "locations"
   ],
   "type": "string",
   "const": "locations",
   "title": "Type",
   "default": "locations"
  },
  "mixed": {
   "type": "array",
   "items": {
    "type": "object",
    "title": "ResultReference",
    "required": [
     "type"
    ],
    "properties": {
     "all": {
      "type": "boolean",
      "title": "All",
      "default": false,
      "description": "Whether to put all the results from the type at specific position."
     },
     "type": {
      "type": "string",
      "title": "Type",
      "description": "The type of the result."
     },
     "index": {
      "anyOf": [
       {
        "type": "integer"
       },
       {
        "type": "null"
       }
      ],
      "title": "Index",
      "description": "The 0th based index where the result should be placed."
     }
    },
    "description": "The ranking order of results on a search result page."
   },
   "title": "Mixed",
   "default": [],
   "description": "The list of mixed results for the given query."
  },
  "query": {
   "anyOf": [
    {
     "type": "object",
     "title": "Query",
     "required": [
      "original"
     ],
     "properties": {
      "altered": {
       "anyOf": [
        {
         "type": "string"
        },
        {
         "type": "null"
        }
       ],
       "title": "Altered",
       "description": "The altered query by the spellchecker. This is the query that is used to search."
      },
      "original": {
       "type": "string",
       "title": "Original",
       "description": "The original query that was requested."
      },
      "spellcheck_off": {
       "anyOf": [
        {
         "type": "boolean"
        },
        {
         "type": "null"
        }
       ],
       "title": "Spellcheck Off",
       "description": "Whether the spellchecker is enabled or disabled."
      },
      "show_strict_warning": {
       "anyOf": [
        {
         "type": "boolean"
        },
        {
         "type": "null"
        }
       ],
       "title": "Show Strict Warning",
       "description": "The value is <code>true</code> if the lack of results is due to a <code>strict</code> safesearch setting. Adult content relevant to the query was found, but was blocked by safesearch."
      }
     }
    },
    {
     "type": "null"
    }
   ],
   "description": "The query object containing the original and potentially spell-corrected que
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/aisa-mpp-data-apis-brave-local-place-search-3d413a8d/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.aisa.one](https://www.zero.xyz/host/api.aisa.one/llms.txt)
