Hookdeck Bookmarks API
Save bookmarked events for quick replay and one-click testing during development. Bookmarks let your team capture canonical event payloads and trigger them on demand into any destination.
Save bookmarked events for quick replay and one-click testing during development. Bookmarks let your team capture canonical event payloads and trigger them on demand into any destination.
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-bookmarks-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 Attempts Bookmarks 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: Bookmarks
description: A bookmark lets you conveniently store and replay a specific request.
paths:
/bookmarks:
get:
operationId: getBookmarks
summary: Retrieve bookmarks
description: This endpoint lists bookmarks, or a subset of bookmarks.
tags:
- Bookmarks
responses:
'200':
description: List of bookmarks
content:
application/json:
schema:
$ref: '#/components/schemas/BookmarkPaginatedResult'
'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
description: Bookmark ID
- type: array
items:
type: string
maxLength: 255
description: Bookmark ID
description: Filter by bookmark IDs
- in: query
name: name
schema:
anyOf:
- type: string
pattern: ^[A-z0-9-_]+$
maxLength: 155
description: Bookmark name
- type: array
items:
type: string
pattern: ^[A-z0-9-_]+$
maxLength: 155
description: Bookmark name
description: Filter by bookmark name
- in: query
name: webhook_id
schema:
anyOf:
- type: string
maxLength: 255
description: Connection (webhook) ID
- type: array
items:
type: string
maxLength: 255
description: Connection (webhook) ID
description: Filter by associated connection (webhook) ID
- in: query
name: event_data_id
schema:
anyOf:
- type: string
maxLength: 255
description: Event Data ID
- type: array
items:
type: string
maxLength: 255
description: Event Data ID
description: Filter by associated event data ID
- in: query
name: label
schema:
anyOf:
- type: string
maxLength: 255
description: Bookmark label
- type: array
items:
type: string
maxLength: 255
description: Bookmark label
description: Filter by label
- in: query
name: last_used_at
schema:
anyOf:
- type:
- string
- 'null'
format: date-time
description: Last used date
- $ref: '#/components/schemas/Operators'
description: Filter by last used date
- in: query
name: order_by
schema:
anyOf:
- type: string
maxLength: 255
enum:
- created_at
- type: array
items:
type: string
maxLength: 255
enum:
- created_at
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
post:
operationId: createBookmark
summary: Create a bookmark
description: This endpoint creates a bookmark from a specific event.
tags:
- Bookmarks
responses:
'200':
description: A single bookmark
content:
application/json:
schema:
$ref: '#/components/schemas/Bookmark'
'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: []
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
event_data_id:
type: string
maxLength: 255
description: ID of the event data to bookmark
webhook_id:
type: string
maxLength: 255
description: ID of the associated connection (webhook)
label:
type: string
maxLength: 255
description: Descriptive name of the bookmark
name:
type: string
pattern: ^[A-z0-9-_]+$
maxLength: 155
description: A unique, human-friendly name for the bookmark
required:
- event_data_id
- webhook_id
- label
additionalProperties: false
/bookmarks/{id}:
get:
operationId: getBookmark
summary: Retrieve a bookmark
description: This endpoint retrieves a specific bookmark.
tags:
- Bookmarks
responses:
'200':
description: A single bookmark
content:
application/json:
schema:
$ref: '#/components/schemas/Bookmark'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
parameters:
- in: path
name: id
schema:
type: string
description: Bookmark ID
required: true
put:
operationId: updateBookmark
summary: Update a bookmark
description: This endpoint updates a bookmark.
tags:
- Bookmarks
responses:
'200':
description: A single bookmark
content:
application/json:
schema:
$ref: '#/components/schemas/Bookmark'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
'404':
description: Not Found
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: Bookmark ID
required: true
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
event_data_id:
type: string
maxLength: 255
description: ID of the event data to bookmark
webhook_id:
type: string
maxLength: 255
description: ID of the associated connection (webhook)
label:
type: string
maxLength: 255
description: Descriptive name of the bookmark
name:
type: string
pattern: ^[A-z0-9-_]+$
maxLength: 155
description: A unique, human-friendly name for the bookmark
additionalProperties: false
delete:
operationId: deleteBookmark
summary: Delete a bookmark
description: This endpoint permanently deletes a bookmark. This action cannot be undone.
tags:
- Bookmarks
responses:
'200':
description: An object with deleted bookmark's id
content:
application/json:
schema:
$ref: '#/components/schemas/DeletedBookmarkResponse'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
parameters:
- in: path
name: id
schema:
type: string
description: Bookmark ID
required: true
/bookmarks/{id}/raw_body:
get:
operationId: getBookmarkRawBody
summary: Get a bookmark raw body data
description: ''
tags:
- Bookmarks
responses:
'200':
description: A request raw body data
content:
application/json:
schema:
$ref: '#/components/schemas/RawBody'
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
parameters:
- in: path
name: id
schema:
type: string
description: Bookmark ID
required: true
/bookmarks/{id}/trigger:
post:
operationId: triggerBookmark
summary: Trigger a bookmark
description: This endpoint triggers a bookmark, replaying its associated event against all matching connections.
tags:
- Bookmarks
responses:
'200':
description: Array of created events
content:
application/json:
schema:
$ref: '#/components/schemas/EventArray'
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/APIErrorResponse'
'404':
description: Not Found
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: Bookmark ID
required: true
components:
schemas:
Event:
type: object
properties:
id:
type: string
description: ID of the event
team_id:
type: string
description: ID of the project
webhook_id:
type: string
description: ID of the associated connection (webhook)
source_id:
type: string
description: ID of the associated source
destination_id:
type: string
description: ID of the associated destination
event_data_id:
type: string
description: ID of the event data
request_id:
type: string
description: ID of the request that created the event
attempts:
type: integer
description: Number of delivery attempts made
last_attempt_at:
type:
- string
- 'null'
format: date-time
description: Date of the most recently attempted retry
next_attempt_at:
type:
- string
- 'null'
format: date-time
description: Date of the next scheduled retry
response_status:
type:
- integer
- 'null'
description: Event status
error_code:
$ref: '#/components/schemas/AttemptErrorCodes'
status:
$ref: '#/components/schemas/EventStatus'
successful_at:
type:
- string
- 'null'
format: date-time
description: Date of the latest successful attempt
cli_id:
type:
- string
- 'null'
description: ID of the CLI the event is sent to
updated_at:
type: string
format: date-time
description: Date the event was last updated
created_at:
type: string
format: date-time
description: Date the event was created
data:
$ref: '#/components/schemas/EventData'
required:
- id
- team_id
- webhook_id
- source_id
- destination_id
- event_data_id
- request_id
- attempts
- last_attempt_at
- next_attempt_at
- status
- successful_at
- cli_id
- updated_at
- created_at
additionalProperties: false
APIErrorResponse:
type: object
properties:
code:
type: string
description: Error code
status:
type: number
format: float
description: Status code
message:
type: string
description: Error description
data:
type:
- object
- 'null'
properties: {}
required:
- code
- status
- message
additionalProperties: false
description: Error response model
Operators:
type: object
properties:
gt:
type:
- string
- 'null'
format: date-time
gte:
type:
- string
- 'null'
format: date-time
le:
type:
- string
- 'null'
format: date-time
lte:
type:
- string
- 'null'
format: date-time
any:
type: boolean
all:
type: boolean
additionalProperties: false
SeekPagination:
type: object
properties:
order_by:
anyOf:
- type: string
- type: array
items:
type: string
dir:
anyOf:
- $ref: '#/components/schemas/OrderByDirection'
- type: array
items:
$ref: '#/components/schemas/OrderByDirection'
limit:
type: integer
prev:
type: string
next:
type: string
additionalProperties: false
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
RawBody:
type: object
properties:
body:
type: string
required:
- body
additionalProperties: false
DeletedBookmarkResponse:
type: object
properties:
id:
type: string
description: Bookmark ID
required:
- id
additionalProperties: false
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
BookmarkPaginatedResult:
type: object
properties:
pagination:
$ref: '#/components/schemas/SeekPagination'
count:
type: integer
models:
type: array
items:
$ref: '#/components/schemas/Bookmark'
additionalProperties: false
EventStatus:
type: string
enum:
- SCHEDULED
- QUEUED
- HOLD
- SUCCESSFUL
- FAILED
- CANCELLED
AttemptErrorCodes:
type: string
enum:
- BAD_RESPONSE
- CANCELLED
- TIMEOUT
- NOT_FOUND
- CANCELLED_PAST_RETENTION
- CONNECTION_REFUSED
- CONNECTION_RESET
- MISSING_URL
- CLI
- CLI_UNAVAILABLE
- SELF_SIGNED_CERT
- ERR_TLS_CERT_ALTNAME_INVALID
- ERR_SSL_WRONG_VERSION_NUMBER
- NETWORK_ERROR
- NETWORK_REQUEST_CANCELED
- NETWORK_UNREACHABLE
- TOO_MANY_REDIRECTS
- INVALID_CHARACTER
- INVALID_URL
- SSL_ERROR_CA_UNKNOWN
- DATA_ARCHIVED
- SSL_CERT_EXPIRED
- BULK_RETRY_CANCELLED
- DNS_LOOKUP_FAILED
- HOST_UNREACHABLE
- INTERNAL_ERROR
- PROTOCOL_ERROR
- PAYLOAD_MISSING
- UNABLE_TO_GET_ISSUER_CERT
- SOCKET_CLOSED
- OAUTH2_HANDSHAKE_FAILED
- Z_DATA_ERROR
- UNKNOWN
description: Error code of the delivery attempt
EventArray:
type: array
items:
$ref: '#/components/schemas/Event'
Bookmark:
type: object
properties:
id:
type: string
description: ID of the bookmark
team_id:
type: string
description: ID of the project
webhook_id:
type: string
description: ID of the associated connection (webhook)
event_data_id:
type: string
description: ID of the bookmarked event data
label:
type: string
description: Descriptive name of the bookmark
alias:
type:
- string
- 'null'
description: Alternate alias for the bookmark
data:
$ref: '#/components/schemas/ShortEventData'
last_used_at:
type:
- string
- 'null'
format: date-time
description: Date the bookmark was last manually triggered
updated_at:
type: string
format: date-time
description: Date the bookmark was last updated
created_at:
type: string
format: date-time
description: Date the bookmark was created
required:
- id
- team_id
- webhook_id
- event_data_id
- label
- updated_at
- created_at
additionalProperties: false
OrderByDirection:
anyOf:
- enum:
- asc
- enum:
- desc
- enum:
- ASC
- enum:
- DESC
securitySchemes:
bearerAuth:
type: http
scheme: bearer
basicAuth:
type: http
scheme: basic