---
title: "Create requests bulk replay"
method: POST
path: "/bulk/requests/replay"
tags: ["Bulk replay requests"]
---

# Create requests bulk replay

`POST /bulk/requests/replay`

Creates and starts a requests bulk replay. The `query.target` object selects where to replay: `source_id` targets a source — alone it replays onto all of the source’s active connections (resolved as the replay runs), or combine it with `webhook_ids` to target specific connections on that source. The remaining `query` fields filter which historical requests to replay.

## Request body

- object
  - `query` object, required — Filter properties for the requests to replay, plus 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, required — 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`

A single requests bulk replay

- BatchOperation
  - `id` string, required — ID of the bulk retry
  - `team_id` string, required — ID of the project
  - `type` string, required — Type of the bulk operation
  - `query` union — Query object to filter records
    - object
    - string, nullable
  - `created_at` string, date-time, required — Date the bulk retry was created
  - `updated_at` string, date-time, required — Last time the bulk retry was updated
  - `cancelled_at` string, date-time, nullable — Date the bulk retry was cancelled
  - `completed_at` string, date-time, nullable — Date the bulk retry was completed
  - `estimated_batch` integer, nullable — Number of batches required to complete the bulk retry
  - `estimated_count` integer, nullable — Number of estimated events to be retried
  - `processed_batch` integer, nullable — Number of batches currently processed
  - `completed_count` integer, nullable — Number of events that were successfully delivered
  - `in_progress` boolean, required — Indicates if the bulk retry is currently in progress
  - `progress` number, float, nullable — Progression of the batch operations, values 0 - 1
  - `failed_count` integer, nullable — Number of events that failed to be delivered
  - `number` number, float, nullable

## 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)
