主题
App Store 应用竞品实时分析
POST /v3/dataforseo_labs/apple/app_competitors/live
接口说明
本接口使用 POST 方法,路径为:
/v3/dataforseo_labs/apple/app_competitors/live
接口根据目标 App 在 App Store 中的排名,返回与产生交集的竞品应用列表,并提供竞品应用 ID、交集数量、搜索量及排名分布等数据。
返回结果针对请求体中指定的 app_id。例如,App Store 中 TikTok 的地址为:
https://apps.apple.com/us/app/id835599320
app_id 为 835599320。
数据更新频率: 每周更新。最新更新时间可通过状态接口查询。
/v3/dataforseo_labs/status/
请求限制与计费
- 所有请求体使用 UTF-8 编码的 JSON 格式。
- POST 请求体是 JSON 数组。
- 每次实时接口调用只能提交 1 个任务。 平台限流以认证说明中的 30/60/120 次/分钟规则为准。
- 可通过
limit、offset、filters和order_by控制返回结果。 - 本接口按请求计费,扣费以响应头
X-SeerMarTech-Charge-CNY为准。
请求参数
请求示例结构
json
[
{
"app_id": "686449807",
"location_code": 2840,
"language_code": "en",
"filters": [
[
"intersections",
">=",
500
]
],
"order_by": [
"intersections,desc"
],
"limit": 10,
"offset": 0,
"tag": "apple-competitor-analysis"
}
]参数说明
| 参数 | 类型 | 填 | 说明 |
|---|---|---|---|
app_id | string | 是 | App Store 应用 ID。可从应用页面 URL 中获取,例如 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 连接。 |
order_by | array | 否 | 结果排序规则。最多支持 3 条排序规则,格式为 字段,排序方向,排序方向支持 asc 和 desc。 |
limit | integer | 否 | 返回的最大竞品应用数量。默认值为 100,最大值为 1000。 |
offset | integer | 否 | 结果偏移量。默认值为 0。例如设置为 10,将跳过前 10 条结果。 |
tag | string | 否 | 用户自定义任务标识,最大长度为 255 个字符。该值会原样返回在响应任务的 data 对象中。 |
地区与语言
可通过以下接口获取可用的地区和语言列表:
/v3/dataforseo_labs/locations_and_languages
当前接口支持:
- 地区:
United States/2840 - 语言:
English/en
过滤条件
支持的比较运算符:
<、<=、>、>=、=、<>、in、not_in
示例:筛选交集数量不少于 500 的竞品应用。
json
[
{
"app_id": "686449807",
"location_name": "United States",
"language_name": "English",
"filters": [
[
"intersections",
">=",
500
]
],
"limit": 10
}
]多个过滤条件示例:
json
[
{
"filters": [
[
"intersections",
">=",
500
],
"and",
[
"avg_position",
"<=",
20
]
]
}
]排序规则
排序格式如下:
json
[
"intersections,desc",
"avg_position,asc"
]:
asc:升序排列desc:降序排列
最多可设置 3 条排序规则。
响应字段
接口返回 JSON 数据,顶层 tasks 数组。
顶层字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本。 |
status_code | integer | 通用状态码。成功通常为 20000。 |
status_message | string | 状态说明。 |
time | string | 请求执行耗时,例如 0.9813 sec.。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
tasks_count | integer | tasks 数组中的任务总数。 |
tasks_error | integer | 执行失败的任务数量。 |
tasks | array | 任务结果数组。 |
任务字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识,UUID 格式。 |
status_code | integer | 当前任务的状态码。 |
status_message | string | 当前任务的状态说明。 |
time | string | 当前任务执行耗时。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
result_count | integer | result 数组中的数量。 |
path | array | 请求路径信息。 |
data | object | 请求中提交的任务参数。 |
result | array | 分析结果数组。 |
result 字段
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型,固定为 apple。 |
app_id | string | 请求中指定的目标应用 ID。 |
location_code | integer | 地区代码。 |
language_code | string | 语言代码。 |
total_count | integer | 数据库中符合请求条件的结果总数。 |
items_count | integer | 本次 items 数组返回的结果数量。 |
items | array | 目标应用及竞品应用的详细数据。 |
items 竞品字段
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型,固定为 apple。 |
app_id | string | 竞品应用的 App Store ID。 |
avg_position | float | 竞品应用在 App Store 搜索结果中的平均排名。根据与目标应用重合的计算。相同应用与不同目标应用进行对比时,该值可能不同。 |
sum_position | integer | 竞品应用在 App Store 搜索结果中的排名总和。根据重合计算。 |
intersections | integer | 与目标应用产生交集的数量。 |
competitor_metrics | object | 竞品应用在重合上的排名指标。 |
full_metrics | object | 竞品应用排名的汇总指标。 |
competitor_metrics.app_store_search_organic
该对象竞品应用在与目标应用重合的上的 App Store 自然搜索排名数据。
| 字段 | 类型 | 说明 |
|---|---|---|
pos_1 | integer | 竞品应用排名第 1 的自然搜索结果数量。 |
pos_2_3 | integer | 竞品应用排名第 2 至第 3 的自然搜索结果数量。 |
pos_4_10 | integer | 竞品应用排名第 4 至第 10 的自然搜索结果数量。 |
pos_11_100 | integer | 竞品应用排名第 11 至第 100 的自然搜索结果数量。 |
count | integer | 含该竞品应用的自然搜索结果总数。 |
search_volume | integer | 重合在 App Store 自然搜索中的总搜索量。 |
full_metrics.app_store_search_organic
该对象竞品应用排名的 App Store 自然搜索排名数据。
| 字段 | 类型 | 说明 |
|---|---|---|
pos_1 | integer | 竞品应用排名第 1 的自然搜索结果数量。 |
pos_2_3 | integer | 竞品应用排名第 2 至第 3 的自然搜索结果数量。 |
pos_4_10 | integer | 竞品应用排名第 4 至第 10 的自然搜索结果数量。 |
pos_11_100 | integer | 竞品应用排名第 11 至第 100 的自然搜索结果数量。 |
count | integer | 含该竞品应用的自然搜索结果总数。 |
search_volume | integer | 该竞品应用所有排名在 App Store 自然搜索中的总搜索量。 |
错误处理
请根据以下字段判断请求和任务是否成功:
- 顶层
status_code - 任务级
status_code - 顶层及任务级
status_message tasks_error
完整状态码和错误信息请参考:
/v3/appendix/errors
建议客户端对 HTTP 错误、参数校验失败、任务执行失败及空结果进行单独处理。
请求示例
cURL
bash
curl --location --request POST \
"https://api.seermartech.cn/v3/dataforseo_labs/apple/app_competitors/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": [
[
"intersections",
">=",
500
]
],
"limit": 10
}
]'Python
python
import requests
url = "https://api.seermartech.cn/v3/dataforseo_labs/apple/app_competitors/live"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
}
payload = [
{
"app_id": "686449807",
"location_name": "United States",
"language_name": "English",
"filters": [
["intersections", ">=", 500]
],
"limit": 10,
}
]
response = requests.post(url, headers=headers, json=payload, timeout=60)
result = response.json()
if result.get("status_code") == 20000:
print(result)
else:
print(
"请求失败,状态码:%s,信息:%s"
% (result.get("status_code"), result.get("status_message"))
)TypeScript
typescript
import axios from "axios";
const response = await axios.post(
"https://api.seermartech.cn/v3/dataforseo_labs/apple/app_competitors/live",
[
{
app_id: "686449807",
location_name: "United States",
language_name: "English",
filters: [["intersections", ">=", 500]],
limit: 10,
},
],
{
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
},
}
);
const result = response.data;
if (result.status_code === 20000) {
console.log(result);
} else {
console.error(
`请求失败,状态码:${result.status_code},信息:${result.status_message}`
);
}响应示例
json
{
"version": "0.1.20220428",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.9813 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.9500 sec.",
"cost": 0.011,
"result_count": 1,
"path": [
"v3",
"dataforseo_labs",
"apple",
"app_competitors",
"live"
],
"data": {
"api": "dataforseo_labs",
"function": "app_competitors",
"se_type": "apple",
"app_id": "686449807",
"language_name": "English",
"location_name": "United States",
"limit": 10
},
"result": [
{
"se_type": "apple",
"app_id": "686449807",
"location_code": 2840,
"language_code": "en",
"total_count": 1,
"items_count": 1,
"items": [
{
"se_type": "apple",
"app_id": "835599320",
"avg_position": 8.5,
"sum_position": 170,
"intersections": 20,
"competitor_metrics": {
"app_store_search_organic": {
"pos_1": 2,
"pos_2_3": 4,
"pos_4_10": 8,
"pos_11_100": 6,
"count": 20,
"search_volume": 125000
}
},
"full_metrics": {
"app_store_search_organic": {
"pos_1": 5,
"pos_2_3": 10,
"pos_4_10": 22,
"pos_11_100": 35,
"count": 72,
"search_volume": 480000
}
}
}
]
}
]
}
]
}实用场景
- 识别重合度最高的竞品应用,定位直接争夺相同 App Store 搜索流量的产品。
- 筛选排名表现优于目标应用的竞品,发现需要重点研究的标题、描述和优化对象。
- 比较竞品在前 1、前 3、前 10 的排名分布,评估竞品自然搜索强度及排名稳定性。
- 结合交集数量与搜索量评估市场机会,优选择高需求且竞争明确的方向。
- 定期追踪竞品排名指标变化,为 App Store SEO 复盘、竞品监测和版本发布后的效果评估提供依据。