运营后台指南

运营后台(/admin/)面向平台运营角色,提供跨应用的用户、聊天室、消息审计、回调推送与运营看板。页面下半部分为由 Admin API 契约生成的参考。

Admin API 鉴权

所有管理接口使用请求头 X-Admin-Secret(服务端环境变量 IM_ADMIN_SECRET,本地默认 dev-admin)鉴权;与 Open API 的 AppKey 签名体系相互独立。

应用总览​

展示应用数、用户数、消息量、在线峰值;点击应用行查看详情与实时统计。

用户管理​

  • 查询用户资料与在线状态;
  • 封禁/解封用户;
  • 查看用户标签与所属群组。

聊天室治理​

  • 查看在线聊天室与成员;
  • 封禁聊天室成员、踢出成员;
  • 销毁违规聊天室(仅运营角色)。

消息审计​

按应用、用户、会话、关键字与时间检索消息;支持导出审计结果。

回调与推送通道​

配置离线推送 Webhook 与通用回调,查看投递日志与失败重试;支持按事件类型开启/关闭。

运营看板​

消息量、DAU、在线峰值趋势图;数据源为 Admin API 统计接口。

Admin API 参考​

共 85 个管理接口,全部由 IDL 中的 operationId / method / path / 参数 / 响应 schema 生成;接口清单与实现零漂移。基础路径为 /api/admin。

