Getting Started

The Hookdeck REST API allows you to set up connections, retrieve events, and perform actions programmatically.

Get an API key

You'll need to include an API key in every API request. If you do not yet have a Hookdeck account, please sign up for a free account. Your API key is located in your project settings.

To include your API key in requests, use either Bearer Token Authentication or Basic Authentication.

MethodProcedure
Bearer Token AuthenticationInclude the header Authorization: Bearer $API_KEY, replacing $API_KEY with your personal key
Basic AuthenticationSet the username as your API key, and supply an empty password

Basic Authentication is deprecated and remains supported for backwards compatibility.

Create your first connection

As an example let's create a connection between a source and a destination. This will allow you to start routing events with Hookdeck.

Minimum parameters

ParameterTypeDescription
namestringName of the connection to create
source.namestringName of the source to create
destination.namestringName of the destination to create
destination.config.urlstringHTTP endpoint of the destination

By default, the source is assumed to be of type WEBHOOK and the destination of type HTTP.

View the full specification for the connection object here.

Verify your first connection

Verifying the connection lets you know Hookdeck is properly ingesting and processing events from your source.

Copy the unique Hookdeck URL and paste it into your API provider's HTTP URL field. Test the connection by triggering a request on your source. As soon Hookdeck receives your first request, it'll appear in your dashboard.

Congratulations! Your request & events can now be viewed, inspected, filtered, sorted, retried, and so much more using Hookdeck.

Authentication

