主题
App Store 应用排名(实时)
POST /v3/dataforseo_labs/apple/keywords_for_app/live
本接口使用 POST 方法,请求路径为:
/v3/dataforseo_labs/apple/keywords_for_app/live
接口用于获取指定 App 在 App Store 中排名的列表,并返回每个的搜索数据及该 App 的排名信息。返回结果针对请求体中指定的 app_id。
app_id 可从 App Store 应用页 URL 中获取。例如:
https://apps.apple.com/us/app/id835599320
,app_id 为 835599320。
数据每周更新,最新更新时间可通过状态接口查询。
请求说明
- 请求地址:
https://api.seermartech.cn/v3/dataforseo_labs/apple/keywords_for_app/live - 请求方法:
POST - 请求格式:
application/json - 请求体:JSON 数组,单次实时请求最多 1 个任务对象 平台限流以认证说明中的 30/60/120 次/分钟规则为准
- 每次请求按请求次数计费
- 实扣费以响应头
X-SeerMarTech-Charge-CNY为准
请求参数
请求体是 JSON 数组:
json
[
{
"app_id": "686449807",
"location_code": 2840,
"language_code": "en",
"limit": 10
}
]任务参数
| 参数 | 类型 | 填 | 说明 |
|---|---|---|---|
app_id | string | 是 | App Store 移动应用 ID。该值位于应用 URL 中 id 后,例如 https://apps.apple.com/us/app/id835599320 中的 835599320。 |
location_name | string | 条件填 | 地区名称。当未设置 location_code 时填。当前接口支持美国地区,示例值:United States。 |
location_code | integer | 条件填 | 地区代码。当未设置 location_name 时填。美国地区代码为 2840。 |
language_name | string | 条件填 | 语言名称。当未设置 language_code 时填。当前接口支持英语,示例值:English。 |
language_code | string | 条件填 | 语言代码。当未设置 language_name 时填。英语代码为 en。 |
filters | array | 否 | 结果过滤条件,最多设置 8 个过滤条件。条件之间使用 and 或 or 连接。支持的运算符:<、<=、>、>=、=、<>、in、not_in。 |
order_by | array | 否 | 结果排序规则。排序字段可使用与 filters 相同的字段名,排序方向为 asc 或 desc。单次请求最多设置 3 条排序规则。 |
limit | integer | 否 | 最多返回的数量。默认值为 100,最大值为 1000。 |
offset | integer | 否 | 结果偏移量。默认值为 0。例如设置为 10 时,将跳过前 10 条结果。 |
tag | string | 否 | 用户自定义任务标识,最长 255 个字符。该值会原样返回在响应的 data 对象中,可用于请求与结果。 |
filters 示例
筛选搜索量不低于 500 的:
json
[
{
"app_id": "686449807",
"location_code": 2840,
"language_code": "en",
"filters": [
[
"keyword_data.keyword_info.search_volume",
">=",
500
]
],
"limit": 10
}
]多个条件示例:
json
[
{
"app_id": "686449807",
"location_code": 2840,
"language_code": "en",
"filters": [
[
"keyword_data.keyword_info.search_volume",
">=",
500
],
"and",
[
"ranked_serp_element.serp_item.rank_absolute",
"<=",
20
]
],
"limit": 10
}
]order_by 示例
按搜索量降序排列:
json
"order_by": [
"keyword_data.keyword_info.search_volume,desc"
]如果 order_by 未设置,系统将使用默认排序规则。当结果非 organic 类型的时,结果会优 item_types 数组中的第一个排序。
响应结构
接口返回 JSON 数据 tasks 数组。
顶层字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本。 |
status_code | integer | 请求整体状态码。20000 表示成功。 |
status_message | string | 请求整体状态说明。 |
time | string | 请求执行耗时,单位为秒。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
tasks_count | integer | tasks 数组中的任务总数。 |
tasks_error | integer | tasks 数组中返回错误的任务数量。 |
tasks | array | 任务结果数组。 |
tasks 字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识,UUID 格式。 |
status_code | integer | 任务状态码,通常在 10000 至 60000 范围。 |
status_message | string | 任务状态说明。 |
time | string | 任务执行耗时。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
result_count | integer | result 数组中的数量。 |
path | array | 请求 URL 路径。 |
data | object | 请求中提交的任务参数。 |
result | array | 任务结果数组。 |
result 字段
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型,本接口为 apple。 |
app_id | string | 请求中的 App ID。 |
location_code | integer | 请求中的地区代码。 |
language_code | string | 请求中的语言代码。 |
total_count | integer | 数据库中与请求条件匹的结果总数。 |
items_count | integer | 本次在 items 数组中返回的结果数量。 |
items | array | 应用排名数据。 |
items 字段
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型。 |
keyword_data | object | 当前的数据。 |
ranked_serp_element | object | 当前对应的 App Store 搜索结果排名信息。 |
keyword_data 字段
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型。 |
keyword | string | 返回的。 |
location_code | integer | 地区代码。 |
language_code | string | 语言代码。 |
keyword_info | object | 指标信息。 |
keyword_info 字段
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型。 |
last_updated_time | string | 数据更新时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00。 |
competition | float | 竞争度,取值范围为 0 至 1。该接口通常返回 null。 |
competition_level | string | 付费搜索结果中的竞争等级,可选值为 LOW、MEDIUM、HIGH。未知时返回 null。 |
cpc | float | 历史平均每次点击费用。该接口通常返回 null。 |
search_volume | integer | 该在 App Store 的月均搜索量估值。 |
low_top_of_page_bid | float | 广告展示在首页顶部所需的较低竞价估值。该接口通常返回 null。 |
high_top_of_page_bid | float | 广告展示在首页顶部所需的较高竞价估值。该接口通常返回 null。 |
categories | array | 产品和服务分类。该接口通常返回 null。 |
monthly_searches | array | 过去 12 个月的月度搜索量数据。该接口通常返回 null。 |
ranked_serp_element 字段
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型。 |
serp_item | array | 搜索结果信息。 |
serp_item 字段
| 字段 | 类型 | 说明 |
|---|---|---|
type | string | 搜索结果类型。当前可能为 app_store_search_organic。 |
rank_group | integer | 在相同类型结果中的组排名。不同类型之间不计该排名。 |
rank_absolute | integer | 在搜索结果中的绝对排名。 |
position | string | 搜索结果位置,可为 left 或 right。 |
app_id | string | App ID。 |
title | string | App 标题。 |
url | string | App Store 应用页 URL。 |
icon | string | App 图标 URL。 |
reviews_count | integer | 应用评论总数。 |
rating | object | 应用评分信息。 |
is_free | boolean | 是否为应用。 |
price | object | 应用价格信息。 |
check_url | string | 对应搜索结果页面的直接 URL,可用于核验结果。 |
se_results_count | string | 当前的搜索结果数量。 |
last_updated_time | string | 搜索结果数据更新时间,UTC 格式:yyyy-mm-dd hh-mm-ss +00:00。 |
previous_updated_time | string | 上一次搜索结果数据更新时间,UTC 格式;没有历史数据时为 null。 |
rating 字段
| 字段 | 类型 | 说明 |
|---|---|---|
rating_type | string | 评分类型,当前为 Max5。 |
value | float | 应用平均评分。 |
votes_count | integer | 评分数量。该接口通常返回 null。 |
rating_max | integer | 评分最大值。Max5 的最大值为 5。 |
price 字段
| 字段 | 类型 | 说明 |
|---|---|---|
current | float | 当前价格。 |
regular | float | 常规价格。 |
max_value | float | 最高价格,适用于价格区间。 |
currency | string | 价格币种的 ISO 代码。 |
is_price_range | boolean | 是否以价格区间形式展示。 |
displayed_price | string | 搜索结果中原始展示的价格文本。 |
请求示例
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",
"location_name": "United States",
"language_name": "English",
"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"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
}
post_data = [
{
"app_id": "686449807",
"location_name": "United States",
"language_name": "English",
"filters": [
[
"keyword_data.keyword_info.search_volume",
">=",
500,
]
],
"limit": 10,
}
]
response = requests.post(url, headers=headers, json=post_data)
result = response.json()
if result.get("status_code") == 20000:
print(result)
else:
print(
"请求失败,状态码:{},信息:{}".format(
result.get("status_code"),
result.get("status_message"),
)
)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
.post(
"https://api.seermartech.cn/v3/dataforseo_labs/apple/keywords_for_app/live",
postData,
{
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
},
}
)
.then((response) => {
const result = response.data;
if (result.status_code === 20000) {
console.log(result);
} else {
console.error(
`请求失败,状态码:${result.status_code},信息:${result.status_message}`
);
}
})
.catch((error) => {
console.error("请求异常:", error.message);
});响应示例
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": [
{
"id": "01234567-89ab-cdef-0123-456789abcdef",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.4821 sec.",
"cost": 0.011,
"result_count": 1,
"path": [
"v3",
"dataforseo_labs",
"apple",
"keywords_for_app",
"live"
],
"data": {
"api": "dataforseo_labs",
"function": "keywords_for_app",
"se_type": "apple",
"app_id": "686449807",
"language_name": "English",
"location_code": 2840,
"limit": 10
},
"result": [
{
"se_type": "apple",
"app_id": "686449807",
"location_code": 2840,
"language_code": "en",
"total_count": 125,
"items_count": 10,
"items": [
{
"se_type": "apple",
"keyword_data": {
"se_type": "apple",
"keyword": "example keyword",
"location_code": 2840,
"language_code": "en",
"keyword_info": {
"se_type": "apple",
"last_updated_time": "2019-11-15 12:57:46 +00:00",
"competition": null,
"competition_level": null,
"cpc": null,
"search_volume": 1200,
"low_top_of_page_bid": null,
"high_top_of_page_bid": null,
"categories": null,
"monthly_searches": null
}
},
"ranked_serp_element": {
"se_type": "apple",
"serp_item": [
{
"type": "app_store_search_organic",
"rank_group": 3,
"rank_absolute": 3,
"position": "left",
"app_id": "686449807",
"title": "Example App",
"url": "https://apps.apple.com/us/app/id686449807",
"icon": "https://example.com/icon.png",
"reviews_count": 1000,
"rating": {
"rating_type": "Max5",
"value": 4.8,
"votes_count": null,
"rating_max": 5
},
"is_free": true,
"price": {
"current": 0,
"regular": 0,
"max_value": 0,
"currency": "USD",
"is_price_range": false,
"displayed_price": "Free"
},
"check_url": "https://apps.apple.com/us/genre/ios/id36",
"se_results_count": "100",
"last_updated_time": "2019-11-15 12:57:46 +00:00",
"previous_updated_time": null
}
]
}
}
]
}
]
}
]
}状态码与错误处理
请根据响应中的 status_code 和 status_message 判断请求及任务是否成功:
- 顶层
status_code表示整个 API 请求的处理结果。 tasks[].status_code表示任务的处理结果。tasks_error表示失败任务数量。- 建议客户端对 HTTP 错误、请求参数错误、任务执行失败和空结果分别进行处理。
- 成功状态码通常为
20000。 - 实计费金额请读取响应头
X-SeerMarTech-Charge-CNY。
实用场景
- 挖掘竞品应用的高排名,识别竞品已获得的搜索词,为应用商店优化提供依据。
- 筛选高搜索量且排名靠前的,优优化标题、副标题和描述中的核心词,提升自然下载潜力。
- 监控应用排名变化,按周获取更新数据,评估版本发布、数据调整或推广活动的效果。
- 对比多个应用的覆盖,发现自身未覆盖但竞品排名较高的词,扩 ASO 库。
- 提取对应的搜索结果,结合
rank_absolute、评分、评论量和价格信息,分析排名竞争环境。