操作 ID方法路径说明
admin.apps.listGET/apps应用列表(含用户/消息/在线统计)。
admin.apps.createPOST/apps创建应用,返回 appkey/appSecret(仅本次返回 secret)。
admin.apps.getGET/apps/{appkey}应用详情(secret 脱敏)。
admin.apps.secret.resetPOST/apps/{appkey}/secret/reset重置 AppSecret(旧签名立即失效)。
admin.users.listGET/apps/{appkey}/users用户列表(含在线状态/封禁),?keyword&offset&limit。
admin.users.registerPOST/apps/{appkey}/users注册测试用户(幂等)。
admin.users.tokenPOST/apps/{appkey}/users/{userId}/token为测试用户签发 token(控制台复制用)。
admin.users.banPOST/apps/{appkey}/users/{userId}/ban封禁/解封用户。
admin.users.getGET/apps/{appkey}/users/{userId}用户详情(在线/封禁/禁言/token 版本)。
admin.users.mutePOST/apps/{appkey}/users/{userId}/mute全应用禁言/解禁用户(mutedUntil=0 解禁;与群禁言独立)。
admin.users.resetTokenPOST/apps/{appkey}/users/{userId}/token/reset吊销并重置用户 token 版本(旧 JWT 立即失效)。
admin.metrics.overviewGET/apps/{appkey}/metrics/overview应用运营指标概览:DAU/消息量/在线峰值/错误率(今日+近 7 天)。
admin.groups.listGET/apps/{appkey}/groups群/超级群列表(?keyword&offset&limit)。
admin.chatrooms.listGET/apps/{appkey}/chatrooms聊天室列表(在线数/存活状态)。
admin.messages.listGET/apps/{appkey}/messages消息查询:?userId&conversationType&targetId&keyword&from&to&offset&limit。
admin.messages.traceGET/apps/{appkey}/messages/{messageId}/trace消息投递轨迹。
admin.messages.sendPOST/apps/{appkey}/messages以系统/指定用户身份发消息(控制台调试)。
admin.connections.listGET/apps/{appkey}/connections在线连接明细:userId/sessionId/connectedAt/lastHeartbeat/device。
admin.connections.statsGET/apps/{appkey}/connections/stats在线用户数/会话数/峰值。
admin.services.getGET/apps/{appkey}/services服务开通项与配额。
admin.services.setPOST/apps/{appkey}/services更新服务开通项/配额。
admin.callbacks.getGET/apps/{appkey}/callbacks回调配置(secret 脱敏)。
admin.callbacks.setPOST/apps/{appkey}/callbacks设置回调配置。
admin.callbacks.deliveriesGET/apps/{appkey}/callbacks/deliveries回调投递日志(?eventType&status&from&to&offset&limit)。
admin.callbacks.retryPOST/apps/{appkey}/callbacks/deliveries/{deliveryId}/retry手动重试投递。
admin.push.getGET/apps/{appkey}/push离线推送通道配置。
admin.push.setPOST/apps/{appkey}/push设置离线推送 webhook。
admin.sensitiveWords.getGET/apps/{appkey}/sensitive-words敏感词配置。
admin.sensitiveWords.setPOST/apps/{appkey}/sensitive-words设置敏感词与处置动作。
admin.stats.globalGET/stats全局统计。
admin.stats.trendGET/stats/trend运营趋势(按天,?days&appkey)。
admin.api.metadataGET/api-metadataAPI 调试器元数据:可选接口列表(operationId/method/path/params),由服务端从 Open API IDL 派生。
admin.callbacks.testPOST/apps/{appkey}/callbacks/test发送回调测试事件(按当前回调配置投递一次,返回投递结果;用于控制台“测试回调”)。
admin.users.batchRegisterPOST/apps/{appkey}/users/batch批量注册用户(上限 100,逐条幂等;返回 created 与 failed 明细)。
admin.messages.exportGET/apps/{appkey}/messages/export导出消息为 CSV(查询参数 limit 默认 1000、beforeSeq 可选;返回 csv 文本供控制台下载)。
admin.chatrooms.destroyPOST/apps/{appkey}/chatrooms/{chatroomId}/destroy销毁聊天室:踢出在线成员、广播 destroyed、回调 chatroom.destroyed;body {reason?}(默认 admin_destroy)。不存在 1012 / 已销毁 1013。
admin.chatrooms.muteAllPOST/apps/{appkey}/chatrooms/{chatroomId}/mute-all聊天室全体禁言/解除:{muted, durationSec?};durationSec 1..=2592000(30 天),省略=持续禁言;muted=false 立即解除。与 Open API chatroom.mute-all 同源状态。
admin.audit.listGET/apps/{appkey}/audit操作日志查询(按应用;时间倒序):?actor&action&object&from&to&offset&limit。记录管理端写操作(actor=admin、action、object、result、timestamp),环形上限 5000 条。
admin.features.getGET/apps/{appkey}/features功能开关:friend/group/chatroom/push/sensitiveWord/messageCallbacks;mapping 字段说明各自映射到的既有数据源(ServiceActivation.services / app.pushEnabled)。
admin.features.setPOST/apps/{appkey}/features更新功能开关(未传的开关保持原值):body {features:{friend?,group?,chatroom?,push?,sensitiveWord?,messageCallbacks?}};写穿到既有 services/push 配置,不新建第二份状态。
admin.ratelimit.getGET/apps/{appkey}/ratelimitOpen API 接口级调频配置(per operation QPS override;默认空=关闭不限频)。
admin.ratelimit.setPOST/apps/{appkey}/ratelimit设置 Open API 接口级 QPS 覆盖:body {overrides:{operationId:qps}}(1..=10000,0/省略=该接口不限频,整体覆盖)。超限返回 HTTP 429 + code 1008 + Retry-After: 1,envelope 保留。
admin.push.testPOST/apps/{appkey}/push/test推送测试:{userId,title?,body?} 按当前推送配置真实投递一次 webhook 并返回投递尝试结果;推送未启用/webhook 为空返回 1021 SERVICE_NOT_ACTIVATED(不伪造成功)。
admin.apps.deleteDELETE/apps/{appkey}删除应用(软删除:保留用户/消息/配置,仅置生命周期 deleted + app.disabled):body {confirmAppkey, reason?},confirmAppkey 必须等于路径 appkey(二次确认,否则 1001)。删除后 Open API 与 WS 鉴权返回 1017 APP_DISABLED;admin.apps.list 默认隐藏,?includeDeleted=1 可见(带 deleted/deletedAt)。
admin.apps.restorePOST/apps/{appkey}/restore恢复已删除应用:清除 deleted 标记并解除 app.disabled(1017 立即消失);数据原样保留。未删除应用返回 1001。
admin.accounts.listGET/accounts管理端子账号列表(accountId/name/role/disabled/createdAt/updatedAt/lastUsedAt;token 仅存 SHA-256 摘要,永不返回)。根凭据 X-Admin-Secret 不在此表内。
admin.accounts.createPOST/accounts创建子账号 {accountId,name?,role}(role ∈ owner|admin|operator|viewer;创建 owner 需调用者自身为 owner)。响应 token 仅本次返回一次,后续鉴权用 X-Admin-Account + X-Admin-Token。上限 200 个账号。
admin.accounts.updatePOST/accounts/{accountId}更新子账号 {name?,role?,disabled?,rotateToken?}:role 变更受层级约束(admin 不能改 owner 账号,owner 角色变更需 owner);rotateToken=true 生成新 token 并在本次响应返回(旧 token 立即失效);不可停用/降级最后一个启用中的 owner。
admin.accounts.deleteDELETE/accounts/{accountId}删除子账号:需 role ≥ admin;owner 账号仅 owner 可删;不允许删除最后一个启用中的 owner。
admin.moderation.tasks.listGET/apps/{appkey}/moderation/tasks内容审核任务列表(消息命中敏感词时由发送路径自动生成):?status=pending|approved|rejected|all&offset&limit。任务环形上限 2000;字段含 messageId(replace 模式)/text/matchedWords/action/status/createdAt/decided*。
admin.moderation.tasks.decidePOST/apps/{appkey}/moderation/tasks/{taskId}/decide审核决策 {decision:approve|reject, reason?}:approve 保留消息(replace 模式保留掩码正文);reject 把已入库消息正文打上 moderation=blocked 标记并向发送者发送 message.blocked 系统通知(system_notification)。任务已决策返回 1001。
admin.alerts.rules.getGET/apps/{appkey}/alerts/rules告警规则与支持的指标:metric ∈ rate_limited|callback_failure|online_drop|error_5xx;字段 threshold/windowSec/webhookUrl/enabled。
admin.alerts.rules.setPOST/apps/{appkey}/alerts/rules整体覆盖告警规则:body {rules:[{metric,threshold,windowSec,webhookUrl,enabled}]}(≤20 条,windowSec 1..=86400,同一 metric 后者覆盖前者)。评估在维护周期(IM_MAINTENANCE_MS,默认 5s)执行,触发后写事件并按 HMAC-SHA256 的 X-IM-Signature 投递 webhook(best-effort,1 次重试)。
admin.alerts.events.listGET/apps/{appkey}/alerts/events告警事件(环形上限 1000,按时间倒序):?metric&offset&limit;同时返回 counters(rate_limited/callback_failure/error_5xx 最近 300s 计数、online 当前值、online_drop 300s 回落)。
admin.groups.getGET/apps/{appkey}/groups/{groupId}群详情(K09):成员预览/管理员/禁言/全员禁言/扩展属性/群消息计数;群不存在 1012。
admin.groups.membersGET/apps/{appkey}/groups/{groupId}/members群成员分页(K09):?keyword&offset&limit,字段 userId/name/role/online/muted/mutedUntil/testUser;排序 owner→admin→member。
admin.groups.memberMutePOST/apps/{appkey}/groups/{groupId}/members/{userId}/mute群成员禁言/解禁(K09):body {muted,durationSec?,reason?};durationSec 1..=2592000(缺省 3600);写入既有 Group.muted,群消息发送路径真实返回 1009;群主不可被禁言。
admin.groups.memberRemovePOST/apps/{appkey}/groups/{groupId}/members/{userId}/remove踢出群成员(K09):body {reason?};群主需先转让(否则 4xx);同步清理管理员/禁言/成员资料,回调 group.updated(members_removed)。
admin.groups.muteAllPOST/apps/{appkey}/groups/{groupId}/mute-all群全员禁言开关(K09):body {muted,durationSec?}(durationSec 1..=2592000,缺省永久);与 Open API group.mute-all 同一份 group_mute_all 状态,群主/管理员/白名单豁免。
admin.groups.dismissPOST/apps/{appkey}/groups/{groupId}/dismiss解散群(K09):body {reason?};移除群与群级附属状态(禁言/白名单/成员资料/频道/扩展),消息历史保留供审计,回调 group.destroyed。
admin.groups.transferPOST/apps/{appkey}/groups/{groupId}/transfer转让群主(K09):body {toUserId};新群主必须是成员,旧群主保留为管理员,回调 group.updated(owner_transferred)。
admin.groups.profilePOST/apps/{appkey}/groups/{groupId}/profile群资料编辑(K09):body {name?,notice?,joinPolicy?,ext?};name 1..=64 字符、notice ≤1000、joinPolicy ∈ invite|open、ext ≤20 键(键 ≤32 / 值 ≤256)。
admin.bans.listGET/apps/{appkey}/bans封禁用户视图(K10):?status=active|history|all&keyword&offset&limit;返回封禁名单(原因/时长/操作者/到期)、注销用户视图、封禁历史(环形 2000)。
admin.bans.applyPOST/apps/{appkey}/bans封禁/解封/注销/恢复(K10):body {userId,action:ban|unban|deactivate|restore,reason?,durationSec?,operator?};写 User.banned / User.deactivated 并踢下线,durationSec 由维护周期到期自动解除,全程写审计。
admin.testUsers.listGET/apps/{appkey}/test-users测试用户列表(K13):?keyword&offset&limit;返回已标记用户与配额(limitConfigured/limitDefault=100/limitMax/usage)。
admin.testUsers.markPOST/apps/{appkey}/users/{userId}/test-user标记/取消测试用户(K13):body {testUser};超过配置上限返回 4xx(1001),用户不存在 1004。
admin.testUsers.limitPOST/apps/{appkey}/test-users/limit设置测试用户上限(K13):body {limit}(1..=100000,默认 100);返回 usage/remaining。
admin.stats.dimensionsGET/apps/{appkey}/stats/dimensions统计维度扩展(K14):?days(1..=90,默认 7);返回用户/群组/群消息/聊天室/聊天室消息/消息/在线总量与按天趋势;聊天室消息为 ephemeral 不落盘,如实返回 0 并在 notes 标注。
admin.push.channels.getGET/apps/{appkey}/push/channels推送通道配置(K21):APNs/FCM/华为/小米/OPPO/vivo;敏感字段(privateKey/serviceAccountJson/appSecret/masterSecret)脱敏,另返回 secretsSet/configured/missingFields;deliveryImplemented=false。
admin.push.channels.setPOST/apps/{appkey}/push/channels按通道保存推送配置(K21):body {channel,enabled,fields};未知通道/未知字段/启用但缺必填 → 4xx;敏感字段传 **** 开头表示保持原值。仅存储,不包含厂商发送。
admin.push.channels.testPOST/apps/{appkey}/push/channels/{channel}/test通道测试(K21):诚实返回 {configured,enabled,missingFields,implemented:false,delivered:false,reason};不伪造发送成功;离线推送测试仍用 POST /apps/{appkey}/push/test。
admin.push.statsGET/apps/{appkey}/push/stats推送统计(K22):?date&days;按 push_logs 真实投递计数聚合 sent/delivered/failed 与按天趋势;无厂商通道级拆分(channelStatsAvailable=false)。
admin.translation.getGET/apps/{appkey}/translation翻译配置(K24):provider/sourceLang/targetLangs/endpoint/开关;返回 configured(以 IM_TRANSLATE_ENDPOINT 为准)、runtimeSource、mockDeprecated=true。
admin.translation.setPOST/apps/{appkey}/translation保存翻译配置(K24):body {enabled,provider:none|http,sourceLang?,targetLangs?,endpoint?};provider=mock 已弃用(4xx);enabled 需 provider=http 且端点或环境变量存在;仅存储 + 校验,运行时仍读环境变量。
admin.bots.listGET/apps/{appkey}/bots机器人列表(K24):?offset&limit;bot 账号与回调配置合并视图(secretMasked/secretSet/callbackUrl/events/enabled/lastDelivery),并返回支持的事件枚举。
admin.bots.createPOST/apps/{appkey}/bots创建机器人(K24):body {botId,name,avatarUrl?,description?,callbackUrl?,events?,secret?,enabled?};callbackUrl 须 http(s),events ∈ BOT_EVENTS,secret 8..=128 字符(缺省生成);重复 botId 返回 4xx。
admin.bots.updatePOST/apps/{appkey}/bots/{botId}更新机器人(K24):body {name?,avatarUrl?,description?,callbackUrl?,events?,secret?,enabled?};callbackUrl 为空串移除回调配置,非空且无配置时创建;机器人不存在 1004。
admin.bots.deleteDELETE/apps/{appkey}/bots/{botId}删除机器人(K24):移除 bot 账号与回调配置;不存在返回 1004(不静默成功)。
admin.embed.tokenPOST/apps/{appkey}/embed/token签发一次性控制台嵌入令牌(K29):body {scopes?,ttlSec?};scopes ⊆ overview|stats|users|groups(缺省 overview+stats),ttlSec 30..=86400(缺省 900);返回 token/expiresAt/embedUrl;兑换用公开 GET /api/embed/session?token=,一次性 + 过期即失效,失败 401。
admin.push.tokens.listGET/apps/{appkey}/push/tokens设备 token 台账(C23/K21):?userId&platform&active&offset&limit;platform ∈ ios|android|web|huawei|xiaomi|oppo|vivo|fcm,active 仅 true|false|1|0;返回 tokens/total/hasMore/perUserLimit(服务端状态,重启后仍在)。
admin.push.tokens.deleteDELETE/apps/{appkey}/push/tokens/{tokenId}管理端注销设备 token(C23):软删除 active=false 并写审计;不存在 404/1001(不静默成功)。
admin.push.deliveries.createPOST/apps/{appkey}/push/deliveries创建投递尝试记录(M14):body {userIds|userId,title,body,extras?}(≤100 用户;title 1..=128、body 1..=2048、extras ≤4096 bytes);每用户一条记录。无厂商凭据/适配器 → status=no_token(无活跃 token)或 not_configured(有 token 但适配器未配置),不发起网络请求、不伪造 sent。
admin.push.deliveries.listGET/apps/{appkey}/push/deliveries投递记录分页(M14):?userId&status&offset&limit;status ∈ no_token|not_configured|queued|sent|failed;按 createdAt 倒序,附 counts 与 retryableStatuses(failed|not_configured)。
admin.push.deliveries.getGET/apps/{appkey}/push/deliveries/{deliveryId}单条投递记录(M14):含 attemptLog(每次尝试的 status/provider/error/at);不存在 404/1001。
admin.push.deliveries.retryPOST/apps/{appkey}/push/deliveries/{deliveryId}/retry重试投递(M14):仅 failed|not_configured 可重试;生成新记录(新 deliveryId)、attempts+1、retryOf 指向旧记录;重新选择当前活跃 token(可能变为 no_token),仍不伪造 sent;其它状态返回 4xx/1001。

