curl "https://dev-backend-ai.truefans.in/api/external/v1/webhooks/{endpoint_id}/deliveries/?page=1&page_size=50" \
-H "Authorization: Bearer $TRUEFAN_API_KEY"
{
"deliveries": [
{
"delivery_id": "1a2b3c4d-...",
"event_type": "bulk_job.completed",
"status": "delivered",
"attempt_count": 1,
"last_attempted_at": "2026-08-21T10:02:15Z",
"last_response_code": 200,
"created": "2026-08-21T10:02:14Z"
},
{
"delivery_id": "5e6f7a8b-...",
"event_type": "bulk_job.completed",
"status": "dead",
"attempt_count": 6,
"last_attempted_at": "2026-08-21T11:30:00Z",
"last_response_code": 503,
"created": "2026-08-21T10:00:00Z"
}
],
"pagination": { "page": 1, "page_size": 50, "total": 2, "total_pages": 1 }
}
Webhooks
List webhook deliveries
See delivery history for a webhook endpoint — useful for debugging
GET
/
api
/
external
/
v1
/
webhooks
/
{endpoint_id}
/
deliveries
/
curl "https://dev-backend-ai.truefans.in/api/external/v1/webhooks/{endpoint_id}/deliveries/?page=1&page_size=50" \
-H "Authorization: Bearer $TRUEFAN_API_KEY"
{
"deliveries": [
{
"delivery_id": "1a2b3c4d-...",
"event_type": "bulk_job.completed",
"status": "delivered",
"attempt_count": 1,
"last_attempted_at": "2026-08-21T10:02:15Z",
"last_response_code": 200,
"created": "2026-08-21T10:02:14Z"
},
{
"delivery_id": "5e6f7a8b-...",
"event_type": "bulk_job.completed",
"status": "dead",
"attempt_count": 6,
"last_attempted_at": "2026-08-21T11:30:00Z",
"last_response_code": 503,
"created": "2026-08-21T10:00:00Z"
}
],
"pagination": { "page": 1, "page_size": 50, "total": 2, "total_pages": 1 }
}
Every attempted delivery to an endpoint — successful, retrying, or dead — is recorded here. Use this to debug a missed event instead of guessing whether TrueFan ever sent it.
string
required
string
required
Bearer {api_key}integer
default:"1"
integer
default:"50"
Capped at 100.
curl "https://dev-backend-ai.truefans.in/api/external/v1/webhooks/{endpoint_id}/deliveries/?page=1&page_size=50" \
-H "Authorization: Bearer $TRUEFAN_API_KEY"
{
"deliveries": [
{
"delivery_id": "1a2b3c4d-...",
"event_type": "bulk_job.completed",
"status": "delivered",
"attempt_count": 1,
"last_attempted_at": "2026-08-21T10:02:15Z",
"last_response_code": 200,
"created": "2026-08-21T10:02:14Z"
},
{
"delivery_id": "5e6f7a8b-...",
"event_type": "bulk_job.completed",
"status": "dead",
"attempt_count": 6,
"last_attempted_at": "2026-08-21T11:30:00Z",
"last_response_code": 503,
"created": "2026-08-21T10:00:00Z"
}
],
"pagination": { "page": 1, "page_size": 50, "total": 2, "total_pages": 1 }
}
Response fields
string
pending, delivered, retrying, or dead. dead means every retry (up to 6 attempts, over roughly an hour) failed — see Webhooks guide.integer | null
The HTTP status your endpoint returned on the most recent attempt.
If a delivery is
dead, the event itself isn’t lost — fetch the current state directly via Get bulk job status using the bulk_job_id from the delivery’s original payload.