Docs
API reference

Retry a delivery

POST
/api/v1/webhook-endpoints/{id}/deliveries/{deliveryId}/retry

Sends a finished delivery again, with the same event and ID, as a new attempt. Works for succeeded, failed and cancelled deliveries while the event is retained and the endpoint is active; a delivery cancelled by a URL change goes to the new URL. A delivery that is pending or running is delivery_not_retryable. Deduplicate on the event ID.

Required scope: webhooks:write.

Errors

  • 400: invalid_idempotency_key, unknown_field
  • 401: authentication_required, invalid_api_key
  • 403: api_access_disabled, insufficient_scope
  • 404: webhook_delivery_not_found, webhook_endpoint_not_found
  • 409: delivery_not_retryable, idempotency_key_reused, idempotency_request_in_progress
  • 422: invalid_parameter
  • 429: rate_limit_exceeded
  • 500: api_error
  • 503: maintenance_mode, service_unavailable

Authorization

ApiKey
headerAuthorizationBearer <probb_live_<id>_<secret>>

Path Parameters

id*string

The webhook endpoint's ID.

Length1 <= length <= 200
deliveryId*string

The delivery's ID.

Length1 <= length <= 200

Header Parameters

Idempotency-Key?string

Makes retries safe. Repeating a request with the same key and body within 24 hours returns the original response with Idempotent-Replayed: true. The same key with a different body, or from a different API key, returns idempotency_key_reused.

Length1 <= length <= 255

Response Body

Success.

application/json
  1. response
object*string
id*string

The delivery's ID, for retrying it.

endpointId*string

The endpoint it is sent to.

eventId*string

The event it carries.

eventType*string

The event's type, for example report.completed.

actor*|

Who caused the event. Null for events recorded before actors existed.

status*string

pending until your server answers 2xx (retries wait for nextAttemptAt), succeeded, failed once the retries are used up, or cancelled when the endpoint's URL changed or it was deleted first.

Value in"pending""running""succeeded""failed""cancelled"
attemptCount*integer

How many times it has been sent.

Range-9007199254740991 <= value <= 9007199254740991
nextAttemptAt*|

When the next attempt is due. Null once the delivery is finished.

createdAt*string

When the delivery was queued.

Formatdate-time
attempts*array<>

The most recent attempts, newest first.

Example Request
# Set PROBB_URL and PROBB_API_KEY. Replace any *_VALUE placeholder and any example ID (such as job_example) with a real one.# Idempotency-Key is optional. Reuse the same key and body when retrying one logical write.curl --fail-with-body -X POST "$PROBB_URL/api/v1/webhook-endpoints/ID_VALUE/deliveries/DELIVERY_ID_VALUE/retry" \  -H "Authorization: Bearer $PROBB_API_KEY" \  -H "Idempotency-Key: $REQUEST_KEY"
Example Response
{  "object": "webhook_delivery",  "id": "string",  "endpointId": "string",  "eventId": "string",  "eventType": "string",  "actor": {    "type": "api_key",    "id": "string"  },  "status": "pending",  "attemptCount": -9007199254740991,  "nextAttemptAt": "2019-08-24T14:15:22Z",  "createdAt": "2019-08-24T14:15:22Z",  "attempts": [    {      "number": -9007199254740991,      "startedAt": "2019-08-24T14:15:22Z",      "httpStatus": -9007199254740991,      "outcome": "string",      "durationMs": -9007199254740991    }  ]}