GET /api/admin/apps​

应用列表(含用户/消息/在线统计)。

项目值
操作 IDadmin.apps.list
方法GET
路径/api/admin/apps
鉴权X-Admin-Secret
响应AdminApp[]
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps​

创建应用,返回 appkey/appSecret(仅本次返回 secret)。

项目值
操作 IDadmin.apps.create
方法POST
路径/api/admin/apps
鉴权X-Admin-Secret
响应AdminAppSecret
起始版本1.0.0
参数类型必填说明
appkeystring是—
namestring是—

GET /api/admin/apps/{appkey}​

应用详情(secret 脱敏)。

项目值
操作 IDadmin.apps.get
方法GET
路径/api/admin/apps/{appkey}
鉴权X-Admin-Secret
响应AdminApp
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/secret/reset​

重置 AppSecret(旧签名立即失效)。

项目值
操作 IDadmin.apps.secret.reset
方法POST
路径/api/admin/apps/{appkey}/secret/reset
鉴权X-Admin-Secret
响应AdminAppSecret
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/apps/{appkey}/users​

用户列表(含在线状态/封禁),?keyword&offset&limit。

项目值
操作 IDadmin.users.list
方法GET
路径/api/admin/apps/{appkey}/users
鉴权X-Admin-Secret
响应AdminUserPage
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/users​

