curl "https://api.fastdrop.io/api/v1/webhooks/deliveries?status=failed" \
-H "X-API-Key: fd_live_your_key_here"
curl "https://api.fastdrop.io/api/v1/webhooks/deliveries?job_id=a1b2c3d4-5678-90ab-cdef-1234567890ab" \
-H "X-API-Key: fd_live_your_key_here"
import httpx
resp = httpx.get(
"https://api.fastdrop.io/api/v1/webhooks/deliveries",
params={"status": "failed", "limit": 100},
headers={"X-API-Key": "fd_live_your_key_here"},
)
for d in resp.json()["deliveries"]:
print(f"{d['event']} -> {d['response_status']} {d['error']} (job {d['job_id']})")
{
"deliveries": [
{
"id": "8c7d6e5f-4a3b-2c1d-0e9f-8a7b6c5d4e3f",
"event": "job.completed",
"event_id": "evt_9f2c4a7b1e8d40a3b6c5d2e1f0a9b8c7",
"status": "failed",
"webhook_id": "3f9a1c22-8e4b-4d7a-9c11-77d2f0b5a8e3",
"target_url": "https://your-server.com/webhooks/fastdrop",
"job_id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
"attempts": 3,
"max_attempts": 3,
"response_status": 502,
"response_body": "Bad Gateway",
"error": "HTTP 502",
"created_at": "2026-08-15T12:01:15Z",
"last_attempt_at": "2026-08-15T12:11:45Z",
"next_retry_at": null,
"delivered_at": null
}
],
"next_cursor": null
}
Webhooks
List Deliveries
Delivery history for your webhooks — what we sent, and what your server said
GET
/
webhooks
/
deliveries
curl "https://api.fastdrop.io/api/v1/webhooks/deliveries?status=failed" \
-H "X-API-Key: fd_live_your_key_here"
curl "https://api.fastdrop.io/api/v1/webhooks/deliveries?job_id=a1b2c3d4-5678-90ab-cdef-1234567890ab" \
-H "X-API-Key: fd_live_your_key_here"
import httpx
resp = httpx.get(
"https://api.fastdrop.io/api/v1/webhooks/deliveries",
params={"status": "failed", "limit": 100},
headers={"X-API-Key": "fd_live_your_key_here"},
)
for d in resp.json()["deliveries"]:
print(f"{d['event']} -> {d['response_status']} {d['error']} (job {d['job_id']})")
{
"deliveries": [
{
"id": "8c7d6e5f-4a3b-2c1d-0e9f-8a7b6c5d4e3f",
"event": "job.completed",
"event_id": "evt_9f2c4a7b1e8d40a3b6c5d2e1f0a9b8c7",
"status": "failed",
"webhook_id": "3f9a1c22-8e4b-4d7a-9c11-77d2f0b5a8e3",
"target_url": "https://your-server.com/webhooks/fastdrop",
"job_id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
"attempts": 3,
"max_attempts": 3,
"response_status": 502,
"response_body": "Bad Gateway",
"error": "HTTP 502",
"created_at": "2026-08-15T12:01:15Z",
"last_attempt_at": "2026-08-15T12:11:45Z",
"next_retry_at": null,
"delivered_at": null
}
],
"next_cursor": null
}
Every webhook delivery is recorded with the response your server gave. Use this to answer “did the webhook for job X fire?” and to find events worth replaying.
Covers both registered endpoints and per-request
webhook_url deliveries.
Query parameters
string
Only deliveries to this endpoint.
string
Only deliveries about this job. The fastest way to check whether a specific job’s event was sent.
string
Only this event type, e.g.
job.completed.string
One of
pending, delivered, failed. failed is what you want when reconciling.string
ISO 8601 timestamp. Returns deliveries created strictly before it — pass the previous page’s
next_cursor.integer
default:"25"
1–100.
Response (200 OK)
object[]
Newest first.
Show properties
Show properties
string
Delivery UUID. Pass to Get Delivery or Retry.
string
Event type.
string | null
The
evt_... id in the payload. Stable across retries and replays.string
pending, delivered, or failed.string | null
Registered endpoint, or
null for a per-request webhook_url delivery.string | null
Where it was sent.
string | null
The job this event describes, when it describes one.
integer
Attempts made so far.
integer
Always 3.
integer | null
HTTP status your server returned.
string | null
First 500 characters of your response — usually where the reason is.
string | null
Our summary of the failure (e.g.
HTTP 502, a timeout, a TLS error).string
When the delivery was queued.
string | null
Most recent attempt.
string | null
When the next automatic retry fires, if any.
string | null
When your server accepted it.
string | null
Pass as
before for the next page. null on the last page.curl "https://api.fastdrop.io/api/v1/webhooks/deliveries?status=failed" \
-H "X-API-Key: fd_live_your_key_here"
curl "https://api.fastdrop.io/api/v1/webhooks/deliveries?job_id=a1b2c3d4-5678-90ab-cdef-1234567890ab" \
-H "X-API-Key: fd_live_your_key_here"
import httpx
resp = httpx.get(
"https://api.fastdrop.io/api/v1/webhooks/deliveries",
params={"status": "failed", "limit": 100},
headers={"X-API-Key": "fd_live_your_key_here"},
)
for d in resp.json()["deliveries"]:
print(f"{d['event']} -> {d['response_status']} {d['error']} (job {d['job_id']})")
{
"deliveries": [
{
"id": "8c7d6e5f-4a3b-2c1d-0e9f-8a7b6c5d4e3f",
"event": "job.completed",
"event_id": "evt_9f2c4a7b1e8d40a3b6c5d2e1f0a9b8c7",
"status": "failed",
"webhook_id": "3f9a1c22-8e4b-4d7a-9c11-77d2f0b5a8e3",
"target_url": "https://your-server.com/webhooks/fastdrop",
"job_id": "a1b2c3d4-5678-90ab-cdef-1234567890ab",
"attempts": 3,
"max_attempts": 3,
"response_status": 502,
"response_body": "Bad Gateway",
"error": "HTTP 502",
"created_at": "2026-08-15T12:01:15Z",
"last_attempt_at": "2026-08-15T12:11:45Z",
"next_retry_at": null,
"delivered_at": null
}
],
"next_cursor": null
}