Skip to content

App Store 应用排名实时查询

接口说明

该接口用于查询指定 App 在 App Store 中已获得排名的列表,并返回每个的数据及该 App 在对应下的排名信息。

返回结果严格对应请求中指定的 app_id

app_id 可从 App Store 应用页 URL 中提取,即 URL 中 id 后面的数字。例如:

https://apps.apple.com/us/app/id835599320

该应用的 app_id 为:

835599320

请求地址

POST https://api.seermartech.cn/v3/dataforseo_labs/apple/keywords_for_app/live

计费说明

该接口按请求次数计费。 参考价约 ¥0.1760 / 次 扣费以响应头 X-SeerMarTech-Charge-CNY 为准。

请求规则

  • 请求方法:POST
  • 请求体格式:JSON
  • 编码:UTF-8
  • 请求体为 JSON 数组格式:[{ ... }]
  • 支持结果筛选、排序、分页
  • 频率限制:最高 2000 次 API 调用/分钟

请求参数

字段名类型说明
app_idstring。App Store 应用 ID。可从应用 URL 中获取,例如 https://apps.apple.com/us/app/id835599320 中的 835599320
location_namestring当未提供 location_code 时填。地理位置名称。二选一填写 location_namelocation_code。可通过 /v3/dataforseo_labs/locations_and_languages 获取可用地区列表。当前支持美国。示例:United States
location_codeinteger当未提供 location_name 时填。地区代码。二选一填写 location_namelocation_code。可通过 /v3/dataforseo_labs/locations_and_languages 获取可用地区列表。当前支持美国。示例:2840
language_namestring当未提供 language_code 时填。语言名称。二选一填写 language_namelanguage_code。可通过 /v3/dataforseo_labs/locations_and_languages 获取可用语言列表。当前支持英文。示例:English
language_codestring当未提供 language_name 时填。语言代码。二选一填写 language_namelanguage_code。可通过 /v3/dataforseo_labs/locations_and_languages 获取可用语言列表。当前支持英文。示例:en
filtersarray可选。结果过滤条件数组,最多 8 个过滤条件。多个条件之间可使用逻辑运算符 andor。支持操作符:<<=>>==<>innot_in。参考过滤规则文档:/v3/dataforseo_labs/filters
order_byarray可选。结果排序规则。可使用与 filters 相同的字段路径。排序方式支持:asc(升序)、desc(降序)。单次请求最多支持 3 条排序规则。默认排序规则由平台 API 确定。
limitinteger可选。返回的最大数量。默认值:100;最大值:1000
offsetinteger可选。结果偏移量。默认值:0。例如传 10 时,将跳过前 10 条结果,从第 11 条开始返回。
tagstring可选。自定义任务标识,最长 255 个字符。可用于请求与响应结果的业务,返回时会出现在响应 data 对象中。

filters 使用说明

filters 为数组结构,可组合多个条件。例如按搜索量过滤:

json
[
 ["keyword_data.keyword_info.search_volume", ">=", 500]
]

多个条件组合时,可在条件间使用 and / or,例如:

json
[
 ["keyword_data.keyword_info.search_volume", ">=", 500],
 "and",
 ["ranked_serp_element.serp_item.rank_absolute", "<=", 10]
]

order_by 使用说明

可按字段进行排序,例如:

json
[
 ["keyword_data.keyword_info.search_volume","desc"],
 ["ranked_serp_element.serp_item.rank_absolute","asc"]
]

响应结构

接口返回 JSON 数据,顶层 tasks 数组,每个任务对应一次请求对象。

顶层字段

字段名类型说明
versionstringAPI 当前版本
status_codeinteger总体状态码,完整列表见 /v3/appendix/errors
status_messagestring总体状态信息,完整列表见 /v3/appendix/errors
timestring执行耗时,单位秒
costfloat本次请求总成本,单位 USD
tasks_countintegertasks 数组中的任务数量
tasks_errorintegertasks 数组中返回错误的任务数量
tasksarray任务结果数组

tasks[] 字段

字段名类型说明
idstring任务唯一标识,UUID 格式
status_codeinteger任务状态码,范围通常为 10000-60000,完整列表见 /v3/appendix/errors
status_messagestring任务状态信息
timestring单任务执行耗时,单位秒
costfloat单任务成本,单位 USD
result_countintegerresult 数组中的数量
patharray请求路径
dataobject与请求体中提交参数一致
resultarray获取结果数组

result[] 字段

字段名类型说明
se_typestring搜索引擎类型
app_idstring请求中的应用 ID
location_codeinteger请求中的地区代码
language_codestring请求中的语言代码
total_countinteger数据库中与当前请求的结果总数
items_countinteger当前 items 数组返回的结果数量
itemsarray结果列表

items[] 字段

items 中的每一项表示该 App 已排名的一个及对应数据、排名信息。

字段名类型说明
se_typestring搜索引擎类型
keyword_dataobject数据
ranked_serp_elementobject该下命中的 App Store 搜索结果

keyword_data 字段

字段名类型说明
se_typestring搜索引擎类型
keywordstring返回的
location_codeinteger请求中的地区代码
language_codestring请求中的语言代码
keyword_infoobject

keyword_info 字段