注册测试用户(幂等)。

项目值
操作 IDadmin.users.register
方法POST
路径/api/admin/apps/{appkey}/users
鉴权X-Admin-Secret
响应User
起始版本1.0.0
参数类型必填说明
userIdstring是—
namestring是—
avatarUrlstring否—

POST /api/admin/apps/{appkey}/users/{userId}/token​

为测试用户签发 token(控制台复制用)。

项目值
操作 IDadmin.users.token
方法POST
路径/api/admin/apps/{appkey}/users/{userId}/token
鉴权X-Admin-Secret
响应TokenInfo
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/users/{userId}/ban​

封禁/解封用户。

项目值
操作 IDadmin.users.ban
方法POST
路径/api/admin/apps/{appkey}/users/{userId}/ban
鉴权X-Admin-Secret
响应User
起始版本1.0.0
参数类型必填说明
bannedbool是—
reasonstring否—

GET /api/admin/apps/{appkey}/users/{userId}​

用户详情(在线/封禁/禁言/token 版本)。

项目值
操作 IDadmin.users.get
方法GET
路径/api/admin/apps/{appkey}/users/{userId}
鉴权X-Admin-Secret
响应AdminUserDetail
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/users/{userId}/mute​

全应用禁言/解禁用户(mutedUntil=0 解禁;与群禁言独立)。

项目值
操作 IDadmin.users.mute
方法POST
路径/api/admin/apps/{appkey}/users/{userId}/mute
鉴权X-Admin-Secret
响应AdminUserDetail
起始版本1.0.0
参数类型必填说明
mutedUntiluint64是—

POST /api/admin/apps/{appkey}/users/{userId}/token/reset​

吊销并重置用户 token 版本(旧 JWT 立即失效)。

项目值
操作 IDadmin.users.resetToken
方法POST
路径/api/admin/apps/{appkey}/users/{userId}/token/reset
鉴权X-Admin-Secret
响应AdminUserDetail
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/apps/{appkey}/metrics/overview​

应用运营指标概览:DAU/消息量/在线峰值/错误率(今日+近 7 天)。

项目值
操作 IDadmin.metrics.overview
方法GET
路径/api/admin/apps/{appkey}/metrics/overview
鉴权X-Admin-Secret
响应MetricsOverview
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/apps/{appkey}/groups​

群/超级群列表(?keyword&offset&limit)。

项目值
操作 IDadmin.groups.list
方法GET
路径/api/admin/apps/{appkey}/groups
鉴权X-Admin-Secret
响应AdminGroupPage
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/apps/{appkey}/chatrooms​

聊天室列表(在线数/存活状态)。

项目值
操作 IDadmin.chatrooms.list
方法GET
路径/api/admin/apps/{appkey}/chatrooms
鉴权X-Admin-Secret
响应Chatroom[]
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/apps/{appkey}/messages​

消息查询:?userId&conversationType&targetId&keyword&from&to&offset&limit。

项目值
操作 IDadmin.messages.list
方法GET
路径/api/admin/apps/{appkey}/messages
鉴权X-Admin-Secret
响应MessagePage
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/apps/{appkey}/messages/{messageId}/trace​

消息投递轨迹。

项目值
操作 IDadmin.messages.trace
方法GET
路径/api/admin/apps/{appkey}/messages/{messageId}/trace
鉴权X-Admin-Secret
响应MessageTrace
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/messages​

以系统/指定用户身份发消息(控制台调试)。

项目值
操作 IDadmin.messages.send
方法POST
路径/api/admin/apps/{appkey}/messages
鉴权X-Admin-Secret
响应Message
起始版本1.0.0
参数类型必填说明
fromstring是—
conversationTypeConversationType是—
targetIdstring是—
contentContent是—

GET /api/admin/apps/{appkey}/connections​

在线连接明细:userId/sessionId/connectedAt/lastHeartbeat/device。

项目值
操作 IDadmin.connections.list
方法GET
路径/api/admin/apps/{appkey}/connections
鉴权X-Admin-Secret
响应ConnectionPage
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/apps/{appkey}/connections/stats​

在线用户数/会话数/峰值。

项目值
操作 IDadmin.connections.stats
方法GET
路径/api/admin/apps/{appkey}/connections/stats
鉴权X-Admin-Secret
响应ConnectionStats
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/apps/{appkey}/services​

服务开通项与配额。

项目值
操作 IDadmin.services.get
方法GET
路径/api/admin/apps/{appkey}/services
鉴权X-Admin-Secret
响应ServiceActivation
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/services​

更新服务开通项/配额。

项目值
操作 IDadmin.services.set
方法POST
路径/api/admin/apps/{appkey}/services
鉴权X-Admin-Secret
响应ServiceActivation
起始版本1.0.0
参数类型必填说明
servicesmap<ServiceKey,bool>是—
quotasobject否—

GET /api/admin/apps/{appkey}/callbacks​

回调配置(secret 脱敏)。

项目值
操作 IDadmin.callbacks.get
方法GET
路径/api/admin/apps/{appkey}/callbacks
鉴权X-Admin-Secret
响应CallbackConfig
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/callbacks​

设置回调配置。

项目值
操作 IDadmin.callbacks.set
方法POST
路径/api/admin/apps/{appkey}/callbacks
鉴权X-Admin-Secret
响应CallbackConfig
起始版本1.0.0
参数类型必填说明
enabledbool是—
urlstring否—
secretstring否—
eventsCallbackEventType[]是—
retryobject否—

GET /api/admin/apps/{appkey}/callbacks/deliveries​

回调投递日志(?eventType&status&from&to&offset&limit)。

项目值
操作 IDadmin.callbacks.deliveries
方法GET
路径/api/admin/apps/{appkey}/callbacks/deliveries
鉴权X-Admin-Secret
响应CallbackDeliveryPage
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/callbacks/deliveries/{deliveryId}/retry​

手动重试投递。

项目值
操作 IDadmin.callbacks.retry
方法POST
路径/api/admin/apps/{appkey}/callbacks/deliveries/{deliveryId}/retry
鉴权X-Admin-Secret
响应CallbackDelivery
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/apps/{appkey}/push​

离线推送通道配置。

项目值
操作 IDadmin.push.get
方法GET
路径/api/admin/apps/{appkey}/push
鉴权X-Admin-Secret
响应PushConfig
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/push​

设置离线推送 webhook。

项目值
操作 IDadmin.push.set
方法POST
路径/api/admin/apps/{appkey}/push
鉴权X-Admin-Secret
响应PushConfig
起始版本1.0.0
参数类型必填说明
webhookUrlstring是—
enabledbool是—

GET /api/admin/apps/{appkey}/sensitive-words​

敏感词配置。