Scope: This authentication method applies to Hookdeck REST API endpoints (e.g., /events, /requests, /sources) and Hookdeck Publish API endpoints (https://hkdk.events/v1/publish). For authentication when sending requests to a Source URL (e.g., https://hkdk.events/src_123...), see Source Authentication.

Your API key is located in your project settings, and must be included in every API request. Use either Bearer Token Authentication or Basic Authentication.

MethodProcedure
Bearer Token AuthenticationInclude the header Authorization: Bearer $API_KEY, replacing $API_KEY with your project key
Basic AuthenticationSet the username as your API key, and supply an empty password

Paging

All GET endpoints that retrieve a list of resources are paged using cursor (aka keyset) pagination, which resides in the response body's pagination object.

ParameterDefaultDescription
order_by"created_at"The sortable key to use (options varies base on the resource )
dir"desc"The direction to sort it ("asc" or "desc")
limit100The making amount of results returned per query (max: 250)
nextundefinedThe ID to provide in the query to get the next set of results
prevundefinedThe ID to provide in the query to get the previous set of results

Unless you have specified an order_by or dir, you can omit it from the next or previous set query. You only have to carry them over if you are not using the resource default.

Errors

Hookdeck uses standard HTTP response codes to indicate the success or failure of an API request.

ParameterTypeDescription
handledbooleanError was handled by the API and did not resolve in an uncaught exception
statusintegerHTTP status code for the error
messagestringAny message associated with the error
dataobjectAny data related to the error, useful for diagnostics

In general, codes in the 2xx range indicate success, codes in the 4xx range indicate an error that resulted from the provided information (e.g. a required parameter was missing), and codes in the 5xx range indicate an error. See a more complete list of error codes here.

Rate Limits

The Hookdeck API has a rate limit of 240 request per minute, per API key. Contact us if you need your rate limit increased.

Query Formatting

Arrays

Arrays in query parameters are indicated by a [] appended to their type, like string[].

For example: ?item[1]=hello&item[2]=world is parsed as ["hello", "world"]

Date

Dates are expected in ISO format.

For example: 2021-01-21T20:16:28Z or 2021-01-21

JSON

Some query parameters take JSON as input. The JSON should be stringified and URL encoded.

For example: ?body=%7B%0A%20%20"hello"%3A%20"world"%0A%7D is parsed as { "hello": "world" }

Operators

Most GET endpoints that retrieve a list of resources support operators as part of the request query.

For example: ?number[gte]=1&number[lte]=10

OperatorSupported TypesDescription
gtedate numberGreater than or equal to
gtdate numberGreater than
ltedate numberLesser than or equal to
ltdate numberLesser than
anydate number stringNot null
containsstringContains

OpenAPI Schema

Our OpenAPI schema is available at https://api.hookdeck.com/2026-09-01/openapi.

OpenAPI schemas can be used to generate SDKs for your language of choice and work with various tools made for OpenAPI definitions such as importing into Postman.

Changelog

When backwards-incompatible changes are made to the API, a new, dated version is released. The latest version is 2026-09-01.

The API version can be set in the base path of any endpoint, such as https://api.hookdeck.com/2026-09-01/sources. Otherwise the API defaults to the latest version.

The backwards-incompatible changes for each version are listed below. Backwards-compatible changes don’t need a new API version and do not appear in this list.

Dated versions remain officially supported for up to 1 year after the date of release. For instance 2023-07-01 will be officially supported until 2024-07-01.

2026-09-01

Destination delivery policy

Destination rate limit settings are now grouped under config.delivery_policy in requests and responses for destinations, including destinations embedded in connections.

  • config.rate_limit is now config.delivery_policy.rate.
  • config.rate_limit_period is now config.delivery_policy.period.

Affected request bodies:

  • POST /destinations, PUT /destinations, and PUT /destinations/:id.
  • POST /connections and PUT /connections when the request includes an inline destination object.

Affected responses:

  • Destination responses from GET /destinations, GET /destinations/:id, POST /destinations, PUT /destinations, PUT /destinations/:id, and the destination enable/disable endpoints.
  • The nested destination object returned by GET /connections, GET /connections/:id, POST /connections, PUT /connections, PUT /connections/:id, and the connection enable, disable, pause, and unpause endpoints.

For example, update this 2025-07-01 destination config:

{
  "rate_limit": 100,
  "rate_limit_period": "minute"
}

To the following structure for 2026-09-01:

{
  "delivery_policy": {
    "rate": 100,
    "period": "minute"
  }
}

2025-07-01

New source types

Added support for new source types to expand webhook integration capabilities. New type values are grouped by when they shipped; both batches apply to the 2025-07-01 dated API version.

Shipped with the 2025-07-01 release

  • RECURLY - Native integration with Recurly billing platform webhooks
  • FUSIONAUTH - Support for FusionAuth identity platform webhooks
  • PORTAL - Integration with Portal platform webhooks
  • ASANA - Native support for Asana project management webhooks

Added 2026-05-15

  • ALCHEMY - Native integration with Alchemy blockchain infrastructure webhooks
  • CLAUDE - Support for Anthropic Claude AI platform webhooks
  • BRIDGE_XYZ - Integration with Bridge.xyz stablecoin platform webhooks
  • BRIDGE_API - Support for Bridge API webhooks
  • CHAINDOTS - Native integration with Chaindots webhooks
  • COINBASE - Support for Coinbase platform webhooks
  • MICROSOFT_GRAPH - Integration with Microsoft Graph API webhooks
  • MICROSOFT_SHAREPOINT - Native support for Microsoft SharePoint webhooks
  • REVOLUT - Integration with Revolut payment platform webhooks
  • GEMINI - Google Gemini API webhooks
  • FAUNDIT - Native integration with Faundit webhooks
  • SHIPBOB - Support for ShipBob fulfillment platform webhooks
  • SHIPHERO - Integration with ShipHero warehouse management webhooks
  • NEON - Native support for Neon database webhooks
  • PAYMOB - Integration with Paymob payment platform webhooks
  • PAYSTACK - Support for Paystack payment platform webhooks
  • SCRAPFLY - Native integration with Scrapfly webhooks
  • GREENDOT - Support for Green Dot financial platform webhooks
  • ASHBY - Integration with Ashby recruiting platform webhooks
  • WALMART - Native support for Walmart marketplace webhooks
  • FIREFLIES - Integration with Fireflies.ai meeting assistant webhooks
  • UBER - Support for Uber platform webhooks
  • WECHAT - Native integration with WeChat webhooks
  • CIRCLE - Support for Circle financial platform webhooks

Each new source type includes pre-configured authentication and validation settings optimized for the respective platform's webhook implementation.

Fireblocks source configuration updates

For sources with type FIREBLOCKS, the auth configuration has been updated:

  • public_key is no longer used. Remove it from config.auth on create and update requests. If you still include it, the value is not kept on the resource.
  • environment is now required for Fireblocks auth. Set it to the Fireblocks region you use (for example US_PRODUCTION or SANDBOX; the dashboard lists the full set of region values).

Recommended updates:

  1. Remove public_key from Fireblocks config.auth payloads.
  2. Set environment explicitly wherever you configure Fireblocks auth.
{
  "type": "FIREBLOCKS",
  "config": {
    "auth_type": "FIREBLOCKS",
    "auth": {
      "environment": "US_PRODUCTION"
    }
  }
}

Bridge: BRIDGE split into BRIDGE_XYZ and BRIDGE_API

BRIDGE is no longer accepted as a source type when creating or updating sources—use BRIDGE_XYZ or BRIDGE_API to match your Bridge product. The single BRIDGE label has been split into two explicit source types so integrations map cleanly to Bridge.xyz versus Bridge API traffic:

  • BRIDGE_XYZ — Bridge.xyz stablecoin platform webhooks
  • BRIDGE_API — Bridge API webhooks

If you still reference type: "BRIDGE", update source payloads to use BRIDGE_XYZ or BRIDGE_API based on which Bridge surface you connect to. New sources should be created with one of those types from the start.

Transformation and Filter Order

Transformations and filters are now be ordered via the rules property in a connection. This allows for greater flexibility in how events are processed.

Prior to this change, transformations always ran before filters. Now, you can control the order of execution by placing transformations before or after filters in the rules array.

To preserve existing behavior, ensure that transformation rules are placed before filter rules in the rules array.

The delay and retry rules do not have an order and can be placed anywhere in the rules array.

Deduplicate Rule

Added support for deduplicating events based on configurable time windows and field matching. The new DeduplicateRule can be configured in a Connection's rules array to prevent duplicate events from being delivered to your destination.

The deduplicate rule includes:

  • type: Set to "deduplicate" to enable deduplication
  • window: Time window in seconds during which events are considered for deduplication
  • include_fields: Optional array of event fields to include in duplicate detection (if not specified, all fields are considered)
  • exclude_fields: Optional array of event fields to exclude from duplicate detection

When an event matches a previously seen event within the specified time window, only the first occurrence will be delivered to your destination.

{
  "type": "deduplicate",
  "window": 300,
  "include_fields": ["id", "type", "user_id"]
}

Metrics API Endpoints

Added seven new metrics endpoints to provide comprehensive analytics and monitoring capabilities for your webhook infrastructure:

  • GET /metrics/requests - Retrieve request volume metrics across your sources and destinations
  • GET /metrics/events - Get detailed event processing statistics and success rates
  • GET /metrics/attempts - Monitor delivery attempt metrics including retry patterns
  • GET /metrics/events-by-issue - Analyze event failures grouped by issue type for easier troubleshooting
  • GET /metrics/queue-depth - Track queue depth metrics to monitor processing backlogs
  • GET /metrics/transformations - Monitor transformation execution performance and success rates
  • GET /metrics/events-pending-timeseries - Retrieve time-series data for pending events to identify processing trends

These endpoints provide the data needed to build comprehensive monitoring dashboards and set up alerting for your webhook infrastructure.

2025-01-01

Source and Destination Types

Source and Destination Types are now available on the Source and Destination objects. This introduces the following changes:

  • Added type property to the Source and Destination objects, which can be set when creating or updating them.
  • Added config property to contain all type-dependent configuration options, including authentication methods, custom responses, and HTTP method restrictions. See the source object for more details on each Type configuration.

Source

  • The Source type property defaults to WEBHOOK and has no required config property.
  • The custom_response, allowed_http_methods properties have been moved to the Source to the config object for the supported type.
  • The verification has been moved to the config object and the verification.type property is now config.auth_type and the verification.config property is just config.auth.

Destination

  • The Destination type property defaults to HTTP and requires a config.url property.
  • The Destination properties url, rate_limit, rate_limit_period, disabled_path_forwarding and http_method have been moved to the config object for the supported type.
  • The Destination cli_path property has been renamed to path and has been moved to the config object when type is CLI.
  • When type is CLI the rate_limit and rate_limit_period properties are not supported.

2024-09-01

Change to attempts

Attempts no longer store state and are created when the event is delivered rather then when the event is queued for delivery.

Because of the underlying data structure change, the behavior of the API has changed for some endpoint, regardless of versions. While those are not technically breaking changes, they are worth noting:

  • The /attempts (see: Retrieve all attempts) endpoint now only returns attempts with status of SUCCESFUL or FAILED. This is true regardless of API version.
  • The /events/:id/retry will always return null for the attempt property on the response. This is true regardless of API version.

The breaking changes for this version specifically are:

  • The /events/:id/retry (see: Retry an event) endpoint previously returned { event: Event, attempt: Attempt } and now only returns the Event object in root of the response.

Connections

A connection lets you route webhooks from a source to a destination, using a rule.

Retrieve connections

This endpoint lists connections, or a subset of connections.

Create a connection

This endpoint creates a connection. You can create a connection's underlying source, destination, and rules with a single call by declaring an object for any of those resources. You can reuse a source or destination by referencing their ID.

Create/Update a connection

This endpoint creates a connection, or updates an existing connection by name. A connection's source and destination cannot be updated.

Count connections

Retrieve a connection

This endpoint retrieves a specific connection.

Update a connection

This endpoint updates a connection.

Delete a connection

This endpoint permanently deletes a connection. This action cannot be undone.

Disable a connection

This endpoint disables a connection. Notice that a connection is enabled by default when created. A disabled connection will no longer receive or deliver any events.

Disable a connection

This endpoint disables a connection. Notice that a connection is enabled by default when created. A disabled connection will no longer receive or deliver any events.

Enable a connection

This endpoint enables a connection that has been previously disabled. The associated source and destination will also be enabled if they were previously disabled.

Enable a connection

This endpoint enables a connection that has been previously disabled. The associated source and destination will also be enabled if they were previously disabled.

Pause a connection

This endpoint pauses a connection. A paused connection will still receive events, but those events will be marked with a status of HOLD and will be delivered only once the connection is unpaused.

Unpause a connection

This endpoint unpauses a connection. Any event with a status of HOLD will be attempted. Destination delivery rate will be respected. This operation is asynchronous, so it may take some time for all events to be QUEUED for delivery.

Sources

A source represents any third party that sends webhooks to Hookdeck.

Retrieve sources

This endpoint lists sources, or a subset of sources.

Create a source

This endpoint creates a source.

Create/Update a source

This endpoint creates a source, or updates an existing source by name.

Count sources

Retrieve a source

This endpoint retrieves a specific source.

Update a source

This endpoint updates a source.

Delete a source

This endpoint permanently deletes a source. This action cannot be undone.

Disable a source

This endpoint disables a source. A disabled source will no longer receive any events, and all connections associated with this source will also be disabled.

Disable a source

This endpoint disables a source. A disabled source will no longer receive any events, and all connections associated with this source will also be disabled.

Enable a source

This endpoint enables a source that was previously disabled.

Enable a source

This endpoint enables a source that was previously disabled.

Destinations

A destination is any endpoint to which your webhooks can be routed.

Retrieve destinations

This endpoint lists destinations, or a subset of destinations.

Create a destination

This endpoint creates a destination.

Create/Update a destination

This endpoint creates a destination, or updates an existing destination by name.

Count destinations

Retrieve a destination

This endpoint retrieves a specific destination.

Update a destination

This endpoint updates a destination.

Delete a destination

This endpoint permanently deletes a destination. This action cannot be undone.

Disable a destination

This endpoint disables a destination. A disabled destination will no longer deliver any events.

Disable a destination

This endpoint disables a destination. A disabled destination will no longer deliver any events.

Enable a destination

This endpoint enables a destination that was previously disabled.

Enable a destination

This endpoint enables a destination that was previously disabled.

Issue Triggers

Issue Triggers lets you setup rules that trigger issues when certain conditions are met.

Retrieve issue triggers

This endpoint lists issue triggers.

Create an issue trigger

This endpoint creates an issue trigger.

Create/Update an issue trigger

This endpoint creates an issue trigger, or updates an existing issue trigger by name.

Retrieve an issue trigger

This endpoint retrieves a specific issue trigger.

Update an issue trigger

This endpoint updates an issue trigger.

Delete an issue trigger

This endpoint permanently deletes an issue trigger. This action cannot be undone.

Disable an issue trigger

This endpoint disables an issue trigger so it stops producing issues.

Enable an issue trigger

This endpoint enables a previously disabled issue trigger.

Transformations

A transformation represents JavaScript code that will be executed on a connection's requests. Transformations are applied to connections using Rules.

Retrieve transformations

This endpoint lists transformations, or a subset of transformations.

Create a transformation

This endpoint creates a transformation.

Create/Update a transformation

This endpoint creates a transformation, or updates an existing transformation by name.

Get transformations count

Retrieve a transformation

This endpoint retrieves a specific transformation.

Update a transformation

This endpoint updates a transformation.

Delete a transformation

This endpoint permanently deletes a transformation. This action cannot be undone.

Test a transformation

This endpoint executes a transformation against a sample request payload and returns the transformed result without persisting anything.

Get transformation executions

Get a transformation execution

Notifications

Notifications let your team receive alerts anytime an issue changes.

Webhook Notifications

This endpoint enables or disables webhook notifications for the project, and sets the topics and source to deliver them to.

List all custom domains and their verification statuses for the project

Add a custom domain to the project

Removes a custom domain from the project

Requests

A request represent a webhook received by Hookdeck.

Retrieve requests

This endpoint lists requests, or a subset of requests.

Retrieve a request

This endpoint retrieves a specific request.

Get a request raw body data

Retry a request

This endpoint retries a specific request. Retrying a request creates new events based on the request for the specified connections (or all matching connections if none specified).

Replay a request

Replays a request through the full pipeline, creating a new request and new events. The original request and its events remain unchanged. Transformations, filters, and other pipeline rules are re-evaluated with the current configuration. By default, replays to all currently active connections on the request source — this also backfills traffic onto connections added after the original request was ingested. If the source has no active connections, the replay still creates a new request, rejected with cause NO_CONNECTION. Optionally specify source_id to target another source — alone it replays onto all of that source’s active connections, or combine it with webhook_ids to target specific connections on that source. webhook_ids without source_id may target any connections in the project; when they span multiple sources the replay fans out into one new request per target source.

Retrieve request events

This endpoint retrieves all events that were created as a result of the specified request.

Retrieve request ignored events

This endpoint retrieves all events that were ignored (filtered out) for the specified request.

Events

An event is any request that Hookdeck receives from a source.

Retrieve events

This endpoint lists events, or a subset of events.

Retrieve an event

This endpoint retrieves a specific event. The response contains the data object with the properties body and headers, representing the original data for that request.

Get a event raw body data

Retry an event

This endpoint retries a specific event. Retrying an event will cause a new attempt to be made to deliver it to the destination.

Replay an event

Replays an event by re-ingesting the original request through the full pipeline, creating a new request and new events. The original event remains unchanged. By default, replays to the same connection as the original event. Optionally specify one or more connections via webhook_ids — any connections in the project. When the target connections span multiple sources, the replay fans out into one new request per target source. Alternatively specify source_id to target another source — alone it replays onto all of that source’s active connections, or combine it with webhook_ids to target specific connections on that source.

Cancel an event

This endpoint cancels a pending event. Only events with a status of QUEUED, SCHEDULED, or HOLD can be cancelled.

Cancel an event

This endpoint cancels a pending event. Only events with a status of QUEUED, SCHEDULED, or HOLD can be cancelled.

Attempts

An attempt is any request that Hookdeck makes on behalf of an event.

Retrieve attempts

This endpoint lists attempts, or a subset of attempts.

Retrieve an attempt

This endpoint retrieves a specific attempt. When retrieving a completed attempt, the response will contain the body of the destination's response. If the body is not yet available in our backend service the body will be set to NOT_AVAILABLE_YET.

Bookmarks

A bookmark lets you conveniently store and replay a specific request.

Retrieve bookmarks

This endpoint lists bookmarks, or a subset of bookmarks.

Create a bookmark

This endpoint creates a bookmark from a specific event.

Retrieve a bookmark

This endpoint retrieves a specific bookmark.

Update a bookmark

This endpoint updates a bookmark.

Delete a bookmark

This endpoint permanently deletes a bookmark. This action cannot be undone.

Get a bookmark raw body data

Trigger a bookmark

This endpoint triggers a bookmark, replaying its associated event against all matching connections.

Issues

Issues lets you track problems in your project and communicate resolution steps with your team.

Retrieve issues

This endpoint lists issues, or a subset of issues.

Get the number of issues

Retrieve an issue

This endpoint retrieves a specific issue.

Update an issue

This endpoint updates an issue's status.

Dismiss an issue

This endpoint dismisses an issue.

Metrics

Query aggregated metrics for events, requests, and attempts with time-based grouping and filtering.

Query request metrics

Query aggregated request metrics with time-based grouping and filtering

Query event metrics

Query aggregated event metrics with time-based grouping and filtering

Query attempt metrics

Query aggregated attempt metrics with time-based grouping and filtering

Query event metrics grouped by individual issue

Returns metrics for events broken down by individual issue IDs. Uses arrayJoin to create one row per issue per event, enabling per-issue analytics. Useful for tracking which issues affect the most events over time.

Query queue depth metrics

Query queue depth metrics for destinations and delivery groups (pending events count and age)

Query transformation execution metrics

Query aggregated transformation execution metrics with time-based grouping and filtering

Query events pending timeseries metrics

Query aggregated events pending timeseries metrics with time-based grouping and filtering

Publish API

Authentication: The Publish API uses the same authentication as the Hookdeck REST API (Authorization: Bearer $API_KEY or Basic Auth). This is different from Source authentication - when sending directly to Source URLs, see Source Authentication.

The Hookdeck Publish API is a distinct endpoint to send requests to one of your Hookdeck sources, either by name or by ID. The Publish API is authenticated just like the rest of the Hookdeck API.

Requests sent via the Publish API are automatically considered verified and do not require additional verification. If your Source Type is set to Hookdeck Publish API (PUBLISH_API via API), only requests via the Publish API will be accepted. Regardless of the source type and authentication method, it's always possible to send requests via the Publish API for any given source.

The Publish API has its own specification and no rate limit.

The API URL is https://hkdk.events/v1/publish

Required headers

The following headers are required for all requests to the Publish API. Those reserved headers will be trimmed from the request once validated.

  • Authorization: The value of this header is the Authorization header value from the request you wish to publish.
  • Content-Type: The value of this header is the Content-Type header value from the request you wish to publish. Must be one of Hookdeck supported content types.

You must include one of the following headers:

  • X-Hookdeck-Source-Id: The value of this header is the id of the source you wish to publish the request to.
  • X-Hookdeck-Source-Name: The value of this header is the name of the source you wish to publish the request to.

Behavior

The Publish API does not have a specification beyond the required headers. The Publish API will accept any request valid for the Source it is published to, and the headers, body, path, and query params will be passed through as is.

Path

For example, if you POST to /v1/publish/orders, the path value will be /orders. This path will be forwarded to the destination endpoint unless the Hookdeck Destination has Path forwarding disabled.

Bulk retry events

Bulk retry operations allow you to retry many events at once. A bulk retry is first estimated, then created, then processed asynchronously.

Retrieve events bulk retries

This endpoint lists events bulk retries.

Create events bulk retry

This endpoint creates and starts an events bulk retry using the provided query.

Generate events bulk 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.

Retrieve events bulk retry

This endpoint retrieves a specific events bulk retry.

Cancel events bulk retry

This endpoint cancels a pending or in-progress events bulk retry.

Bulk cancel events

Bulk cancel operations allow you to cancel multiple pending events at once.

Retrieve events bulk cancels

This endpoint lists events bulk cancels.

Create events bulk cancel

This endpoint creates and starts an events bulk cancel using the provided query.

Generate events bulk cancel plan

This endpoint estimates the number of events matched by the provided query before creating a bulk cancel.

Retrieve events bulk cancel

This endpoint retrieves a specific events bulk cancel.

Bulk retry ignored events

Bulk retry ignored events allow you to retry many events that were previously ignored (for instance due to filter rules) at once.

Retrieve ignored events bulk retries

This endpoint lists ignored events bulk retries.

Create ignored events bulk retry

This endpoint creates and starts an ignored events bulk retry using the provided query.

Generate ignored events bulk retry plan

This endpoint estimates the number of ignored events matched by the provided query before creating a bulk retry.

Retrieve ignored events bulk retry

This endpoint retrieves a specific ignored events bulk retry.

Cancel ignored events bulk retry

This endpoint cancels a pending or in-progress ignored events bulk retry.

Bulk retry requests

Bulk retry requests allow you to re-ingest many previously received requests at once.

Retrieve requests bulk retries

This endpoint lists requests bulk retries.

Create requests bulk retry

This endpoint creates and starts a requests bulk retry using the provided query.

Generate requests bulk retry plan

This endpoint estimates the number of requests matched by the provided query before creating a bulk retry.

Retrieve requests bulk retry

This endpoint retrieves a specific requests bulk retry.

Cancel requests bulk retry

This endpoint cancels a pending or in-progress requests bulk retry.

Bulk replay requests

Bulk replay requests re-runs the full pipeline for many historical requests through a chosen set of target connections. Useful for backfilling new connections and for reprocessing after a transformation change.

Retrieve requests bulk replays

This endpoint lists requests bulk replays.

Create requests bulk 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.

Generate requests bulk 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.

Retrieve requests bulk replay

This endpoint retrieves a specific requests bulk replay.

Cancel requests bulk replay

This endpoint cancels a pending or in-progress requests bulk replay.

Rule

A rule can be applied to Connections using the rules field.

Retry

The retry rule determines the rate and limit of automatic retries on failed events.

Delay

The delay rule allows you to introduce a delay between the moment Hookdeck receives an event, and when it's forwarded to your destination.

The maximum delay is 24 hours (86,400,000 milliseconds).

Filter

The filter rule allows you to permit and route events conditionally based on the contents of their Headers, Body, Query, and/or Path.

For more information on how to set up filters, including syntax, review our filter documentation.

Transform

The transform rule allows you to run arbitrary JavaScript to transform the event data.

For more information on how to use transformations, check the transformation documentation.

Deduplicate

The deduplication rule allows you to ignore redundant events by comparing them against previously processed events within a time window. You control what makes events "identical" - from exact payload matching to comparing only specific fields that matter to your use case.

For more information on how to use deduplication, check the deduplication documentation.

Not specifying any of include_fields or exclude_fields will deduplicate the full payload. Fields specified must start with body, headers, query or path.