推送开放接口 · 对接文档

一句话:拿一把 key,POST 一批号码过来,你在后台看数据就行。不需要理解内部怎么跑。

你需要准备三样东西:
① 接口地址 https://ios.ytai66.cc/openapi.php
② 你的 key(找对接人拿,一串 32 位字符,一把 key 对应一个团队)
③ 要推的号码文本(一行一个,写不写 +86 都行)

1. 先测连通(30 秒)

跑通这条再往下做,排除 key 或网络问题。

curl "https://ios.ytai66.cc/openapi.php?do=ping&key=你的KEY"

正常返回:

{
  "ok": true,
  "team": { "code": "op01", "name": "自营一号队" },
  "server_time": "2026-11-05 13:40:00",
  "msg": "连通正常"
}

2. 推号码(核心接口)

POST?do=push

参数

字段必填说明
key是你的团队密钥
phones是号码文本,换行 / 逗号 / 空格 / 分号 分隔都认。+8613800138000 和 13800138000 等效
remark否这批的备注,方便你自己区分批次
device否ios / android,不填默认不限

示例 · curl

curl -X POST "https://ios.ytai66.cc/openapi.php?do=push" \
  -H "Content-Type: application/json" \
  -d '{
    "key": "你的KEY",
    "phones": "13800138000\n13900139000\n+8613700137000",
    "remark": "1105第一批"
  }'

示例 · Python

import requests

r = requests.post(
    "https://ios.ytai66.cc/openapi.php?do=push",
    json={
        "key": "你的KEY",
        "phones": """13800138000
13900139000
13700137000""",
        "remark": "1105第一批",
    },
    timeout=30,
)
print(r.json())

示例 · PHP

$ch = curl_init("https://ios.ytai66.cc/openapi.php?do=push");
curl_setopt_array($ch, [
    CURLOPT_POST           => true,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ['Content-Type: application/json'],
    CURLOPT_POSTFIELDS     => json_encode([
        'key'    => '你的KEY',
        'phones' => "13800138000\n13900139000",
    ]),
]);
echo curl_exec($ch);

返回

{
  "ok": true,
  "team": "op01",
  "received": 3,      // 收到几条
  "added": 2,         // 新增入库
  "dup": 1,           // 之前就有,不重复算钱
  "invalid": 0,       // 格式不对
  "total": 1002,      // 你这个团队现在总共多少条
  "msg": "收到 3 条:新增 2,重复 1,无效 0"
}
去重规则:同一个号码全局只记一次。重复推不会报错,也不重复计费,返回里算在 dup。

3. 查进度

GET?do=status

curl "https://ios.ytai66.cc/openapi.php?do=status&key=你的KEY"
{
  "ok": true,
  "team": { "code": "op01", "name": "自营一号队" },
  "numbers": {
    "total": 1002,     // 你推过来的总数
    "usable": 987      // 其中可触达的
  },
  "send": {
    "sent": 640,        // 已发出
    "pending": 20,      // 排队中
    "failed": 12,       // 失败
    "today": 180         // 今天发的
  },
  "quota": { "daily": 0, "used_today": 180 }
}

quota.daily = 0 表示不限量。

4. 设置回调(可选)

你给一个 URL,我们每条发完就往这个地址 POST 一条结果。不需要就不设置。

curl -X POST "https://ios.ytai66.cc/openapi.php?do=callback" \
  -H "Content-Type: application/json" \
  -d '{ "key": "你的KEY", "url": "https://你的域名/callback" }'

5. 错误码

HTTPcode含义 / 怎么处理
200—成功
400no_action没传 do
400no_phonesphones 是空的
401no_key没传 key
401bad_keykey 不对,找对接人核对
403disabled团队已停用
429quota今日配额用完,明天再推

失败时统一返回:

{ "ok": false, "code": "bad_key", "msg": "key 无效" }

6. 几条注意

#事项
1号码格式不限,程序会自动标准化。国际号码建议带 + 前缀,如 +85252732507
2单次 phones 建议 ≤ 5000 条,多了分几次推,每次间隔几秒
3重复推送安全,不会重复计费
4key 不要写进前端代码、不要发群里。疑似泄露立刻找对接人换
5所有时间都是北京时间(UTC+8)

推送开放接口 · 文档版本 2026-11-05