项目值
操作 IDadmin.sensitiveWords.get
方法GET
路径/api/admin/apps/{appkey}/sensitive-words
鉴权X-Admin-Secret
响应SensitiveWordConfig
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/sensitive-words​

设置敏感词与处置动作。

项目值
操作 IDadmin.sensitiveWords.set
方法POST
路径/api/admin/apps/{appkey}/sensitive-words
鉴权X-Admin-Secret
响应SensitiveWordConfig
起始版本1.0.0
参数类型必填说明
wordsstring[]是—
actionstring是—

GET /api/admin/stats​

全局统计。

项目值
操作 IDadmin.stats.global
方法GET
路径/api/admin/stats
鉴权X-Admin-Secret
响应OpsStats
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/stats/trend​

运营趋势(按天,?days&appkey)。

项目值
操作 IDadmin.stats.trend
方法GET
路径/api/admin/stats/trend
鉴权X-Admin-Secret
响应OpsStats
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/api-metadata​

API 调试器元数据:可选接口列表(operationId/method/path/params),由服务端从 Open API IDL 派生。

项目值
操作 IDadmin.api.metadata
方法GET
路径/api/admin/api-metadata
鉴权X-Admin-Secret
响应ApiMetadata
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/callbacks/test​

发送回调测试事件(按当前回调配置投递一次,返回投递结果;用于控制台“测试回调”)。

项目值
操作 IDadmin.callbacks.test
方法POST
路径/api/admin/apps/{appkey}/callbacks/test
鉴权X-Admin-Secret
响应CallbackDelivery
起始版本1.0.0
参数类型必填说明
eventTypestring是回调事件类型,默认 callback.test
payloadobject否—

POST /api/admin/apps/{appkey}/users/batch​

批量注册用户(上限 100,逐条幂等;返回 created 与 failed 明细)。

项目值
操作 IDadmin.users.batchRegister
方法POST
路径/api/admin/apps/{appkey}/users/batch
鉴权X-Admin-Secret
响应AdminBatchRegisterResult
起始版本1.0.0
参数类型必填说明
usersobject[]是[{userId,name,avatarUrl?}]

GET /api/admin/apps/{appkey}/messages/export​

导出消息为 CSV(查询参数 limit 默认 1000、beforeSeq 可选;返回 csv 文本供控制台下载)。

项目值
操作 IDadmin.messages.export
方法GET
路径/api/admin/apps/{appkey}/messages/export
鉴权X-Admin-Secret
响应MessageExport
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/chatrooms/{chatroomId}/destroy​

销毁聊天室:踢出在线成员、广播 destroyed、回调 chatroom.destroyed;body {reason?}(默认 admin_destroy)。不存在 1012 / 已销毁 1013。

项目值
操作 IDadmin.chatrooms.destroy
方法POST
路径/api/admin/apps/{appkey}/chatrooms/{chatroomId}/destroy
鉴权X-Admin-Secret
响应ChatroomDestroyResult
起始版本1.0.0
参数类型必填说明
reasonstring否—

POST /api/admin/apps/{appkey}/chatrooms/{chatroomId}/mute-all​

聊天室全体禁言/解除:{muted, durationSec?};durationSec 1..=2592000(30 天),省略=持续禁言;muted=false 立即解除。与 Open API chatroom.mute-all 同源状态。

项目值
操作 IDadmin.chatrooms.muteAll
方法POST
路径/api/admin/apps/{appkey}/chatrooms/{chatroomId}/mute-all
鉴权X-Admin-Secret
响应ChatroomMuteAll
起始版本1.0.0
参数类型必填说明
mutedbool是—
durationSecuint32否—

GET /api/admin/apps/{appkey}/audit​

操作日志查询(按应用;时间倒序):?actor&action&object&from&to&offset&limit。记录管理端写操作(actor=admin、action、object、result、timestamp),环形上限 5000 条。

项目值
操作 IDadmin.audit.list
方法GET
路径/api/admin/apps/{appkey}/audit
鉴权X-Admin-Secret
响应AdminAuditPage
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/apps/{appkey}/features​

功能开关:friend/group/chatroom/push/sensitiveWord/messageCallbacks;mapping 字段说明各自映射到的既有数据源(ServiceActivation.services / app.pushEnabled)。

项目值
操作 IDadmin.features.get
方法GET
路径/api/admin/apps/{appkey}/features
鉴权X-Admin-Secret
响应FeatureConfig
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/features​

更新功能开关(未传的开关保持原值):body {features:{friend?,group?,chatroom?,push?,sensitiveWord?,messageCallbacks?}};写穿到既有 services/push 配置,不新建第二份状态。

项目值
操作 IDadmin.features.set
方法POST
路径/api/admin/apps/{appkey}/features
鉴权X-Admin-Secret
响应FeatureConfig
起始版本1.0.0
参数类型必填说明
featuresmap<string,bool>是—

GET /api/admin/apps/{appkey}/ratelimit​

Open API 接口级调频配置(per operation QPS override;默认空=关闭不限频)。

项目值
操作 IDadmin.ratelimit.get
方法GET
路径/api/admin/apps/{appkey}/ratelimit
鉴权X-Admin-Secret
响应RateLimitConfig
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/ratelimit​

设置 Open API 接口级 QPS 覆盖:body {overrides:{operationId:qps}}(1..=10000,0/省略=该接口不限频,整体覆盖)。超限返回 HTTP 429 + code 1008 + Retry-After: 1,envelope 保留。

项目值
操作 IDadmin.ratelimit.set
方法POST
路径/api/admin/apps/{appkey}/ratelimit
鉴权X-Admin-Secret
响应RateLimitConfig
起始版本1.0.0
参数类型必填说明
overridesmap<string,uint32>是—

POST /api/admin/apps/{appkey}/push/test​

推送测试:{userId,title?,body?} 按当前推送配置真实投递一次 webhook 并返回投递尝试结果;推送未启用/webhook 为空返回 1021 SERVICE_NOT_ACTIVATED(不伪造成功)。

项目值
操作 IDadmin.push.test
方法POST
路径/api/admin/apps/{appkey}/push/test
鉴权X-Admin-Secret
响应PushTestResult
起始版本1.0.0
参数类型必填说明
userIdstring是—
titlestring否—
bodystring否—

DELETE /api/admin/apps/{appkey}​

删除应用(软删除:保留用户/消息/配置,仅置生命周期 deleted + app.disabled):body {confirmAppkey, reason?},confirmAppkey 必须等于路径 appkey(二次确认,否则 1001)。删除后 Open API 与 WS 鉴权返回 1017 APP_DISABLED;admin.apps.list 默认隐藏,?includeDeleted=1 可见(带 deleted/deletedAt)。

项目值
操作 IDadmin.apps.delete
方法DELETE
路径/api/admin/apps/{appkey}
鉴权X-Admin-Secret
响应AppLifecycle
起始版本1.0.0
参数类型必填说明
confirmAppkeystring是—
reasonstring否—

