---
title: "Generate events bulk retry plan"
method: GET
path: "/bulk/events/retry/plan"
tags: ["Bulk retry events"]
---

# Generate events bulk retry plan

`GET /bulk/events/retry/plan`

This endpoint estimates the number of events matched by the provided query before creating a bulk retry. Use the plan to preview impact.

## Query parameters

- `query` object — Filter properties for the events to be included in the bulk retry
  - `id` union — Filter by event IDs
    - string — Event ID
    - string[]
  - `status` union — Lifecyle status of the event
    - 'SCHEDULED' | 'QUEUED' | 'HOLD' | 'SUCCESSFUL' | 'FAILED' | 'CANCELLED'
    - EventStatus[]
  - `webhook_id` union — Filter by connection (webhook) IDs
    - string — Connection (webhook) ID
    - string[]
  - `destination_id` union — Filter by destination IDs
    - string — Destination ID
    - string[]
  - `delivery_group` union — Filter by delivery group; null matches events without a delivery group
    - string
    - string[]
  - `source_id` union — Filter by source IDs
    - string — Source ID
    - string[]
  - `attempts` union — Filter by number of attempts
    - integer
    - Operators
      - `gt` string, date-time, nullable
      - `gte` string, date-time, nullable
      - `le` string, date-time, nullable
      - `lte` string, date-time, nullable
      - `any` boolean
      - `all` boolean
  - `response_status` union — Filter by HTTP response status code
    - integer
    - Operators
      - `gt` string, date-time, nullable
      - `gte` string, date-time, nullable
      - `le` string, date-time, nullable
      - `lte` string, date-time, nullable
      - `any` boolean
      - `all` boolean
    - integer[]
  - `successful_at` union — Filter by `successful_at` date using a date operator
    - string, date-time
    - Operators
      - `gt` string, date-time, nullable
      - `gte` string, date-time, nullable
      - `le` string, date-time, nullable
      - `lte` string, date-time, nullable
      - `any` boolean
      - `all` boolean
  - `created_at` union — Filter by `created_at` date using a date operator
    - string, date-time
    - Operators
      - `gt` string, date-time, nullable
      - `gte` string, date-time, nullable
      - `le` string, date-time, nullable
      - `lte` string, date-time, nullable
      - `any` boolean
      - `all` boolean
  - `error_code` union — Filter by error code code
    - 'BAD_RESPONSE' | 'CANCELLED' | 'TIMEOUT' | 'NOT_FOUND' | 'CANCELLED_PAST_RETENTION' | 'CONNECTION_REFUSED' | 'CONNECTION_RESET' | 'MISSING_URL' | 'CLI' | 'CLI_UNAVAILABLE' | 'SELF_SIGNED_CERT' | 'ERR_TLS_CERT_ALTNAME_INVALID' | 'ERR_SSL_WRONG_VERSION_NUMBER' | 'NETWORK_ERROR' | 'NETWORK_REQUEST_CANCELED' | 'NETWORK_UNREACHABLE' | 'TOO_MANY_REDIRECTS' | 'INVALID_CHARACTER' | 'INVALID_URL' | 'SSL_ERROR_CA_UNKNOWN' | 'DATA_ARCHIVED' | 'SSL_CERT_EXPIRED' | 'BULK_RETRY_CANCELLED' | 'DNS_LOOKUP_FAILED' | 'HOST_UNREACHABLE' | 'INTERNAL_ERROR' | 'PROTOCOL_ERROR' | 'PAYLOAD_MISSING' | 'UNABLE_TO_GET_ISSUER_CERT' | 'SOCKET_CLOSED' | 'OAUTH2_HANDSHAKE_FAILED' | 'Z_DATA_ERROR' | 'UNKNOWN' — Error code of the delivery attempt
    - AttemptErrorCodes[]
  - `cli_id` union — Filter by CLI IDs. `?[any]=true` operator for any CLI.
    - string
    - object
      - `any` boolean
      - `all` boolean
    - string[]
  - `last_attempt_at` union — Filter by `last_attempt_at` date using a date operator
    - string, date-time
    - Operators
      - `gt` string, date-time, nullable
      - `gte` string, date-time, nullable
      - `le` string, date-time, nullable
      - `lte` string, date-time, nullable
      - `any` boolean
      - `all` boolean
  - `next_attempt_at` union — Filter by `next_attempt_at` date using a date operator
    - string, date-time
    - Operators
      - `gt` string, date-time, nullable
      - `gte` string, date-time, nullable
      - `le` string, date-time, nullable
      - `lte` string, date-time, nullable
      - `any` boolean
      - `all` boolean
  - `search_term` string — URL Encoded string of the value to match partially to the body, headers, parsed_query or path
  - `headers` union — URL Encoded string of the JSON to match to the data headers
    - string
    - object
  - `body` union — URL Encoded string of the JSON to match to the data body
    - string
    - object
  - `parsed_query` union — URL Encoded string of the JSON to match to the parsed query (JSON representation of the query)
    - string
    - object
  - `path` string — URL Encoded string of the value to match partially to the path
  - `cli_user_id` union
    - string
    - string[]
  - `issue_id` union
    - string
    - string[]
  - `event_data_id` union
    - string
    - string[]
  - `bulk_retry_id` union
    - string
    - string[]

## Response `200`

Events bulk retry plan

- object
  - `estimated_batch` integer, nullable — Number of batches required to complete the bulk retry
  - `estimated_count` integer, nullable — Number of estimated events to be retried
  - `progress` number, float, nullable — Progression of the batch operations, values 0 - 1

## Other responses

- `400` — Bad Request
- `422` — Unprocessable Entity

---

[API](https://skmtc.net/hookdeck/apis/hookdeck-admin-rest-api.md) · [All operations](https://skmtc.net/hookdeck/apis/hookdeck-admin-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hookdeck/hookdeck-admin-rest-api/versions/31da4ed27d31/schema)
