Webhook Deliveries
This is the outbound side of webhooks: what MessageEagle tried to send you, and what your endpoint answered. For receiving and acknowledging delivery reports, see Webhooks & Delivery Reports.
| Action | Route |
|---|---|
| Delivery history | GET /organization/{organizationId}/webhook-deliveries |
| Replay one | POST /organization/{organizationId}/webhook-deliveries/{deliveryId}/replay |
| Test an endpoint | POST /webhook-test |
{organizationId} is the same value you send as X-TenantID.
Delivery history
bash
curl "$ME_BASE/organization/$ME_TENANT/webhook-deliveries?status=failed&limit=50" \
-H "API-Key: $ME_API_KEY" \
-H "X-TenantID: $ME_TENANT"| Query | Filters by |
|---|---|
endpoint_id | One configured endpoint. |
event_id | One event. |
status | Delivery outcome. |
q | Free text. |
limit, offset | Paging. |
Replay
Re-send a delivery your endpoint missed — useful after you fix a bug that made it return 5xx.
bash
curl -X POST "$ME_BASE/organization/$ME_TENANT/webhook-deliveries/$DELIVERY_ID/replay" \
-H "API-Key: $ME_API_KEY" \
-H "X-TenantID: $ME_TENANT"Test an endpoint
Fire a one-off request at a URL and see exactly what it answers, before you point real events at it.
bash
curl -X POST "$ME_BASE/webhook-test" \
-H "API-Key: $ME_API_KEY" \
-H "X-TenantID: $ME_TENANT" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/hooks/me",
"method": "POST",
"headers": [{ "key": "X-Secret", "value": "s3cr3t" }],
"body": { "ping": true }
}'json
{
"success": true,
"status": 200,
"statusText": "OK",
"headers": { "content-type": "application/json" },
"data": { "ok": true }
}success is not 2xx
success reports that the request completed, not that your endpoint accepted it. Check status as well.
Allowed methods: GET, POST, PUT, PATCH, DELETE, HEAD.
Go SDK
go
history, err := c.Webhooks.ListDeliveries(ctx, &sdk.ListDeliveriesOptions{Status: "failed"})
_, err = c.Webhooks.Replay(ctx, deliveryID)
res, err := c.Webhooks.Test(ctx, &sdk.WebhookTestRequest{URL: url, Method: "POST"})