---
title: "Generate requests bulk replay plan"
method: GET
path: "/bulk/requests/replay/plan"
tags: ["Bulk replay requests"]
---

# Generate requests bulk replay plan

`GET /bulk/requests/replay/plan`

Estimates the number of requests matched by the provided filter before creating a bulk replay. Pass the same `query` payload that you will POST to create the bulk replay — except `query.target`, which is not a filter and may be omitted.

## Query parameters

- `query` object — Filter properties for the requests to replay, optionally with the replay target
  - `id` union — Filter by requests IDs
    - string — Request ID
    - string[]
  - `status` 'accepted' | 'rejected' — Filter by status
  - `rejection_cause` union — Filter by rejection cause
    - 'SOURCE_DISABLED' | 'NO_CONNECTION' | 'VERIFICATION_FAILED' | 'UNSUPPORTED_HTTP_METHOD' | 'UNSUPPORTED_CONTENT_TYPE' | 'UNPARSABLE_JSON' | 'PAYLOAD_TOO_LARGE' | 'INGESTION_FATAL' | 'UNKNOWN'
    - RequestRejectionCause[]
  - `source_id` union — Filter by source IDs
    - string — Source ID
    - string[]
  - `verified` boolean — Filter by verification status
  - `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
  - `ignored_count` union — Filter by count of ignored events
    - 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[]
  - `events_count` union — Filter by count of events
    - 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[]
  - `cli_events_count` union — Filter by count of CLI events
    - 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[]
  - `created_at` union — Filter by request created date
    - 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
  - `ingested_at` union — Filter by request ingested date
    - 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
  - `bulk_retry_id` union
    - string
    - string[]
  - `target` object — Replay action parameters
    - `source_id` string — Target source ID. Without `webhook_ids`, replays onto all of the source’s active connections, resolved as the replay runs. A source without connections is allowed — replays then produce rejected requests with cause `NO_CONNECTION`.
    - `webhook_ids` string[] — Specific target connection IDs to replay onto. When `source_id` is also provided, every connection must belong to that source.

## Response `200`

Requests bulk replay 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.dev/hookdeck/apis/hookdeck-admin-rest-api.md) · [All operations](https://skmtc.dev/hookdeck/apis/hookdeck-admin-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/hookdeck/hookdeck-admin-rest-api/revisions/091808eac7fa/schema)