POST /api/admin/apps/{appkey}/restore​

恢复已删除应用:清除 deleted 标记并解除 app.disabled(1017 立即消失);数据原样保留。未删除应用返回 1001。

项目值
操作 IDadmin.apps.restore
方法POST
路径/api/admin/apps/{appkey}/restore
鉴权X-Admin-Secret
响应AppLifecycle
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/accounts​

管理端子账号列表(accountId/name/role/disabled/createdAt/updatedAt/lastUsedAt;token 仅存 SHA-256 摘要,永不返回)。根凭据 X-Admin-Secret 不在此表内。

项目值
操作 IDadmin.accounts.list
方法GET
路径/api/admin/accounts
鉴权X-Admin-Secret
响应AdminAccountPage
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/accounts​

创建子账号 {accountId,name?,role}(role ∈ owner|admin|operator|viewer;创建 owner 需调用者自身为 owner)。响应 token 仅本次返回一次,后续鉴权用 X-Admin-Account + X-Admin-Token。上限 200 个账号。

项目值
操作 IDadmin.accounts.create
方法POST
路径/api/admin/accounts
鉴权X-Admin-Secret
响应AdminAccountToken
起始版本1.0.0
参数类型必填说明
accountIdstring是—
namestring否—
rolestring是—

POST /api/admin/accounts/{accountId}​

更新子账号 {name?,role?,disabled?,rotateToken?}:role 变更受层级约束(admin 不能改 owner 账号,owner 角色变更需 owner);rotateToken=true 生成新 token 并在本次响应返回(旧 token 立即失效);不可停用/降级最后一个启用中的 owner。

项目值
操作 IDadmin.accounts.update
方法POST
路径/api/admin/accounts/{accountId}
鉴权X-Admin-Secret
响应AdminAccountToken
起始版本1.0.0
参数类型必填说明
namestring否—
rolestring否—
disabledbool否—
rotateTokenbool否—

DELETE /api/admin/accounts/{accountId}​

删除子账号:需 role ≥ admin;owner 账号仅 owner 可删;不允许删除最后一个启用中的 owner。

项目值
操作 IDadmin.accounts.delete
方法DELETE
路径/api/admin/accounts/{accountId}
鉴权X-Admin-Secret
响应AdminAccount
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/apps/{appkey}/moderation/tasks​

内容审核任务列表(消息命中敏感词时由发送路径自动生成):?status=pending|approved|rejected|all&offset&limit。任务环形上限 2000;字段含 messageId(replace 模式)/text/matchedWords/action/status/createdAt/decided*。

项目值
操作 IDadmin.moderation.tasks.list
方法GET
路径/api/admin/apps/{appkey}/moderation/tasks
鉴权X-Admin-Secret
响应ModerationTaskPage
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/moderation/tasks/{taskId}/decide​

审核决策 {decision:approve|reject, reason?}:approve 保留消息(replace 模式保留掩码正文);reject 把已入库消息正文打上 moderation=blocked 标记并向发送者发送 message.blocked 系统通知(system_notification)。任务已决策返回 1001。

项目值
操作 IDadmin.moderation.tasks.decide
方法POST
路径/api/admin/apps/{appkey}/moderation/tasks/{taskId}/decide
鉴权X-Admin-Secret
响应ModerationTask
起始版本1.0.0
参数类型必填说明
decisionstring是—
reasonstring否—

GET /api/admin/apps/{appkey}/alerts/rules​

告警规则与支持的指标:metric ∈ rate_limited|callback_failure|online_drop|error_5xx;字段 threshold/windowSec/webhookUrl/enabled。

项目值
操作 IDadmin.alerts.rules.get
方法GET
路径/api/admin/apps/{appkey}/alerts/rules
鉴权X-Admin-Secret
响应AlertRules
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/alerts/rules​

整体覆盖告警规则:body {rules:[{metric,threshold,windowSec,webhookUrl,enabled}]}(≤20 条,windowSec 1..=86400,同一 metric 后者覆盖前者)。评估在维护周期(IM_MAINTENANCE_MS,默认 5s)执行,触发后写事件并按 HMAC-SHA256 的 X-IM-Signature 投递 webhook(best-effort,1 次重试)。

项目值
操作 IDadmin.alerts.rules.set
方法POST
路径/api/admin/apps/{appkey}/alerts/rules
鉴权X-Admin-Secret
响应AlertRules
起始版本1.0.0
参数类型必填说明
rulesAlertRule[]是—

GET /api/admin/apps/{appkey}/alerts/events​

告警事件(环形上限 1000,按时间倒序):?metric&offset&limit;同时返回 counters(rate_limited/callback_failure/error_5xx 最近 300s 计数、online 当前值、online_drop 300s 回落)。

项目值
操作 IDadmin.alerts.events.list
方法GET
路径/api/admin/apps/{appkey}/alerts/events
鉴权X-Admin-Secret
响应AlertEventPage
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/apps/{appkey}/groups/{groupId}​

群详情(K09):成员预览/管理员/禁言/全员禁言/扩展属性/群消息计数;群不存在 1012。

项目值
操作 IDadmin.groups.get
方法GET
路径/api/admin/apps/{appkey}/groups/{groupId}
鉴权X-Admin-Secret
响应AdminGroupDetail
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/apps/{appkey}/groups/{groupId}/members​

群成员分页(K09):?keyword&offset&limit,字段 userId/name/role/online/muted/mutedUntil/testUser;排序 owner→admin→member。

项目值
操作 IDadmin.groups.members
方法GET
路径/api/admin/apps/{appkey}/groups/{groupId}/members
鉴权X-Admin-Secret
响应AdminGroupMemberPage
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/groups/{groupId}/members/{userId}/mute​

群成员禁言/解禁(K09):body {muted,durationSec?,reason?};durationSec 1..=2592000(缺省 3600);写入既有 Group.muted,群消息发送路径真实返回 1009;群主不可被禁言。

项目值
操作 IDadmin.groups.memberMute
方法POST
路径/api/admin/apps/{appkey}/groups/{groupId}/members/{userId}/mute
鉴权X-Admin-Secret
响应AdminGroupMemberMutation
起始版本1.0.0
参数类型必填说明
mutedbool是—
durationSecuint32否—
reasonstring否—

POST /api/admin/apps/{appkey}/groups/{groupId}/members/{userId}/remove​

踢出群成员(K09):body {reason?};群主需先转让(否则 4xx);同步清理管理员/禁言/成员资料,回调 group.updated(members_removed)。

项目值
操作 IDadmin.groups.memberRemove
方法POST
路径/api/admin/apps/{appkey}/groups/{groupId}/members/{userId}/remove
鉴权X-Admin-Secret
响应AdminGroupMemberMutation
起始版本1.0.0
参数类型必填说明
reasonstring否—

