加载中... cdkey 字段(即您的卡密 code)作为唯一身份与计费凭证success 字段;失败时附 error 描述token_only 模式与 /api/v1/refill_token 接口永不扣点。在批量提交前,可调用此接口确认卡密剩余可用次数。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cdkey | String | 是 | 您的授权卡密 |
{
"success": true,
"remaining_uses": 450,
"used": 12,
"total": 462
}
向调度中心提交一个或多个账号加入等待队列。worker 会自动拉取并执行。提交不扣点,只在执行成功后才扣点。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cdkey | String | 是 | 您的授权卡密 |
| accounts | Array | 否* | 账号数组(批量),每项含 email/password/totp/recovery_email |
| String | 否* | 单条提交模式,谷歌账号邮箱 | |
| password | String | 否* | 账号密码(单条模式) |
| totp | String | 否 | 2FA 密钥(无空格),单条模式。也可叫 twofa |
| recovery_email | String | 否 | 辅助邮箱(用于跳过辅助邮箱验证) |
| mode | String | 否 | 处理模式:full(默认,完整流程含取 token,扣费) / bind_only(只登录+绑号,不取 token,扣费) / token_only(只取 token 不过设备,不扣费)。非法值会回落到 full |
accounts 与单条字段 email/password 二选一。批量优先级更高。{
"cdkey": "K-YOURCDKEY",
"accounts": [
{"email":"a@gmail.com", "password":"Pwd1", "totp":"JBSWY3DPEHPK3PXP"},
{"email":"b@gmail.com", "password":"Pwd2", "totp":"AAAA"}
]
}
{
"success": true,
"submitted": 2,
"tasks": [
{"task_id": 1024, "email": "a@gmail.com", "status": "queued"},
{"task_id": 1025, "email": "b@gmail.com", "status": "queued"}
],
"mode": "full",
"remaining_uses": 450
}
支持按 task_id、task_ids 批量、email、或 filter 状态过滤查询。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cdkey | String | 是 | 您的授权卡密 |
| task_id | Int | 否 | 单条任务 ID |
| task_ids | Array | 否 | 多个任务 ID 批量查询 |
| String | 否 | 按邮箱查询(同卡密下) | |
| filter | String | 否 | 按状态过滤:queued / running / success / failed / no_quota。不传则返回全部 |
| include_token | Bool | 否 | 是否在 success 任务中返回 token,默认 false |
{
"success": true,
"count": 1,
"data": [{
"task_id": 1024,
"email": "a@gmail.com",
"status": "success",
"message": "验证通过",
"completed_at": 1734567890,
"used_phone": "",
"mode": "bind_only",
"has_token": false,
"refilling": false
}]
}
queued 排队中 / running 执行中 / success 成功 / failed 失败 / no_quota 卡密无余额mode 任务模式 (full/bind_only/token_only) / has_token 该任务是否已有 token / refilling 是否正在补 token (token_only 重排队中)。/api/v1/refill_token 后,status 对外仍显示 success(避免代理客户看到状态回退),但 refilling=true 表示后台正在补 token。补完后 has_token 变 true 且 refilling 变 false。取消还在 queued 状态的任务(已经分配给 worker 执行中的任务无法取消)。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cdkey | String | 是 | 您的授权卡密 |
| task_id | Int | 是 | 任务 ID |
{"success":true, "cancelled":1, "message":"任务已取消"}
删除任意状态的任务记录(不退点 — 因为成功才扣点)。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cdkey | String | 是 | 您的授权卡密 |
| task_id | Int | 否* | 单个任务 ID |
| task_ids | Array | 否* | 批量任务 ID。* 二选一 |
{"success":true, "affected":3}
把 failed 状态的任务重新放回 queued 队列,worker 会再次执行。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cdkey | String | 是 | 您的授权卡密 |
| task_id | Int | 否* | 单个任务 ID |
| task_ids | Array | 否* | 批量任务 ID |
| all_failed | Bool | 否* | true = 重试所有 failed 任务。* 三选一 |
{"success":true, "affected":5}
对已成功但 token 为空(典型场景:bind_only 模式跑完的任务)的账号补抽 token。本次重排不扣点,失败也不扣点。任务以 token_only 模式重新进入队列,worker 抓到后只跑 token 抽取流程,不重做设备验证/绑号。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cdkey | String | 是 | 您的授权卡密 |
| task_id | Int | 否* | 单个任务 ID |
| task_ids | Array | 否* | 批量任务 ID 数组(最多 5000)。* 二选一 |
{
"cdkey": "K-YOURCDKEY",
"task_ids": [1024, 1025, 1026]
}
{
"success": true,
"requeued": 2,
"skipped": 1
}
/api/v1/status?task_id=X 查询,status 保持 success,refilling=true 表示进行中。完成后 has_token 变 true、refilling 变 false。mode=bind_only 批量提交:只跑设备验证+绑号,扣 1 点/账号。一次性拿走所有 success 任务的 token 与账号信息。可选导出后清库。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cdkey | String | 是 | 您的授权卡密 |
| clear | Bool | 否 | true = 导出后清空成功记录(同前端 UI 行为)。默认 false |
| with_token | Bool | 否 | 是否包含 token,默认 true |
{
"success": true,
"count": 38,
"tokens": ["1//xxx", "1//yyy"],
"data": [{"email":"a@gmail.com", "password":"Pwd1", "token":"1//xxx", "used_phone":""}],
"lines": "a@gmail.com----Pwd1----1//xxx\nb@gmail.com----Pwd2----1//yyy"
}
一次性拿走所有 failed 任务的完整数据 + 失败原因 + 已用号码。可选导出后清库。便于下游分析重试。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cdkey | String | 是 | 您的授权卡密 |
| clear | Bool | 否 | true = 导出后仅清本次返回的 task_ids (不会误删别人的)。默认 false |
| task_ids | Array<Int> | 否 | 只导这几个任务 (过滤只返 failed) |
| client_ref | String | 否 | 只导某个下游客户标 |
| delimiter | String | 否 | 行内分隔符, 默认 ---- |
| format | String | 否 | json (默认) 或 text (仅返 lines, 体积小) |
{
"success": true,
"count": 5,
"data": [{
"task_id": 123,
"email": "a@gmail.com",
"password": "Pwd1",
"recovery": "",
"totp": "JBSWY3DPEHPK3PXP",
"used_phone": "+8613xxx",
"result_msg": "密码错误:密码可能已被修改",
"client_ref": "",
"completed_at": 1750000000
}],
"lines": "a@gmail.com----Pwd1----JBSWY3DPEHPK3PXP----+8613xxx----密码错误:密码可能已被修改"
}
行格式:邮箱{D}密码{D}[辅助邮箱]{D}[2FA]{D}[已用号码]{D}失败原因,{D} 默认为 ----。失败原因总在最后一列。
import requests url = "加载中" payload = { "cdkey": "K-YOURCDKEY", "accounts": [ {"email": "a@gmail.com", "password": "Pwd1", "totp": "JBSWY3DPEHPK3PXP"}, ] } r = requests.post(url, json=payload, timeout=30) print(r.json())
curl -X POST 加载中 \ -H "Content-Type: application/json" \ -d '{"cdkey":"K-YOURCDKEY","accounts":[{"email":"a@gmail.com","password":"Pwd1","totp":"JBSWY3DPEHPK3PXP"}]}'
<?php $url = "加载中"; $data = [ "cdkey" => "K-YOURCDKEY", "accounts" => [ ["email" => "a@gmail.com", "password" => "Pwd1", "totp" => "JBSWY3DPEHPK3PXP"] ] ]; $opts = ["http" => [ "method" => "POST", "header" => "Content-Type: application/json", "content" => json_encode($data) ]]; echo file_get_contents($url, false, stream_context_create($opts)); ?>
const res = await fetch("加载中", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ cdkey: "K-YOURCDKEY", accounts: [{ email: "a@gmail.com", password: "Pwd1", totp: "JBSWY3DPEHPK3PXP" }] }) }); console.log(await res.json());