主题
App Store 应用交集实时查询
接口说明
/v3/dataforseo_labs/apple/app_intersection/live 用于查询多个 App Store 应用在同一搜索结果页(SERP)中排名的。
你传一组 app_ids 后,本接口会返回这些应用同时出现在 App Store 搜索结果中的列表,并给出对应数据及每个应用在该下的排名信息。
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/app_intersection/live
计费说明
本接口按请求计费。 参考价约 ¥0.1760 / 次。
扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
请求要求
- 请求体为 UTF-8 编码的 JSON
- POST 请求体格式为 JSON 数组:
[{ ... }] - 单接口调用频率上限:2000 次/分钟
- 支持通过
filters过滤结果 - 支持通过
order_by排序结果 - 单次请求最多返回
1000条 app_ids最多可传20个应用 ID
请求参数
顶层请求体示例
json
[
{
"app_ids": {
"1": "686449807",
"2": "382617920"
},
"location_code": 2840,
"language_name": "English",
"limit": 10
}
]参数说明
| 字段 | 类型 | 填 | 说明 |
|---|---|---|---|
app_ids | object | 是 | 目标 App Store 应用 ID 集合。键名使用 "1" 到 "20" 的序号,值为应用 ID。最多支持 20 个应用。若传 1 个 ID,则只返回该应用对应。 |
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 对象会原样返回该值,便于结果追踪。 |
地区与语言
可通过以下容路径查询可用地区和语言:
/v3/dataforseo_labs/locations_and_languages
注意:
- 当前接口支持美国地区
- 当前接口支持英语
过滤与排序
filters
- 最多 8 个条件
- 条件间可用
and/or - 支持操作符:
<<=>>==<>innot_in
示例:
json
[
{
"app_ids": {
"1": "686449807",
"2": "382617920"
},
"location_code": 2840,
"language_name": "English",
"filters": [
["keyword_data.keyword_info.search_volume", ">=", 500]
],
"limit": 10
}
]order_by
- 支持按结果字段排序
- 排序方向:
asc:升序desc:降序- 最多设置 3 条排序规则
响应结构
接口返回 JSON 数据,顶层 tasks 数组。
顶层字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本 |
status_code | integer | 通用状态码 |
status_message | string | 通用状态消息 |
time | string | 执行耗时,单位秒 |
cost | float | 本次请求总费用,单位 USD |
tasks_count | integer | tasks 数组中的任务数 |
tasks_error | integer | 返回错误的任务数 |
tasks | array | 任务结果数组 |
tasks[] 字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 任务唯一标识,UUID 格式 |
status_code | integer | 任务状态码,范围通常在 10000-60000 |
status_message | string | 任务状态信息 |
time | string | 任务执行耗时 |
cost | float | 单任务费用,单位 USD |
result_count | integer | result 数组数量 |
path | array | URL 路径 |
data | object | 与请求中提交的参数一致 |
result | array | 结果数组 |
result[] 字段
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型 |
app_ids | object | 请求中提交的应用 ID 集合 |
location_code | integer | 请求中的地区编码 |
language_code | string | 请求中的语言编码 |
total_count | integer | 数据库中与请求匹的结果总数 |
items_count | integer | 当前 items 数组返回的结果数 |
items | array | 结果列表 |
items[] 字段说明
每个表示一个“多个应用排名”的结果。
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型 |
keyword_data | object | 数据 |
intersection_result | object | 各应用在该下的 SERP 结果 |
keyword_data
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型 |
keyword | string | 返回的 |
location_code | integer | 地区编码 |
language_code | string | 语言编码 |
keyword_info | object | 详细信息 |
serp_info | object / null | SERP 信息;若未启用数据或库中无数据,则返回 null |
keyword_data.keyword_info
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型 |
last_updated_time | string | 数据更新时间,UTC 格式,如 2019-11-15 12:57:46 +00:00 |
competition | float / null | 竞争度,取值 0 到 1;本接口场景下通常为 null |
competition_level | string / null | 竞争等级,可能为 LOW、MEDIUM、HIGH;未知时为 null |
cpc | float / null | 平均点击成本,单位 USD;本接口场景下通常为 null |
search_volume | integer | 平均月搜索量,表示该在 App Store 上的近似搜索次数 |
low_top_of_page_bid | float / null | 首页顶部最低竞价;本接口场景下通常为 null |
high_top_of_page_bid | float / null | 首页顶部最高竞价;本接口场景下通常为 null |
categories | array / null | 产品/服务分类;本接口场景下通常为 null |
monthly_searches | array / null | 过去 12 个月的月度搜索量;本接口场景下通常为 null |
keyword_data.serp_info
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型 |
check_url | string | 可直接打开的搜索结果地址,用于校验结果 |
serp_item_types | array / null | 该 SERP 中出现的结果类型 |
se_results_count | string | 搜索结果数量 |
last_updated_time | string | 最近一次 SERP 数据更新时间,UTC 格式 |
previous_updated_time | string | 上一次 SERP 数据更新时间,UTC 格式 |
说明:原始参考文档中该字段描述提到需设置
include_serp_info=true才会返回serp_info,但该参数未在本页请求参数中列出。如需使用,请以响应能力为准。
intersection_result 字段说明
intersection_result 按你在 app_ids 中传的序号分别返回每个应用在该下的 App Store 搜索结果信息。
例如,请求中传:
json
"app_ids": {
"1": "686449807",
"2": "382617920"
}则响应中的 intersection_result 可能:
12
每个编号对象表示对应应用在该下的搜索结果数据。
intersection_result.{n} 字段
| 字段 | 类型 | 说明 |
|---|---|---|
type | string | SERP素类型;当前值为 app_store_search_organic |
rank_group | integer | 同类型结果中的排名 |
rank_absolute | integer | 在整个 SERP 中的绝对排名 |
position | string | 结果展示位置,可能为 left 或 right |
app_id | string | 应用 ID |
title | string | 应用名称 |
url | string | App Store 应用页面地址 |
icon | string | 应用图标地址 |
reviews_count | integer | 应用评论总数 |
rating | object | 评分信息 |
is_free | boolean | 是否 |
price | object | 价格信息 |
rating
| 字段 | 类型 | 说明 |
|---|---|---|
rating_type | string | 评分类型,当前为 Max5 |
value | float | 平均评分值 |
votes_count | integer / null | 投票/反馈数量,当前场景下可能为 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/app_intersection/live" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"app_ids": {
"1": "686449807",
"2": "382617920"
},
"location_code": 2840,
"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/app_intersection/live"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json"
}
data = [
{
"app_ids": {
"1": "686449807",
"2": "382617920"
},
"location_name": "United States",
"language_name": "English",
"filters": [
["keyword_data.keyword_info.search_volume", ">=", 500]
],
"limit": 10
}
]
response = requests.post(url, headers=headers, json=data)
print(response.json)TypeScript
typescript
import axios from "axios";
const postData = [
{
app_ids: {
"1": "686449807",
"2": "382617920"
},
location_code: 2840,
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/app_intersection/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.9195 sec.",
"cost": 0.011,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"data": {
"api": "dataforseo_labs",
"function": "app_intersection",
"se_type": "apple",
"app_ids": {
"1": "686449807",
"2": "382617920"
},
"location_code": 2840,
"language_code": "en",
"limit": 10
},
"result": [
{}
]
}
]
}状态码与错误处理
- 顶层
status_code表示整个请求的处理状态 tasks[].status_code表示单个任务的处理状态- 建议在接时同时处理:
- HTTP 状态码
- 顶层
status_code - 任务级
tasks[].status_code
常见成功状态:
| 状态码 | 含义 |
|---|---|
20000 | 请求成功 |
完整错误码体系请参考 /v3/appendix/errors 容文档,并在业务侧建立重试、告警和异常底机制。
使用建议
- 优传
location_code=2840与language_code=en,名称匹差异。 - 当对结果数量有明确预期时,结合
limit与offset做分页拉取。 - 若要筛选高价值,可按
keyword_data.keyword_info.search_volume设置过滤条件。 - 当传多个应用时,可利用
intersection_result对比各应用在同一下的排名差异。
实用场景
- 挖掘竞品重叠词:找出自家应用与竞品同时排名的,识别核心竞争搜索词,优化投放与 ASO 策略。
- 比较同词排名差距:分析同一下多个应用的
rank_absolute差异,评估品牌词、品类词上的真实竞争位置。 - 筛选高流量机会词:结合
search_volume过滤出搜索量较高的交集,优标题、描述和副标题优化资源。 - 监控竞品覆盖范围:持续跟踪多个竞品出现的集合,判断市场头部应用正在争夺哪些搜索。
- 定位/付费产品竞争态势:利用
is_free与price字段观察同一下与付费应用的分布,定价与转化策略设计。