local-place-search

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Place Search (Search API)

地点搜索(Search API)

Requires API Key: Get one at https://api.search.brave.com
Plan: Included in the Search plan (with
locations
option). See https://api-dashboard.search.brave.com/app/subscriptions/subscribe
Standalone: Unlike
local-pois
and
local-descriptions
, this endpoint does not require POI IDs from a prior web search. You provide a location and an optional query directly.
需要API Key:可前往https://api.search.brave.com获取
套餐包含:属于Search套餐(含
locations
选项)。详情请见https://api-dashboard.search.brave.com/app/subscriptions/subscribe
独立使用:与
local-pois
local-descriptions
不同,此端点无需来自前置网页搜索的POI ID。你可直接提供位置和可选的查询词。

Quick Start (cURL)

快速开始(cURL)

Search by Query + Coordinates

按查询词+坐标搜索

bash
curl -s "https://api.search.brave.com/res/v1/local/place_search" \
  -H "Accept: application/json" \
  -H "Accept-Encoding: gzip" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -G \
  --data-urlencode "q=coffee shops" \
  --data-urlencode "latitude=37.7749" \
  --data-urlencode "longitude=-122.4194" \
  --data-urlencode "radius=5000"
bash
curl -s "https://api.search.brave.com/res/v1/local/place_search" \
  -H "Accept: application/json" \
  -H "Accept-Encoding: gzip" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -G \
  --data-urlencode "q=coffee shops" \
  --data-urlencode "latitude=37.7749" \
  --data-urlencode "longitude=-122.4194" \
  --data-urlencode "radius=5000"

Search by Query + Location String

按查询词+位置字符串搜索

bash
curl -s "https://api.search.brave.com/res/v1/local/place_search" \
  -H "Accept: application/json" \
  -H "Accept-Encoding: gzip" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -G \
  --data-urlencode "q=sushi restaurants" \
  --data-urlencode "location=tokyo japan" \
  --data-urlencode "country=JP" \
  --data-urlencode "search_lang=en"
bash
curl -s "https://api.search.brave.com/res/v1/local/place_search" \
  -H "Accept: application/json" \
  -H "Accept-Encoding: gzip" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -G \
  --data-urlencode "q=sushi restaurants" \
  --data-urlencode "location=tokyo japan" \
  --data-urlencode "country=JP" \
  --data-urlencode "search_lang=en"

Browse General POIs (No Query)

浏览通用POI(无查询词)

bash
curl -s "https://api.search.brave.com/res/v1/local/place_search" \
  -H "Accept: application/json" \
  -H "Accept-Encoding: gzip" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -G \
  --data-urlencode "latitude=48.8566" \
  --data-urlencode "longitude=2.3522" \
  --data-urlencode "radius=3000" \
  --data-urlencode "country=FR"
bash
curl -s "https://api.search.brave.com/res/v1/local/place_search" \
  -H "Accept: application/json" \
  -H "Accept-Encoding: gzip" \
  -H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
  -G \
  --data-urlencode "latitude=48.8566" \
  --data-urlencode "longitude=2.3522" \
  --data-urlencode "radius=3000" \
  --data-urlencode "country=FR"

Endpoint

端点

http
GET https://api.search.brave.com/res/v1/local/place_search
Authentication:
X-Subscription-Token: <API_KEY>
header
http
GET https://api.search.brave.com/res/v1/local/place_search
身份验证:请求头添加
X-Subscription-Token: <API_KEY>

Parameters

参数

Location (optional but recommended)

位置(可选但推荐)

Providing a geographic anchor improves precision. You can use coordinates (
latitude
+
longitude
) or a
location
string. Omitting both is allowed when a
q
is given — results are sourced globally and may be less precise. Omitting all three (
q
,
latitude
/
longitude
, and
location
) returns HTTP 422.
ParameterTypeRequiredDefaultDescription
latitude
floatConditionalLatitude (-90.0 to 90.0). Required together with
longitude
longitude
floatConditionalLongitude (-180.0 to 180.0). Required together with
latitude
location
stringNoLocation string, alternative to coordinates. US:
<city> <state> <country>
(e.g.,
san francisco ca united states
). Non-US:
<city> <country>
(e.g.,
tokyo japan
). Case-insensitive, no commas needed. English or the most popular local language works best
提供地理锚点可提升搜索精度。你可使用坐标(
latitude
+
longitude
)或
location
字符串。若提供
q
,可同时省略两者——结果将来自全球,精度可能较低。若同时省略
q
latitude
/
longitude
location
,将返回HTTP 422错误。
参数类型是否必填默认值描述
latitude
float条件必填纬度(-90.0至90.0),需与
longitude
同时提供
longitude
float条件必填经度(-180.0至180.0),需与
latitude
同时提供
location
string位置字符串,作为坐标的替代方案。美国地区格式:
<城市> <州> <国家>
(例如:
san francisco ca united states
)。非美国地区格式:
<城市> <国家>
(例如:
tokyo japan
)。不区分大小写,无需逗号。使用英文或当地通用语言效果最佳

