# Replace example resource IDs and ownerId with values from your workspace.
: "${POWERDIALER_API_KEY:?Set POWERDIALER_API_KEY to your scoped API key}"
# Set this once per operation; reuse it with the same request after a timeout.
: "${POWERDIALER_REQUEST_ID:?Set POWERDIALER_REQUEST_ID to a new UUID for this operation}"
curl --request POST \
--url 'https://api.migration.powerdialer.ai/api/public/v2/webhooks/00000000-0000-4000-8000-000000000001/deliveries/00000000-0000-4000-8000-000000000003/replay' \
--header "Authorization: Bearer $POWERDIALER_API_KEY" \
--header "Idempotency-Key: $POWERDIALER_REQUEST_ID"{
"id": "00000000-0000-4000-8000-000000000003",
"eventId": "00000000-0000-4000-8000-000000000002",
"state": "pending"
}{
"error": {
"code": "invalid_api_key",
"message": "API key is invalid, expired or revoked",
"requestId": "00000000-0000-4000-8000-000000000004"
}
}Replay a webhook delivery
Queue a saved event for another delivery after correcting a receiver problem or restoring a downstream service. Requires webhooks:manage and the credential owning the subscription. The receiver must be active and verified. Send its subscription ID and a delivery ID from its history; no body is needed.
HTTP 202 means queued, not acknowledged by the receiver. The event and delivery IDs stay stable, the retry count restarts and a later send receives a new attempt ID. Existing attempt history and last-result fields remain until subsequent processing updates the delivery. The receiver must deduplicate by event identity so replay cannot duplicate business work.
Persist an Idempotency-Key and reuse it after an uncertain response. Current access and active/verified checks run before receipt replay: pausing or rotating the receiver can make a matching retry return 409 inactive_webhook. Restore the receiver deliberately before retrying. 409 inactive_webhook requires verification/enabling first. 409 delivery_in_progress means an attempt is still running; wait before explicitly trying again. 404 not_found means the delivery is missing or does not belong to this subscription. Inspect history afterward. Use a new operation key only when deliberately requesting another later replay.
See replay safety.
# Replace example resource IDs and ownerId with values from your workspace.
: "${POWERDIALER_API_KEY:?Set POWERDIALER_API_KEY to your scoped API key}"
# Set this once per operation; reuse it with the same request after a timeout.
: "${POWERDIALER_REQUEST_ID:?Set POWERDIALER_REQUEST_ID to a new UUID for this operation}"
curl --request POST \
--url 'https://api.migration.powerdialer.ai/api/public/v2/webhooks/00000000-0000-4000-8000-000000000001/deliveries/00000000-0000-4000-8000-000000000003/replay' \
--header "Authorization: Bearer $POWERDIALER_API_KEY" \
--header "Idempotency-Key: $POWERDIALER_REQUEST_ID"{
"id": "00000000-0000-4000-8000-000000000003",
"eventId": "00000000-0000-4000-8000-000000000002",
"state": "pending"
}{
"error": {
"code": "invalid_api_key",
"message": "API key is invalid, expired or revoked",
"requestId": "00000000-0000-4000-8000-000000000004"
}
}Authorizations
Issued in Developers. Workspace/owner/scopes come from credential, never acting-user headers. API keys cannot manage API credentials.
Headers
Persist one key for this logical operation before sending it. Reuse the same value only with the same method, path and body after a timeout. A changed request returns 409 idempotency_conflict; a matching retry returns the original response.
^[A-Za-z0-9._:-]{1,200}$Path Parameters
Subscription UUID returned by registration or listing. It must belong to the credential making this request.
Delivery UUID returned by this subscription’s delivery-history endpoint. Use the delivery ID, not its event ID or an individual attempt ID.
Response
The existing delivery was queued again. Inspect its status later; acceptance does not mean successful receipt.