跳转到内容

API ​

1. 发送通知 ​

text
POST https://send.meowpush.com/
Content-Type: application/json

公共请求字段 ​

  • key:单个设备、设备组或应用的推送密钥
  • keys:设备和设备组 Push Key 可混合批量发送,最大 50 个,不能重复

一个请求中,key 或 keys 不能同时使用。

限制:使用应用推送密钥发送通知时,其只能在一次请求中单独使用,不能与其他应用、设备或设备组密钥一起批量发送。

推送请求字段 ​

字段类型说明
title字符串,1–256 个字符通知标题
subtitle字符串,1–256 个字符通知副标题;展示方式因平台而异
body字符串,1–4000 个字符通知内容
levelpassive、active、time-sensitive
默认值:active
badge整数,0–99绝对角标值;0 清除角标
iconHTTPS URL,1–2048 个字符来源头像或图标;呈现能力因平台而异
imageHTTPS URL,1–2048 个字符通知媒体图片;呈现能力因平台而异
urlURI,1–2048 个字符要附加的链接,点击通知后跳转
group字符串,1–64 个字符将相关通知放入同一分组
collapse_id[A-Za-z0-9_-]{1,32}用相同标识替换之前的展示内容
ttl整数,单位为秒,0–2419200
默认值:86400
通知有效时间
dataJSON 对象传给 App 的自定义数据

除 body 外,消息字段均为可选。

响应 ​

成功处理后的响应会汇总每个最终投递结果。响应示例:

json
{
  "notification_id": "019cf5f1-7f2d-7d18-8be1-6f27e1916b52",
  "accepted": 1,
  "failed": 0,
  "results": [
    {
      "key": "mpdv0000000000000001",
      "source_keys": ["mpdv0000000000000001"],
      "status": "accepted",
      "transport": "apns",
      "message_id": "provider-message-id"
    }
  ]
}
字段说明
notification_id本次 Push Request 的服务端通知标识
accepted / failed接受和失败的最终设备数
results[].key该结果的主来源 Push Key
results[].source_keys最终解析到同一设备的来源 Push Key 列表
results[].statusaccepted 或 failed
results[].transportapns、fcm、hms、wns 或 unifiedpush;未解析到设备时可能为 null
results[].message_id上游返回的可选消息标识
results[].reason失败时的稳定原因代码
results[].retry_at配额失败时可能返回的最早重试时间

accepted 只表示对应上游推送平台(如 APNs、FCM 等)已接收消息投递,最终送达通常会稍晚于响应时间,并受到上游平台和设备状态的影响。

频率限制 ​

发送频率限制(IP 粒度):100 次/秒。

2. 请求应用授权 ​

这是程序使用的创建应用的授权接口。适用于来自 AI Agent、脚本、任务、第三方应用或平台等快速向用户申请专属推送密钥,以发送通知给用户。

在创建应用时,请求方应标明自身应用名称、用途描述等。将获取到的 authorization_url 交给用户请求授权,通过查询或定时轮询结果来获取应用推送密钥。

创建授权请求 ​

text
POST https://accounts.meowpush.com/api/v1/application-authorization-requests
Content-Type: application/json

请求字段 ​

字段类型说明
modecreate 或 reauthorize授权请求的模式。必填
application_id字符串已有应用授权的标识;reauthorize 时必填,create 时不传
metadataJSON 对象应用基础信息;创建时需包含 name,重授权时可传 {}。必填

请求有两种模式(mode):create 用于申请新应用授权,reauthorize 用于已有授权的应用重新授权。

modeAuthorization请求体
create无需mode、metadata;metadata.name 必填
reauthorizeBearer <reauthorization_token>mode、application_id、metadata;应用标识和凭证来自已有授权

申请创建应用授权示例:

json
{
  "mode": "create",
  "metadata": { "name": "Daily Summary" }
}

重授权示例:

json
{
  "mode": "reauthorize",
  "application_id": "019f1000-0000-7000-8000-000000000017",
  "metadata": {}
}

metadata 字段:

字段类型说明
name字符串,1–64 个 Unicode 字符,创建时必填应用名称
description字符串,最多 1024 个 Unicode 字符应用功能描述
website_urlHTTP(S) URL,最多 2048 字节应用的网站链接
icon_urlHTTPS URL,最多 2048 字节应用图标

在重授权时,可省略字段保留原值,null 清空可选字段;当用户批准重新授权后,之前的推送密钥保持不变,且不会返回新的重授权凭证。

响应 ​

请求授权成功时,返回 HTTP 201,示例:

json
{
  "request_id": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
  "authorization_url": "https://accounts.meowpush.com/new-app?rid=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
  "poll_secret": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBA",
  "expires_at": "2026-10-10T05:00:00.000Z",
  "poll_interval_seconds": 2
}
字段说明
request_id本次授权请求的标识,用于查询结果
authorization_url交给用户的私密授权邀请链接
poll_secret查询结果的凭证,应仅由申请方临时使用
expires_at授权请求的过期时间,UTC
poll_interval_seconds查询结果的最小间隔,单位为秒

查询授权结果 ​

该接口用于查询授权请求的结果,通常在用户点击授权链接返回交互后触发查询,或由请求方定时轮询。

text
GET https://accounts.meowpush.com/api/v1/application-authorization-requests/<request_id>/result
Authorization: Bearer <poll_secret>

响应 ​

成功返回 HTTP 200,示例:

json
{
  "status": "approved",
  "result": {
    "application_id": "019f1000-0000-7000-8000-000000000017",
    "push_key": "mpap00000000000000000000000001",
    "reauthorization_token": "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCA",
    "key_version": 1,
    "connection_version": 1,
    "expires_at": "2026-10-10T04:15:00.000Z"
  },
  "expires_at": "2026-10-10T04:15:00.000Z",
  "poll_interval_seconds": 2
}
字段说明
status授权请求的状态,取值见下表
result有效的 approved 状态返回应用凭证对象,其余状态为 null
expires_at请求或领取期限,UTC;具体含义见下文
poll_interval_seconds查询结果的最小间隔,单位为秒
result.application_id创建的应用的标识符,可用于重授权和存储
result.push_key应用推送密钥,可用于 发送通知
result.reauthorization_token可选重授权凭证;重授权请求的结果将省略此字段,保留原凭证
result.key_version / result.connection_version推送密钥和接入凭证版本
result.expires_at本次凭证结果的领取期限

status 取值:

statusresult建议处理方式
pendingnull按 poll_interval_seconds 的间隔继续轮询
approved应用凭证对象已授权。应保存凭证并停止轮询
rejectednull用户拒绝。应停止轮询
expirednull请求或领取窗口过期。应停止轮询
invalidatednull请求无效。应停止轮询

顶层 expires_at 在 pending 时表示请求期限(默认为 1 小时),在 approved 时表示获取结果的有效期限(默认为批准后 30 分钟)。

错误响应 ​

非 2xx 响应为 {"error": {"code": "…", "message": "…"}},需按 error.code 判断处理。

HTTPerror.code建议处理方式
429rate_limited按 Retry-After 指定的秒数退避
404application_authorization_request_not_found请求或领取凭证不可访问。应停止查询