A valid request URL is required to generate request examples{
"deliveries": [
{
"id": "<string>",
"webhook_id": "<string>",
"endpoint_id": "<string>",
"async_job_id": "<string>",
"request_id": "<string>",
"event": "async_job.completed",
"attempt_no": 123,
"outcome": "delivered",
"status_code": 123,
"error": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z"
}
],
"pagination": {
"limit": 123,
"offset": 123,
"total_count": 123
}
}{
"event_id": "<string>",
"type": "<string>",
"is_bifrost_error": true,
"status_code": 123,
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"event_id": "<string>"
},
"extra_fields": {
"provider": "anthropic",
"model_requested": "<string>",
"request_type": "<string>",
"error_type": "<string>"
}
}{
"event_id": "<string>",
"type": "<string>",
"is_bifrost_error": true,
"status_code": 123,
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"event_id": "<string>"
},
"extra_fields": {
"provider": "anthropic",
"model_requested": "<string>",
"request_type": "<string>",
"error_type": "<string>"
}
}Search delivery history
Returns one page of delivery-attempt history across every endpoint the
filters select, newest first. Unlike the per-endpoint
/api/webhooks/{id}/deliveries route, every filter is optional, so an
unfiltered call returns history for all endpoints.
Pagination is by delivery group (webhook_id), not by individual attempt:
a page holds every attempt of the deliveries it covers, so deliveries
can hold more entries than limit, and total_count counts deliveries
rather than attempts.
Filters select delivery groups, not attempts — a delivery is on the page if any of its attempts matches — and the matched delivery is then returned with its full attempt sequence intact.
A valid request URL is required to generate request examples{
"deliveries": [
{
"id": "<string>",
"webhook_id": "<string>",
"endpoint_id": "<string>",
"async_job_id": "<string>",
"request_id": "<string>",
"event": "async_job.completed",
"attempt_no": 123,
"outcome": "delivered",
"status_code": 123,
"error": "<string>",
"created_at": "2023-11-07T05:31:56Z",
"expires_at": "2023-11-07T05:31:56Z"
}
],
"pagination": {
"limit": 123,
"offset": 123,
"total_count": 123
}
}{
"event_id": "<string>",
"type": "<string>",
"is_bifrost_error": true,
"status_code": 123,
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"event_id": "<string>"
},
"extra_fields": {
"provider": "anthropic",
"model_requested": "<string>",
"request_type": "<string>",
"error_type": "<string>"
}
}{
"event_id": "<string>",
"type": "<string>",
"is_bifrost_error": true,
"status_code": 123,
"error": {
"type": "<string>",
"code": "<string>",
"message": "<string>",
"param": "<string>",
"event_id": "<string>"
},
"extra_fields": {
"provider": "anthropic",
"model_requested": "<string>",
"request_type": "<string>",
"error_type": "<string>"
}
}| Permission | Granted via |
|---|---|
Webhooks:View | RBAC role or API key scope |
Authorizations
Management API authentication for /api/* endpoints. Use the Authorization header
with Bearer <token>, where <token> is one of:
- a Bifrost management API key,
- a dashboard session token issued by
POST /api/session/login, - base64 of
<admin-username>:<admin-password>(legacy equivalent ofBasicAuth).
Virtual keys (sk-bf-*) and the x-api-key header are not accepted on management APIs -
the sole exception is GET /api/governance/virtual-keys/quota, which is virtual-key-only.
Authentication alone is not sufficient in Bifrost Enterprise: each operation page shows a
Required Permissions table (Resource:Operation, for example Dashboard:View) above
its Authorizations section, and the caller's RBAC role or management API key scopes must
include what it lists, otherwise the request is rejected with 403 Forbidden.
A local admin — authenticated with the admin password, or any caller on a deployment with dashboard auth disabled — bypasses these checks and can call every management endpoint. See Required permissions for how permissions are derived and which endpoints are exempt.
Query Parameters
Comma-separated webhook endpoint ids. Omit for all endpoints.
Comma-separated event names, e.g. async_job.completed.
Comma-separated delivery outcomes: delivered, retryable_failure,
permanent_failure, exhausted.
Comma-separated response status bands: 2xx, 4xx, 5xx, or none
for attempts where no response arrived. Bands are alternatives (OR).
Exact inference request id the delivery was raised for.
Exact delivery-run id (the webhook-id wire header).
RFC3339 lower bound on attempt time. Ignored when period is set.
RFC3339 upper bound on attempt time. Ignored when period is set.
Relative window (e.g. 1h, 24h) resolved server-side. Takes
precedence over start_time / end_time.
Was this page helpful?

