GET /v1/admin/notifications/deliveries
List redacted notification delivery settlements
- operationId
listNotificationDeliveries- 认证
- 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
- 所需权限
全部需要:system_configuration.read
说明(契约原文)
Lists durable delivery state without recipient contacts, subject, body, deduplication keys, lease tokens, provider response bodies, or credentials. The cursor is stable for the selected filters.
参数
listNotificationDeliveries 参数| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|
scope_id | query | string(uuid) | 否 | — |
|---|
channel | query | string: email / sms | 否 | — |
|---|
state | query | string: pending / dispatching / retry_wait / accepted / unknown / delivered / permanent_failed / exhausted / cancelled | 否 | — |
|---|
limit | query | integer | 否 | — |
|---|
cursor | query | string(uuid) | 否 | — |
|---|
响应
listNotificationDeliveries 响应| 状态码 | 说明 |
|---|
200 | Redacted delivery settlement page. 字段:items: array<DeliveryLog> next_cursor?: string(uuid) |
|---|
400 | Stable error envelope. Clients map code through locale resources and do not render message directly. |
|---|
401 | Stable error envelope. Clients map code through locale resources and do not render message directly. |
|---|
403 | Stable error envelope. Clients map code through locale resources and do not render message directly. |
|---|
405 | Stable error envelope. Clients map code through locale resources and do not render message directly. |
|---|
500 | Stable error envelope. Clients map code through locale resources and do not render message directly. |
|---|
失败时怎么办
400 按字段说明修正参数或请求体再发;不要原样重试。401 检查凭据格式、是否过期或被轮换。403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。500 结果未知:先按资源 ID 或列表回读确认,再决定是否用原 Idempotency-Key 重试。
↑ 回到列表
GET /v1/admin/notifications/delivery-history
List redacted immutable notification delivery facts
- operationId
listNotificationDeliveryHistory- 认证
- 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
- 所需权限
任一即可:system_configuration.read platform.admin
说明(契约原文)
Platform administrators with system_configuration.read or platform.admin may query all scopes or one exact scope. Session, membership and current permissions are revalidated before query validation and lookup. One row identifies one immutable outbox sequence, including anonymous recipients and replay generations. Filters combine with AND. Without from/to the complete history is queried. Each optional bound is inclusive; when both are supplied, to must be greater than from and the window at most 31 days. The current request uses one consistent database view for cursor validation, total_count and rows. Pages are ordered by observed_at, outbox_id and sequence descending. Cursors identify persisted facts and are validated against the current filters; they do not promise a snapshot across requests. Delivery history never includes message titles, bodies, full recipient contacts, provider response bodies, deduplication keys, lease tokens or credentials. New transport calls record only a masked recipient address and provider_call_started_at. A row sees only an observation in the same attempt through its own sequence; dispatch_started never reads a future settlement observation. Historical rows without observations remain null and are never backfilled from current user contacts. Message content retains its separate administrator message-query contract.
参数
listNotificationDeliveryHistory 参数| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|
scope_id | query | string(uuid) | 否 | Optional exact scope; omitted means all scopes for an authorized platform administrator. |
|---|
channel | query | string: email / sms | 否 | — |
|---|
state | query | string: pending / dispatching / retry_wait / accepted / unknown / delivered / permanent_failed / exhausted / cancelled | 否 | — |
|---|
result | query | string: success / failure | 否 | success means only delivered; failure means retry_wait, permanent_failed or exhausted. accepted, unknown, lease_unknown and cancelled are neither success nor failure. When state is also supplied, both filters must match; a contradiction returns an empty page. |
|---|
event_type | query | string | 否 | Exact persisted notification event type, not a legacy UI alias. |
|---|
user_id | query | string | 否 | Canonical lowercase nonzero UUID or positive decimal display ID, at most signed int64 maximum; filters recipients, not actors. |
|---|
message_id | query | string(uuid) | 否 | Exact immutable notification_events.id, shared by original and replay outboxes. |
|---|
from | query | string(date-time) | 否 | Inclusive observed_at lower bound, RFC3339 with optional fractional seconds. |
|---|
to | query | string(date-time) | 否 | Inclusive observed_at upper bound, RFC3339 with optional fractional seconds. |
|---|
limit | query | integer | 否 | — |
|---|
cursor | query | string | 否 | Returned outbox UUID and positive int32 fact sequence; must identify a fact satisfying the current filters. |
|---|
响应
listNotificationDeliveryHistory 响应| 状态码 | 说明 |
|---|
200 | A consistent current-request page and filtered total, with no cross-request snapshot guarantee. 字段:schema: string items: array<DeliveryHistoryFact> total_count: integer(int64) next_cursor?: string |
|---|
400 | Stable error envelope. Clients map code through locale resources and do not render message directly. |
|---|
401 | Stable error envelope. Clients map code through locale resources and do not render message directly. |
|---|
403 | Stable error envelope. Clients map code through locale resources and do not render message directly. |
|---|
405 | Stable error envelope. Clients map code through locale resources and do not render message directly. |
|---|
500 | Stable error envelope. Clients map code through locale resources and do not render message directly. |
|---|
失败时怎么办
400 按字段说明修正参数或请求体再发;不要原样重试。401 检查凭据格式、是否过期或被轮换。403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。500 结果未知:先按资源 ID 或列表回读确认,再决定是否用原 Idempotency-Key 重试。
↑ 回到列表
GET /v1/admin/notifications/messages
List the compatibility message projection
- operationId
listNotificationMessages- 认证
- 登录会话:主控登录后的 Bearer 会话,由客户本人在自己的主控里使用;插件不能要求客户交出会话。
- 所需权限
全部需要:system_configuration.read
说明(契约原文)
Event-centric administrator view of member notification facts. Fields that are not backed by durable facts are returned as null. Site and package use the subject recorded when the event was raised; older package-monitor rows fall back to the monitor transition's exact subscription. Events raised without a site subject never match a site filter, and ownership is never inferred from current bindings. Titles, channel bodies and email_state/sms_state come from original generation-1 outbox facts (null = that channel was not generated); delivery replay does not duplicate message rows.
参数
listNotificationMessages 参数| 名称 | 位置 | 类型 | 必填 | 说明 |
|---|
scope_id | query | string(uuid) | 否 | — |
|---|
type | query | string | 否 | — |
|---|
user_id | query | string(uuid) | 否 | — |
|---|
package_id | query | string | 否 | Exact user subscription ID from a monitor transition; product IDs do not match. Unknown IDs return an empty page. |
|---|
site_id | query | string | 否 | Site recorded when the event was raised (notification_events.subject_site_id); events without a site subject never match. |
|---|
user | query | string | 否 | Recipient user by exact display ID or case-insensitive substring of username / display name (current values). |
|---|
package | query | string | 否 | User subscription by exact display ID or case-insensitive substring of the package name; events whose subscription no longer exists never match. |
|---|
site | query | string | 否 | Event-time site by exact display ID or case-insensitive substring of its current domain; events whose site no longer exists never match. |
|---|
limit | query | integer | 否 | — |
|---|
cursor | query | string(uuid) | 否 | — |
|---|
响应
listNotificationMessages 响应| 状态码 | 说明 |
|---|
200 | Versioned, event-centric compatibility projection of member notification facts. 字段:schema: string items: array<Message> next_cursor?: string(uuid) total: integer |
|---|
400 | Stable error envelope. Clients map code through locale resources and do not render message directly. |
|---|
401 | Stable error envelope. Clients map code through locale resources and do not render message directly. |
|---|
403 | Stable error envelope. Clients map code through locale resources and do not render message directly. |
|---|
405 | Stable error envelope. Clients map code through locale resources and do not render message directly. |
|---|
500 | Stable error envelope. Clients map code through locale resources and do not render message directly. |
|---|
失败时怎么办
400 按字段说明修正参数或请求体再发;不要原样重试。401 检查凭据格式、是否过期或被轮换。403 检查 Key 范围与所有者当前权限、当前租户作用域;不要换更高权限账号绕过。500 结果未知:先按资源 ID 或列表回读确认,再决定是否用原 Idempotency-Key 重试。
↑ 回到列表