Hookdeck Issues API
Track issues that occur on events, requests, and backpressure, and manage the triggers (rules) that open and route issues to Slack, Email, Microsoft Teams, Discord, BetterUptime, and other channels.
Track issues that occur on events, requests, and backpressure, and manage the triggers (rules) that open and route issues to Slack, Email, Microsoft Teams, Discord, BetterUptime, and other channels.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/hookdeck-issues-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Hookdeck Bookmarks Attempts Issues API
version: 1.0.0
description: Save bookmarked events for quick replay and convenient one-click testing during development.
contact:
name: Hookdeck Support
url: https://hookdeck.com/contact-us
email: info@hookdeck.com
servers:
- url: https://api.hookdeck.com/2025-07-01
description: Production API
security:
- bearerAuth: []
- basicAuth: []
tags:
- name: Issues
description: Issues lets you track problems in your project and communicate resolution steps with your team.
paths:
/issues:
get:
operationId: getIssues
summary: Retrieve issues
description: This endpoint lists issues, or a subset of issues.
tags:
- Issues
responses:
'200':
description: List of issues
content:
application/json:
schema:
$ref: '#/components/schemas/IssueWithDataPaginatedResult'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
parameters:
- in: query
name: id
schema:
anyOf:
- type: string
maxLength: 255
example: iss_YXKv5OdJXCiVwkPhGy
- type: array
items:
type: string
maxLength: 255
example: iss_YXKv5OdJXCiVwkPhGy
description: Filter by Issue IDs
- in: query
name: issue_trigger_id
schema:
anyOf:
- type: string
maxLength: 255
description: Issue trigger ID
example: it_BXKv5OdJXCiVwkPhGy
- type: array
items:
type: string
maxLength: 255
description: Issue trigger ID
example: it_BXKv5OdJXCiVwkPhGy
description: Filter by Issue trigger IDs
- in: query
name: type
schema:
anyOf:
- type: string
enum:
- delivery
- transformation
- backpressure
- request
description: Issue type
example: delivery
- type: array
items:
type: string
enum:
- delivery
- transformation
- backpressure
- request
description: Issue type
example: delivery
description: Filter by Issue types
- in: query
name: status
schema:
anyOf:
- type: string
enum:
- OPENED
- IGNORED
- ACKNOWLEDGED
- RESOLVED
description: Issue status
example: OPENED
- type: array
items:
type: string
enum:
- OPENED
- IGNORED
- ACKNOWLEDGED
- RESOLVED
description: Issue status
example: OPENED
description: Filter by Issue statuses
- in: query
name: merged_with
schema:
anyOf:
- type: string
description: Issue ID
example: iss_AXKv3OdJXCiKlkPhDz
- type: array
items:
type: string
description: Issue ID
example: iss_AXKv3OdJXCiKlkPhDz
description: Filter by Merged Issue IDs
- in: query
name: aggregation_keys
schema:
type: object
properties:
webhook_id:
anyOf:
- type: string
- type: array
items:
type: string
response_status:
anyOf:
- type: number
format: float
- type: array
items:
type: number
format: float
error_code:
anyOf:
- $ref: '#/components/schemas/AttemptErrorCodes'
- type: array
items:
$ref: '#/components/schemas/AttemptErrorCodes'
transformation_id:
anyOf:
- type: string
- type: array
items:
type: string
log_level:
anyOf:
- type: string
enum:
- debug
- info
- warn
- error
- fatal
- type: array
items:
type: string
enum:
- debug
- info
- warn
- error
- fatal
destination_id:
anyOf:
- type: string
- type: array
items:
type: string
delay:
anyOf:
- type: number
format: float
- type: array
items:
type: number
format: float
source_id:
anyOf:
- type: string
- type: array
items:
type: string
rejection_cause:
anyOf:
- $ref: '#/components/schemas/RequestRejectionCause'
- type: array
items:
$ref: '#/components/schemas/RequestRejectionCause'
additionalProperties: false
description: Filter by aggregation keys
x-docs-force-simple-type: true
x-docs-type: JSON
- in: query
name: created_at
schema:
anyOf:
- type:
- string
- 'null'
format: date-time
- $ref: '#/components/schemas/Operators'
description: Filter by created dates
- in: query
name: first_seen_at
schema:
anyOf:
- type:
- string
- 'null'
format: date-time
- $ref: '#/components/schemas/Operators'
description: Filter by first seen dates
- in: query
name: last_seen_at
schema:
anyOf:
- type:
- string
- 'null'
format: date-time
- $ref: '#/components/schemas/Operators'
description: Filter by last seen dates
- in: query
name: dismissed_at
schema:
anyOf:
- type:
- string
- 'null'
format: date-time
- $ref: '#/components/schemas/Operators'
description: Filter by dismissed dates
- in: query
name: order_by
schema:
anyOf:
- type: string
maxLength: 255
enum:
- created_at
- first_seen_at
- last_seen_at
- opened_at
- status
- type: array
items:
type: string
maxLength: 255
enum:
- created_at
- first_seen_at
- last_seen_at
- opened_at
- status
minItems: 2
maxItems: 2
description: Sort key(s)
- in: query
name: dir
schema:
anyOf:
- type: string
enum:
- asc
- desc
- type: array
items:
type: string
enum:
- asc
- desc
minItems: 2
maxItems: 2
description: Sort direction(s)
- in: query
name: limit
schema:
type: integer
minimum: 0
maximum: 255
description: Result set size
- in: query
name: next
schema:
type: string
maxLength: 255
description: The ID to provide in the query to get the next set of results
- in: query
name: prev
schema:
type: string
maxLength: 255
description: The ID to provide in the query to get the previous set of results
/issues/count:
get:
operationId: getIssueCount
summary: Get the number of issues
description: ''
tags:
- Issues
responses:
'200':
description: Issue count
content:
application/json:
schema:
$ref: '#/components/schemas/IssueCount'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
parameters:
- in: query
name: id
schema:
anyOf:
- type: string
maxLength: 255
example: iss_YXKv5OdJXCiVwkPhGy
- type: array
items:
type: string
maxLength: 255
example: iss_YXKv5OdJXCiVwkPhGy
description: Filter by Issue IDs
- in: query
name: issue_trigger_id
schema:
anyOf:
- type: string
maxLength: 255
description: Issue trigger ID
example: it_BXKv5OdJXCiVwkPhGy
- type: array
items:
type: string
maxLength: 255
description: Issue trigger ID
example: it_BXKv5OdJXCiVwkPhGy
description: Filter by Issue trigger IDs
- in: query
name: type
schema:
anyOf:
- type: string
enum:
- delivery
- transformation
- backpressure
- request
description: Issue type
example: delivery
- type: array
items:
type: string
enum:
- delivery
- transformation
- backpressure
- request
description: Issue type
example: delivery
description: Filter by Issue types
- in: query
name: status
schema:
anyOf:
- type: string
enum:
- OPENED
- IGNORED
- ACKNOWLEDGED
- RESOLVED
description: Issue status
example: OPENED
- type: array
items:
type: string
enum:
- OPENED
- IGNORED
- ACKNOWLEDGED
- RESOLVED
description: Issue status
example: OPENED
description: Filter by Issue statuses
- in: query
name: merged_with
schema:
anyOf:
- type: string
description: Issue ID
example: iss_AXKv3OdJXCiKlkPhDz
- type: array
items:
type: string
description: Issue ID
example: iss_AXKv3OdJXCiKlkPhDz
description: Filter by Merged Issue IDs
- in: query
name: aggregation_keys
schema:
type: object
properties:
webhook_id:
anyOf:
- type: string
- type: array
items:
type: string
response_status:
anyOf:
- type: number
format: float
- type: array
items:
type: number
format: float
error_code:
anyOf:
- $ref: '#/components/schemas/AttemptErrorCodes'
- type: array
items:
$ref: '#/components/schemas/AttemptErrorCodes'
transformation_id:
anyOf:
- type: string
- type: array
items:
type: string
log_level:
anyOf:
- type: string
enum:
- debug
- info
- warn
- error
- fatal
- type: array
items:
type: string
enum:
- debug
- info
- warn
- error
- fatal
destination_id:
anyOf:
- type: string
- type: array
items:
type: string
delay:
anyOf:
- type: number
format: float
- type: array
items:
type: number
format: float
source_id:
anyOf:
- type: string
- type: array
items:
type: string
rejection_cause:
anyOf:
- $ref: '#/components/schemas/RequestRejectionCause'
- type: array
items:
$ref: '#/components/schemas/RequestRejectionCause'
additionalProperties: false
description: Filter by aggregation keys
x-docs-force-simple-type: true
x-docs-type: JSON
- in: query
name: created_at
schema:
anyOf:
- type:
- string
- 'null'
format: date-time
- $ref: '#/components/schemas/Operators'
description: Filter by created dates
- in: query
name: first_seen_at
schema:
anyOf:
- type:
- string
- 'null'
format: date-time
- $ref: '#/components/schemas/Operators'
description: Filter by first seen dates
- in: query
name: last_seen_at
schema:
anyOf:
- type:
- string
- 'null'
format: date-time
- $ref: '#/components/schemas/Operators'
description: Filter by last seen dates
- in: query
name: dismissed_at
schema:
anyOf:
- type:
- string
- 'null'
format: date-time
- $ref: '#/components/schemas/Operators'
description: Filter by dismissed dates
- in: query
name: order_by
schema:
anyOf:
- type: string
maxLength: 255
enum:
- created_at
- first_seen_at
- last_seen_at
- opened_at
- status
- type: array
items:
type: string
maxLength: 255
enum:
- created_at
- first_seen_at
- last_seen_at
- opened_at
- status
minItems: 2
maxItems: 2
description: Sort key(s)
- in: query
name: dir
schema:
anyOf:
- type: string
enum:
- asc
- desc
- type: array
items:
type: string
enum:
- asc
- desc
minItems: 2
maxItems: 2
description: Sort direction(s)
- in: query
name: limit
schema:
type: integer
minimum: 0
maximum: 255
description: Result set size
- in: query
name: next
schema:
type: string
maxLength: 255
description: The ID to provide in the query to get the next set of results
- in: query
name: prev
schema:
type: string
maxLength: 255
description: The ID to provide in the query to get the previous set of results
/issues/{id}:
get:
operationId: getIssue
summary: Retrieve an issue
description: This endpoint retrieves a specific issue.
tags:
- Issues
responses:
'200':
description: A single issue
content:
application/json:
schema:
$ref: '#/components/schemas/IssueWithData'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
parameters:
- in: path
name: id
schema:
type: string
description: Issue ID
required: true
put:
operationId: updateIssue
summary: Update an issue
description: This endpoint updates an issue's status.
tags:
- Issues
responses:
'200':
description: Updated issue
content:
application/json:
schema:
$ref: '#/components/schemas/Issue'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
parameters:
- in: path
name: id
schema:
type: string
description: Issue ID
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- OPENED
- IGNORED
- ACKNOWLEDGED
- RESOLVED
description: New status
required:
- status
additionalProperties: false
delete:
operationId: dismissIssue
summary: Dismiss an issue
description: This endpoint dismisses an issue.
tags:
- Issues
responses:
'200':
description: Dismissed issue
content:
application/json:
schema:
$ref: '#/components/schemas/Issue'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
parameters:
- in: path
name: id
schema:
type: string
description: Issue ID
required: true
components:
schemas:
DestinationConfigMockAPIAuthEmpty:
x-docs-hide: true
x-docs-nullable: true
DestinationConfigHTTPAuthHookdeckSignatureDefault:
type: object
properties: {}
additionalProperties: false
x-docs-type: HOOKDECK_SIGNATURE
DestinationConfigCLIAuthBearerToken:
type: object
properties:
token:
type: string
additionalProperties: false
x-docs-type: BEARER_TOKEN
TransformationIssueAggregationKeys:
type: object
properties:
transformation_id:
type: array
items:
type: string
log_level:
type: array
items:
$ref: '#/components/schemas/TransformationExecutionLogLevel'
required:
- transformation_id
- log_level
additionalProperties: false
description: Keys used as the aggregation keys a 'transformation' type issue
BackpressureIssueData:
type:
- object
- 'null'
properties:
destination:
$ref: '#/components/schemas/Destination'
additionalProperties: false
description: Backpressure issue data
DestinationConfigCLIAuthOAuth2ClientCredentials:
type: object
properties:
auth_server:
type: string
client_id:
type: string
client_secret:
type: string
scope:
type: string
authentication_type:
type: string
enum:
- basic
- bearer
- x-www-form-urlencoded
additionalProperties: false
x-docs-type: OAUTH2_CLIENT_CREDENTIALS
EventData:
type:
- object
- 'null'
properties:
url:
type: string
method:
type: string
path:
type:
- string
- 'null'
description: Raw path string
query:
type:
- string
- 'null'
description: Raw query param string
parsed_query:
anyOf:
- type:
- string
- 'null'
- type: object
properties: {}
description: JSON representation of query params
headers:
anyOf:
- type: string
- type: object
properties: {}
additionalProperties:
type:
- string
- 'null'
description: JSON representation of the headers
appended_headers:
type: array
items:
type: string
description: List of headers that were added by Hookdeck
body:
anyOf:
- type: string
- type: object
properties: {}
- type: array
items: {}
description: JSON or string representation of the body
is_large_payload:
type: boolean
description: Whether the payload is considered large payload and not searchable
required:
- url
- method
- path
- query
- parsed_query
- headers
- body
additionalProperties: false
description: Event data if included
DestinationConfigCLIAuthBasicAuth:
type: object
properties:
username:
type: string
password:
type: string
additionalProperties: false
x-docs-type: BASIC_AUTH
DestinationConfigHTTPAuthAWSSignature:
type: object
properties:
access_key_id:
type: string
secret_access_key:
type: string
region:
type: string
service:
type: string
additionalProperties: false
x-docs-type: AWS_SIGNATURE
ConsoleLine:
type: object
properties:
type:
type: string
enum:
- error
- log
- warn
- info
- debug
message:
type: string
required:
- type
- message
additionalProperties: false
DestinationConfigHTTPAuthGCPServiceAccount:
type: object
properties:
service_account_key:
type: string
scope:
type:
- string
- 'null'
additionalProperties: false
x-docs-type: GCP_SERVICE_ACCOUNT
DestinationConfigCLIAuthAWSSignature:
type: object
properties:
access_key_id:
type: string
secret_access_key:
type: string
region:
type: string
service:
type: string
additionalProperties: false
x-docs-type: AWS_SIGNATURE
Request:
type: object
properties:
id:
type: string
description: ID of the request
team_id:
type: string
description: ID of the project
verified:
type:
- boolean
- 'null'
description: Whether or not the request was verified when received
original_event_data_id:
type:
- string
- 'null'
description: ID of the request data
rejection_cause:
$ref: '#/components/schemas/RequestRejectionCause'
ingested_at:
type:
- string
- 'null'
format: date-time
description: The time the request was originally received
source_id:
type: string
description: ID of the associated source
events_count:
type:
- integer
- 'null'
description: The count of events created from this request (CLI events not included)
cli_events_count:
type:
- integer
- 'null'
description: The count of CLI events created from this request
ignored_count:
type:
- integer
- 'null'
x-docs-hide: true
updated_at:
type: string
format: date-time
description: Date the event was last updated
created_at:
type: string
format: date-time
description: "\tDate the event was created"
data:
$ref: '#/components/schemas/ShortEventData'
required:
- id
- team_id
- verified
- original_event_data_id
- rejection_cause
- ingested_at
- source_id
- events_count
- cli_events_count
- ignored_count
- updated_at
- created_at
additionalProperties: false
IssueWithDataPaginatedResult:
type: object
properties:
pagination:
$ref: '#/components/schemas/SeekPagination'
count:
type: integer
models:
type: array
items:
$ref: '#/components/schemas/IssueWithData'
additionalProperties: false
DeliveryIssueData:
type:
- object
- 'null'
properties:
trigger_event:
$ref: '#/components/schemas/Event'
trigger_attempt:
$ref: '#/components/schemas/EventAttempt'
additionalProperties: false
description: Delivery issue data
BackpressureIssueReference:
type: object
properties:
destination_id:
type: string
required:
- destination_id
additionalProperties: false
description: Reference to the destination backpressure an issue is being created for.
DestinationConfigCLIAuthHookdeckSignatureDefault:
type: object
properties: {}
additionalProperties: false
x-docs-type: HOOKDECK_SIGNATURE
DestinationTypeConfigMOCK_API:
type: object
properties:
rate_limit:
type:
- number
- 'null'
format: float
rate_limit_period:
type:
- string
- 'null'
enum:
- second
- minute
- hour
- concurrent
path_forwarding_disabled:
type: boolean
http_method:
type:
- string
- 'null'
enum:
- GET
- POST
- PUT
- PATCH
- DELETE
auth_type:
type:
- string
- 'null'
enum:
- HOOKDECK_SIGNATURE
- CUSTOM_SIGNATURE
- BASIC_AUTH
- API_KEY
- BEARER_TOKEN
- OAUTH2_CLIENT_CREDENTIALS
- OAUTH2_AUTHORIZATION_CODE
- AWS_SIGNATURE
- GCP_SERVICE_ACCOUNT
auth:
$ref: '#/components/schemas/DestinationConfigMockAPIAuth'
additionalProperties: false
description: The type config for MOCK_API. Requires type to be `MOCK_API`.
x-docs-type: MOCK_API
ShortEventData:
type:
- object
- 'null'
properties:
path:
type: string
description: Request path
query:
type:
- string
- 'null'
description: Raw query param string
parsed_query:
anyOf:
- type:
- string
- 'null'
- type: object
properties: {}
description: JSON representation of query params
headers:
anyOf:
- type: string
- type: object
properties: {}
additionalProperties:
type:
- string
- 'null'
description: JSON representation of the headers
body:
anyOf:
- type: string
- type: object
properties: {}
- type: array
items: {}
description: JSON or string representation of the body
is_large_payload:
type:
- boolean
- 'null'
description: Whether the payload is considered large payload and not searchable
required:
- path
- query
- parsed_query
- headers
- body
additionalProperties: false
description: Request data
RequestIssueWithData:
type: object
properties:
id:
type: string
description: Issue ID
example: iss_YXKv5OdJXCiVwkPhGy
team_id:
type: string
description: ID of the project
status:
$ref: '#/components/schemas/IssueStatus'
opened_at:
type: string
format: date-time
description: ISO timestamp for when the issue was last opened
first_seen_at:
type: string
format: date-time
description: ISO timestamp for when the issue was first opened
last_seen_at:
type: string
format: date-time
description: ISO timestamp for when the issue last occured
last_updated_by:
type:
- string
- 'null'
description: Deprecated, will always be set to null
dismissed_at:
type:
- string
- 'null'
format: date-time
description: ISO timestamp for when the issue was dismissed
auto_resolved_at:
type:
- string
- 'null'
format: date-time
x-docs-hide: true
merged_with:
type:
- string
- 'null'
x-docs-hide: true
updated_at:
type: string
description: ISO timestamp for when the issue was last updated
created_at:
type: string
description: ISO timestamp for when the issue was created
type:
type: string
enum:
- request
aggregation_keys:
$ref: '#/components/schemas/RequestIssueAggregationKeys'
reference:
$ref: '#/components/schemas/RequestIssueReference'
data:
$ref: '#/components/schemas/RequestIssueData'
required:
- id
- team_id
- status
- opened_at
- first_seen_at
- last_seen_at
- updated_at
- created_at
- type
- aggregation_keys
- reference
additionalProperties: false
description: Request issue
EventStatus:
type: string
enum:
- SCHEDULED
- QUEUED
- HOLD
- SUCCESSFUL
- FAILED
- CANCELLED
Destination:
type: object
properties:
id:
type: string
description: ID of the destination
name:
type: string
description: A unique, human-friendly name for the destination
description:
type:
- string
- 'null'
description: Description of the destination
team_id:
type: string
description: ID of the project
type:
type: string
enum:
- HTTP
- CLI
- MOCK_API
description: Type of the destination
config:
$ref: '#/components/schemas/DestinationConfig'
disabled_at:
type:
- string
- 'null'
format: date-time
description: Date the destination was disabled
updated_at:
type: string
format: date-time
description: Date the destination was last updated
created_at:
type: string
format: date-time
description: Date the destination was created
required:
- id
- name
- team_id
- type
- disabled_at
- updated_at
- created_at
additionalProperties: false
description: Associated [Destination](#destination-object) object
RequestRejectionCause:
type: string
# --- truncated at 32 KB (71 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/hookdeck/refs/heads/main/openapi/hookdeck-issues-api-openapi.yml