Hookdeck · Schema

Hookdeck Event

JSON Schema for the Hookdeck Event entity, extracted from the Hookdeck Admin REST API (v2025-07-01).

WebhooksEvent GatewaysGatewaysEventsEvent InfrastructureEvent-DrivenMessagingQueuesRetriesTransformationsObservability

Properties

Name Type Description
id string ID of the event
team_id string ID of the project
webhook_id string ID of the associated connection (webhook)
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 object
status object
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 object
View JSON Schema on GitHub

JSON Schema

hookdeck-event-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/hookdeck/main/json-schema/hookdeck-event-schema.json",
  "title": "Hookdeck Event",
  "description": "JSON Schema for the Hookdeck Event entity, extracted from the Hookdeck Admin REST API (v2025-07-01).",
  "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",
      "format": "date-time",
      "nullable": true,
      "description": "Date of the most recently attempted retry"
    },
    "next_attempt_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "Date of the next scheduled retry"
    },
    "response_status": {
      "type": "integer",
      "nullable": true,
      "description": "Event status"
    },
    "error_code": {
      "$ref": "#/$defs/AttemptErrorCodes"
    },
    "status": {
      "$ref": "#/$defs/EventStatus"
    },
    "successful_at": {
      "type": "string",
      "format": "date-time",
      "nullable": true,
      "description": "Date of the latest successful attempt"
    },
    "cli_id": {
      "type": "string",
      "nullable": true,
      "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": "#/$defs/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,
  "$defs": {
    "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"
    },
    "EventData": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string"
        },
        "method": {
          "type": "string"
        },
        "path": {
          "type": "string",
          "nullable": true,
          "description": "Raw path string"
        },
        "query": {
          "type": "string",
          "nullable": true,
          "description": "Raw query param string"
        },
        "parsed_query": {
          "anyOf": [
            {
              "type": "string",
              "nullable": true
            },
            {
              "type": "object",
              "properties": {}
            }
          ],
          "nullable": true,
          "description": "JSON representation of query params"
        },
        "headers": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "object",
              "properties": {},
              "additionalProperties": {
                "type": "string",
                "nullable": true
              }
            }
          ],
          "nullable": true,
          "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": {}
            }
          ],
          "nullable": true,
          "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,
      "nullable": true,
      "description": "Event data if included"
    }
  }
}