字段名类型说明
se_typestring搜索引擎类型
last_updated_timestring数据更新时间,UTC 格式,如 2019-11-15 12:57:46 +00:00
competitionfloat竞争度,取值范围 0-1。该接口场景下通常为 null
competition_levelstring竞价竞争等级,可能值:LOWMEDIUMHIGH;未知时为 null。该接口场景下通常为 null
cpcfloat平均点击成本(USD)。该接口场景下通常为 null
search_volumeinteger平均月搜索量,表示该在 App Store 中的大致搜索次数
low_top_of_page_bidfloat首页顶部低位竞价参考值。该接口场景下通常为 null
high_top_of_page_bidfloat首页顶部高位竞价参考值。该接口场景下通常为 null
categoriesarray产品/服务分类。该接口场景下通常为 null
monthly_searchesarray过去 12 个月的月度搜索量。该接口场景下通常为 null

ranked_serp_element 字段

字段名类型说明
se_typestring搜索引擎类型
serp_itemarray/object命中的 SERP素数据

serp_item 字段

字段名类型说明
typestringSERP素类型。固定可能值:app_store_search_organic
rank_groupinteger在相同 type素组的排名
rank_absoluteinteger在整个 SERP 中的绝对排名
positionstring素位置,可能值:leftright
app_idstring应用 ID
titlestring应用标题
urlstringApp Store 应用页 URL
iconstring应用图标 URL
reviews_countinteger应用评论总数
ratingobject应用评分信息
is_freeboolean是否
priceobject应用价格信息
check_urlstring结果校验链接,可用于核验返回结果
se_results_countstring该对应的搜索结果数
last_updated_timestringSERP 数据最近更新时间,UTC 格式
previous_updated_timestring上一次 SERP 数据更新时间,UTC 格式;无历史值时为 null

rating 字段

字段名类型说明
rating_typestring评分类型,可能值:Max5
valuefloat平均评分值
votes_countinteger反馈数量,当前场景下可能为 null
rating_maxinteger评分上限,Max5 的最大值为 5

price 字段

字段名类型说明
currentfloat当前价格
regularfloat常规价格
max_valuefloat最大价格值
currencystring价格币种,ISO 代码
is_price_rangeboolean是否为价格区间
displayed_pricestring结果中展示的原始价格文本

请求示例

cURL

bash
curl --location --request POST "https://api.seermartech.cn/v3/dataforseo_labs/apple/keywords_for_app/live" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
 {
 "app_id": "686449807",
 "language_name": "English",
 "location_code": 2840,
 "filters": [
 ["keyword_data.keyword_info.search_volume", ">=", 500]
 ],
 "limit": 10
 }
]'

Python

python
import requests

url = "https://api.seermartech.cn/v3/dataforseo_labs/apple/keywords_for_app/live"
payload = [
 {
 "app_id": "686449807",
 "location_name": "United States",
 "language_name": "English",
 "filters": [
 ["keyword_data.keyword_info.search_volume", ">=", 500]
 ],
 "limit": 10
 }
]
headers = {
 "Authorization": "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)
print(response.json)

TypeScript

typescript
import axios from "axios";

const postData = [
 {
 app_id: "686449807",
 location_name: "United States",
 language_name: "English",
 filters: [
 ["keyword_data.keyword_info.search_volume", ">=", 500]
 ],
 limit: 10
 }
];

axios({
 method: "post",
 url: "https://api.seermartech.cn/v3/dataforseo_labs/apple/keywords_for_app/live",
 headers: {
 Authorization: "Bearer smt_live_YOUR_KEY",
 "Content-Type": "application/json"
 },
 data: postData
})
 .then((response) => {
 console.log(response.data);
 })
 .catch((error) => {
 console.error(error);
 });

响应示例

json
{
 "version": "0.1.20220428",
 "status_code": 20000,
 "status_message": "Ok.",
 "time": "0.5304 sec.",
 "cost": 0.011,
 "tasks_count": 1,
 "tasks_error": 0,
 "tasks": [
 {
 "data": {
 "api": "dataforseo_labs",
 "function": "keywords_for_app",
 "se_type": "apple",
 "app_id": "686449807",
 "language_name": "English",
 "location_code": 2840,
 "limit": 10
 },
 "result": [
 {}
 ]
 }
 ]
}

状态码与错误处理

  • 顶层 status_code 表示整个请求的处理状态
  • tasks[].status_code 表示单个任务的执行状态
  • 建议同时检查:
  • HTTP 状态码
  • 顶层 status_code
  • tasks_error
  • 各任务的 tasks[].status_code

常用判断方式:

  • 20000:请求成功
  • 状态码:表示参数错误、权限问题、额度不足、频率限制或平台处理异常

完整错误码请参考:/v3/appendix/errors

使用建议

  1. 优使用 location_codelanguage_code,便于程序稳定处理。
  2. 通过 filters 限制 search_volumerank_absolute 等字段,可快速聚焦高价值。
  3. 使用 limit + offset 做分页拉取,适合大规模应用词库分析。
  4. 若需要做任务追踪或结果回写,建议使用 tag 传业务主键。

实用场景

  • 挖掘应用自然流量词:查询目标 App 当前已获得排名的,快速识别自然来源, ASO 词库扩展。
  • 监控核心词排名变化:定期拉取指定应用在重点下的排名位置,及时发现排名波动并优化标题、字幕和字段。
  • 筛选高潜力:结合 search_volume 过滤高搜索量,优优化资源,提升自然下载增长效率。
  • 分析竞品覆盖词:对竞品应用执行相同查询,找出已覆盖而自身未覆盖的,补齐布局缺口。
  • 构建应用资产库:批量采集多个应用的排名词与排名位次,沉淀为 ASO 监控库,用于后续趋势分析与投放协同。

统一入口:官网 · LLM API · 控制台