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_KEY with 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/json
for 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
url
orcli_path
is 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_KEY with 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 | date number | Greater than or equal to |
gt | date number | Greater than |
lte | date number | Lesser than or equal to |
lt | date number | Lesser than |
any | date number string | 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
rulesets
object andresolved_rules
array from Connections. - Removed all
/rulesets
endpoints - Removed
ruleset
andruleset_id
property when creating or updating a Connection
Replacing integrations by Source "verification"
- Add the
verification
property to the Source model - Add the
verification
input when creating or updating a Source - Remove the
integration
andintegration_id
property from Source - Removed all
/integrations
endpoints
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
alert
rule type fromrules
on Rulesets and Connections.
2022-11-01 [DEPRECATED]
- Changed the
string
responses of DELETE operations on /bookmarks/:id and /integrations/:id to{ "id": "SOME_ID" }
instead ofID
to prevent error with unstructured response with some clients. - Changed the
boolean
responses of PUT operations on /integrations/:id/attach/:source_id and /integrations/:id/detach/:source_id to{ "success": true }
instead oftrue
to prevent error with unstructured response with some clients. - Changed the
number
responses of GET operations on /issues/count to{ "count": 123 }
instead of123
to prevent error with unstructured response with some clients.
2022-10-01 [DEPRECATED]
- Remove the properties
completed_event_id
andlast_processed_event_id
from the Event Bulk Retry model - Renamed the following properties on the Event Bulk Retry model
estimated_batch_count
toestimated_batch
processed_batch_count
toprocessed_batch
estimated_event_count
toestimated_count
delivered_event_count
tocompleted_count
failed_event_count
tofailed_count
- Added bulk retries for
requests
2022-07-01 [DEPRECATED]
- Renamed the
request
property todata
on Events and Bookmarks - Renamed the
request
value todata
when querying events with the data included, such that/events?include=request
is now/events?include=data
- Renamed the
event_request_id
property on Events and Bookmarks toevent_data_id
2022-03-01 [DEPRECATED]
- Removed the
interval
property 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
label
property for Sources, Destinations, Rulesets and Connections. - Renamed the
alias
property toname
for Sources, Destinations, Rulesets and Connections. - Removed the
alert_strategy
andalert_interval
property for Rulesets. - Removed the
retry_strategy
,retry_interval
andretry_count
property for Rulesets. - Removed the
filters
property for Connections. - Added the
rules
property 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
/webhooks
has been moved to/connections
. The former will remain functional, but consider migrating to/connections
.
Connection object
id
string
ID of the connection
name
string
Unique name of the connection for this source
full_name
string
Full name of the connection concatenated from source, connection and desitnation name
description
string
Description of the connection
team_id
string
ID of the workspace
destination
Destination
Associated Destination object
source
Source
Associated Source object
rules
Rule[]
Array of rules configured on the connection
archived_at
string
Date the connection was archived
paused_at
string
Date the connection was paused
updated_at
string
Date the connection was last updated
created_at
string
Date the connection was created
Retrieve all connections
This endpoint lists all connections, or a subset of connections.
Query Parameters
id
string
string[]
Filter by connection IDs
name
string
object
Filter by connection name
destination_id
string
string[]
Filter by associated destination IDs
source_id
string
string[]
Filter by associated source IDs
archived
boolean
Include archived resources in the response
archived_at
string
object
Date the connection was archived
full_name
string
Fuzzy match the concatenated source and connection name. The source name and connection name must be separated by " -> "
paused_at
string
object
Date the connection was paused
order_by
string
string[]
Sort key(s)
dir
string
string[]
Sort direction(s)
limit
integer
Result set size
next
string
The ID to provide in the query to get the next set of results
prev
string
The 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
string
Connection ID
Create a connection
This endpoint creates a connection.
Body Parameters
name
string
A unique name of the connection for the source
description
string
Description for the connection
destination_id
string
ID of a destination to bind to the connection
source_id
string
ID of a source to bind to the connection
destination
object
Destination input object
source
object
Source 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
string
Connection ID
Body Parameters
name
string
description
string
Description 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
string
Connection ID
The parameter
paused_at
is 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
string
Connection ID
The parameter
paused_at
is set tonull
.
Archive a connection
This endpoint archives a connection.
An archived connection will no longer receive or deliver any events.
URL Parameters
id
string
Connection ID
The parameter
archived_at
is 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
string
Connection ID
The parameter
archived_at
is set tonull
.
Delete a connection
This endpoint permanently deletes a connection.
URL Parameters
id
string
This action cannot be undone.
Sources
A source represents any third party that sends requests to Hookdeck.
Source object
id
string
ID of the source
name
string
Name for the source
description
string
Description of the source
team_id
string
ID of the workspace
url
string
A unique URL that must be supplied to your webhook's provider
verification
VerificationConfig
The verification configs for the specific verification type
allowed_http_methods
SourceAllowedHTTPMethod
List of allowed HTTP methods. Defaults to PUT, POST, PATCH, DELETE.
custom_response
SourceCustomResponse
Custom response object
archived_at
string
Date the source was archived
updated_at
string
Date the source was last updated
created_at
string
Date 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
string
string[]
Filter by source IDs
name
string
object
The source name
archived
boolean
Include archived resources in the response
archived_at
string
object
Date the source was archived
order_by
string
string[]
Sort key(s)
dir
string
string[]
Sort direction(s)
limit
integer
Result set size
next
string
The ID to provide in the query to get the next set of results
prev
string
The 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
string
Source ID
Query Parameters
include
string
Enum verification.configs
Create a source
This endpoint creates a source.
Body Parameters
name
string
A unique name for the source
description
string
Description for the source
allowed_http_methods
SourceAllowedHTTPMethod
List of allowed HTTP methods. Defaults to PUT, POST, PATCH, DELETE.
custom_response
SourceCustomResponse
Custom response object
verification
VerificationConfig
The 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
string
A unique name for the source
description
string
Description for the source
allowed_http_methods
SourceAllowedHTTPMethod
List of allowed HTTP methods. Defaults to PUT, POST, PATCH, DELETE.
custom_response
SourceCustomResponse
Custom response object
verification
VerificationConfig
The verification configs for the specific verification type
Update a source
This endpoint updates a source.
URL Parameters
id
string
Source ID
Body Parameters
name
string
A unique name for the source
description
string
Description for the source
allowed_http_methods
SourceAllowedHTTPMethod
List of allowed HTTP methods. Defaults to PUT, POST, PATCH, DELETE.
custom_response
SourceCustomResponse
Custom response object
verification
VerificationConfig
The verification configs for the specific verification type
Archive a source
This endpoint archives a source and any associated connections.
URL Parameters
id
string
Source ID
The parameter
archived_at
is set to the current timestamp.
Unarchive a source
This endpoint unarchives a source.
URL Parameters
id
string
Source ID
The parameter
archived_at
is set tonull
.
Delete a source
This endpoint permanently deletes a source.
URL Parameters
id
string
This 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
string
ID of the destination
name
string
A unique, human-friendly name for the destination
description
string
Description of the destination
team_id
string
ID of the workspace
path_forwarding_disabled
boolean
url
string
HTTP endpoint of the destination
cli_path
string
Path for the CLI destination
rate_limit
integer
Limit event attempts to receive per period. Max value is workspace plan's max attempts thoughput.
rate_limit_period
DestinationRateLimitPeriod
Period to rate limit attempts
Enum second
, minute
, hour
, concurrent
http_method
DestinationHTTPMethod
HTTP 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
DestinationAuthMethodConfig
Config for the destination's auth method
archived_at
string
Date the destination was archived
updated_at
string
Date the destination was last updated
created_at
string
Date the destination was created
Retrieve all destinations
This endpoint lists all destinations, or a subset of destinations.
Query Parameters
id
string
string[]
Filter by destination IDs
name
string
object
The destination name
archived
boolean
Include archived resources in the response
archived_at
string
object
Date the destination was archived
url
string
string[]
HTTP endpoint of the destination
cli_path
string
object
string[]
Path for the CLI destination
order_by
string
string[]
Sort key(s)
dir
string
string[]
Sort direction(s)
limit
integer
Result set size
next
string
The ID to provide in the query to get the next set of results
prev
string
The 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
string
Destination ID
Create a destination
This endpoint creates a destination.
Body Parameters
name
string
Name for the destination
description
string
Description for the destination
url
string
Endpoint of the destination
cli_path
string
Path for the CLI destination
rate_limit_period
string
Period to rate limit attempts
Enum second
, minute
, hour
rate_limit
integer
Limit event attempts to receive per period
http_method
DestinationHTTPMethod
HTTP 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
DestinationAuthMethodConfig
Config for the destination's auth method
path_forwarding_disabled
boolean
One of
url
orcli_path
is required.
Create/Update a destination
This endpoint creates a destination, or updates an existing destination by name.
Body Parameters
name
string
Name for the destination
description
string
Description for the destination
url
string
Endpoint of the destination
cli_path
string
Path for the CLI destination
rate_limit_period
string
Period to rate limit attempts
Enum second
, minute
, hour
rate_limit
integer
Limit event attempts to receive per period
http_method
DestinationHTTPMethod
HTTP 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
DestinationAuthMethodConfig
Config for the destination's auth method
path_forwarding_disabled
boolean
Update a destination
This endpoint updates a destination.
URL Parameters
id
string
Destination ID
Body Parameters
name
string
Name for the destination
description
string
Description for the destination
url
string
Endpoint of the destination
cli_path
string
Path for the CLI destination
rate_limit_period
string
Period to rate limit attempts
Enum second
, minute
, hour
rate_limit
integer
Limit event attempts to receive per period
http_method
DestinationHTTPMethod
HTTP 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
DestinationAuthMethodConfig
Config for the destination's auth method
path_forwarding_disabled
boolean
Archive a destination
This endpoint archives a destination.
URL Parameters
id
string
Destination ID
The parameter
archived_at
is set to the current timestamp.
Unarchive a destination
This endpoint unarchives a destination.
URL Parameters
id
string
Destination ID
The parameter
archived_at
is set tonull
.
Delete a destination
This endpoint permanently deletes a destination.
URL Parameters
id
string
This 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
string
ID of the issue trigger
team_id
string
ID of the workspace
name
string
Optional unique name to use as reference when using the API
type
IssueType
Issue type
Enum delivery
, transformation
, backpressure
configs
IssueTriggerReference
Configuration object for the specific issue type selected
channels
IssueTriggerChannels
Notification channels object for the specific channel type
disabled_at
string
ISO timestamp for when the issue trigger was disabled
updated_at
string
ISO timestamp for when the issue trigger was last updated
created_at
string
ISO timestamp for when the issue trigger was created
deleted_at
string
ISO timestamp for when the issue trigger was deleted
Notification Channel Providers
slack
object
Slack channel for an issue trigger
opsgenie
object
Integration channel for an issue trigger
object
Email 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
IssueTriggerStrategy
The strategy uses to open the issue
Enum first_attempt
, final_attempt
connections
string
string[]
A pattern to match on the connection name or array of connection IDs. Use *
as wildcard.
Transformation issue type configs
log_level
TransformationExecutionLogLevel
The minimum log level to open the issue on
Enum debug
, info
, warn
, error
, fatal
transformations
string
string[]
A pattern to match on the transformation name or array of transformation IDs. Use *
as wildcard.
Backpressure issue type configs
delay
integer
The minimum delay (backpressure) to open the issue for min of 1 minute (60000) and max of 1 day (86400000)
destinations
string
string[]
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
string
Filter by issue trigger name
type
IssueType
IssueType[]
disabled_at
string
object
Date when the issue trigger was disabled
order_by
string
string[]
Sort key(s)
dir
string
string[]
Sort direction(s)
limit
integer
Result set size
next
string
The ID to provide in the query to get the next set of results
prev
string
The 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
string
Issue trigger ID
Create an issue trigger
This endpoint updates an issue trigger.
Body Parameters
type
IssueType
Issue type
Enum delivery
, transformation
, backpressure
configs
IssueTriggerDeliveryConfigs
IssueTriggerTransformationConfigs
IssueTriggerBackpressureConfigs
Configuration object for the specific issue type selected
channels
IssueTriggerChannels
Notification channels object for the specific channel type
name
string
Optional unique name to use as reference when using the API
Update an issue trigger
This endpoint updates an issue trigger.
URL Parameters
id
string
Issue trigger ID
Body Parameters
configs
IssueTriggerDeliveryConfigs
IssueTriggerTransformationConfigs
IssueTriggerBackpressureConfigs
Configuration object for the specific issue type selected
channels
IssueTriggerChannels
Notification channels object for the specific channel type
disabled_at
string
Date when the issue trigger was disabled
name
string
Optional 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
IssueType
Issue type
Enum delivery
, transformation
, backpressure
configs
IssueTriggerDeliveryConfigs
IssueTriggerTransformationConfigs
IssueTriggerBackpressureConfigs
Configuration object for the specific issue type selected
channels
IssueTriggerChannels
Notification channels object for the specific channel type
name
string
Required 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
string
Issue trigger ID
Disable an issue trigger
This endpoint disables an issue trigger.
URL Parameters
id
string
Issue trigger ID
Enable an issue trigger
This endpoint enables an issue trigger.
URL Parameters
id
string
Issue 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
string
ID of the transformation
team_id
string
ID of the workspace
name
string
A unique, human-friendly name for the transformation
code
string
JavaScript code to be executed
env
object
Key-value environment variables to be passed to the transformation
updated_at
string
Date the transformation was last updated
created_at
string
Date the transformation was created
Retrieve all transformations
This endpoint lists all transformations
Query Parameters
id
string
string[]
Filter by transformation IDs
name
string
object
Filter by transformation name
order_by
string
string[]
Sort key(s)
dir
string
string[]
Sort direction(s)
limit
integer
Result set size
next
string
The ID to provide in the query to get the next set of results
prev
string
The 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
string
Transformation ID
Create a transformation
This endpoint creates a transformation.
Body Parameters
name
string
A unique, human-friendly name for the transformation
code
string
JavaScript code to be executed as string
env
object
Key-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
string
A unique, human-friendly name for the transformation
code
string
JavaScript code to be executed as string
env
object
Key-value environment variables to be passed to the transformation
Update a transformation
This endpoint updates a transformation.
URL Parameters
id
string
Transformation ID
Body Parameters
name
string
A unique, human-friendly name for the transformation
code
string
JavaScript code to be executed
env
object
Key-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
object
Key-value environment variables to be passed to the transformation
webhook_id
string
ID of the connection to use for the execution context
code
string
JavaScript code to be executed
transformation_id
string
Transformation ID
request
object
Request input to use for the transformation execution
Retieve all transformation execution logs
This endpoint returns the historical executions of a transformation.
URL Parameters
id
string
Transformation ID
Query Parameters
log_level
string
string[]
Log level of the execution
webhook_id
string
string[]
ID of the connection the execution was run for
issue_id
string
string[]
ID of the associated issue
created_at
string
object
ISO date of the transformation's execution
order_by
string
string[]
Sort key(s)
dir
string
string[]
Sort direction(s)
limit
integer
Result set size
next
string
The ID to provide in the query to get the next set of results
prev
string
The 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
string
Transformation ID
execution_id
string
Execution 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
boolean
Enable or disable webhook notifications on the workspace
topics
string[]
List of topics to send notifications for
source_id
string
The Hookdeck Source to send the webhook to
Requests
A request represent a HTTP request received by Hookdeck.
Request object
id
string
ID of the request
team_id
string
ID of the workspace
verified
boolean
Whether or not the request was verified when received
original_event_data_id
string
ID of the request data
rejection_cause
string
Enum SOURCE_ARCHIVED
, NO_WEBHOOK
, VERIFICATION_FAILED
, UNSUPPORTED_HTTP_METHOD
, UNSUPPORTED_CONTENT_TYPE
ingest_priority
string
The priority attributed to the request when received
Enum NORMAL
, LOW
ingested_at
string
The time the request was originally received
source_id
string
ID of the associated source
events_count
integer
The count of events created from this request (CLI events not included)
cli_events_count
integer
The count of CLI events created from this request
updated_at
string
Date the event was last updated
created_at
string
Date the event was created
data
ShortEventData
Request 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
string
string[]
Filter by requests IDs
status
string
Filter by status
Enum accepted
, rejected
rejection_cause
string
string[]
Filter by rejection cause
source_id
string
string[]
Filter by source IDs
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
JSON
URL Encoded string of the JSON to match to the data headers
body
JSON
URL Encoded string of the JSON to match to the data body
parsed_query
JSON
URL Encoded string of the JSON to match to the parsed query (JSON representation of the query)
path
string
URL Encoded string of the value to match partially to the path
ignored_count
integer
object
integer[]
Filter by count of ignored events
events_count
integer
object
integer[]
Filter by count of events
ingested_at
string
object
Filter by event ingested date
order_by
string
Sort key
Enum ingested_at
, created_at
dir
string
Sort direction
Enum asc
, desc
limit
integer
Result set size
next
string
The ID to provide in the query to get the next set of results
prev
string
The 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
string
Request 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
string
Request 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
string
Request ID
Query Parameters
id
string
string[]
Filter by event IDs
status
EventStatus
EventStatus[]
Lifecyle status of the event
webhook_id
string
string[]
Filter by webhook connection IDs
destination_id
string
string[]
Filter by destination IDs
source_id
string
string[]
Filter by source IDs
attempts
integer
object
Filter by number of attempts
response_status
integer
object
integer[]
Filter by HTTP response status code
successful_at
string
object
Filter by successful_at
date using a date operator
created_at
string
object
Filter by created_at
date using a date operator
error_code
AttemptErrorCodes
AttemptErrorCodes[]
Filter by error code code
cli_id
string
object
string[]
Filter by CLI IDs. ?[any]=true
operator for any CLI.
last_attempt_at
string
object
Filter by last_attempt_at
date using a date operator
search_term
string
URL Encoded string of the value to match partially to the body, headers, parsed_query or path
headers
JSON
URL Encoded string of the JSON to match to the data headers
body
JSON
URL Encoded string of the JSON to match to the data body
parsed_query
JSON
URL Encoded string of the JSON to match to the parsed query (JSON representation of the query)
path
string
URL Encoded string of the value to match partially to the path
order_by
string
Sort key
Enum last_attempt_at
, created_at
dir
string
Sort direction
Enum asc
, desc
limit
integer
Result set size
next
string
The ID to provide in the query to get the next set of results
prev
string
The 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
string
Request ID
Query Parameters
id
string
string[]
Filter by ignored events IDs
order_by
string
string[]
Sort key(s)
dir
string
string[]
Sort direction(s)
limit
integer
Result set size
next
string
The ID to provide in the query to get the next set of results
prev
string
The 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
string
ID of the event
team_id
string
ID of the workspace
webhook_id
string
ID of the associated connection
source_id
string
ID of the associated source
destination_id
string
ID of the associated destination
event_data_id
string
ID of the event data
request_id
string
ID of the request that created the event
attempts
integer
Number of delivery attempts made
last_attempt_at
string
Date of the most recently attempted retry
next_attempt_at
string
Date of the next scheduled retry
response_status
integer
Event status
error_code
AttemptErrorCodes
Error code of the delivery attempt
Enum CANCELLED
, TIMEOUT
, NOT_FOUND
, CONNECTION_REFUSED
, CONNECTION_RESET
status
EventStatus
Enum SCHEDULED
, QUEUED
, HOLD
, SUCCESSFUL
, FAILED
successful_at
string
Date of the latest successful attempt
cli_id
string
ID of the CLI the event is sent to
updated_at
string
Date the event was last updated
created_at
string
Date the event was created
data
ShortEventData
Request 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
string
string[]
Filter by event IDs
status
EventStatus
EventStatus[]
Lifecyle status of the event
webhook_id
string
string[]
Filter by webhook connection IDs
destination_id
string
string[]
Filter by destination IDs
source_id
string
string[]
Filter by source IDs
attempts
integer
object
Filter by number of attempts
response_status
integer
object
integer[]
Filter by HTTP response status code
successful_at
string
object
Filter by successful_at
date using a date operator
created_at
string
object
Filter by created_at
date using a date operator
error_code
AttemptErrorCodes
AttemptErrorCodes[]
Filter by error code code
cli_id
string
object
string[]
Filter by CLI IDs. ?[any]=true
operator for any CLI.
last_attempt_at
string
object
Filter by last_attempt_at
date using a date operator
search_term
string
URL Encoded string of the value to match partially to the body, headers, parsed_query or path
headers
JSON
URL Encoded string of the JSON to match to the data headers
body
JSON
URL Encoded string of the JSON to match to the data body
parsed_query
JSON
URL Encoded string of the JSON to match to the parsed query (JSON representation of the query)
path
string
URL Encoded string of the value to match partially to the path
order_by
string
Sort key
Enum last_attempt_at
, created_at
dir
string
Sort direction
Enum asc
, desc
limit
integer
Result set size
next
string
The ID to provide in the query to get the next set of results
prev
string
The 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
string
Event ID
Retry an event
This endpoint manually queues an event for retry.
URL Parameters
id
string
Event ID
Mute an event
This endpoint cancels the next automatic retry.
URL Parameters
id
string
Event ID
The parameter
next_attempt_at
is set tonull
. This action is not reversible.
Attempts
An attempt is any request that Hookdeck makes on behalf of an event.
Attempt object
id
string
Attempt ID
team_id
string
Team ID
event_id
string
Event ID
response_status
integer
Attempt's HTTP response code
attempt_number
integer
Sequential number of attempts (up to and including this one) made for the associated event
trigger
AttemptTrigger
How the attempt was triggered
Enum INITIAL
, MANUAL
, BULK_RETRY
, UNPAUSE
, AUTOMATIC
error_code
AttemptErrorCodes
Error code of the delivery attempt
Enum CANCELLED
, TIMEOUT
, NOT_FOUND
, CONNECTION_REFUSED
, CONNECTION_RESET
body
object
string
requested_url
string
URL of the destination where delivery was attempted
http_method
string
HTTP method used to deliver the attempt
Enum GET
, POST
, PUT
, PATCH
, DELETE
bulk_retry_id
string
ID of associated bulk retry
status
AttemptStatus
Attempt status
Enum QUEUED
, FAILED
, SUCCESSFUL
, HOLD
successful_at
string
Date the attempt was successful
delivered_at
string
Date the attempt was delivered
responded_at
string
Date the destination responded to this attempt
delivery_latency
integer
Time elapsed between attempt initiation and final delivery (in ms)
response_latency
integer
Time elapsed between attempt initiation and a response from the destination (in ms)
updated_at
string
Date the attempt was last updated
created_at
string
Date the attempt was created
Retrieve all attempts
This endpoint lists all attempts, or a subset of attempts.
Query Parameters
event_id
string
string[]
Event the attempt is associated with
order_by
string
string[]
Sort key(s)
dir
string
string[]
Sort direction(s)
limit
integer
Result set size
next
string
The ID to provide in the query to get the next set of results
prev
string
The 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
string
Attempt ID
Bookmarks
A bookmark lets you conveniently store and replay a specific request.
Bookmark object
id
string
ID of the bookmark
team_id
string
ID of the workspace
webhook_id
string
ID of the associated connection
event_data_id
string
ID of the bookmarked event data
label
string
Descriptive name of the bookmark
alias
string
Alternate alias for the bookmark
data
ShortEventData
Request data
last_used_at
string
Date the bookmark was last manually triggered
updated_at
string
Date the bookmark was last updated
created_at
string
Date the bookmark was created
Retrieve all bookmarks
This endpoint lists all bookmarks, or a subset of bookmarks.
Query Parameters
id
string
string[]
Filter by bookmark IDs
name
string
string[]
Filter by bookmark name
webhook_id
string
string[]
Filter by associated connection ID
event_data_id
string
string[]
Filter by associated event data ID
label
string
string[]
Filter by label
last_used_at
string
object
Filter by last used date
order_by
string
string[]
Sort key(s)
dir
string
string[]
Sort direction(s)
limit
integer
Result set size
next
string
The ID to provide in the query to get the next set of results
prev
string
The 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
string
Bookmark ID
Create a bookmark
This endpoint creates a bookmark.
Body Parameters
event_data_id
string
ID of the event data to bookmark
webhook_id
string
ID of the associated connection
label
string
Descriptive name of the bookmark
name
string
A unique, human-friendly name for the bookmark
Update a bookmark
This endpoint updates a bookmark.
URL Parameters
id
string
Bookmark ID
Body Parameters
event_data_id
string
ID of the event data to bookmark
webhook_id
string
ID of the associated connection
label
string
Descriptive name of the bookmark
name
string
A 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
string
Bookmark ID
Body Parameters
target
string
Bookmark target
Enum http
, cli
The parameter
last_used_at
is 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
string
Bookmark ID
Issues
Issues let you track problems in your workspace and communicate resolution steps with your team.
Issue object
id
string
Issue ID
team_id
string
ID of the workspace
status
IssueStatus
Issue status
Enum OPENED
, IGNORED
, ACKNOWLEDGED
, RESOLVED
opened_at
string
ISO timestamp for when the issue was last opened
first_seen_at
string
ISO timestamp for when the issue was first opened
last_seen_at
string
ISO timestamp for when the issue last occured
last_updated_by
string
ID of the team member who last updated the issue status
dismissed_at
string
ISO timestamp for when the issue was dismissed
updated_at
string
ISO timestamp for when the issue was last updated
created_at
string
ISO timestamp for when the issue was created
type
string
Enum delivery
aggregation_keys
DeliveryIssueAggregationKeys
Keys used as the aggregation keys a 'delivery' type issue
reference
DeliveryIssueReference
Reference 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
string
string[]
Filter by Issue IDs
issue_trigger_id
string
string[]
Filter by Issue trigger IDs
type
string
string[]
Filter by Issue types
status
string
string[]
Filter by Issue statuses
merged_with
string
string[]
Filter by Merged Issue IDs
aggregation_keys
JSON
Filter by aggregation keys
created_at
string
object
Filter by created dates
first_seen_at
string
object
Filter by first seen dates
last_seen_at
string
object
Filter by last seen dates
dismissed_at
string
object
Filter by dismissed dates
order_by
string
string[]
Sort key(s)
dir
string
string[]
Sort direction(s)
limit
integer
Result set size
next
string
The ID to provide in the query to get the next set of results
prev
string
The 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
string
string[]
Filter by Issue IDs
issue_trigger_id
string
string[]
Filter by Issue trigger IDs
type
string
string[]
Filter by Issue types
status
string
string[]
Filter by Issue statuses
merged_with
string
string[]
Filter by Merged Issue IDs
aggregation_keys
JSON
Filter by aggregation keys
created_at
string
object
Filter by created dates
first_seen_at
string
object
Filter by first seen dates
last_seen_at
string
object
Filter by last seen dates
dismissed_at
string
object
Filter by dismissed dates
order_by
string
string[]
Sort key(s)
dir
string
string[]
Sort direction(s)
limit
integer
Result set size
next
string
The ID to provide in the query to get the next set of results
prev
string
The 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
string
Issue ID
Update an issue
This endpoint updates an issue's status.
URL Parameters
id
string
Issue ID
Body Parameters
status
string
New status
Enum OPENED
, IGNORED
, ACKNOWLEDGED
, RESOLVED
Dismiss an issue
This endpoint marks an issue as dismissed.
URL Parameters
id
string
Issue ID
The parameter
dimissed_at
is set to the current timestamp.
Bulk retry events
Event bulk retry object
id
string
ID of the bulk retry
team_id
string
ID of the workspace
query
JSON
Query object to filter records
created_at
string
Date the bulk retry was created
updated_at
string
Last time the bulk retry was updated
cancelled_at
string
Date the bulk retry was cancelled
completed_at
string
Date the bulk retry was completed
estimated_batch
integer
Number of batches required to complete the bulk retry
estimated_count
integer
Number of estimated events to be retried
processed_batch
integer
Number of batches currently processed
completed_count
integer
Number of events that were successfully delivered
in_progress
boolean
Indicates if the bulk retry is currently in progress
progress
number
Progression of the batch operations, values 0 - 1
failed_count
integer
Number 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
string
object
Filter by date the bulk retry was cancelled
completed_at
string
object
Filter by date the bulk retry completed
created_at
string
object
Filter by date the bulk retry was created
id
string
string[]
Filter by bulk retry IDs
query
JSON
Filter for events to be included in the bulk retry, use query parameters of Event
query_partial_match
boolean
Allow partial filter match on query property
in_progress
boolean
Indicates if the bulk retry is currently in progress
order_by
string
string[]
Sort key(s)
dir
string
string[]
Sort direction(s)
limit
integer
Result set size
next
string
The ID to provide in the query to get the next set of results
prev
string
The 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
string
Bulk 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
JSON
Filter 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
JSON
Filter 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
string
Bulk retry ID
Bulk retry ignored events
Bulk retry object
id
string
ID of the bulk retry
team_id
string
ID of the workspace
query
JSON
Query object to filter records
created_at
string
Date the bulk retry was created
updated_at
string
Last time the bulk retry was updated
cancelled_at
string
Date the bulk retry was cancelled
completed_at
string
Date the bulk retry was completed
estimated_batch
integer
Number of batches required to complete the bulk retry
estimated_count
integer
Number of estimated events to be retried
processed_batch
integer
Number of batches currently processed
completed_count
integer
Number of events that were successfully delivered
in_progress
boolean
Indicates if the bulk retry is currently in progress
progress
number
Progression of the batch operations, values 0 - 1
failed_count
integer
Number 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
string
object
Filter by date the bulk retry was cancelled
completed_at
string
object
Filter by date the bulk retry completed
created_at
string
object
Filter by date the bulk retry was created
id
string
string[]
Filter by bulk retry IDs
query
JSON
Filter by the bulk retry ignored event query object
query_partial_match
boolean
Allow partial filter match on query property
in_progress
boolean
Indicates if the bulk retry is currently in progress
order_by
string
string[]
Sort key(s)
dir
string
string[]
Sort direction(s)
limit
integer
Result set size
next
string
The ID to provide in the query to get the next set of results
prev
string
The 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
string
Bulk 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
JSON
Filter 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
JSON
Filter 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
string
Bulk retry ID
Bulk retry requests
Bulk retry object
id
string
ID of the bulk retry
team_id
string
ID of the workspace
query
JSON
Query object to filter records
created_at
string
Date the bulk retry was created
updated_at
string
Last time the bulk retry was updated
cancelled_at
string
Date the bulk retry was cancelled
completed_at
string
Date the bulk retry was completed
estimated_batch
integer
Number of batches required to complete the bulk retry
estimated_count
integer
Number of estimated events to be retried
processed_batch
integer
Number of batches currently processed
completed_count
integer
Number of events that were successfully delivered
in_progress
boolean
Indicates if the bulk retry is currently in progress
progress
number
Progression of the batch operations, values 0 - 1
failed_count
integer
Number 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
string
object
Filter by date the bulk retry was cancelled
completed_at
string
object
Filter by date the bulk retry completed
created_at
string
object
Filter by date the bulk retry was created
id
string
string[]
Filter by bulk retry IDs
in_progress
boolean
Indicates if the bulk retry is currently in progress
query
JSON
Filter properties for the events to be included in the bulk retry, use query parameters of Requests
query_partial_match
boolean
Allow partial filter match on query property
order_by
string
string[]
Sort key(s)
dir
string
string[]
Sort direction(s)
limit
integer
Result set size
next
string
The ID to provide in the query to get the next set of results
prev
string
The 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
string
Bulk 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
JSON
Filter 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
JSON
Filter 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
string
Bulk 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
string
A retry rule must be of type retry
Enum retry
strategy
RetryStrategy
Algorithm to use when calculating delay between retries
Enum linear
, exponential
interval
integer
Time in MS between each retry
count
integer
Maximum 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
string
A delay rule must be of type delay
Enum delay
delay
integer
Delay 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
string
A filter rule must be of type filter
Enum filter
headers
JSON
JSON using our filter syntax to filter on request headers
body
JSON
JSON using our filter syntax to filter on request headers
query
JSON
JSON using our filter syntax to filter on request headers
path
JSON
JSON 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
string
A transformation rule must be of type transformation
Enum transform
transformation_id
string
ID of the attached transformation object. Optional input, always set once the rule is defined
transformation
object
You can optionally define a new transformation while creating a transform rule