主题
设置 Apple 应用榜单任务
POST /v3/app_data/apple/app_list/task_post
接口说明
POST https://api.seermartech.cn/v3/app_data/apple/app_list/task_post
本接口用于创建 Apple App Store 应用榜单采集任务,返回指定应用榜单、语言和地区下的移动应用列表。支持采集榜、付费榜、销榜及最新应用榜单。
任务结果可通过任务 ID 查询,也可以在创建任务时 postback_url 或 pingback_url,在任务完成后接收通知或结果。
> 计费说明:
> - 按任务设置及返回结果数量计费,每 100 条结果为一个计费单位。
> - 例如,depth 设置为 101 时,可能按 200 条结果计费。
> - priority 设置为 2 时,将产生额外费用。
> - 实扣费以响应头 X-SeerMarTech-Charge-CNY 为准。
请求限制
- 请求体使用 UTF-8 编码的 JSON。 平台限流以认证说明中的 30/60/120 次/分钟规则为准。
- 每次请求最多 100 个任务。
- 单次请求 100 个任务时,出部分将返回错误码
40006。 - 任务完成后,可使用返回的
id获取结果。 - 如果了回调地址,但服务端在 10 秒未响应,连接将因时中断,任务会转“已完成任务”列表。
请求参数
请求体是 JSON 数组:
json
[
{
"app_collection": "top_free_ios",
"location_code": 2840,
"language_code": "en",
"depth": 200,
"app_category": "games"
}
]任务参数
| 参数 | 类型 | 填 | 说明 |
|---|---|---|---|
app_collection | string | 是 | App Store 应用榜单类型。可选值:top_free_ios(榜)、top_paid_ios(付费榜)、top_grossing_ios(销榜)、new_ios(最新应用)、new_free_ios(最新应用)、new_paid_ios(最新付费应用)。 |
location_name | string | 条件填 | 地区完整名称。当未设置 location_code 时填。示例:West Los Angeles,California,United States。可通过 /v3/app_data/apple/locations 获取可用地区。 |
location_code | integer | 条件填 | 地区代码。当未设置 location_name 时填。示例:9061121。可通过 /v3/app_data/apple/locations 获取可用地区代码。 |
language_name | string | 条件填 | 语言完整名称。当未设置 language_code 时填。示例:English。可通过 /v3/app_data/apple/languages 获取可用语言。 |
language_code | string | 条件填 | 语言代码。当未设置 language_name 时填。示例:en。可通过 /v3/app_data/apple/languages 获取可用语言代码。 |
priority | integer | 否 | 任务优级。1:普通优级,默认值;2:高优级,需额外计费。 |
depth | integer | 否 | 采集的应用数量。默认值为 100,最大值为 1000。建议设置为 100 的倍数,因为系统按每 100 条结果处理和计费。 |
app_category | string | 否 | App Store 应用分类,用于筛选结果。示例:lifestyle、games。可通过 /v3/app_data/apple/categories 获取完整分类列表。 |
tag | string | 否 | 用户自定义任务标识,最长 255 个字符。可用于任务与结果,指定的值会在响应的 data 对象中返回。 |
postback_url | string | 否 | 任务完成后,本平台向该地址发送 POST 请求,并以 GZIP 格式压缩任务结果。支持使用 $id 和 $tag 占位符。 |
postback_data | string | 条件填 | 使用 postback_url 时填,指定回传数据类型。目前支持:advanced。 |
pingback_url | string | 否 | 任务完成后,本平台向该地址发送 GET 请求进行通知。支持使用 $id 和 $tag 占位符。 |
postback_url 示例:
text
https://your-server.com/postbackscript?id=$id&tag=$tagpingback_url 示例:
text
https://your-server.com/pingscript?id=$id&tag=$tag说明:
$id会替换为任务 ID。$tag会替换为经过 URL 编码的任务标识。- 回调地址中的特殊字符会进行 URL 编码,例如
#会编码为%23。 postback_url须同时设置postback_data。
请求示例
curl
bash
curl --location --request POST \
"https://api.seermartech.cn/v3/app_data/apple/app_list/task_post" \
--header "Authorization: Bearer smt_live_YOUR_KEY" \
--header "Content-Type: application/json" \
--data-raw '[
{
"app_collection": "top_free_ios",
"location_code": 2840,
"language_code": "en",
"depth": 200,
"app_category": "games"
}
]'Python
python
import requests
url = "https://api.seermartech.cn/v3/app_data/apple/app_list/task_post"
headers = {
"Authorization": "Bearer smt_live_YOUR_KEY",
"Content-Type": "application/json",
}
payload = [
{
"app_collection": "top_free_ios",
"location_code": 2840,
"language_code": "en",
"depth": 200,
"priority": 2,
"tag": "some_string_123",
"pingback_url": "https://your-server.com/pingscript?id=$id&tag=$tag",
},
{
"app_collection": "top_paid_ios",
"location_code": 2840,
"language_code": "en",
"depth": 100,
"postback_data": "advanced",
"postback_url": "https://your-server.com/postbackscript",
},
]
response = requests.post(url, headers=headers, json=payload, timeout=30)
response.raise_for_status()
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_collection: "top_free_ios",
location_code: 2840,
language_code: "en",
depth: 200,
app_category: "games",
},
];
axios
.post(
"https://api.seermartech.cn/v3/app_data/apple/app_list/task_post",
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 对象 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 数组中返回错误的任务数量。 |
tasks | array | 任务信息数组。 |
tasks的任务字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 唯一任务 ID,UUID 格式。 |
status_code | integer | 当前任务状态码,通常位于 10000 至 60000 范围。 |
status_message | string | 当前任务状态描述。 |
time | string | 任务执行耗时,单位为秒。 |
cost | float | 平台原始 USD 成本兼容字段;人民币实扣以 X-SeerMarTech-Charge-CNY 为准。 |
result_count | integer | result 数组中的数量。创建任务时通常为 0。 |
path | array | 请求路径信息。 |
data | object | 创建任务时提交的参数。 |
result | array | null | 任务结果。创建任务接口返回时为 null,需使用任务 ID 查询结果。 |
响应示例
json
{
"version": "0.1.20220422",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0768 sec.",
"cost": 0.0024,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "00000000-0000-0000-0000-000000000000",
"status_code": 20100,
"status_message": "Task Created.",
"time": "0.0100 sec.",
"cost": 0.0024,
"result_count": 0,
"path": [
"v3",
"app_data",
"apple",
"app_list",
"task_post"
],
"data": {
"api": "app_data",
"function": "app_list",
"se": "apple",
"app_collection": "top_free_ios",
"location_code": 2840,
"language_code": "en",
"depth": 200,
"app_category": "games",
"se_type": "app_list",
"device": "desktop",
"os": "windows"
},
"result": null
}
]
}状态码与错误处理
20000:请求成功。40006:单次请求提交的任务数量 100 个。tasks_error大于0:表示部分或任务创建失败,应逐项检查tasks数组中的status_code和status_message。- 建议客户端同时处理 HTTP 错误、顶层
status_code错误和单任务级别错误。
完整错误码列表请参考 /v3/appendix/errors。
实用场景
- 采集不同国家的 Apple榜和付费榜,对比应用排名与市场表现,支持海外市场评估。
- 监测竞品应用的榜单变化,按地区、语言和分类定期提交任务,及时发现竞品排名上升或下降。
- 分析游戏、生活等细分分类的热门应用,获取目标分类的榜单数据,为选品和产品定位提供依据。
- 追踪最新上架应用,采集
new_ios、new_free_ios或new_paid_ios榜单,发现潜在竞品和市场机会。 - 批量构建应用市场监测任务,结合
tag、pingback_url或postback_url自动任务与业务系统,降低人工轮询成本。