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
floatConditional—Latitude (-90.0 to 90.0). Required together with
longitude
longitude
floatConditional—Longitude (-180.0 to 180.0). Required together with
latitude
location
stringNo—Location 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
stringNo—Free-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
floatNo—Search 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
stringNo—User 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
    ),默认偏好或较小半径效果最佳。