离线任务 API(V2)
基础地址(示例)
https://newapi.west.cn/v2/offline-task/{action}
1. 公共说明
1.1 鉴权参数(每个接口必传)
| 参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| username | 是 | string | 会员名(与 API 账号一致) |
| time | 是 | string/int | 毫秒时间戳,如 1716000000000 |
| token | 是 | string | md5(username + API密钥 + time) |
token 有效期:time 与服务器时间差不超过 600 秒(time 按毫秒传入)。
其它要求
- 须已开通 API 访问权限
- 须已配置 API IP 白名单
- 请求来源 IP 须在白名单内
1.2 token 生成示例
$username = 'your_member_name';
$time = (string)(int)(microtime(true) * 1000);
$apiPassword = '您的API密钥';
$token = md5($username . $apiPassword . $time);
const username = 'your_member_name';
const time = String(Date.now());
const token = md5(username + apiPassword + time);
1.3 响应结构
{
"code": 200,
"msg": "成功",
"data": {},
"clientid": "20260522143000xxxxxxxxxxxx"
}
| code | 含义 |
|---|---|
| 200 | 成功 |
| 404 | 缺少公共参数(errorcode: 10000) |
| 401 | token 超时(errorcode: 10001) |
| 500 | 系统/权限/参数校验失败(常见 errorcode: 1000) |
| 501 | 业务错误(msg 为具体原因) |
参数校验失败(code: 500 且带 errors):
{
"code": 500,
"msg": "操作失败",
"errors": {
"data": ["域名数据不能为空"]
},
"clientid": "..."
}
1.4 状态说明
任务状态 task_state
| 值 | 说明 |
|---|---|
| 0 | 未执行 |
| 1 | 执行中 |
| 2 | 暂停 |
| 3 | 执行失败 |
任务记录状态 record_state
| 值 | 说明 |
|---|---|
| 0 | 未执行 |
| 1 | 执行中 |
| 2 | 暂停 |
| 3 | 执行成功 |
| 4 | 执行失败 |
| 5 | 任务异常 |
| 6 | 队列中 |
2. 任务查询与管理
2.1 任务列表
请求
GET /v2/offline-task/task-list
业务参数(Query,均可选)
| 参数 | 类型 | 说明 |
|---|---|---|
| user_name | string | 用户名筛选 |
| task_sku | string | 任务编号 |
| task_type | string | 任务类型,如 domain_renew、dns_record |
| task_act | string | 任务动作(与提交时 act 一致) |
| task_state | int | 任务状态 0–3 |
| ident | string | 按域名筛选 |
| page | int | 页码,默认 1 |
| pageSize | int | 每页条数,默认 10 |
成功 data 结构
{
"data": [
{
"id": 1,
"task_sku": "TASK20260522001",
"task_type": "domain_renew",
"task_act": "domain_renew",
"task_state": 1,
"user_id": 12345,
"user_name": "demo",
"created_at": "2026-05-22 10:00:00",
"total": 100,
"record_state_num": [
{ "record_state": "3", "num": "80" }
]
}
],
"pageSize": 10,
"totalCount": 1,
"page": 1
}
2.2 任务记录列表
请求
GET /v2/offline-task/task-record-list
| 参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| task_sku | 是 | string | 任务编号(须属于当前登录用户) |
| record_state | 否 | int | 记录状态筛选 |
| ident | 否 | string | 按标识筛选(一般为域名) |
| page | 否 | int | 页码 |
| pageSize | 否 | int | 每页条数 |
成功 data
{
"data": [
{
"record_ident": "example.com",
"record_state": 3,
"record_result": "成功",
"act": "domain_renew"
}
],
"stat": [{ "record_state": "3", "num": "10" }],
"pageSize": 10,
"totalCount": 10,
"page": 1
}
2.3 暂停任务
请求
POST /v2/offline-task/task-pause
| 参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| id | 是 | int | 任务 ID(须为当前用户任务) |
失败时可能返回 code: 501,msg 如「该任务无法暂停」。
2.4 恢复任务
请求
POST /v2/offline-task/task-recover
| 参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| id | 是 | int | 任务 ID |
仅处于暂停状态(task_state = 2)的任务可恢复。
2.5 重试任务
请求
POST /v2/offline-task/task-reset
| 参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| id | 是 | int | 任务 ID |
限制
- 续费类任务(
task_act = domain_renew)不可重试 - 须存在失败(
record_state = 4)或队列中(record_state = 6)的子记录
2.6 域名分组列表
请求
GET /v2/offline-task/group-list
无额外业务参数。
成功 data 示例
[
{ "g_sysid": 1, "g_content": "默认分组", "gid": 1 }
]
3. 创建离线任务(POST)
以下接口均为 POST。除鉴权参数外,业务字段放在 Body(application/x-www-form-urlencoded 或 multipart/form-data)。user_id、user_name 由系统根据 username 自动填充,无需传递。
V2 接口不需要传递密保答案(mibao_answer);身份以 API 鉴权(username / time / token)为准。
data 通用说明
- 多个域名:使用换行分隔,例如
example.com\nexample.cn - 部分接口支持
alldomain,表示当前账号下全部域名(见各接口说明)
3.0 参数 act 说明
act 为操作类型子项,创建任务时必传。取值须与下表及对应小节一致;提交后写入任务的 task_act,可通过 §2.1 task-list 的 task_act 筛选。
| V2 接口 | act 取值(固定) | 成功后 task_type |
|---|---|---|
| add-renew-task | domain_renew | domain_renew |
| add-auto-renew-task | domain_auto_renew | domain_auto_renew |
| add-drop-task | domain_drop | domain_drop |
| add-privacy-task | domain_privacy_protection | domain_privacy_protection |
| add-set-pass-task | domain_set_pass | domain_set_pass |
| add-set-url-task | domain_set_url | domain_set_url |
| add-module-task | domain_gh | domain_gh |
| add-dns-record-task | 见 §3.8 | dns_record |
| add-ns-change-task | setnsmodi | ns_change |
| add-group-task | domain_group | domain_group |
参数 comm(开启/关闭类操作)
部分接口除 act 外还须传 comm,表示具体动作:
| 取值 | 含义 |
|---|---|
open | 开启 / 设置 |
close | 关闭 / 取消 |
3.1 域名续费
POST /v2/offline-task/add-renew-task
| 参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| act | 是 | string | 固定 domain_renew |
| data | 是 | string | 域名列表(换行分隔) |
| year | 是 | int | 续费年限,1–10 |
3.2 域名自动续费
POST /v2/offline-task/add-auto-renew-task
| 参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| act | 是 | string | 固定 domain_auto_renew |
| data | 是 | string | 域名列表(换行分隔),或 alldomain 表示账号下全部域名 |
| comm | 是 | string | open 开启自动续费;close 关闭自动续费 |
3.3 域名删除(丢弃域名)
POST /v2/offline-task/add-drop-task
| 参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| act | 是 | string | 固定 domain_drop |
| data | 是 | string | 域名列表(换行分隔),或 alldomain |
3.4 隐私保护
POST /v2/offline-task/add-privacy-task
| 参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| act | 是 | string | 固定 domain_privacy_protection |
| data | 是 | string | 域名列表(换行分隔) |
| comm | 是 | string | open 开启隐私保护;close 关闭隐私保护 |
3.5 修改域名密码
POST /v2/offline-task/add-set-pass-task
| 参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| act | 是 | string | 固定 domain_set_pass |
| data | 是 | string | 域名列表(换行分隔) |
| pwd | 是 | string | 新密码 |
3.6 URL 转发
POST /v2/offline-task/add-set-url-task
| 参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| act | 是 | string | 固定 domain_set_url |
| data | 是 | string | 域名列表(换行分隔) |
| comm | 是 | string | open 设置转发;close 取消转发 |
| hostname | 条件 | string | comm=open 时必填,主机记录 |
| url | 条件 | string | comm=open 时必填,跳转地址 |
| title | 否 | string | 网站标题,comm=open 时可传 |
| ishidden | 否 | string | 是否隐藏转发:0 不隐藏,1 隐藏(comm=open 时有效) |
comm=close 时无需传 hostname、url、title、ishidden。
3.7 模板过户
POST /v2/offline-task/add-module-task
| 参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| act | 是 | string | 固定 domain_gh |
| data | 是 | string | 域名列表(换行分隔) |
| eppidtype | 是 | string | 注册商类型 |
| c_sysid | 是 | string | 模板编号 |
3.8 DNS 记录
POST /v2/offline-task/add-dns-record-task
| 参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| act | 是 | string | 见下表 |
| data | 是 | string | 域名列表或解析内容;部分场景可为 alldomain |
| setting | 条件 | string | 基础模式 JSON,格式见下;act 为 rsalladdrec / rsalldomod 等解析变更时常用 |
| empty | 否 | string | 扩展选项,如添加解析时是否先清空:yes |
data
如需批量操作可以按以下格式处理,否则仅传域名或者alldomain
abc.com|www|A|127.0.0.1|默认:表示为域名abc.com,添加主机名为www的A记录,对应值为127.0.0.1,线路为默认
west.cn||CNAME|www.west.cn|默认:表示为域名west.cn,添加主机名为的CNAME记录,对应值为www.west.cn,线路为默认
域名批量添加解析python示例:该示例代码操作步骤为“清空解析 → 添加默认线路解析 → 添加非默认线路解析”
域名批量修改解析pyton示例:https://docs.apipost.net/docs/detail/60eea01fc488000?target_id=14a5e0d2360270
act 取值
| 取值 | 说明 |
|---|---|
rsalladdrec | 添加解析 |
rsalldomod | 修改解析 |
dodelreall | 删除解析 |
empty | 清空解析 |
synrecord | 刷新解析 |
setting 示例(单条规则字段:recitem 主机名、rectype 类型、val 记录值、recline 线路):
[{"recitem":"www","rectype":"A","val":"1.2.3.4","recline":"默认"}]
大批量导入时请注意请求超时。
3.9 修改 NS
POST /v2/offline-task/add-ns-change-task
| 参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| act | 是 | string | 固定 setnsmodi |
| data | 是 | string | 域名列表(换行分隔) |
| dnsuse | 是 | string | custom(自定义 NS)或 mine(使用我司 DNS) |
| ns | 条件 | string | NS 记录,dnsuse=custom 时必填 |
3.10 域名分组
POST /v2/offline-task/add-group-task
| 参数 | 必选 | 类型 | 说明 |
|---|---|---|---|
| act | 是 | string | 固定 domain_group |
| data | 是 | string | 域名列表(换行分隔) |
| gid | 是 | int/string | 分组 ID,0 表示取消分组;可先调用 group-list |
| gtype | 否 | string | 域名来源:my 我的域名(默认)、yd 预定域名、jj 竞价域名 |
创建成功:code 为 200,data 一般为 true 或接口返回的业务结果对象。
4. 调用示例
4.1 查询任务列表(GET)
GET /v2/offline-task/task-list?username=demo&time=1716000000000&token=xxxx&page=1&pageSize=20
4.2 提交续费任务(POST)
POST /v2/offline-task/add-renew-task
Content-Type: application/x-www-form-urlencoded
username=demo&time=1716000000000&token=xxxx&act=domain_renew&year=1&data=example.com%0Aexample.cn
4.3 curl
curl -G "https://newapi.west.cn/v2/offline-task/task-list" \
--data-urlencode "username=demo" \
--data-urlencode "time=1716000000000" \
--data-urlencode "token=YOUR_TOKEN" \
--data-urlencode "page=1"
5. 常见问题
| 现象 | 可能原因 |
|---|---|
| 缺少公共参数 | 未传 username / time / token,或 HTTP 方法不正确 |
| token 时间超时 | time 不是毫秒时间戳,或已超过 10 分钟 |
| 身份认证失败 | token 计算方式错误或 API 密钥不正确 |
| 无 API 访问权限 / 请先设置访问 IP 白名单 | 账号未开通 API 或未配置白名单 |
| IP 访问限制 | 调用方 IP 不在白名单内 |
| code 500 且含 errors | 业务参数校验未通过,见 errors 字段 |
| code 501 | 业务拒绝,如任务不存在、任务状态不允许操作等 |
