开发者中心
API 文档
查看认证方式、接口参数、响应示例和状态码。
调用约定
| 项目 | 要求 |
|---|---|
| 请求 | POST,Content-Type: application/json |
| 认证 | username、apiKey、当前 10 位秒级时间戳 tKey |
| 时间窗口 | tKey 与服务器时间相差不超过 5 分钟 |
| 幂等请求 | 新增、删除、发送接口必须提供 8 至 128 位 requestId,允许字母、数字、点、下划线、冒号和短横线 |
| 接口地址 | https://sms.zevost.com,路径不含 .php,结尾不加 / |
签名新增
POST
https://sms.zevost.com/api/v1/sign/report/proxy
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| username | Y | String | 用户名 |
| apiKey | Y | String | API密钥 |
| tKey | Y | Long | Unix 时间戳(10位,5分钟内) |
| requestId | Y | String | 幂等请求标识,8至128位;同一请求可安全重试 |
| signatureList | Y | List | 签名集合(限制1个) |
请求示例(使用API Key):
{
"username": "your_username",
"apiKey": "your_api_key",
"tKey": "1793558852",
"requestId": "sign-20260828-000001",
"signatureList": [{
"signature": "【知我云】",
"contentExample": "【知我云】您的验证码是:123456",
"companyName": "****有限公司",
"creditCode": "91310****889",
"legalPerson": "****",
"principalName": "****",
"principalIdCard": "3202****4324",
"principalMobile": "153****1234",
"signSource": 1,
"signType": 1,
"bizLicenseUrl": "https://****",
"idcardFrontUrl": "https://****",
"idcardBackUrl": "https://****"
}]
}
signSource:1 企业名称、2 事业单位、3 商标;signType:0 全称、1 简称。商标来源还需提供 trademarkScreenshotUrl(中国商标网查询截图,JPG/PNG,最大 5MB)。材料地址须为可访问的 HTTPS 地址。成功响应包含 successList 和 failList。
签名查询
POST
https://sms.zevost.com/api/v1/sign/query
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| username | Y | String | 用户名 |
| apiKey | Y | String | API密钥 |
| tKey | Y | Long | Unix 时间戳(10位,5分钟内) |
| sign | Y | String | 签名(含【】) |
请求示例:
{
"username": "your_username",
"apiKey": "your_api_key",
"tKey": "1793558852",
"sign": "【知我云】"
}
响应示例:
{
"code": 200,
"msg": "success",
"sign": "【知我云】",
"signId": "123456",
"isPublic": 0,
"auditResult": 2,
"auditMsg": "审核通过",
"realNameYd": "1",
"realNameLt": "1",
"realNameDx": "1",
"ydAvalibleType": "验证码,通知",
"ltAvalibleType": "验证码,通知",
"dxAvalibleType": "验证码,通知",
"mergeRealNameStatus": "1"
}
签名删除
POST
https://sms.zevost.com/api/v1/sign/delete
仅可删除当前账号尚未完成同步的签名,单次最多 20 个。
请求示例:
{
"username": "your_username",
"apiKey": "your_api_key",
"tKey": "1793558852",
"requestId": "sign-delete-20261002-0001",
"signatureList": ["【知我云】"]
}
模板报备
POST
https://sms.zevost.com/api/v1/template
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| temName | Y | String | 模板名称,最多 20 个字符,同一账号内不可重复 |
| temType | Y | Integer | 1 验证码、2 行业通知、3 会员营销 |
| temContent | Y | String | 最多 450 个字符,必须以已审核签名开头 |
| paramJson | N | Object | 变量名与变量类型映射,最多 16 个变量;省略时自动识别 |
| paramLengthJson | N | Object | 变量名与最大长度映射;省略时使用对应类型默认值 |
| remark | N | String | 使用场景或变量替换后的完整短信示例,最多 500 个字符 |
| extend | N | String | 自定义扩展字段,最多 500 个字符 |
变量模板示例:
{
"username": "your_username",
"apiKey": "your_api_key",
"tKey": "1793558852",
"requestId": "template-20261002-0001",
"temName": "验证码模板",
"temType": 1,
"temContent": "【知我云】您的验证码是:{code},有效期10分钟。",
"paramJson": {
"code": "valid_code"
},
"paramLengthJson": {
"code": 6
},
"remark": "完整示例:【知我云】您的验证码是:123456,有效期10分钟。"
}
固定模板示例:
{
"username": "your_username",
"apiKey": "your_api_key",
"tKey": "1793558852",
"requestId": "template-20261002-0002",
"temName": "维护完成通知",
"temType": 2,
"temContent": "【知我云】系统维护已完成,服务现已恢复。",
"remark": "用于系统维护完成后通知用户"
}
变量类型:
| 类型 | 长度 | 适用内容 |
|---|---|---|
| valid_code | 4-6 | 验证码模板专用,数字和英文字母组合 |
| other_number | 1-20 | 字母、数字和中划线 |
| amount | 1-15 | 金额 |
| date | 1-20 | 日期或时间 |
| chinese | 1-15 | 中文文本 |
| others | 1-20 | 中文、数字、字母及常用中文符号 |
| int_number | 1-10 | 整数 |
变量支持 {name} 和 @var(name),变量名必须以英文字母或下划线开头,只能包含英文字母、数字和下划线。变量长度总和不能超过模板总长度的 70%。固定模板不要传 paramJson 和 paramLengthJson。
模板查询
POST
https://sms.zevost.com/api/v1/template/query
根据模板 ID 查询当前账号自己的模板,或查询已经审核通过并公开的公共模板。
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| username | Y | String | 用户名 |
| apiKey | Y | String | API 密钥 |
| tKey | Y | Long | Unix 时间戳(10 位,5 分钟内) |
| temId | Y | Integer | 知我云 SMS 模板 ID |
请求示例:
{
"username": "your_username",
"apiKey": "your_api_key",
"tKey": "1793558852",
"temId": 183
}
响应示例:
{
"code": 200,
"msg": "success",
"temId": 183,
"upstreamTemId": "91",
"temName": "验证码模板",
"temType": 1,
"temContent": "【知我云】您的验证码是:{code},有效期10分钟。",
"paramJson": {
"code": "valid_code"
},
"paramLengthJson": {
"code": 6
},
"isPublic": 0,
"extend": "",
"createTime": "2026-09-27 12:00:00",
"remark": "",
"auditResult": 2,
"auditMsg": "审核通过"
}
auditResult:1 审核中、2 审核通过、3 审核不通过。发送短信时使用响应中的本地 temId。
模板短信发送
POST
https://sms.zevost.com/api/v1/sendSmsTp
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| tpId | Y | Integer | 知我云 SMS 模板 ID |
| signature | Y | String | 模板关联的完整签名,包含 【】 |
| records | Y | Array | 固定模板最多 2000 条,变量模板最多 200 条 |
| mobile | Y | String | 中国大陆手机号码 |
| tpContent | 变量模板 Y | Object | 变量名和值必须与模板定义完全一致;固定模板可省略或传空对象 |
| extend | N | String | 自定义扩展字段,最多 500 个字符 |
请求示例:
{
"username": "your_username",
"apiKey": "your_api_key",
"tKey": "1793558852",
"requestId": "sms-20261002-0001",
"tpId": 183,
"signature": "【知我云】",
"records": [{
"mobile": "13800138000",
"tpContent": {
"code": "123456"
}
}]
}
响应示例:
{
"code": 200,
"msg": "success",
"tpId": 183,
"msgId": "20261002153000abcdef123456",
"successCount": 1,
"failedCount": 0,
"pendingCount": 0,
"totalCost": "0.0350",
"invalidList": []
}
接口会逐条校验号码和变量,未通过的记录位于 invalidList。触发频率限制时 HTTP 状态为 429,并返回 retryAfter。
下行回执抓取
POST
https://sms.zevost.com/api/v1/batchReport
返回当前账号最近的终态回执,count 范围为 1-400,默认 100。
请求示例:
{
"username": "your_username",
"apiKey": "your_api_key",
"tKey": "1793558852",
"count": 100
}
响应示例:
{
"code": 200,
"msg": "success",
"reportList": [{
"msgId": "20261002153000abcdef123456",
"mobile": "13800138000",
"status": "success",
"statusCode": "DELIVRD",
"statusMsg": "短信送达成功",
"reportTime": "2026-10-02 15:30:08",
"extend": ""
}]
}
余额查询
POST
https://sms.zevost.com/api/v1/user/balance
请求参数:
| 参数名 | 必选 | 类型 | 说明 |
|---|---|---|---|
| username | Y | String | 用户名 |
| apiKey | Y | String | API密钥 |
| tKey | Y | Long | Unix 时间戳(10位,5分钟内) |
响应示例:
{
"code": 200,
"msg": "success",
"balance": "100.50",
"currency": "CNY"
}
短信状态说明
状态类型:
| 状态值 | 状态名称 | 说明 |
|---|---|---|
| success | 已送达 | 短信已成功送达用户手机 |
| failed | 发送失败 | 短信发送失败,费用已自动退回 |
| unknown | 回执超时 | 超过 24 小时未收到运营商最终回执,状态未知且不自动退款 |
状态码说明:
| 状态码 | 说明 |
|---|---|
| DELIVRD | 短信送达成功 |
| UNDELIV | 短信未送达(号码不存在、停机等) |
| REJECTD | 短信被拒绝(内容违规、黑名单等) |
| EXPIRED | 短信已过期(超时未送达) |
常见错误码
| 错误码 | 说明 |
|---|---|
| 200 | 成功 |
| 4001 | 用户名或 API Key 错误 |
| 4003 | 余额不足 |
| 4004 | 手机号码无效 |
| 4007 | 用户已禁用 |
| 4008 | tKey错误(时间戳超过5分钟) |
| 4009 | 用户名或 API Key 错误 |
| 4011 | 缺少必填参数 |
| 4014 | 模板错误或未审核通过 |
| 4023 | 签名错误或未审核通过 |
| 4026 | 手机号码数量超过限制(固定模板最多2000个,变量模板最多200个) |
| 4029 | 请求方法错误(需使用POST) |
| 4030 | 接口未开放或当前 IP 不在白名单 |
| 4032 / 4033 | 模板类型无效或暂未开放 |
| 4035-4038 | 模板名称重复、保存失败或名称/内容超过长度限制 |
| 4042 | 模板变量定义、类型或长度无效 |
| 4047 | 模板不存在或无权访问 |
| 4076 | 模板内容未以已审核签名开头 |
| 4090 | 相同幂等请求正在处理中 |
| 4290 | API 请求频率过高,请按 Retry-After 响应头重试 |
| 4291 | 超过账户或平台 TPS,请按 retryAfter 秒后重试 |
| 4292 | 手机号发送频率过高,请按 retryAfter 秒后重试 |
| 4301 | 短信内容触发发送安全规则 |
| 4302 | 短信内容包含不允许的网址 |
| 5000 | 服务器内部错误 |
| 5030 | 请求保护服务暂不可用 |
| 9998 | JSON解析错误 |