REST APIWebhooks
List webhook deliveries
The delivery log doubles as your analytics source — attempt counts, HTTP statuses and latencies are all here. Required scope: `webhooks.manage`.
GET
/webhook-deliveriesAuthorization
ApiKeyAuth AuthorizationBearer <token>
An external API key, sent as Authorization: Bearer mflo_…. Scopes are checked per route; see each operation’s description.
In: header
Query Parameters
page?integer
Range
1 <= valueDefault
1limit?integer
Range
1 <= value <= 100Default
25endpointId?string
Format
uuidstatus?string
Value in
- "PENDING"
- "RETRYING"
- "SUCCEEDED"
- "EXHAUSTED"
- "SKIPPED"
eventType?string
Value in
- "ping"
- "bot_call.completed"
- "call.completed"
- "call.updated"
- "call.transcript.ready"
- "call.analysis.completed"
- "task.created"
- "task.updated"
- "task.deleted"
- "task.suggestion.resolved"
- "case.created"
- "case.updated"
- "case.deleted"
- "webhook_endpoint.auto_disabled"
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/webhook-deliveries"{ "data": [ { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "endpointId": "c8d2c7e1-e4b1-4108-9e29-3429a36a1ef3", "status": "PENDING", "attemptCount": 0, "nextAttemptAt": "string", "lastAttemptAt": "string", "lastHttpStatus": 0, "lastErrorCode": "string", "lastErrorMessage": "string", "lastLatencyMs": 0, "deliveredAt": "string", "createdAt": "string", "event": { "id": "string", "type": "ping", "occurredAt": "string", "resourceType": "string", "resourceId": "string" } } ], "pagination": { "page": 0, "limit": 0, "total": 0, "totalPages": 0 }}Get a webhook delivery GET
One row of the delivery log — the poll half of a test send. Same fields as the list. Your endpoint’s response body is never retained; for the CONTENT of the delivery see `/webhook-deliveries/{deliveryId}/payload`. Required scope: `webhooks.manage`.
Get a webhook endpoint GET
Required scope: `webhooks.manage`.