主题
App Store 应用交集(实时)
POST /v3/dataforseo_labs/apple/app_intersection/live
本接口使用 POST 方法,路径为:
/v3/dataforseo_labs/apple/app_intersection/live
接口用于查询多个 App Store 应用排名的,并返回这些在 App Store 搜索结果页中的排名信息。每个对应一个或多个目标应用,适合用于应用竞品分析和交集研究。
app_id 是 App Store 应用 URL 中 id 后面的数字。例如:
https://apps.apple.com/us/app/id835599320
对应的 app_id 为 835599320。
> 数据每周更新。最新更新时间可通过 /v3/dataforseo_labs/status/ 查询。
计费说明
本接口按请求计费。扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
每个实时 API 请求只能一个任务。平台限流以认证说明中的 30/60/120 次/分钟规则为准。
所有 POST 请求使用 UTF-8 编码的 JSON 格式,且请求体是 JSON 数组:
json
[
{
"app_ids": {
"1": "686449807",
"2": "382617920"
},
"location_code": 2840,
"language_code": "en",
"limit": 10
}
]请求参数
| 参数 | 类型 | 填 | 说明 |
|---|---|---|---|
app_ids | object | 是 | 目标 App Store 应用 ID。对象键应按 "1" 至 "20" 编号,值为应用 ID。最多可指定 20 个应用。指定一个应用时,接口只返回该应用的数据。 |
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 | 否 | 结果排序规则。最多设置 3 条规则。排序字段可使用与 filters 相同的字段路径,排序方向为 asc 或 desc。 |
limit | integer | 否 | 最多返回的数量。默认值为 100,最大值为 1000。 |
offset | integer | 否 | 结果偏移量。默认值为 0。例如设置为 10 时,将跳过前 10 条结果。 |
tag | string | 否 | 用户自定义任务标识,最长 255 个字符。该值会原样返回在响应的 data 对象中,可用于请求与结果。 |
include_serp_info | boolean | 否 | 是否返回对应的 SERP 信息。未设置为 true,或数据库中没有该的 SERP 数据时,serp_info 为 null。 |
app_ids 示例
json
{
"app_ids": {
"1": "686449807",
"2": "382617920"
}
}应用 ID 可从 App Store 应用 URL 中获取:
text
https://apps.apple.com/us/app/id835599320应用 ID 为:
text
835599320地区和语言
可通过以下接口获取可用地区和语言列表:
/v3/dataforseo_labs/locations_and_languages
本接口当前限制如下:
- 地区:支持美国,代码为
2840 - 语言:支持英语,代码为
en
过滤条件示例
以下示例筛选搜索量大于或等于 500 的:
json
[
{
"app_ids": {
"1": "686449807",
"2": "382617920"
},
"location_code": 2840,
"language_code": "en",
"filters": [
[
"keyword_data.keyword_info.search_volume",
">=",
500
]
],
"limit": 10
}
]使用多个条件时,可以在条件之间逻辑运算符:
json
[
{
"filters": [
[
"keyword_data.keyword_info.search_volume",
">=",
500
],
"and",
[
"keyword_data.keyword",
"in",
[
"video editor",
"photo editor"
]
]
]
}
]排序示例
json
[
{
"order_by": [
"keyword_data.keyword_info.search_volume,desc",
"keyword_data.keyword,asc"
]
}
]最多可设置 3 条排序规则。若请求中非 organic 类型的结果,系统会优 item_types 数组中的第一种类型排序。
响应结构
接口返回 JSON 数据,主要 tasks 数组。
顶层字段
| 字段 | 类型 | 说明 |
|---|---|---|
version | string | 当前 API 版本。 |
status_code | integer | 请求级状态码。完整错误码请参考错误码文档。 |
status_message | string | 请求级状态消息。 |
time | string | 请求执行耗时,单位为秒。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
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 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
result_count | integer | result 数组中的数量。 |
path | array | 请求 URL 路径。 |
data | object | 请求中提交的任务参数。 |
result | array | 查询结果数组。 |
result 字段
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型。此接口为 apple。 |
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 | 返回的详细数据。 |
serp_info | object | 对应的 SERP 数据。未请求 SERP 信息或没有数据时为 null。 |
intersection_result | object | 指定下,各应用的 App Store SERP 数据。 |
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 | 付费 SERP 中的竞争级别,可为 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。 |
last_updated_time 示例:
text
2019-11-15 12:57:46 +00:00serp_info
| 字段 | 类型 | 说明 |
|---|---|---|
se_type | string | 搜索引擎类型。原始说明中此字段为 bing,但本接口的搜索类型为 App Store,应以响应值为准。 |
check_url | string | 可直接访问的搜索结果 URL,可用于核验返回结果。 |
serp_item_types | array | SERP 中的结果类型。该接口中可能返回 null。 |
se_results_count | string | 该的搜索结果数量。 |
last_updated_time | string | SERP 数据最近更新时间,UTC 格式。 |
previous_updated_time | string | SERP 数据上一次更新时间,UTC 格式。 |
intersection_result
intersection_result 按请求中的应用编号分别返回数据。最多 20 个对象,字段名为 "1" 至 "20",分别对应 app_ids 中相同编号的应用。
每个应用对象可能以下 SERP 结果类型:
text
app_store_search_organic| 字段 | 类型 | 说明 |
|---|---|---|
type | string | SERP素类型,可能为 app_store_search_organic。 |
rank_group | integer | 在相同 type 结果中的组排名。不同类型结果之间不计算该排名。 |
rank_absolute | integer | 在整个 SERP 中的绝对排名。 |
position | string | 结果在页面中的位置,可为 left 或 right。 |
app_id | string | 应用 ID。 |
title | string | 应用标题。 |
url | string | App Store 应用页 URL。 |
icon | string | 应用图标 URL。 |
reviews_count | integer | 应用评论总数。 |
rating | object | 应用平均评分。 |
is_free | string | 是否为应用。 |
price | object | 应用价格信息。 |
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/app_intersection/live" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"app_ids": {
"1": "686449807",
"2": "382617920"
},
"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/app_intersection/live"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
}
payload = [
{
"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=payload)
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 payload = [
{
app_ids: {
"1": "686449807",
"2": "382617920",
},
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/app_intersection/live",
payload,
{
headers: {
Authorization: "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
},
}
)
.then((response) => {
// 处理接口结果
console.log(response.data);
})
.catch((error) => {
// 处理请求错误
console.error(error.response?.data || error.message);
});响应示例
以下为经过简化的响应结构示例:
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": [
{
"id": "00000000-0000-0000-0000-000000000000",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.9000 sec.",
"cost": 0.011,
"result_count": 1,
"path": [
"v3",
"dataforseo_labs",
"apple",
"app_intersection",
"live"
],
"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": [
{
"se_type": "apple",
"app_ids": {
"1": "686449807",
"2": "382617920"
},
"location_code": 2840,
"language_code": "en",
"total_count": 1,
"items_count": 1,
"items": [
{
"se_type": "apple",
"keyword_data": {
"se_type": "apple",
"keyword": "示例",
"location_code": 2840,
"language_code": "en",
"keyword_info": {
"se_type": "apple",
"search_volume": 1200
}
},
"serp_info": null,
"intersection_result": {
"1": {
"type": "app_store_search_organic",
"rank_group": 1,
"rank_absolute": 1,
"position": "left",
"app_id": "686449807",
"title": "示例应用",
"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": "1",
"price": {
"current": 0,
"regular": 0,
"max_value": 0,
"currency": "USD",
"is_price_range": false,
"displayed_price": "Free"
}
}
}
}
]
}
]
}
]
}实用场景
- 比较多个竞品的交集,识别目标应用与竞品覆盖的 App Store 搜索词,制定竞品跟踪和差异化优化策略。
- 筛选高搜索量的应用,定位较高用户需求的词组,优安排应用标题、副标题和字段优化。
- 分析竞品在中的排名,评估自身应用与竞品在同一 SERP 中的相对位置,为 ASO 资源提供依据。
- 跟踪应用评论量、评分和价格信息,结合排名判断竞品产品表现及转化竞争力。
- 构建应用市场数据库,定期调用接口获取更新后的交集,为 ASO 报告、监控看板和竞品预警提供数据。