GET/v1/webhooks/{webhook_id}/deliveries/{delivery_id}
获取投递及其正文和尝试
get_webhook_delivery
请求体和接收端的响应体各最多保存 16 KB(*_truncated: true 表示正文被截断),响应头保存时不含机密值。它们保存 30 天。
身份验证
在 Authorization 请求头中传入 API 密钥:Authorization: Bearer <密钥>。
路径参数
webhook_idinteger必填delivery_idinteger必填
查询参数
expand[]array of string要在响应中包含的关联对象(自 1.62.0 起):操作的
x-expandable列表中的路径。该参数最多可重复 10 次。路径最多有 2 段,用点分隔(collection.default_owner)。在列表中,路径以data.开头,作用于页面中的每一项(expand[]=data.owner)。展开的对象放入该项的expanded对象中,ID 字段保持不变。按其自身读取操作的检查,调用方无权查看的对象展开为null。路径未知、超过 10 个路径或路径超过 2 段时,返回400 api.expand_invalid。items ≤ 10
响应
200成功响应
响应头
RateLimit-Policy当前生效的限制,格式遵循 IETF 草案
draft-ietf-httpapi-ratelimit-headers:以逗号分隔的项"<name>";q=<quota>;w=<window in seconds>。key是 API 密钥的请求速率(配额即突发量,时间窗口是配额完全恢复所需的时间;会话为user,无凭据时为ip);minute、day和month是组织按 UTC 计算的自然分钟、自然日和自然月的配额。RateLimitRateLimit-Policy中每项限制的剩余量:"<name>";r=<remaining>;t=<seconds until reset>。X-RateLimit-LimitRateLimit-Policy中最严格一项(剩余请求数最少的一项)的限额。X-RateLimit-Remaining最严格限制下的剩余请求数。
X-RateLimit-Reset距最严格限制重置的秒数。
application/json
expandedWebhookDeliveryExpandedidinteger必填webhook_idinteger必填event_idstring必填事件 ID(
evt_…),也会在X-KB-Event-Id头和投递正文中发送。event_created_atstring (date-time)必填attemptinteger必填已进行的投递尝试次数。
response_codeinteger | nullduration_msinteger | nullnext_retry_atstring (date-time) | nullerrorstring | nulldelivered_atstring (date-time) | nullcreated_atstring (date-time)必填updated_atstring (date-time)必填sequenceinteger | null在 Webhook 投递顺序中的编号(
X-KB-Sequence);测试投递为null。testboolean必填测试投递(
POST /v1/webhooks/{webhook_id}/test)。redelivery_ofinteger | null如果这是一次重新投递,则为原始投递。
error_codestring | null最后一次失败的中性代码:
timeout、connection_failed、tls_error、private_address、unresolvable、redirect、http_error、request_failed、endpoint_disabled、event_expired;已取消的投递(cancelled)还可能带有event_not_permitted(投递尝试时事件不在 Webhook 的权限之内,因为事件分发之后权限被收窄)或event_unavailable(测试投递的正文已不可用)。request_bodystring | null请求体,最大 16 KB。
request_body_truncatedboolean必填
400请求无效:参数值或对象状态不允许执行该操作(`detail` 为消息)。
响应头
RateLimit-Policy当前生效的限制,格式遵循 IETF 草案
draft-ietf-httpapi-ratelimit-headers:以逗号分隔的项"<name>";q=<quota>;w=<window in seconds>。key是 API 密钥的请求速率(配额即突发量,时间窗口是配额完全恢复所需的时间;会话为user,无凭据时为ip);minute、day和month是组织按 UTC 计算的自然分钟、自然日和自然月的配额。RateLimitRateLimit-Policy中每项限制的剩余量:"<name>";r=<remaining>;t=<seconds until reset>。X-RateLimit-LimitRateLimit-Policy中最严格一项(剩余请求数最少的一项)的限额。X-RateLimit-Remaining最严格限制下的剩余请求数。
X-RateLimit-Reset距最严格限制重置的秒数。
application/json
401未发送凭据(既没有会话 Cookie,也没有 API 密钥),或未找到该密钥。
响应头
RateLimit-Policy当前生效的限制,格式遵循 IETF 草案
draft-ietf-httpapi-ratelimit-headers:以逗号分隔的项"<name>";q=<quota>;w=<window in seconds>。key是 API 密钥的请求速率(配额即突发量,时间窗口是配额完全恢复所需的时间;会话为user,无凭据时为ip);minute、day和month是组织按 UTC 计算的自然分钟、自然日和自然月的配额。RateLimitRateLimit-Policy中每项限制的剩余量:"<name>";r=<remaining>;t=<seconds until reset>。X-RateLimit-LimitRateLimit-Policy中最严格一项(剩余请求数最少的一项)的限额。X-RateLimit-Remaining最严格限制下的剩余请求数。
X-RateLimit-Reset距最严格限制重置的秒数。
application/json
403不允许执行该操作:角色权限不足、无权访问合集或卡片、请求在“View as”模式下执行,或组织已被暂停或删除(`detail` 为对象,包含 `code: org_suspended | org_deleted`)。
响应头
RateLimit-Policy当前生效的限制,格式遵循 IETF 草案
draft-ietf-httpapi-ratelimit-headers:以逗号分隔的项"<name>";q=<quota>;w=<window in seconds>。key是 API 密钥的请求速率(配额即突发量,时间窗口是配额完全恢复所需的时间;会话为user,无凭据时为ip);minute、day和month是组织按 UTC 计算的自然分钟、自然日和自然月的配额。RateLimitRateLimit-Policy中每项限制的剩余量:"<name>";r=<remaining>;t=<seconds until reset>。X-RateLimit-LimitRateLimit-Policy中最严格一项(剩余请求数最少的一项)的限额。X-RateLimit-Remaining最严格限制下的剩余请求数。
X-RateLimit-Reset距最严格限制重置的秒数。
application/json
404对象不存在或您无权访问。对于访问受限的对象,API 不会确认其是否存在。
响应头
RateLimit-Policy当前生效的限制,格式遵循 IETF 草案
draft-ietf-httpapi-ratelimit-headers:以逗号分隔的项"<name>";q=<quota>;w=<window in seconds>。key是 API 密钥的请求速率(配额即突发量,时间窗口是配额完全恢复所需的时间;会话为user,无凭据时为ip);minute、day和month是组织按 UTC 计算的自然分钟、自然日和自然月的配额。RateLimitRateLimit-Policy中每项限制的剩余量:"<name>";r=<remaining>;t=<seconds until reset>。X-RateLimit-LimitRateLimit-Policy中最严格一项(剩余请求数最少的一项)的限额。X-RateLimit-Remaining最严格限制下的剩余请求数。
X-RateLimit-Reset距最严格限制重置的秒数。
application/json
429请求过多(`api.rate_limited`)、组织每分钟、每天或每月的配额已用完(`api.quota_exceeded`;`error.details` 中包含 `quota`、`limit` 和 `reset_at`)、已达到组织的限额,或回答服务繁忙(`answers.engine_busy`)。请等待 `Retry-After` 头中给出的时间。
响应头
Retry-After重试请求前需要等待的秒数。
RateLimit-Policy当前生效的限制,格式遵循 IETF 草案
draft-ietf-httpapi-ratelimit-headers:以逗号分隔的项"<name>";q=<quota>;w=<window in seconds>。key是 API 密钥的请求速率(配额即突发量,时间窗口是配额完全恢复所需的时间;会话为user,无凭据时为ip);minute、day和month是组织按 UTC 计算的自然分钟、自然日和自然月的配额。RateLimitRateLimit-Policy中每项限制的剩余量:"<name>";r=<remaining>;t=<seconds until reset>。X-RateLimit-LimitRateLimit-Policy中最严格一项(剩余请求数最少的一项)的限额。X-RateLimit-Remaining最严格限制下的剩余请求数。
X-RateLimit-Reset距最严格限制重置的秒数。
application/json
错误码
除所有请求通用的错误码外,此接口还可能在 error.code 中返回以下错误码。
速率限制
响应带有 RateLimit 和 RateLimit-Policy 头,以及旧版的 X-RateLimit-Limit、X-RateLimit-Remaining 和 X-RateLimit-Reset 头。429 响应带有以秒为单位的 Retry-After:等待后重试。