Yelp 关键词搜索 API
接口健康状态
- 24h 健康值
- 正常
- 健康 / 正常
- 可用
- 少量可用
- 基本不可用
24 小时趋势
30 天趋势
关键词搜索:返回列表,默认 10 条、单次最多 50 条;主要字段 id、name、url、rating、rating_scale、review_count。
请求发到 POST https://api.everyinfra.com/api/v1/social,platform 填 yelp,action 填 search。 单价 $1.39 / 千次(每次 $0.001389),失败和空结果都不收费。 同步返回;慢任务可在请求体加 "mode": "async",先拿 job_id 再轮询。
Yelp 关键词搜索按 keyword 和 location 找本地商户,每条结果带名称、链接、评分 rating 与满分 rating_scale、评价条数、价位档、分类、图片,以及电话、网站、地址、营业时间等资料。它回答「这个地方有哪些这类店、口碑和价位如何」,适合做本地竞品摸底、选址调研和商户名单搭建。
keyword 填商户类别或名称,例如 coffee;location 填城市、街区或邮编,例如 Austin, TX 或 78701,指商户所在地,不是评论者的位置。默认返回 10 条,最多 50 条。
AI 提示词
#请帮我用 EveryInfra 的「Yelp 关键词搜索」接口(yelp/search)写一个数据采集脚本。
接口约定:
- 请求:POST https://api.everyinfra.com/api/v1/social,请求头 Authorization: Bearer <API Key>;Key 从环境变量 EVERYINFRA_API_KEY 读取,不要写进代码。
- 请求体里 platform 填 yelp,action 填 search,参数放在 params 里。
- 必填参数:
- keyword:本地商户或服务关键词,例如 coffee;需要结合 location,否则默认在 New York 搜索,并非全球检索。
- 可选参数:
- location:城市、街区或邮编位置,例如 Austin, TX 或 78701;这是商户所在地,不是评论作者位置。
- limit:这次调用最多返回的条数,整数,1–50;不传按默认值,实际返回可能少于这个数。超过上限会在扣费前返回 422。(默认 10)
- 返回一组记录,每条记录的主要字段:id、name、url、rating、rating_scale、review_count、price_range(价位档($ 到 $$$$))、categories(商家分类)、image_url、phone、website、cuisine(菜系);一共 26 个字段,完整列表见 https://api.everyinfra.com/api/v1/social/catalog?platform=yelp。
- 示例请求体:
{
"platform": "yelp",
"action": "search",
"params": {
"keyword": "coffee"
}
}
- 计费:$1.39 / 千次;失败和空结果不扣费。
- 一次要采几十上百个时,在请求体加 "mode": "async":先拿到 job_id,再轮询 GET https://api.everyinfra.com/api/v1/jobs/{job_id} 取结果。
- 返回 422 时,按错误信息里的候选参数和允许值修正;返回 429 或 503 时,按 Retry-After 等待后重试。
写代码前,先问清楚我要采哪些对象、一共多少个、需要哪些字段、结果存成什么格式,再把方案和大概花费讲给我确认。请求参数
#| 参数名 | 位置 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|---|
Authorization | header | string | 是 | - | Bearer 加你的 API Key。在控制台创建;不要放进网址或代码仓库。 |
platform | body | string | 是 | yelp | 平台标识,固定值。 |
action | body | string | 是 | search | 能力标识,固定值。 |
keyword | body.params | string | 是 | - | 本地商户或服务关键词,例如 coffee;需要结合 location,否则默认在 New York 搜索,并非全球检索。 |
location | body.params | string | 否 | - | 城市、街区或邮编位置,例如 Austin, TX 或 78701;这是商户所在地,不是评论作者位置。 |
limit | body.params | integer (1–50) | 否 | 10 | 这次调用最多返回的条数,整数,1–50;不传按默认值,实际返回可能少于这个数。超过上限会在扣费前返回 422。 |
代码示例
#curl -X POST 'https://api.everyinfra.com/api/v1/social' \
-H "Authorization: Bearer $EVERYINFRA_API_KEY" \
-H 'Content-Type: application/json' \
--data-raw '{
"platform": "yelp",
"action": "search",
"params": {
"keyword": "coffee"
}
}'OpenAPI 定义 (JSON)示例从环境变量 EVERYINFRA_API_KEY 读取 Key,复制出去的代码不含你的 Key。
这里填写商家类别或名称;地点条件按该接口的地区参数设置。
响应示例
#{ "id": "req_…", "platform": "yelp", "action": "search", "results": [ { "id": "ten-thousand-coffee-new-york", "name": "Ten Thousand Coffee", "url": "https://www.yelp.com/biz/ten-thousand-coffee-new-york", "rating": 4.4, "rating_scale": 5, "review_count": 451, "price_range": "$$", "categories": [ "Coffee & Tea" ], "image_url": "https://s3-media0.fl.yelpcdn.com/bphoto/QMmT8iplPLki--HoVPsBtA/ls.jpg", "platform": "yelp" }, { "id": "remi-flower-and-coffee-new-york-2", "name": "Remi Flower & Coffee", "url": "https://www.yelp.com/biz/remi-flower-and-coffee-new-york-2", "rating": 4.5, "rating_scale": 5, "review_count": 762, "price_range": "$$", "categories": [ "Coffee & Tea", "Florists", "Floral Designers" ], "image_url": "https://s3-media0.fl.yelpcdn.com/bphoto/jdhmWm_f2Js83l0prfbzLg/ls.jpg", "platform": "yelp" } ], "count": 10, "billing": { "charged": …, "charged_usd": …, "balance_after_usd": …, … }, "quota": { … }}
返回字段
#业务数据在 results 里;下表是每条记录可能包含的字段,平台没有提供的值不会被编造。
| 字段 | 含义 |
|---|---|
id | 该记录在原平台上的唯一标识。仅在同一平台内唯一,跨平台可能重复。 |
name | 名称。用于账号/商品/商家类能力,指该对象本身的名字。 |
url | 该记录在原平台上的可访问链接。 |
rating | 评分。分制随平台而异,同一行的 rating_scale 给出该平台满分 (多数是 5,Booking/豆瓣/爱奇艺/NAVER 是 10)。跨平台比较前必须先按 rating_scale 换算。直接比数字会得出反的结论。 |
rating_scale | 上一列 rating 的满分。5 表示五星制、10 表示十分制。只在该行有 rating 时出现。 |
review_count | 评价条数,用于商品/商家类能力。null 表示不公开,不等于 0。 |
price_range | 价位档($ 到 $$$$)。 |
categories | 商家分类。 |
image_url | 图片链接。多图能力可能返回 image_urls 数组。 |
platform | 数据来源平台标识,与请求里的 platform 一致(如 xiaohongshu、tiktok)。 |
phone | 联系电话,原文透传,未做号码格式归一。 |
website | 账号或商家填写的外链网址。 |
cuisine | 菜系。 |
description | 简介或描述,通常比 text 短。 |
address | 详细地址,原文透传。 |
city | 城市名,用原平台的语言书写,未做中英归一。 |
region | 区域。 |
postal_code | 邮编。 |
country | 国家或地区。可能是全称也可能是 ISO 代码,取决于平台,未归一。 |
is_claimed | 商家是否已认领主页。未认领说明店家不运营 Yelp,信息可能过时。 |
is_verified | 是否为平台认证账号(蓝V等)。null 表示无法判定。 |
health_score | 卫生检查评分(政府数据,餐厅类才有)。 |
established_year | 开业年份。 |
images | 图片链接数组,按平台展示顺序;没有图片时不出现这个字段。 |
amenities | 设施与服务列表,按 Yelp 页面原文;没有时不出现这个字段。 |
highlights | Yelp 页面上的商家亮点标签,按页面原文;没有时不出现这个字段。 |
hours | 营业时间,键是星期几的缩写(如 Mon),值是当天的营业时段原文;没有时不出现这个字段。 |
常见问题
#不传 location 会搜哪里?
#默认在 New York 搜索,并不是全球检索。想搜别的地方,要把城市、街区或邮编填进 location,例如 Austin, TX 或 78701。location 是商户所在地,不是评论作者的位置。
搜索结果和商户主页那一页差在哪?
#字段完全一样,差别在入口:这一页按关键词和地点给一批商户,最多 50 条;商户主页那一页按 /biz/ 链接读单个商户。搜索结果已经带地址、电话、营业时间等资料,想再确认某一家时,用结果里的 url 去读主页那一页。
怎么比较搜出来的商户口碑?
#先看 rating_scale 确认满分,再比 rating,并把 review_count 一起看:评价条数很少的评分,参考价值有限。review_count 为 null 时是平台没有公开,不等于 0。is_claimed 为假表示商家没认领主页,这类店的电话和营业时间最好另找渠道核对。
错误与计费
#- 401
- 缺少 Key 或 Key 无效。
- 402
- 余额不足,先充值。
- 422
- 参数名或取值不对,按错误信息给的候选改;不扣费。
- 429
- 超过每分钟请求上限,按 Retry-After 等待后再试。
- 503
- 暂时无法完成,预扣的费用退回;结果未知时先核对,不要直接重发。
- 200 空结果
- 没有数据,不扣费。