Search

搜索

ParameterTypeRequiredDefaultDescription
q
stringNoFree-text query (e.g.,
coffee shops
,
pizza
). Fully optional — if omitted, returns general POIs in the given area
参数类型是否必填默认值描述
q
string自由文本查询词(例如:
coffee shops
pizza
)。完全可选——若省略,将返回指定区域内的通用POI

Additional Options

额外选项

ParameterTypeRequiredDefaultDescription
radius
floatNoSearch radius bias around the provided coordinates, in meters. Not a hard cutoff — results may extend beyond it. No upper limit
count
intNo
20
Total items returned across all buckets (1–100), not just
results
— an address query can spend the whole budget on
addresses
/
streets
geoloc
stringNoUser geolocation as
<latitude>x<longitude>
(e.g.,
40.7128x-74.0060
), used to compute
distance
country
stringNo
US
Search country (2-letter country code or
ALL
)
search_lang
stringNo
en
Language for search results (2+ char language code)
ui_lang
stringNo
en-US
UI language (locale code, e.g.,
en-US
)
units
stringNo
metric
Measurement units:
metric
or
imperial
safesearch
stringNo
strict
Safe search level:
off
,
moderate
, or
strict
spellcheck
boolNo
true
Whether to apply spellcheck to the query
参数类型是否必填默认值描述
radius
float围绕提供坐标的搜索半径偏好值,单位为米。并非严格限制——结果可能超出此范围。无上限
count
int
20
所有分类下返回的总条目数(1–100),并非仅
results
分类——地址查询可能将全部配额用于
addresses
/
streets
分类
geoloc
string用户地理位置,格式为
<latitude>x<longitude>
(例如:
40.7128x-74.0060
),用于计算
distance
country
string
US
搜索国家(两位国家代码或
ALL
search_lang
string
en
搜索结果的语言(两位及以上字符的语言代码)
ui_lang
string
en-US
UI语言(区域代码,例如:
en-US
units
string
metric
计量单位:
metric
(公制)或
imperial
(英制)
safesearch
string
strict
安全搜索级别:
off
(关闭)、
moderate
(中等)或
strict
(严格)
spellcheck
bool
true
是否对查询词进行拼写检查

Response Format

响应格式

Top-Level Fields

顶层字段

FieldTypeDescription
type
stringAlways
"locations"
results
arrayList of
LocationResult
objects (individual POIs)
cities
arrayMatched cities,
type: "city"
— see Geographic Place Fields
countries
arrayMatched countries,
type: "country"
regions
arrayMatched regions,
type: "region"
neighborhoods
arrayMatched neighborhoods,
type: "neighborhood"
addresses
arrayList of
AddressResult
objects with
type: "address"
— specific street + number locations
streets
arrayList of
AddressResult
objects with
type: "street"
— entire streets
mixed
array
ResultReference
ordering hints describing how to interleave the buckets on a SERP
location
object?Resolved location info
location.coordinates
[float, float]
[latitude, longitude]
of the resolved center
location.name
stringResolved location name (e.g.,
"Helsinki"
)
location.country
stringTwo-letter country code (e.g.,
"FI"
)
Treat a missing bucket as empty. For typical POI-style queries only
results
is populated, so clients that don't render rich SERPs can ignore the rest — except for address- or street-shaped queries, which can return an empty
results
and put every match in
addresses
/
streets
.
字段类型描述
type
string固定为
"locations"
results
array
LocationResult
对象列表(单个POI)
cities
array匹配的城市,
type: "city"
——详见地理地点字段
countries
array匹配的国家,
type: "country"
regions
array匹配的地区,
type: "region"
neighborhoods
array匹配的社区,
type: "neighborhood"
addresses
array
AddressResult
对象列表,
type: "address"
——具体街道+门牌号位置
streets
array
AddressResult
对象列表,
type: "street"
——整条街道
mixed
array
ResultReference
排序提示,描述如何在搜索结果页(SERP)中交错显示不同分类的内容
location
object?解析后的位置信息
location.coordinates
[float, float]解析后的中心坐标
[纬度, 经度]
location.name
string解析后的位置名称(例如:
"Helsinki"
location.country
string两位国家代码(例如:
"FI"
缺失的分类视为空。对于典型的POI类查询,仅
results
分类会被填充,因此不渲染丰富搜索结果页的客户端可忽略其他分类——但地址或街道类查询除外,此类查询可能返回空的
results
,并将所有匹配项放入
addresses
/
streets
分类。

LocationResult Fields

LocationResult字段

Each item in
results
is a
LocationResult
:
FieldTypeDescription
type
stringAlways
"location_result"
title
stringBusiness/POI name
url
stringCanonical URL
description
string?Short description or category label (e.g.,
"Coffee Shop"
)
provider_url
stringProvider page URL
id
string?Opaque POI identifier (valid ~8 hours, usable with
local-pois
and
local-descriptions
)
coordinates
[float, float]?
[latitude, longitude]
postal_address
object
displayAddress
, plus optional
streetAddress
,
addressLocality
,
addressRegion
,
postalCode
,
country
contact.telephone
string?Phone number
contact.email
string?Email address
rating.ratingValue
float?Average rating
rating.bestRating
float?Max possible rating
rating.reviewCount
int?Number of reviews
rating.is_tripadvisor
boolWhether the rating comes from Tripadvisor
opening_hours.current_day
object[]?Today's hours (
abbr_name
,
full_name
,
opens
,
closes
)
opening_hours.days
object[][]?Hours for each day of the week
categories
string[]Business categories (default
[]
)
price_range
string?Price indicator, e.g.
$
,
$$
,
$$ - $$$
serves_cuisine
string[]?Cuisine types (restaurants)
distance.value
float?Distance from the search location
distance.units
string?Distance unit
icon_category
string?Icon category slug (e.g.,
cafe
)
thumbnail.src
string?Thumbnail image URL
thumbnail.original
string?Original image URL
pictures.results
object[]?Additional images (
src
,
original
)
profiles
object[]?External profiles (
name
,
url
,
long_name
,
img
)
timezone
string?IANA timezone (e.g.,
America/Los_Angeles
)
zoom_level
intSuggested map zoom level (default
7
)
results
中的每个条目都是一个
LocationResult
对象:
字段类型描述
type
string固定为
"location_result"
title
string企业/POI名称
url
string标准URL
description
string?简短描述或类别标签(例如:
"Coffee Shop"
provider_url
string提供商页面URL
id
string?不透明的POI标识符(有效期约8小时,可用于
local-pois
local-descriptions
接口)
coordinates
[float, float]?
[纬度, 经度]
postal_address
object
displayAddress
,以及可选的
streetAddress
addressLocality
addressRegion
postalCode
country
contact.telephone
string?电话号码
contact.email
string?电子邮箱地址
rating.ratingValue
float?平均评分
rating.bestRating
float?最高可能评分
rating.reviewCount
int?评论数量
rating.is_tripadvisor
bool评分是否来自Tripadvisor
opening_hours.current_day
object[]?今日营业时间(
abbr_name
full_name
opens
closes
opening_hours.days
object[][]?一周中每天的营业时间
categories
string[]企业类别(默认
[]
price_range
string?价格标识,例如
$
$$
$$ - $$$
serves_cuisine
string[]?菜系类型(仅餐厅)
distance.value
float?与搜索位置的距离
distance.units
string?距离单位
icon_category
string?图标类别标识(例如:
cafe
thumbnail.src
string?缩略图URL
thumbnail.original
string?原图URL
pictures.results
object[]?额外图片(
src
original
profiles
object[]?外部资料(
name
url
long_name
img
timezone
string?IANA时区(例如:
America/Los_Angeles
zoom_level
int建议的地图缩放级别(默认
7

Geographic Place Fields (
cities
,
countries
,
regions
,
neighborhoods
)

地理地点字段(
cities
countries
regions
neighborhoods

All four buckets share one shape, differing only by the
type
identifier. The published spec names them
CityResult
/
CountryResult
/
RegionResult
/
NeighborhoodResult
.
FieldTypeDescription
type
stringBucket identifier:
city
,
country
,
region
, or
neighborhood
name
stringPlace name
country
stringCountry code of the place
coordinates
[float, float]
[latitude, longitude]
thumbnail.src
stringPrimary image URL
这四个分类的结构相同,仅
type
标识符不同。官方规范将它们命名为
CityResult
/
CountryResult
/
RegionResult
/
NeighborhoodResult
字段类型描述
type
string分类标识符:
city
country
region
neighborhood
name
string地点名称
country
string地点所属的国家代码
coordinates
[float, float]
[纬度, 经度]
thumbnail.src
string主图URL

AddressResult Fields (
addresses
and
streets
)

AddressResult字段(
addresses
streets

Same model is used for both buckets. Items in
addresses
have
type: "address"
(street + number); items in
streets
have
type: "street"
(entire street).
FieldTypeDescription
type
string
"address"
(in
addresses
) or
"street"
(in
streets
)
name
stringDisplay name of the address or street
coordinates
[float, float]
[latitude, longitude]
pois
object[]
LocationResult
objects located at this address/street
pois_nearby
object[]
LocationResult
objects located nearby
zoom_level
intSuggested map zoom level (default
15
)
distance.value
float?Distance from the search location
distance.units
string?Distance unit
postal_address
object?
displayAddress
,
streetAddress
,
addressLocality
,
addressRegion
,
country
两个分类使用相同的模型。
addresses
中的条目
type: "address"
(街道+门牌号);
streets
中的条目
type: "street"
(整条街道)。
字段类型描述
type
string
"address"
(属于
addresses
分类)或
"street"
(属于
streets
分类)
name
string地址或街道的显示名称
coordinates
[float, float]
[纬度, 经度]
pois
object[]位于此地址/街道的
LocationResult
对象
pois_nearby
object[]位于此地址/街道附近的
LocationResult
对象
zoom_level
int建议的地图缩放级别(默认
15
distance.value
float?与搜索位置的距离
distance.units
string?距离单位
postal_address
object?
displayAddress
streetAddress
addressLocality
addressRegion
country

Mixed Ordering (
mixed
)

混合排序(
mixed

mixed
is an ordered list of
ResultReference
objects telling clients how to interleave items from the different buckets on a single SERP.
FieldTypeDescription
type
stringBucket to draw from:
results
,
cities
,
countries
,
regions
,
neighborhoods
,
addresses
, or
streets
index
int?0-based index of the item within that bucket. May be
null
when
all
is
true
all
boolWhen
true
, all remaining items from the named bucket should be placed at this position
Clients that only render POIs can ignore
mixed
entirely and read
results
directly.
mixed
ResultReference
对象的有序列表,告知客户端如何在单个搜索结果页(SERP)中交错显示不同分类的内容。
字段类型描述
type
string来源分类:
results
cities
countries
regions
neighborhoods
addresses
streets
index
int?该分类内条目的0-based索引。当
all
true
时可能为
null
all
bool若为
true
,则该分类中剩余的所有条目应放置在此位置
仅渲染POI的客户端可完全忽略
mixed
,直接读取
results
即可。

Example Response

响应示例

json
{
  "type": "locations",
  "results": [
    {
      "type": "location_result",
      "title": "Blue Bottle Coffee",
      "url": "https://yelp.com/biz/blue-bottle-coffee-sf",
      "provider_url": "",
      "id": "loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA=",
      "description": "Coffee Shop",
      "postal_address": {
        "type": "PostalAddress",
        "displayAddress": "315 Linden St, San Francisco, CA 94102"
      },
      "contact": { "telephone": "+15106533394" },
      "rating": {
        "ratingValue": 4.3,
        "bestRating": 5.0,
        "reviewCount": 1024,
        "is_tripadvisor": true
      },
      "opening_hours": {
        "current_day": [
          { "abbr_name": "Tue", "full_name": "Tuesday", "opens": "07:00", "closes": "18:00" }
        ],
        "days": [
          [{ "abbr_name": "Mon", "full_name": "Monday", "opens": "07:00", "closes": "18:00" }]
        ]
      },
      "coordinates": [37.7763, -122.4215],
      "categories": [],
      "serves_cuisine": ["Cafe", "Coffee Shop"],
      "price_range": "$$",
      "icon_category": "cafe",
      "thumbnail": {
        "src": "https://example.com/thumb.jpg",
        "original": "https://example.com/original.jpg"
      },
      "zoom_level": 7
    }
  ],
  "cities": [],
  "countries": [],
  "regions": [],
  "neighborhoods": [],
  "addresses": [],
  "streets": [],
  "mixed": [
    { "type": "results", "index": 0, "all": false }
  ],
  "location": {
    "coordinates": [37.7749, -122.4194],
    "name": "San Francisco",
    "country": "US"
  }
}
For a query that matches a city name, the response additionally surfaces a city entry in
cities
:
json
{
  "cities": [
    {
      "type": "city",
      "name": "San Francisco",
      "country": "US",
      "coordinates": [37.7749, -122.4194],
      "thumbnail": { "src": "https://example.com/sf.jpg" }
    }
  ],
  "mixed": [
    { "type": "cities", "index": 0, "all": false }
  ]
}
json
{
  "type": "locations",
  "results": [
    {
      "type": "location_result",
      "title": "Blue Bottle Coffee",
      "url": "https://yelp.com/biz/blue-bottle-coffee-sf",
      "provider_url": "",
      "id": "loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA=",
      "description": "Coffee Shop",
      "postal_address": {
        "type": "PostalAddress",
        "displayAddress": "315 Linden St, San Francisco, CA 94102"
      },
      "contact": { "telephone": "+15106533394" },
      "rating": {
        "ratingValue": 4.3,
        "bestRating": 5.0,
        "reviewCount": 1024,
        "is_tripadvisor": true
      },
      "opening_hours": {
        "current_day": [
          { "abbr_name": "Tue", "full_name": "Tuesday", "opens": "07:00", "closes": "18:00" }
        ],
        "days": [
          [{ "abbr_name": "Mon", "full_name": "Monday", "opens": "07:00", "closes": "18:00" }]
        ]
      },
      "coordinates": [37.7763, -122.4215],
      "categories": [],
      "serves_cuisine": ["Cafe", "Coffee Shop"],
      "price_range": "$$",
      "icon_category": "cafe",
      "thumbnail": {
        "src": "https://example.com/thumb.jpg",
        "original": "https://example.com/original.jpg"
      },
      "zoom_level": 7
    }
  ],
  "cities": [],
  "countries": [],
  "regions": [],
  "neighborhoods": [],
  "addresses": [],
  "streets": [],
  "mixed": [
    { "type": "results", "index": 0, "all": false }
  ],
  "location": {
    "coordinates": [37.7749, -122.4194],
    "name": "San Francisco",
    "country": "US"
  }
}
若查询词匹配城市名称,响应将在
cities
分类中额外显示城市条目:
json
{
  "cities": [
    {
      "type": "city",
      "name": "San Francisco",
      "country": "US",
      "coordinates": [37.7749, -122.4194],
      "thumbnail": { "src": "https://example.com/sf.jpg" }
    }
  ],
  "mixed": [
    { "type": "cities", "index": 0, "all": false }
  ]
}

Enriching Results with POI Details and Descriptions

使用POI详情和描述丰富结果

POI
id
values from
results
can be passed to sibling endpoints for richer data:
bash
undefined
results
中的POI
id
可传递至关联端点以获取更丰富的数据:
bash
undefined

Get full POI details (hours, reviews, photos, web result mentions)

获取完整POI详情(营业时间、评论、照片、网页结果提及)

curl -s "https://api.search.brave.com/res/v1/local/pois" -G
--data-urlencode "ids=loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA="
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}"
curl -s "https://api.search.brave.com/res/v1/local/pois" -G
--data-urlencode "ids=loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA="
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}"

Get AI-generated descriptions

获取AI生成的描述

curl -s "https://api.search.brave.com/res/v1/local/descriptions" -G
--data-urlencode "ids=loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA="
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}"
undefined
curl -s "https://api.search.brave.com/res/v1/local/descriptions" -G
--data-urlencode "ids=loc4CQWMJWLD4VBEBZ62XQLJTGK6YCJEEJDNAAAAAAA="
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}"
undefined

Use Cases

使用场景

  • Map-based exploration: Search for POIs within a visible map viewport using coordinates + radius. No prior query needed.
  • Location-aware apps: Build "nearby" features — pass device GPS coordinates and a query to find relevant businesses.
  • Travel planning: Search for attractions, restaurants, and hotels by location string (e.g.,
    paris france
    ) without needing exact coordinates.
  • 基于地图的探索:使用坐标+半径搜索可见地图视口内的POI,无需前置查询词。
  • 位置感知应用:构建“附近”功能——传递设备GPS坐标和查询词以查找相关企业。
  • 旅行规划:通过位置字符串(例如:
    paris france
    )搜索景点、餐厅和酒店,无需精确坐标。

Notes

注意事项

  • Finds places, not pages: This endpoint searches a geographic index of physical places. Use web search for general information retrieval.
  • Choosing a radius: A tighter radius (below ~20 km) gives more focused results. Raise it to reach specific or well-known places further afield; for common category searches (e.g.,
    restaurants
    ), the default bias or tighter works best.
  • 查找地点而非网页:此端点搜索现实地点的地理索引。如需通用信息检索,请使用网页搜索。
  • 选择半径:较小的半径(约20公里以下)可获得更聚焦的结果。如需搜索更远的特定或知名地点,可增大半径;对于常见类别搜索(例如:
    restaurants
    ),默认偏好或较小半径效果最佳。