POST /api/admin/apps/{appkey}/groups/{groupId}/mute-all​

群全员禁言开关(K09):body {muted,durationSec?}(durationSec 1..=2592000,缺省永久);与 Open API group.mute-all 同一份 group_mute_all 状态,群主/管理员/白名单豁免。

项目值
操作 IDadmin.groups.muteAll
方法POST
路径/api/admin/apps/{appkey}/groups/{groupId}/mute-all
鉴权X-Admin-Secret
响应AdminGroupMuteAll
起始版本1.0.0
参数类型必填说明
mutedbool是—
durationSecuint32否—

POST /api/admin/apps/{appkey}/groups/{groupId}/dismiss​

解散群(K09):body {reason?};移除群与群级附属状态(禁言/白名单/成员资料/频道/扩展),消息历史保留供审计,回调 group.destroyed。

项目值
操作 IDadmin.groups.dismiss
方法POST
路径/api/admin/apps/{appkey}/groups/{groupId}/dismiss
鉴权X-Admin-Secret
响应AdminGroupMutation
起始版本1.0.0
参数类型必填说明
reasonstring否—

POST /api/admin/apps/{appkey}/groups/{groupId}/transfer​

转让群主(K09):body {toUserId};新群主必须是成员,旧群主保留为管理员,回调 group.updated(owner_transferred)。

项目值
操作 IDadmin.groups.transfer
方法POST
路径/api/admin/apps/{appkey}/groups/{groupId}/transfer
鉴权X-Admin-Secret
响应AdminGroupMutation
起始版本1.0.0
参数类型必填说明
toUserIdstring是—

POST /api/admin/apps/{appkey}/groups/{groupId}/profile​

群资料编辑(K09):body {name?,notice?,joinPolicy?,ext?};name 1..=64 字符、notice ≤1000、joinPolicy ∈ invite|open、ext ≤20 键(键 ≤32 / 值 ≤256)。

项目值
操作 IDadmin.groups.profile
方法POST
路径/api/admin/apps/{appkey}/groups/{groupId}/profile
鉴权X-Admin-Secret
响应AdminGroupDetail
起始版本1.0.0
参数类型必填说明
namestring否—
noticestring否—
joinPolicystring否—
extmap<string,string>否—

GET /api/admin/apps/{appkey}/bans​

封禁用户视图(K10):?status=active|history|all&keyword&offset&limit;返回封禁名单(原因/时长/操作者/到期)、注销用户视图、封禁历史(环形 2000)。

项目值
操作 IDadmin.bans.list
方法GET
路径/api/admin/apps/{appkey}/bans
鉴权X-Admin-Secret
响应AdminBanPage
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/bans​

封禁/解封/注销/恢复(K10):body {userId,action:ban|unban|deactivate|restore,reason?,durationSec?,operator?};写 User.banned / User.deactivated 并踢下线,durationSec 由维护周期到期自动解除,全程写审计。

项目值
操作 IDadmin.bans.apply
方法POST
路径/api/admin/apps/{appkey}/bans
鉴权X-Admin-Secret
响应AdminBanEntry
起始版本1.0.0
参数类型必填说明
userIdstring是—
actionstring是—
reasonstring否—
durationSecuint32否—
operatorstring否—

GET /api/admin/apps/{appkey}/test-users​

测试用户列表(K13):?keyword&offset&limit;返回已标记用户与配额(limitConfigured/limitDefault=100/limitMax/usage)。

项目值
操作 IDadmin.testUsers.list
方法GET
路径/api/admin/apps/{appkey}/test-users
鉴权X-Admin-Secret
响应AdminTestUserPage
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/users/{userId}/test-user​

标记/取消测试用户(K13):body {testUser};超过配置上限返回 4xx(1001),用户不存在 1004。

项目值
操作 IDadmin.testUsers.mark
方法POST
路径/api/admin/apps/{appkey}/users/{userId}/test-user
鉴权X-Admin-Secret
响应AdminTestUser
起始版本1.0.0
参数类型必填说明
testUserbool是—

POST /api/admin/apps/{appkey}/test-users/limit​

设置测试用户上限(K13):body {limit}(1..=100000,默认 100);返回 usage/remaining。

项目值
操作 IDadmin.testUsers.limit
方法POST
路径/api/admin/apps/{appkey}/test-users/limit
鉴权X-Admin-Secret
响应AdminTestUserLimit
起始版本1.0.0
参数类型必填说明
limituint32是—

GET /api/admin/apps/{appkey}/stats/dimensions​

统计维度扩展(K14):?days(1..=90,默认 7);返回用户/群组/群消息/聊天室/聊天室消息/消息/在线总量与按天趋势;聊天室消息为 ephemeral 不落盘,如实返回 0 并在 notes 标注。

项目值
操作 IDadmin.stats.dimensions
方法GET
路径/api/admin/apps/{appkey}/stats/dimensions
鉴权X-Admin-Secret
响应AdminStatsDimensions
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/apps/{appkey}/push/channels​

推送通道配置(K21):APNs/FCM/华为/小米/OPPO/vivo;敏感字段(privateKey/serviceAccountJson/appSecret/masterSecret)脱敏,另返回 secretsSet/configured/missingFields;deliveryImplemented=false。

项目值
操作 IDadmin.push.channels.get
方法GET
路径/api/admin/apps/{appkey}/push/channels
鉴权X-Admin-Secret
响应PushChannelSet
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/push/channels​

按通道保存推送配置(K21):body {channel,enabled,fields};未知通道/未知字段/启用但缺必填 → 4xx;敏感字段传 **** 开头表示保持原值。仅存储,不包含厂商发送。

项目值
操作 IDadmin.push.channels.set
方法POST
路径/api/admin/apps/{appkey}/push/channels
鉴权X-Admin-Secret
响应PushChannelSet
起始版本1.0.0
参数类型必填说明
channelstring是—
enabledbool是—
fieldsmap<string,string>否—

POST /api/admin/apps/{appkey}/push/channels/{channel}/test​

通道测试(K21):诚实返回 {configured,enabled,missingFields,implemented:false,delivered:false,reason};不伪造发送成功;离线推送测试仍用 POST /apps/{appkey}/push/test。

项目值
操作 IDadmin.push.channels.test
方法POST
路径/api/admin/apps/{appkey}/push/channels/{channel}/test
鉴权X-Admin-Secret
响应PushChannelTest
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/apps/{appkey}/push/stats​

推送统计(K22):?date&days;按 push_logs 真实投递计数聚合 sent/delivered/failed 与按天趋势;无厂商通道级拆分(channelStatsAvailable=false)。

项目值
操作 IDadmin.push.stats
方法GET
路径/api/admin/apps/{appkey}/push/stats
鉴权X-Admin-Secret
响应PushStats
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/apps/{appkey}/translation​

