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 workspace settings.
To include your API key in requests, use either Bearer Token Authentication or Basic Authentication.
| Method | Procedure | 
|---|---|
| Bearer Token Authentication | Include the header Authorization: Bearer $API_KEY, replacing$API_KEYwith your personal key | 
| Basic Authentication | Set the username as your API key, and supply an empty password | 
Create your first connection
Creating your first connection will allow you to start routing events with Hookdeck.
The API only supports
application/jsonfor both input and output. Header is optional.
Required parameters
| Parameter | Type | Description | 
|---|---|---|
| name | string | Name of the new connection | 
| source.name | string | Name of the source to create | 
| destination.name | string | Name of the destination to create | 
| destination.url | string | HTTP endpoint of the destination | 
| destination.cli_path | string | Path for the CLI destination | 
Only one of
urlorcli_pathis required.
Response
The response body returns objects for the associated source, destination, and ruleset.
These resources can be reused in future requests by passing the destination_id, source_id, or ruleset_id instead of an object.
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.
The connection URL is a property of the source object.
Congratulations! Your request & events can now be viewed, inspected, filtered, sorted, retried, and more using Hookdeck.
Authentication
Your API key is located in your workspace settings, and must be included in every API request. Use either Bearer Token Authentication or Basic Authentication.
| Method | Procedure | 
|---|---|
| Bearer Token Authentication | Include the header Authorization: Bearer $API_KEY, replacing$API_KEYwith your personal key | 
| Basic Authentication | Set 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.
| Parameter | Default | Description | 
|---|---|---|
| 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") | 
| limit | 100 | The making amount of results returned per query (max: 250) | 
| next | undefined | The ID to provide in the query to get the next set of results | 
| prev | undefined | The 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.
If an event is pending, the keyset will return a truthy value (null) which will cause the pagination to omit null values in the response.
Errors
Hookdeck uses standard HTTP response codes to indicate the success or failure of an API request.
| Parameter | Type | Description | 
|---|---|---|
| handle | boolean | Error was handled by the API and did not resolve in an uncaught exception | 
| status | integer | HTTP status code for the error | 
| message | string | Any message associated with the error | 
| data | object | Any 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 becomes ["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 becomes { "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
| Operator | Supported Types | Description | 
|---|---|---|
| gte | datenumber | Greater than or equal to | 
| gt | datenumber | Greater than | 
| lte | datenumber | Lesser than or equal to | 
| lt | datenumber | Lesser than | 
| any | datenumberstring | Not null | 
| contains | string | Contains | 
Changelog
When backwards-incompatible changes are made to the API, a new, dated version is released. The latest version is 2023-07-01.
The API version can be set in the base path of any endpoint, such as https://api.hookdeck.com/2023-07-01/sources. Otherwise the API defaults to the oldest supported 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 supported for up to 1 year after the date of release. For instance 2023-07-01 will be official supported until 2024-07-01.
2023-07-01
Removing rulesets
Removes support for Rulesets and is replaced by setting rules directly on connections.
- Removed rulesetsobject andresolved_rulesarray from Connections.
- Removed all /rulesetsendpoints
- Removed rulesetandruleset_idproperty when creating or updating a Connection
Replacing integrations by Source "verification"
- Add the verificationproperty to the Source model
- Add the verificationinput when creating or updating a Source
- Remove the integrationandintegration_idproperty from Source
- Removed all /integrationsendpoints
Integrations no longer need to be created and managed independantly from the source it's attached to. Instead you should pass the verification property to the source directly.
2023-01-01
- Removed alertrule type fromruleson Rulesets and Connections.
2022-11-01 [DEPRECATED]
- Changed the stringresponses of DELETE operations on /bookmarks/:id and /integrations/:id to{ "id": "SOME_ID" }instead ofIDto prevent error with unstructured response with some clients.
- Changed the booleanresponses of PUT operations on /integrations/:id/attach/:source_id and /integrations/:id/detach/:source_id to{ "success": true }instead oftrueto prevent error with unstructured response with some clients.
- Changed the numberresponses of GET operations on /issues/count to{ "count": 123 }instead of123to prevent error with unstructured response with some clients.
2022-10-01 [DEPRECATED]
- Remove the properties completed_event_idandlast_processed_event_idfrom the Event Bulk Retry model
- Renamed the following properties on the Event Bulk Retry model- estimated_batch_countto- estimated_batch
- processed_batch_countto- processed_batch
- estimated_event_countto- estimated_count
- delivered_event_countto- completed_count
- failed_event_countto- failed_count
 
- Added bulk retries for requests
2022-07-01 [DEPRECATED]
- Renamed the requestproperty todataon Events and Bookmarks
- Renamed the requestvalue todatawhen querying events with the data included, such that/events?include=requestis now/events?include=data
- Renamed the event_request_idproperty on Events and Bookmarks toevent_data_id
2022-03-01 [DEPRECATED]
- Removed the intervalproperty from the Alert rule. Alert rule now controls how new issues are opened and notifications are now triggered by an issue opening or re-opening.
2021-08-01 [DEPRECATED]
- Removed the labelproperty for Sources, Destinations, Rulesets and Connections.
- Renamed the aliasproperty tonamefor Sources, Destinations, Rulesets and Connections.
- Removed the alert_strategyandalert_intervalproperty for Rulesets.
- Removed the retry_strategy,retry_intervalandretry_countproperty for Rulesets.
- Removed the filtersproperty for Connections.
- Added the rulesproperty to Connections and Rulesets.
Introducing Rules
The removed properties of Rulesets and Connections have been replaced by the rules array. Each rule has a type and a set of properties to configure its behavior. Rule definitions are here.
2020-01-01 [DEPRECATED]
2020-01-01 marks the intial released of the API.
OpenAPI Schema
Our OpenAPI schema is available at https://api.hookdeck.com/2023-07-01/openapi.
This URL always returns the schema for the latest version of the API
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.
Connections
A connection lets you route events from a source to a destination.
Connections were historically called "webhooks". The endpoint root path
/webhookshas been moved to/connections. The former will remain functional, but consider migrating to/connections.
Connection object
id
stringID of the connection
name
stringUnique name of the connection for this source
full_name
stringFull name of the connection concatenated from source, connection and desitnation name
description
stringDescription of the connection
team_id
stringID of the workspace
destination
DestinationAssociated Destination object
source
SourceAssociated Source object
rules
Rule[]Array of rules configured on the connection
archived_at
stringDate the connection was archived
paused_at
stringDate the connection was paused
updated_at
stringDate the connection was last updated
created_at
stringDate the connection was created
Retrieve all connections
This endpoint lists all connections, or a subset of connections.
Query Parameters
id
stringstring[]Filter by connection IDs
name
stringobjectFilter by connection name
destination_id
stringstring[]Filter by associated destination IDs
source_id
stringstring[]Filter by associated source IDs
archived
booleanInclude archived resources in the response
archived_at
stringobjectDate the connection was archived
full_name
stringFuzzy match the concatenated source and connection name. The source name and connection name must be separated by " -> "
paused_at
stringobjectDate the connection was paused
order_by
stringstring[]Sort key(s)
dir
stringstring[]Sort direction(s)
limit
integerResult set size
next
stringThe ID to provide in the query to get the next set of results
prev
stringThe ID to provide in the query to get the previous set of results
Retrieve a connection
This endpoint retrieves a specific connection.
URL Parameters
id
stringConnection ID
Create a connection
This endpoint creates a connection.
Body Parameters
name
stringA unique name of the connection for the source
description
stringDescription for the connection
destination_id
stringID of a destination to bind to the connection
source_id
stringID of a source to bind to the connection
destination
objectDestination input object
source
objectSource input object
rules
Rule[]Create a connection with new resources
You can create a connection's underlying source, destination, and ruleset with a single call by declaring an object for any of those resources.
{
  "name": "github-some-api",
  "source": {
    "name": "github"
  },
  "destination": {
    "name": "some-api",
    "url": "https://example.com/webhook"
  }
}
Create a connection with existing resources
You can reuse a source, destination, or ruleset by referencing their ID.
{
  "source_id": "src_xxx",
  "destination_id": "des_xxx"
}
Create/Update a connection
This endpoint creates a connection.
This endpoint creates a connection, or updates an existing connection by name.
A connection's source and destination cannot be updated.
Create/Update a connection with new resources
You can create a connection's underlying source, destination, and ruleset with a single call by declaring an object for any of those resources.
Create/Update a connection with existing resources
You can reuse a source, destination, or ruleset by referencing their ID.
Update a connection
This endpoint updates a connection.
URL Parameters
id
stringConnection ID
Body Parameters
name
stringdescription
stringDescription for the connection
rules
Rule[]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.
URL Parameters
id
stringConnection ID
The parameter
paused_atis set to the current timestamp.
Unpause a connection
This endpoint unpauses a connection.
Any event with a status of HOLD will be attempted (rate limits will be respected). This operation is asynchronous, so it may take some time for all events to be QUEUED for delivery.
URL Parameters
id
stringConnection ID
The parameter
paused_atis set tonull.
Archive a connection
This endpoint archives a connection.
An archived connection will no longer receive or deliver any events.
URL Parameters
id
stringConnection ID
The parameter
archived_atis set to the current timestamp.
Unarchive a connection
This endpoint unarchives a connection.
The associated source and destination will also be unarchived if they were previously archived.
URL Parameters
id
stringConnection ID
The parameter
archived_atis set tonull.
Delete a connection
This endpoint permanently deletes a connection.
URL Parameters
id
stringThis action cannot be undone.
Sources
A source represents any third party that sends requests to Hookdeck.
Source object
id
stringID of the source
name
stringName for the source
description
stringDescription of the source
team_id
stringID of the workspace
url
stringA unique URL that must be supplied to your webhook's provider
verification
VerificationConfigThe verification configs for the specific verification type
allowed_http_methods
SourceAllowedHTTPMethodList of allowed HTTP methods. Defaults to PUT, POST, PATCH, DELETE.
custom_response
SourceCustomResponseCustom response object
archived_at
stringDate the source was archived
updated_at
stringDate the source was last updated
created_at
stringDate the source was created
Using the source URL
The source object contains a unique URL that must be supplied to your provider. Each valid HTTP request received at this URL creates a request.
Retrieve all sources
This endpoint lists all sources, or a subset of sources.
Query Parameters
id
stringstring[]Filter by source IDs
name
stringobjectThe source name
archived
booleanInclude archived resources in the response
archived_at
stringobjectDate the source was archived
order_by
stringstring[]Sort key(s)
dir
stringstring[]Sort direction(s)
limit
integerResult set size
next
stringThe ID to provide in the query to get the next set of results
prev
stringThe ID to provide in the query to get the previous set of results
Retrieve a source
This endpoint retrieves a specific source.
URL Parameters
id
stringSource ID
Query Parameters
include
stringEnum verification.configs
Create a source
This endpoint creates a source.
Body Parameters
name
stringA unique name for the source
description
stringDescription for the source
allowed_http_methods
SourceAllowedHTTPMethodList of allowed HTTP methods. Defaults to PUT, POST, PATCH, DELETE.
custom_response
SourceCustomResponseCustom response object
verification
VerificationConfigThe verification configs for the specific verification type
Create/Update a source
This endpoint creates a source, or updates an existing source by name.
Body Parameters
name
stringA unique name for the source
description
stringDescription for the source
allowed_http_methods
SourceAllowedHTTPMethodList of allowed HTTP methods. Defaults to PUT, POST, PATCH, DELETE.
custom_response
SourceCustomResponseCustom response object
verification
VerificationConfigThe verification configs for the specific verification type
Update a source
This endpoint updates a source.
URL Parameters
id
stringSource ID
Body Parameters
name
stringA unique name for the source
description
stringDescription for the source
allowed_http_methods
SourceAllowedHTTPMethodList of allowed HTTP methods. Defaults to PUT, POST, PATCH, DELETE.
custom_response
SourceCustomResponseCustom response object
verification
VerificationConfigThe verification configs for the specific verification type
Archive a source
This endpoint archives a source and any associated connections.
URL Parameters
id
stringSource ID
The parameter
archived_atis set to the current timestamp.
Unarchive a source
This endpoint unarchives a source.
URL Parameters
id
stringSource ID
The parameter
archived_atis set tonull.
Delete a source
This endpoint permanently deletes a source.
URL Parameters
id
stringThis action cannot be undone. Hookdeck will return HTTP 410 for any new request to that Source URL.
Destinations
A destination is any endpoint to which your events can be routed.
Destination object
id
stringID of the destination
name
stringA unique, human-friendly name for the destination
description
stringDescription of the destination
team_id
stringID of the workspace
path_forwarding_disabled
booleanurl
stringHTTP endpoint of the destination
cli_path
stringPath for the CLI destination
rate_limit
integerLimit event attempts to receive per period. Max value is workspace plan's max attempts thoughput.
rate_limit_period
DestinationRateLimitPeriodPeriod to rate limit attempts
Enum second, minute, hour, concurrent
http_method
DestinationHTTPMethodHTTP method used on requests sent to the destination, overrides the method used on requests sent to the source.
Enum GET, POST, PUT, PATCH, DELETE
auth_method
DestinationAuthMethodConfigConfig for the destination's auth method
archived_at
stringDate the destination was archived
updated_at
stringDate the destination was last updated
created_at
stringDate the destination was created
Retrieve all destinations
This endpoint lists all destinations, or a subset of destinations.
Query Parameters
id
stringstring[]Filter by destination IDs
name
stringobjectThe destination name
archived
booleanInclude archived resources in the response
archived_at
stringobjectDate the destination was archived
url
stringstring[]HTTP endpoint of the destination
cli_path
stringobjectstring[]Path for the CLI destination
order_by
stringstring[]Sort key(s)
dir
stringstring[]Sort direction(s)
limit
integerResult set size
next
stringThe ID to provide in the query to get the next set of results
prev
stringThe ID to provide in the query to get the previous set of results
Retrieve a destination
This endpoint retrieves a specific destination.
URL Parameters
id
stringDestination ID
Create a destination
This endpoint creates a destination.
Body Parameters
name
stringName for the destination
description
stringDescription for the destination
url
stringEndpoint of the destination
cli_path
stringPath for the CLI destination
rate_limit_period
stringPeriod to rate limit attempts
Enum second, minute, hour
rate_limit
integerLimit event attempts to receive per period
http_method
DestinationHTTPMethodHTTP method used on requests sent to the destination, overrides the method used on requests sent to the source.
Enum GET, POST, PUT, PATCH, DELETE
auth_method
DestinationAuthMethodConfigConfig for the destination's auth method
path_forwarding_disabled
booleanOne of
urlorcli_pathis required.
Create/Update a destination
This endpoint creates a destination, or updates an existing destination by name.
Body Parameters
name
stringName for the destination
description
stringDescription for the destination
url
stringEndpoint of the destination
cli_path
stringPath for the CLI destination
rate_limit_period
stringPeriod to rate limit attempts
Enum second, minute, hour
rate_limit
integerLimit event attempts to receive per period
http_method
DestinationHTTPMethodHTTP method used on requests sent to the destination, overrides the method used on requests sent to the source.
Enum GET, POST, PUT, PATCH, DELETE
auth_method
DestinationAuthMethodConfigConfig for the destination's auth method
path_forwarding_disabled
booleanUpdate a destination
This endpoint updates a destination.
URL Parameters
id
stringDestination ID
Body Parameters
name
stringName for the destination
description
stringDescription for the destination
url
stringEndpoint of the destination
cli_path
stringPath for the CLI destination
rate_limit_period
stringPeriod to rate limit attempts
Enum second, minute, hour
rate_limit
integerLimit event attempts to receive per period
http_method
DestinationHTTPMethodHTTP method used on requests sent to the destination, overrides the method used on requests sent to the source.
Enum GET, POST, PUT, PATCH, DELETE
auth_method
DestinationAuthMethodConfigConfig for the destination's auth method
path_forwarding_disabled
booleanArchive a destination
This endpoint archives a destination.
URL Parameters
id
stringDestination ID
The parameter
archived_atis set to the current timestamp.
Unarchive a destination
This endpoint unarchives a destination.
URL Parameters
id
stringDestination ID
The parameter
archived_atis set tonull.
Delete a destination
This endpoint permanently deletes a destination.
URL Parameters
id
stringThis action cannot be undone.
Issue Triggers
Issue Triggers allow you to configure the rules under which new Issues (and any corresponding notifications) should be opened for the different issue types.
Issue Trigger Object
id
stringID of the issue trigger
team_id
stringID of the workspace
name
stringOptional unique name to use as reference when using the API
type
IssueTypeIssue type
Enum delivery, transformation, backpressure
configs
IssueTriggerReferenceConfiguration object for the specific issue type selected
channels
IssueTriggerChannelsNotification channels object for the specific channel type
disabled_at
stringISO timestamp for when the issue trigger was disabled
updated_at
stringISO timestamp for when the issue trigger was last updated
created_at
stringISO timestamp for when the issue trigger was created
deleted_at
stringISO timestamp for when the issue trigger was deleted
Notification Channel Providers
slack
objectSlack channel for an issue trigger
opsgenie
objectIntegration channel for an issue trigger
objectEmail channel for an issue trigger
A workspace integration for each providers must be configured from the dashboard for the notification channels to work. Workspace integrations.
Delivery issue type configs
strategy
IssueTriggerStrategyThe strategy uses to open the issue
Enum first_attempt, final_attempt
connections
stringstring[]A pattern to match on the connection name or array of connection IDs. Use * as wildcard.
Transformation issue type configs
log_level
TransformationExecutionLogLevelThe minimum log level to open the issue on
Enum debug, info, warn, error, fatal
transformations
stringstring[]A pattern to match on the transformation name or array of transformation IDs. Use * as wildcard.
Backpressure issue type configs
delay
integerThe minimum delay (backpressure) to open the issue for min of 1 minute (60000) and max of 1 day (86400000)
destinations
stringstring[]A pattern to match on the destination name or array of destination IDs. Use * as wildcard.
Wildcard patterns
| Pattern | Description | 
|---|---|
| * | Match all | 
| string* | Starts with | 
| *string | Ends with | 
| *string* | Contains | 
Retrieve all issue triggers
This endpoint lists all issue triggers, or a subset of issue triggers.
Query Parameters
name
stringFilter by issue trigger name
type
IssueTypeIssueType[]disabled_at
stringobjectDate when the issue trigger was disabled
order_by
stringstring[]Sort key(s)
dir
stringstring[]Sort direction(s)
limit
integerResult set size
next
stringThe ID to provide in the query to get the next set of results
prev
stringThe ID to provide in the query to get the previous set of results
Retrieve an issue trigger
This endpoint retrieves a specific issue trigger.
URL Parameters
id
stringIssue trigger ID
Create an issue trigger
This endpoint updates an issue trigger.
Body Parameters
type
IssueTypeIssue type
Enum delivery, transformation, backpressure
configs
IssueTriggerDeliveryConfigsIssueTriggerTransformationConfigsIssueTriggerBackpressureConfigsConfiguration object for the specific issue type selected
channels
IssueTriggerChannelsNotification channels object for the specific channel type
name
stringOptional unique name to use as reference when using the API
Update an issue trigger
This endpoint updates an issue trigger.
URL Parameters
id
stringIssue trigger ID
Body Parameters
configs
IssueTriggerDeliveryConfigsIssueTriggerTransformationConfigsIssueTriggerBackpressureConfigsConfiguration object for the specific issue type selected
channels
IssueTriggerChannelsNotification channels object for the specific channel type
disabled_at
stringDate when the issue trigger was disabled
name
stringOptional unique name to use as reference when using the API
Create or Update an issue trigger
This endpoint creates a issue trigger, or updates an existing issue trigger by name.
Name is required for this endpoint
Body Parameters
type
IssueTypeIssue type
Enum delivery, transformation, backpressure
configs
IssueTriggerDeliveryConfigsIssueTriggerTransformationConfigsIssueTriggerBackpressureConfigsConfiguration object for the specific issue type selected
channels
IssueTriggerChannelsNotification channels object for the specific channel type
name
stringRequired unique name to use as reference when using the API
Delete an issue trigger
This endpoint deletes an issue trigger and all associated issues.
URL Parameters
id
stringIssue trigger ID
Disable an issue trigger
This endpoint disables an issue trigger.
URL Parameters
id
stringIssue trigger ID
Enable an issue trigger
This endpoint enables an issue trigger.
URL Parameters
id
stringIssue trigger ID
Transformations
A transformation represents JavaScript code that will be executed on a connection's requests. Transformations are applied to connections using Rules.
Transformation Object
id
stringID of the transformation
team_id
stringID of the workspace
name
stringA unique, human-friendly name for the transformation
code
stringJavaScript code to be executed
env
objectKey-value environment variables to be passed to the transformation
updated_at
stringDate the transformation was last updated
created_at
stringDate the transformation was created
Retrieve all transformations
This endpoint lists all transformations
Query Parameters
id
stringstring[]Filter by transformation IDs
name
stringobjectFilter by transformation name
order_by
stringstring[]Sort key(s)
dir
stringstring[]Sort direction(s)
limit
integerResult set size
next
stringThe ID to provide in the query to get the next set of results
prev
stringThe ID to provide in the query to get the previous set of results
Retrieve a transformation
This endpoint retrieves a specific transformation.
URL Parameters
id
stringTransformation ID
Create a transformation
This endpoint creates a transformation.
Body Parameters
name
stringA unique, human-friendly name for the transformation
code
stringJavaScript code to be executed as string
env
objectKey-value environment variables to be passed to the transformation
Create/Update a transformation
This endpoint creates a transformation, or updates an existing transformation by name.
Body Parameters
name
stringA unique, human-friendly name for the transformation
code
stringJavaScript code to be executed as string
env
objectKey-value environment variables to be passed to the transformation
Update a transformation
This endpoint updates a transformation.
URL Parameters
id
stringTransformation ID
Body Parameters
name
stringA unique, human-friendly name for the transformation
code
stringJavaScript code to be executed
env
objectKey-value environment variables to be passed to the transformation
Test the transformation code
This endpoint allows you to test a transformation input against a request without creating the transformation.
Body Parameters
env
objectKey-value environment variables to be passed to the transformation
webhook_id
stringID of the connection to use for the execution context
code
stringJavaScript code to be executed
transformation_id
stringTransformation ID
request
objectRequest input to use for the transformation execution
Retieve all transformation execution logs
This endpoint returns the historical executions of a transformation.
URL Parameters
id
stringTransformation ID
Query Parameters
log_level
stringstring[]Log level of the execution
webhook_id
stringstring[]ID of the connection the execution was run for
issue_id
stringstring[]ID of the associated issue
created_at
stringobjectISO date of the transformation's execution
order_by
stringstring[]Sort key(s)
dir
stringstring[]Sort direction(s)
limit
integerResult set size
next
stringThe ID to provide in the query to get the next set of results
prev
stringThe ID to provide in the query to get the previous set of results
Retrieve a transformation execution log
This endpoint returns the execution of a transformation. The properties original_event_data and transformed_event_data will be populated with the input and output request data, respectively.
URL Parameters
id
stringTransformation ID
execution_id
stringExecution ID
Notifications
Notifications let your team receive alerts anytime an issue changes.
Webhook Notifications
This endpoint enables or disables webhook notifications for the workspace.
Body Parameters
enabled
booleanEnable or disable webhook notifications on the workspace
topics
string[]List of topics to send notifications for
source_id
stringThe Hookdeck Source to send the webhook to
Requests
A request represent a HTTP request received by Hookdeck.
Request object
id
stringID of the request
team_id
stringID of the workspace
verified
booleanWhether or not the request was verified when received
original_event_data_id
stringID of the request data
rejection_cause
stringEnum SOURCE_ARCHIVED, NO_WEBHOOK, VERIFICATION_FAILED, UNSUPPORTED_HTTP_METHOD, UNSUPPORTED_CONTENT_TYPE 
ingest_priority
stringThe priority attributed to the request when received
Enum NORMAL, LOW
ingested_at
stringThe time the request was originally received
source_id
stringID of the associated source
events_count
integerThe count of events created from this request (CLI events not included)
cli_events_count
integerThe count of CLI events created from this request
updated_at
stringDate the event was last updated
created_at
stringDate the event was created
data
ShortEventDataRequest data
Retrieve all requests
This endpoint lists all request, or a subset of requests.
Requests are sorted by ingested_at date.
Filtering requests
To filter the list of requests, use only [supported operators]/docs/api#operators).
For example, append ?ingested_at[gte]=2021-10-12&ingested_at[lte]=2021-10-13 to retrieve requests for that specific 24-hour period.
Requests past your workspace archival window are not returned
Query Parameters
id
stringstring[]Filter by requests IDs
status
stringFilter by status
Enum accepted, rejected
rejection_cause
stringstring[]Filter by rejection cause
source_id
stringstring[]Filter by source IDs
verified
booleanFilter by verification status
search_term
stringURL Encoded string of the value to match partially to the body, headers, parsed_query or path
headers
JSONURL Encoded string of the JSON to match to the data headers
body
JSONURL Encoded string of the JSON to match to the data body
parsed_query
JSONURL Encoded string of the JSON to match to the parsed query (JSON representation of the query)
path
stringURL Encoded string of the value to match partially to the path
ignored_count
integerobjectinteger[]Filter by count of ignored events
events_count
integerobjectinteger[]Filter by count of events
ingested_at
stringobjectFilter by event ingested date
order_by
stringSort key
Enum ingested_at, created_at
dir
stringSort direction
Enum asc, desc
limit
integerResult set size
next
stringThe ID to provide in the query to get the next set of results
prev
stringThe ID to provide in the query to get the previous set of results
Retrieve a request
This endpoint retrieves a specific request.
The response contains the data object with the properties body, headers, path and query representing the original data for that request.
URL Parameters
id
stringRequest ID
Retry a request
This endpoint triggers a retry for an eligible request. The response contains the updated request and an array of created events if any were created.
URL Parameters
id
stringRequest ID
Body Parameters
webhook_ids
string[]Subset of webhook_ids to re-run the event logic on. Useful to retry only specific ignored_events
Retrieve request events
This endpoint retries the events associated with a request.
URL Parameters
id
stringRequest ID
Query Parameters
id
stringstring[]Filter by event IDs
status
EventStatusEventStatus[]Lifecyle status of the event
webhook_id
stringstring[]Filter by webhook connection IDs
destination_id
stringstring[]Filter by destination IDs
source_id
stringstring[]Filter by source IDs
attempts
integerobjectFilter by number of attempts
response_status
integerobjectinteger[]Filter by HTTP response status code
successful_at
stringobjectFilter by successful_at date using a date operator
created_at
stringobjectFilter by created_at date using a date operator
error_code
AttemptErrorCodesAttemptErrorCodes[]Filter by error code code
cli_id
stringobjectstring[]Filter by CLI IDs. ?[any]=true operator for any CLI.
last_attempt_at
stringobjectFilter by last_attempt_at date using a date operator
search_term
stringURL Encoded string of the value to match partially to the body, headers, parsed_query or path
headers
JSONURL Encoded string of the JSON to match to the data headers
body
JSONURL Encoded string of the JSON to match to the data body
parsed_query
JSONURL Encoded string of the JSON to match to the parsed query (JSON representation of the query)
path
stringURL Encoded string of the value to match partially to the path
order_by
stringSort key
Enum last_attempt_at, created_at
dir
stringSort direction
Enum asc, desc
limit
integerResult set size
next
stringThe ID to provide in the query to get the next set of results
prev
stringThe ID to provide in the query to get the previous set of results
Retrieve request ignored events
This endpoint retries the events associated with a request.
URL Parameters
id
stringRequest ID
Query Parameters
id
stringstring[]Filter by ignored events IDs
order_by
stringstring[]Sort key(s)
dir
stringstring[]Sort direction(s)
limit
integerResult set size
next
stringThe ID to provide in the query to get the next set of results
prev
stringThe ID to provide in the query to get the previous set of results
Events
An event is any request that Hookdeck receives from a source.
Event object
id
stringID of the event
team_id
stringID of the workspace
webhook_id
stringID of the associated connection
source_id
stringID of the associated source
destination_id
stringID of the associated destination
event_data_id
stringID of the event data
request_id
stringID of the request that created the event
attempts
integerNumber of delivery attempts made
last_attempt_at
stringDate of the most recently attempted retry
next_attempt_at
stringDate of the next scheduled retry
response_status
integerEvent status
error_code
AttemptErrorCodesError code of the delivery attempt
Enum CANCELLED, TIMEOUT, NOT_FOUND, CONNECTION_REFUSED, CONNECTION_RESET 
status
EventStatusEnum SCHEDULED, QUEUED, HOLD, SUCCESSFUL, FAILED
successful_at
stringDate of the latest successful attempt
cli_id
stringID of the CLI the event is sent to
updated_at
stringDate the event was last updated
created_at
stringDate the event was created
data
ShortEventDataRequest data
Retrieve all events
This endpoint lists all events, or a subset of events.
Filtering events
To filter the list of events, use only supported operators.
For example, append ?created_at[gte]=2021-10-12&created_at[lte]=2021-10-13 to retrieve events for that specific 24-hour period.
Including CLI events
CLI events are excluded from the results by default. To query CLI events, use /events?cli_id[any]=true.
Query Parameters
id
stringstring[]Filter by event IDs
status
EventStatusEventStatus[]Lifecyle status of the event
webhook_id
stringstring[]Filter by webhook connection IDs
destination_id
stringstring[]Filter by destination IDs
source_id
stringstring[]Filter by source IDs
attempts
integerobjectFilter by number of attempts
response_status
integerobjectinteger[]Filter by HTTP response status code
successful_at
stringobjectFilter by successful_at date using a date operator
created_at
stringobjectFilter by created_at date using a date operator
error_code
AttemptErrorCodesAttemptErrorCodes[]Filter by error code code
cli_id
stringobjectstring[]Filter by CLI IDs. ?[any]=true operator for any CLI.
last_attempt_at
stringobjectFilter by last_attempt_at date using a date operator
search_term
stringURL Encoded string of the value to match partially to the body, headers, parsed_query or path
headers
JSONURL Encoded string of the JSON to match to the data headers
body
JSONURL Encoded string of the JSON to match to the data body
parsed_query
JSONURL Encoded string of the JSON to match to the parsed query (JSON representation of the query)
path
stringURL Encoded string of the value to match partially to the path
order_by
stringSort key
Enum last_attempt_at, created_at
dir
stringSort direction
Enum asc, desc
limit
integerResult set size
next
stringThe ID to provide in the query to get the next set of results
prev
stringThe ID to provide in the query to get the previous set of results
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.
URL Parameters
id
stringEvent ID
Retry an event
This endpoint manually queues an event for retry.
URL Parameters
id
stringEvent ID
Mute an event
This endpoint cancels the next automatic retry.
URL Parameters
id
stringEvent ID
The parameter
next_attempt_atis set tonull. This action is not reversible.
Attempts
An attempt is any request that Hookdeck makes on behalf of an event.
Attempt object
id
stringAttempt ID
team_id
stringTeam ID
event_id
stringEvent ID
response_status
integerAttempt's HTTP response code
attempt_number
integerSequential number of attempts (up to and including this one) made for the associated event
trigger
AttemptTriggerHow the attempt was triggered
Enum INITIAL, MANUAL, BULK_RETRY, UNPAUSE, AUTOMATIC
error_code
AttemptErrorCodesError code of the delivery attempt
Enum CANCELLED, TIMEOUT, NOT_FOUND, CONNECTION_REFUSED, CONNECTION_RESET 
body
objectstringrequested_url
stringURL of the destination where delivery was attempted
http_method
stringHTTP method used to deliver the attempt
Enum GET, POST, PUT, PATCH, DELETE
bulk_retry_id
stringID of associated bulk retry
status
AttemptStatusAttempt status
Enum QUEUED, FAILED, SUCCESSFUL, HOLD
successful_at
stringDate the attempt was successful
delivered_at
stringDate the attempt was delivered
responded_at
stringDate the destination responded to this attempt
delivery_latency
integerTime elapsed between attempt initiation and final delivery (in ms)
response_latency
integerTime elapsed between attempt initiation and a response from the destination (in ms)
updated_at
stringDate the attempt was last updated
created_at
stringDate the attempt was created
Retrieve all attempts
This endpoint lists all attempts, or a subset of attempts.
Query Parameters
event_id
stringstring[]Event the attempt is associated with
order_by
stringstring[]Sort key(s)
dir
stringstring[]Sort direction(s)
limit
integerResult set size
next
stringThe ID to provide in the query to get the next set of results
prev
stringThe ID to provide in the query to get the previous set of results
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.
URL Parameters
id
stringAttempt ID
Bookmarks
A bookmark lets you conveniently store and replay a specific request.
Bookmark object
id
stringID of the bookmark
team_id
stringID of the workspace
webhook_id
stringID of the associated connection
event_data_id
stringID of the bookmarked event data
label
stringDescriptive name of the bookmark
alias
stringAlternate alias for the bookmark
data
ShortEventDataRequest data
last_used_at
stringDate the bookmark was last manually triggered
updated_at
stringDate the bookmark was last updated
created_at
stringDate the bookmark was created
Retrieve all bookmarks
This endpoint lists all bookmarks, or a subset of bookmarks.
Query Parameters
id
stringstring[]Filter by bookmark IDs
name
stringstring[]Filter by bookmark name
webhook_id
stringstring[]Filter by associated connection ID
event_data_id
stringstring[]Filter by associated event data ID
label
stringstring[]Filter by label
last_used_at
stringobjectFilter by last used date
order_by
stringstring[]Sort key(s)
dir
stringstring[]Sort direction(s)
limit
integerResult set size
next
stringThe ID to provide in the query to get the next set of results
prev
stringThe ID to provide in the query to get the previous set of results
Retrieve a bookmark
This endpoint retrieves a specific bookmark.
URL Parameters
id
stringBookmark ID
Create a bookmark
This endpoint creates a bookmark.
Body Parameters
event_data_id
stringID of the event data to bookmark
webhook_id
stringID of the associated connection
label
stringDescriptive name of the bookmark
name
stringA unique, human-friendly name for the bookmark
Update a bookmark
This endpoint updates a bookmark.
URL Parameters
id
stringBookmark ID
Body Parameters
event_data_id
stringID of the event data to bookmark
webhook_id
stringID of the associated connection
label
stringDescriptive name of the bookmark
name
stringA unique, human-friendly name for the bookmark
Trigger a bookmark
This endpoint uses a bookmark to create events.
Multiple events may be created, depending on the target. HTTP bookmarks will trigger at most one event, whereas CLI bookmarks will generate as many events as there are CLI clients listening to the associated connection.
URL Parameters
id
stringBookmark ID
Body Parameters
target
stringBookmark target
Enum http, cli
The parameter
last_used_atis set to the current timestamp.
Delete a bookmark
This endpoint deletes a bookmark.
Deleting a bookmark won't affect any events previously trigged by that bookmark.
URL Parameters
id
stringBookmark ID
Issues
Issues let you track problems in your workspace and communicate resolution steps with your team.
Issue object
id
stringIssue ID
team_id
stringID of the workspace
status
IssueStatusIssue status
Enum OPENED, IGNORED, ACKNOWLEDGED, RESOLVED
opened_at
stringISO timestamp for when the issue was last opened
first_seen_at
stringISO timestamp for when the issue was first opened
last_seen_at
stringISO timestamp for when the issue last occured
last_updated_by
stringID of the team member who last updated the issue status
dismissed_at
stringISO timestamp for when the issue was dismissed
updated_at
stringISO timestamp for when the issue was last updated
created_at
stringISO timestamp for when the issue was created
type
stringEnum delivery
aggregation_keys
DeliveryIssueAggregationKeysKeys used as the aggregation keys a 'delivery' type issue
reference
DeliveryIssueReferenceReference to the event and attempt an issue is being created for.
Retrieve all issues
This endpoint lists all issues, or a subset of issues.
Dismissed issues are filtered out by default.
Query Parameters
id
stringstring[]Filter by Issue IDs
issue_trigger_id
stringstring[]Filter by Issue trigger IDs
type
stringstring[]Filter by Issue types
status
stringstring[]Filter by Issue statuses
merged_with
stringstring[]Filter by Merged Issue IDs
aggregation_keys
JSONFilter by aggregation keys
created_at
stringobjectFilter by created dates
first_seen_at
stringobjectFilter by first seen dates
last_seen_at
stringobjectFilter by last seen dates
dismissed_at
stringobjectFilter by dismissed dates
order_by
stringstring[]Sort key(s)
dir
stringstring[]Sort direction(s)
limit
integerResult set size
next
stringThe ID to provide in the query to get the next set of results
prev
stringThe ID to provide in the query to get the previous set of results
Count issues
This endpoint counts all issues, or a subset of issues.
Dismissed issues are filtered out by default.
Query Parameters
id
stringstring[]Filter by Issue IDs
issue_trigger_id
stringstring[]Filter by Issue trigger IDs
type
stringstring[]Filter by Issue types
status
stringstring[]Filter by Issue statuses
merged_with
stringstring[]Filter by Merged Issue IDs
aggregation_keys
JSONFilter by aggregation keys
created_at
stringobjectFilter by created dates
first_seen_at
stringobjectFilter by first seen dates
last_seen_at
stringobjectFilter by last seen dates
dismissed_at
stringobjectFilter by dismissed dates
order_by
stringstring[]Sort key(s)
dir
stringstring[]Sort direction(s)
limit
integerResult set size
next
stringThe ID to provide in the query to get the next set of results
prev
stringThe ID to provide in the query to get the previous set of results
Retrieve an issue
This endpoint retrieves a specific issue.
URL Parameters
id
stringIssue ID
Update an issue
This endpoint updates an issue's status.
URL Parameters
id
stringIssue ID
Body Parameters
status
stringNew status
Enum OPENED, IGNORED, ACKNOWLEDGED, RESOLVED
Dismiss an issue
This endpoint marks an issue as dismissed.
URL Parameters
id
stringIssue ID
The parameter
dimissed_atis set to the current timestamp.
Bulk retry events
Event bulk retry object
id
stringID of the bulk retry
team_id
stringID of the workspace
query
JSONQuery object to filter records
created_at
stringDate the bulk retry was created
updated_at
stringLast time the bulk retry was updated
cancelled_at
stringDate the bulk retry was cancelled
completed_at
stringDate the bulk retry was completed
estimated_batch
integerNumber of batches required to complete the bulk retry
estimated_count
integerNumber of estimated events to be retried
processed_batch
integerNumber of batches currently processed
completed_count
integerNumber of events that were successfully delivered
in_progress
booleanIndicates if the bulk retry is currently in progress
progress
numberProgression of the batch operations, values 0 - 1
failed_count
integerNumber of events that failed to be delivered
Retrieve all events bulk retries
This endpoint lists all bulk retries, or a subset of bulk retries.
Query Parameters
cancelled_at
stringobjectFilter by date the bulk retry was cancelled
completed_at
stringobjectFilter by date the bulk retry completed
created_at
stringobjectFilter by date the bulk retry was created
id
stringstring[]Filter by bulk retry IDs
query
JSONFilter for events to be included in the bulk retry, use query parameters of Event
query_partial_match
booleanAllow partial filter match on query property
in_progress
booleanIndicates if the bulk retry is currently in progress
order_by
stringstring[]Sort key(s)
dir
stringstring[]Sort direction(s)
limit
integerResult set size
next
stringThe ID to provide in the query to get the next set of results
prev
stringThe ID to provide in the query to get the previous set of results
Retrieve a events bulk retry
This endpoint retrieves a specific bulk retry.
URL Parameters
id
stringBulk retry ID
Generate a events bulk retry plan
This endpoint estimates the number of events that will be retried with the given query parameters.
Query Parameters
query
JSONFilter properties for the events to be included in the bulk retry
Create a events bulk retry
This endpoint creates a bulk retry.
Creating a bulk retry automatically begins the operation to retry any events matching the specified filters.
A bulk retry re-attempts delivery for one or more events, based on a filter.
Events on paused connections will still be retried unless excluded from the query.
Body Parameters
query
JSONFilter properties for the events to be included in the bulk retry
Cancel a events bulk retry
This endpoint stops a bulk retry if it's currently running.
URL Parameters
id
stringBulk retry ID
Bulk retry ignored events
Bulk retry object
id
stringID of the bulk retry
team_id
stringID of the workspace
query
JSONQuery object to filter records
created_at
stringDate the bulk retry was created
updated_at
stringLast time the bulk retry was updated
cancelled_at
stringDate the bulk retry was cancelled
completed_at
stringDate the bulk retry was completed
estimated_batch
integerNumber of batches required to complete the bulk retry
estimated_count
integerNumber of estimated events to be retried
processed_batch
integerNumber of batches currently processed
completed_count
integerNumber of events that were successfully delivered
in_progress
booleanIndicates if the bulk retry is currently in progress
progress
numberProgression of the batch operations, values 0 - 1
failed_count
integerNumber of events that failed to be delivered
Retrieve all ignored events bulk retries
This endpoint lists all bulk retries, or a subset of bulk retries.
Query Parameters
cancelled_at
stringobjectFilter by date the bulk retry was cancelled
completed_at
stringobjectFilter by date the bulk retry completed
created_at
stringobjectFilter by date the bulk retry was created
id
stringstring[]Filter by bulk retry IDs
query
JSONFilter by the bulk retry ignored event query object
query_partial_match
booleanAllow partial filter match on query property
in_progress
booleanIndicates if the bulk retry is currently in progress
order_by
stringstring[]Sort key(s)
dir
stringstring[]Sort direction(s)
limit
integerResult set size
next
stringThe ID to provide in the query to get the next set of results
prev
stringThe ID to provide in the query to get the previous set of results
Retrieve a ignored events bulk retry
This endpoint retrieves a specific bulk retry.
URL Parameters
id
stringBulk retry ID
Generate a ignored events bulk retry plan
This endpoint estimates the number of events that will be retried with the given query parameters.
Query Parameters
query
JSONFilter by the bulk retry ignored event query object
Create a ignored events bulk retry
This endpoint creates a bulk retry.
Creating a bulk retry automatically begins the operation to retry any events matching the specified filters.
A bulk retry re-attempts delivery for one or more events, based on a filter.
Events on paused connections will still be retried unless excluded from the query.
Body Parameters
query
JSONFilter by the bulk retry ignored event query object
Cancel a ignored events bulk retry
This endpoint stops a bulk retry if it's currently running.
URL Parameters
id
stringBulk retry ID
Bulk retry requests
Bulk retry object
id
stringID of the bulk retry
team_id
stringID of the workspace
query
JSONQuery object to filter records
created_at
stringDate the bulk retry was created
updated_at
stringLast time the bulk retry was updated
cancelled_at
stringDate the bulk retry was cancelled
completed_at
stringDate the bulk retry was completed
estimated_batch
integerNumber of batches required to complete the bulk retry
estimated_count
integerNumber of estimated events to be retried
processed_batch
integerNumber of batches currently processed
completed_count
integerNumber of events that were successfully delivered
in_progress
booleanIndicates if the bulk retry is currently in progress
progress
numberProgression of the batch operations, values 0 - 1
failed_count
integerNumber of events that failed to be delivered
Retrieve all requests bulk retries
This endpoint lists all bulk retries, or a subset of bulk retries.
Query Parameters
cancelled_at
stringobjectFilter by date the bulk retry was cancelled
completed_at
stringobjectFilter by date the bulk retry completed
created_at
stringobjectFilter by date the bulk retry was created
id
stringstring[]Filter by bulk retry IDs
in_progress
booleanIndicates if the bulk retry is currently in progress
query
JSONFilter properties for the events to be included in the bulk retry, use query parameters of Requests
query_partial_match
booleanAllow partial filter match on query property
order_by
stringstring[]Sort key(s)
dir
stringstring[]Sort direction(s)
limit
integerResult set size
next
stringThe ID to provide in the query to get the next set of results
prev
stringThe ID to provide in the query to get the previous set of results
Retrieve a requests bulk retry
This endpoint retrieves a specific bulk retry.
URL Parameters
id
stringBulk retry ID
Generate a requests bulk retry plan
This endpoint estimates the number of events that will be retried with the given query parameters.
Query Parameters
query
JSONFilter properties for the events to be included in the bulk retry, use query parameters of Requests
Create a requests bulk retry
This endpoint creates a bulk retry.
Creating a bulk retry automatically begins the operation to retry any events matching the specified filters.
Body Parameters
query
JSONFilter properties for the events to be included in the bulk retry, use query parameters of Requests
Cancel a requests bulk retry
This endpoint stops a bulk retry if it's currently running.
URL Parameters
id
stringBulk retry ID
Rule
A rule can be applied to either a Ruleset or a Connection using the rules field.
Retry
The retry rule determines the rate and limit of automatic retries on failed events.
type
stringA retry rule must be of type retry
Enum retry
strategy
RetryStrategyAlgorithm to use when calculating delay between retries
Enum linear, exponential
interval
integerTime in MS between each retry
count
integerMaximum number of retries to attempt
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.
type
stringA delay rule must be of type delay
Enum delay
delay
integerDelay to introduce in MS
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.
type
stringA filter rule must be of type filter
Enum filter
headers
JSONJSON using our filter syntax to filter on request headers
body
JSONJSON using our filter syntax to filter on request headers
query
JSONJSON using our filter syntax to filter on request headers
path
JSONJSON using our filter syntax to filter on request headers
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.
type
stringA transformation rule must be of type transformation
Enum transform
transformation_id
stringID of the attached transformation object. Optional input, always set once the rule is defined
transformation
objectYou can optionally define a new transformation while creating a transform rule