翻译配置(K24):provider/sourceLang/targetLangs/endpoint/开关;返回 configured(以 IM_TRANSLATE_ENDPOINT 为准)、runtimeSource、mockDeprecated=true。

项目值
操作 IDadmin.translation.get
方法GET
路径/api/admin/apps/{appkey}/translation
鉴权X-Admin-Secret
响应TranslationConfig
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/translation​

保存翻译配置(K24):body {enabled,provider:none|http,sourceLang?,targetLangs?,endpoint?};provider=mock 已弃用(4xx);enabled 需 provider=http 且端点或环境变量存在;仅存储 + 校验,运行时仍读环境变量。

项目值
操作 IDadmin.translation.set
方法POST
路径/api/admin/apps/{appkey}/translation
鉴权X-Admin-Secret
响应TranslationConfig
起始版本1.0.0
参数类型必填说明
enabledbool是—
providerstring是—
sourceLangstring否—
targetLangsstring[]否—
endpointstring否—

GET /api/admin/apps/{appkey}/bots​

机器人列表(K24):?offset&limit;bot 账号与回调配置合并视图(secretMasked/secretSet/callbackUrl/events/enabled/lastDelivery),并返回支持的事件枚举。

项目值
操作 IDadmin.bots.list
方法GET
路径/api/admin/apps/{appkey}/bots
鉴权X-Admin-Secret
响应BotIntegrationPage
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/bots​

创建机器人(K24):body {botId,name,avatarUrl?,description?,callbackUrl?,events?,secret?,enabled?};callbackUrl 须 http(s),events ∈ BOT_EVENTS,secret 8..=128 字符(缺省生成);重复 botId 返回 4xx。

项目值
操作 IDadmin.bots.create
方法POST
路径/api/admin/apps/{appkey}/bots
鉴权X-Admin-Secret
响应BotIntegration
起始版本1.0.0
参数类型必填说明
botIdstring是—
namestring是—
callbackUrlstring否—
eventsstring[]否—
secretstring否—
enabledbool否—

POST /api/admin/apps/{appkey}/bots/{botId}​

更新机器人(K24):body {name?,avatarUrl?,description?,callbackUrl?,events?,secret?,enabled?};callbackUrl 为空串移除回调配置,非空且无配置时创建;机器人不存在 1004。

项目值
操作 IDadmin.bots.update
方法POST
路径/api/admin/apps/{appkey}/bots/{botId}
鉴权X-Admin-Secret
响应BotIntegration
起始版本1.0.0
参数类型必填说明
namestring否—
callbackUrlstring否—
eventsstring[]否—
secretstring否—
enabledbool否—

DELETE /api/admin/apps/{appkey}/bots/{botId}​

删除机器人(K24):移除 bot 账号与回调配置;不存在返回 1004(不静默成功)。

项目值
操作 IDadmin.bots.delete
方法DELETE
路径/api/admin/apps/{appkey}/bots/{botId}
鉴权X-Admin-Secret
响应BotIntegration
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/embed/token​

签发一次性控制台嵌入令牌(K29):body {scopes?,ttlSec?};scopes ⊆ overview|stats|users|groups(缺省 overview+stats),ttlSec 30..=86400(缺省 900);返回 token/expiresAt/embedUrl;兑换用公开 GET /api/embed/session?token=,一次性 + 过期即失效,失败 401。

项目值
操作 IDadmin.embed.token
方法POST
路径/api/admin/apps/{appkey}/embed/token
鉴权X-Admin-Secret
响应EmbedToken
起始版本1.0.0
参数类型必填说明
scopesstring[]否—
ttlSecuint32否—

GET /api/admin/apps/{appkey}/push/tokens​

设备 token 台账(C23/K21):?userId&platform&active&offset&limit;platform ∈ ios|android|web|huawei|xiaomi|oppo|vivo|fcm,active 仅 true|false|1|0;返回 tokens/total/hasMore/perUserLimit(服务端状态,重启后仍在)。

项目值
操作 IDadmin.push.tokens.list
方法GET
路径/api/admin/apps/{appkey}/push/tokens
鉴权X-Admin-Secret
响应PushTokenPage
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

DELETE /api/admin/apps/{appkey}/push/tokens/{tokenId}​

管理端注销设备 token(C23):软删除 active=false 并写审计;不存在 404/1001(不静默成功)。

项目值
操作 IDadmin.push.tokens.delete
方法DELETE
路径/api/admin/apps/{appkey}/push/tokens/{tokenId}
鉴权X-Admin-Secret
响应PushToken
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/push/deliveries​

创建投递尝试记录(M14):body {userIds|userId,title,body,extras?}(≤100 用户;title 1..=128、body 1..=2048、extras ≤4096 bytes);每用户一条记录。无厂商凭据/适配器 → status=no_token(无活跃 token)或 not_configured(有 token 但适配器未配置),不发起网络请求、不伪造 sent。

项目值
操作 IDadmin.push.deliveries.create
方法POST
路径/api/admin/apps/{appkey}/push/deliveries
鉴权X-Admin-Secret
响应PushDeliveryCreateResult
起始版本1.0.0
参数类型必填说明
userIdsstring[]否—
userIdstring否—
titlestring是—
bodystring是—
extrasobject否—

GET /api/admin/apps/{appkey}/push/deliveries​

投递记录分页(M14):?userId&status&offset&limit;status ∈ no_token|not_configured|queued|sent|failed;按 createdAt 倒序,附 counts 与 retryableStatuses(failed|not_configured)。

项目值
操作 IDadmin.push.deliveries.list
方法GET
路径/api/admin/apps/{appkey}/push/deliveries
鉴权X-Admin-Secret
响应PushDeliveryPage
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

GET /api/admin/apps/{appkey}/push/deliveries/{deliveryId}​

单条投递记录(M14):含 attemptLog(每次尝试的 status/provider/error/at);不存在 404/1001。

项目值
操作 IDadmin.push.deliveries.get
方法GET
路径/api/admin/apps/{appkey}/push/deliveries/{deliveryId}
鉴权X-Admin-Secret
响应PushDelivery
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。

POST /api/admin/apps/{appkey}/push/deliveries/{deliveryId}/retry​

重试投递(M14):仅 failed|not_configured 可重试;生成新记录(新 deliveryId)、attempts+1、retryOf 指向旧记录;重新选择当前活跃 token(可能变为 no_token),仍不伪造 sent;其它状态返回 4xx/1001。

项目值
操作 IDadmin.push.deliveries.retry
方法POST
路径/api/admin/apps/{appkey}/push/deliveries/{deliveryId}/retry
鉴权X-Admin-Secret
响应PushDelivery
起始版本1.0.0

该接口无请求体参数(查询参数按路径与分页约定传递)。