{
  "@context": {
    "@vocab": "https://hookbridge.io/schema#",
    "schema": "https://schema.org/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dcterms": "http://purl.org/dc/terms/",
    "hookbridge": "https://hookbridge.io/schema#",
    "SendWebhookRequest": "hookbridge:SendWebhookRequest",
    "endpoint_id": {
      "@id": "hookbridge:endpoint_id",
      "@type": "xsd:string"
    },
    "payload": {
      "@id": "hookbridge:payload"
    },
    "headers": {
      "@id": "hookbridge:headers"
    },
    "idempotency_key": {
      "@id": "hookbridge:idempotency_key",
      "@type": "xsd:string"
    },
    "retention_hours": {
      "@id": "hookbridge:retention_hours",
      "@type": "xsd:integer"
    },
    "SendWebhookResponse": "hookbridge:SendWebhookResponse",
    "data": {
      "@id": "hookbridge:data"
    },
    "meta": {
      "@id": "hookbridge:meta",
      "@type": "@id"
    },
    "GetMessageResponse": "hookbridge:GetMessageResponse",
    "DeleteMessageResponse": "hookbridge:DeleteMessageResponse",
    "DeleteEventResponse": "hookbridge:DeleteEventResponse",
    "DeleteBatchRequest": "hookbridge:DeleteBatchRequest",
    "message_ids": {
      "@id": "hookbridge:message_ids",
      "@container": "@list"
    },
    "DeleteBatchResponse": "hookbridge:DeleteBatchResponse",
    "DeleteEventBatchResponse": "hookbridge:DeleteEventBatchResponse",
    "DeleteAllResponse": "hookbridge:DeleteAllResponse",
    "error": {
      "@id": "hookbridge:error"
    },
    "PullDeleteAllResponse": "hookbridge:PullDeleteAllResponse",
    "ActorLookupResponse": "hookbridge:ActorLookupResponse",
    "ReplayMessageResponse": "hookbridge:ReplayMessageResponse",
    "message": {
      "@id": "hookbridge:message",
      "@type": "xsd:string"
    },
    "GetLogsResponse": "hookbridge:GetLogsResponse",
    "GetMetricsResponse": "hookbridge:GetMetricsResponse",
    "CreateEndpointRequest": "hookbridge:CreateEndpointRequest",
    "url": {
      "@id": "hookbridge:url",
      "@type": "@id"
    },
    "description": {
      "@id": "hookbridge:description",
      "@type": "xsd:string"
    },
    "rate_limit_rps": {
      "@id": "hookbridge:rate_limit_rps",
      "@type": "xsd:integer"
    },
    "burst": {
      "@id": "hookbridge:burst",
      "@type": "xsd:integer"
    },
    "ephemeral": {
      "@id": "hookbridge:ephemeral",
      "@type": "xsd:boolean"
    },
    "ttl_minutes": {
      "@id": "hookbridge:ttl_minutes",
      "@type": "xsd:integer"
    },
    "CreateEndpointResponse": "hookbridge:CreateEndpointResponse",
    "GetEndpointResponse": "hookbridge:GetEndpointResponse",
    "ListEndpointsResponse": "hookbridge:ListEndpointsResponse",
    "UpdateEndpointRequest": "hookbridge:UpdateEndpointRequest",
    "UpdateEndpointResponse": "hookbridge:UpdateEndpointResponse",
    "SigningKey": "hookbridge:SigningKey",
    "id": {
      "@id": "hookbridge:id",
      "@type": "xsd:string"
    },
    "key_hint": {
      "@id": "hookbridge:key_hint",
      "@type": "xsd:string"
    },
    "created_at": {
      "@id": "hookbridge:created_at",
      "@type": "xsd:dateTime"
    },
    "CreateSigningKeyResponse": "hookbridge:CreateSigningKeyResponse",
    "ListSigningKeysResponse": "hookbridge:ListSigningKeysResponse",
    "Endpoint": "hookbridge:Endpoint",
    "paused": {
      "@id": "hookbridge:paused",
      "@type": "xsd:boolean"
    },
    "expires_at": {
      "@id": "hookbridge:expires_at",
      "@type": "xsd:dateTime"
    },
    "updated_at": {
      "@id": "hookbridge:updated_at",
      "@type": "xsd:dateTime"
    },
    "EndpointSummary": "hookbridge:EndpointSummary",
    "ListAPIKeysResponse": "hookbridge:ListAPIKeysResponse",
    "CreateAPIKeyRequest": "hookbridge:CreateAPIKeyRequest",
    "label": {
      "@id": "hookbridge:label",
      "@type": "xsd:string"
    },
    "CreateAPIKeyResponse": "hookbridge:CreateAPIKeyResponse",
    "APIKeyInfo": "hookbridge:APIKeyInfo",
    "key_id": {
      "@id": "hookbridge:key_id",
      "@type": "xsd:string"
    },
    "prefix": {
      "@id": "hookbridge:prefix",
      "@type": "xsd:string"
    },
    "last_used_at": {
      "@id": "hookbridge:last_used_at",
      "@type": "xsd:dateTime"
    },
    "Message": "hookbridge:Message",
    "project_id": {
      "@id": "hookbridge:project_id",
      "@type": "xsd:string"
    },
    "status": {
      "@id": "hookbridge:status",
      "@type": "xsd:string"
    },
    "attempt_count": {
      "@id": "hookbridge:attempt_count",
      "@type": "xsd:integer"
    },
    "replay_count": {
      "@id": "hookbridge:replay_count",
      "@type": "xsd:integer"
    },
    "content_type": {
      "@id": "hookbridge:content_type",
      "@type": "xsd:string"
    },
    "size_bytes": {
      "@id": "hookbridge:size_bytes",
      "@type": "xsd:integer"
    },
    "payload_sha256": {
      "@id": "hookbridge:payload_sha256",
      "@type": "xsd:string"
    },
    "next_attempt_at": {
      "@id": "hookbridge:next_attempt_at",
      "@type": "xsd:dateTime"
    },
    "last_error": {
      "@id": "hookbridge:last_error",
      "@type": "xsd:string"
    },
    "response_status": {
      "@id": "hookbridge:response_status",
      "@type": "xsd:integer"
    },
    "response_latency_ms": {
      "@id": "hookbridge:response_latency_ms",
      "@type": "xsd:integer"
    },
    "first_attempt_at": {
      "@id": "hookbridge:first_attempt_at",
      "@type": "xsd:dateTime"
    },
    "delivered_at": {
      "@id": "hookbridge:delivered_at",
      "@type": "xsd:dateTime"
    },
    "processing_ms": {
      "@id": "hookbridge:processing_ms",
      "@type": "xsd:integer"
    },
    "total_delivery_ms": {
      "@id": "hookbridge:total_delivery_ms",
      "@type": "xsd:integer"
    },
    "queue_wait_ms": {
      "@id": "hookbridge:queue_wait_ms",
      "@type": "xsd:integer"
    },
    "deleted_at": {
      "@id": "hookbridge:deleted_at",
      "@type": "xsd:dateTime"
    },
    "deleted_by_user_id": {
      "@id": "hookbridge:deleted_by_user_id",
      "@type": "xsd:string"
    },
    "deleted_by_api_key_id": {
      "@id": "hookbridge:deleted_by_api_key_id",
      "@type": "xsd:string"
    },
    "MessageSummary": "hookbridge:MessageSummary",
    "message_id": {
      "@id": "hookbridge:message_id",
      "@type": "xsd:string"
    },
    "endpoint": {
      "@id": "hookbridge:endpoint",
      "@type": "@id"
    },
    "Metrics": "hookbridge:Metrics",
    "window": {
      "@id": "hookbridge:window",
      "@type": "xsd:string"
    },
    "total_messages": {
      "@id": "hookbridge:total_messages",
      "@type": "xsd:integer"
    },
    "succeeded": {
      "@id": "hookbridge:succeeded",
      "@type": "xsd:integer"
    },
    "failed": {
      "@id": "hookbridge:failed",
      "@type": "xsd:integer"
    },
    "retries": {
      "@id": "hookbridge:retries",
      "@type": "xsd:integer"
    },
    "success_rate": {
      "@id": "hookbridge:success_rate",
      "@type": "xsd:decimal"
    },
    "avg_latency_ms": {
      "@id": "hookbridge:avg_latency_ms",
      "@type": "xsd:integer"
    },
    "avg_delivery_time_ms": {
      "@id": "hookbridge:avg_delivery_time_ms",
      "@type": "xsd:integer"
    },
    "avg_queue_wait_ms": {
      "@id": "hookbridge:avg_queue_wait_ms",
      "@type": "xsd:integer"
    },
    "CreateCheckoutRequest": "hookbridge:CreateCheckoutRequest",
    "plan": {
      "@id": "hookbridge:plan",
      "@type": "xsd:string"
    },
    "interval": {
      "@id": "hookbridge:interval",
      "@type": "xsd:string"
    },
    "CreateCheckoutResponse": "hookbridge:CreateCheckoutResponse",
    "CreatePortalRequest": "hookbridge:CreatePortalRequest",
    "return_url": {
      "@id": "hookbridge:return_url",
      "@type": "@id"
    },
    "CreatePortalResponse": "hookbridge:CreatePortalResponse",
    "GetSubscriptionResponse": "hookbridge:GetSubscriptionResponse",
    "UsageHistoryRow": "hookbridge:UsageHistoryRow",
    "period_start": {
      "@id": "hookbridge:period_start",
      "@type": "xsd:date"
    },
    "period_end": {
      "@id": "hookbridge:period_end",
      "@type": "xsd:date"
    },
    "message_count": {
      "@id": "hookbridge:message_count",
      "@type": "xsd:integer"
    },
    "overage_count": {
      "@id": "hookbridge:overage_count",
      "@type": "xsd:integer"
    },
    "plan_limit": {
      "@id": "hookbridge:plan_limit",
      "@type": "xsd:integer"
    },
    "GetUsageHistoryResponse": "hookbridge:GetUsageHistoryResponse",
    "InvoiceLine": "hookbridge:InvoiceLine",
    "amount": {
      "@id": "hookbridge:amount",
      "@type": "xsd:integer"
    },
    "quantity": {
      "@id": "hookbridge:quantity",
      "@type": "xsd:integer"
    },
    "Invoice": "hookbridge:Invoice",
    "amount_due": {
      "@id": "hookbridge:amount_due",
      "@type": "xsd:integer"
    },
    "amount_paid": {
      "@id": "hookbridge:amount_paid",
      "@type": "xsd:integer"
    },
    "currency": {
      "@id": "hookbridge:currency",
      "@type": "xsd:string"
    },
    "created": {
      "@id": "hookbridge:created",
      "@type": "xsd:dateTime"
    },
    "invoice_pdf": {
      "@id": "hookbridge:invoice_pdf",
      "@type": "@id"
    },
    "hosted_invoice_url": {
      "@id": "hookbridge:hosted_invoice_url",
      "@type": "@id"
    },
    "lines": {
      "@id": "hookbridge:lines",
      "@container": "@list"
    },
    "GetInvoicesResponse": "hookbridge:GetInvoicesResponse",
    "TimeSeriesBucket": "hookbridge:TimeSeriesBucket",
    "timestamp": {
      "@id": "hookbridge:timestamp",
      "@type": "xsd:dateTime"
    },
    "retrying": {
      "@id": "hookbridge:retrying",
      "@type": "xsd:integer"
    },
    "total": {
      "@id": "hookbridge:total",
      "@type": "xsd:integer"
    },
    "GetTimeSeriesMetricsResponse": "hookbridge:GetTimeSeriesMetricsResponse",
    "CreateInboundEndpointRequest": "hookbridge:CreateInboundEndpointRequest",
    "name": {
      "@id": "hookbridge:name",
      "@type": "xsd:string"
    },
    "mode": {
      "@id": "hookbridge:mode",
      "@type": "xsd:string"
    },
    "verify_static_token": {
      "@id": "hookbridge:verify_static_token",
      "@type": "xsd:boolean"
    },
    "token_header_name": {
      "@id": "hookbridge:token_header_name",
      "@type": "xsd:string"
    },
    "token_query_param": {
      "@id": "hookbridge:token_query_param",
      "@type": "xsd:string"
    },
    "token_value": {
      "@id": "hookbridge:token_value",
      "@type": "xsd:string"
    },
    "verify_hmac": {
      "@id": "hookbridge:verify_hmac",
      "@type": "xsd:boolean"
    },
    "hmac_header_name": {
      "@id": "hookbridge:hmac_header_name",
      "@type": "xsd:string"
    },
    "hmac_secret": {
      "@id": "hookbridge:hmac_secret",
      "@type": "xsd:string"
    },
    "timestamp_header_name": {
      "@id": "hookbridge:timestamp_header_name",
      "@type": "xsd:string"
    },
    "timestamp_ttl_seconds": {
      "@id": "hookbridge:timestamp_ttl_seconds",
      "@type": "xsd:integer"
    },
    "verify_ip_allowlist": {
      "@id": "hookbridge:verify_ip_allowlist",
      "@type": "xsd:boolean"
    },
    "allowed_cidrs": {
      "@id": "hookbridge:allowed_cidrs",
      "@container": "@list"
    },
    "idempotency_header_names": {
      "@id": "hookbridge:idempotency_header_names",
      "@container": "@list"
    },
    "ingest_response_code": {
      "@id": "hookbridge:ingest_response_code",
      "@type": "xsd:integer"
    },
    "signing_enabled": {
      "@id": "hookbridge:signing_enabled",
      "@type": "xsd:boolean"
    },
    "CreateInboundEndpointResponse": "hookbridge:CreateInboundEndpointResponse",
    "InboundEndpoint": "hookbridge:InboundEndpoint",
    "active": {
      "@id": "hookbridge:active",
      "@type": "xsd:boolean"
    },
    "ingest_url": {
      "@id": "hookbridge:ingest_url",
      "@type": "@id"
    },
    "InboundEndpointSummary": "hookbridge:InboundEndpointSummary",
    "GetInboundEndpointResponse": "hookbridge:GetInboundEndpointResponse",
    "ListInboundEndpointsResponse": "hookbridge:ListInboundEndpointsResponse",
    "UpdateInboundEndpointRequest": "hookbridge:UpdateInboundEndpointRequest",
    "UpdateInboundEndpointResponse": "hookbridge:UpdateInboundEndpointResponse",
    "ListenInboundEndpointResponse": "hookbridge:ListenInboundEndpointResponse",
    "ReplayInboundMessageResponse": "hookbridge:ReplayInboundMessageResponse",
    "ReplayAllInboundMessagesResponse": "hookbridge:ReplayAllInboundMessagesResponse",
    "InboundLogEntry": "hookbridge:InboundLogEntry",
    "inbound_endpoint_id": {
      "@id": "hookbridge:inbound_endpoint_id",
      "@type": "xsd:string"
    },
    "received_at": {
      "@id": "hookbridge:received_at",
      "@type": "xsd:dateTime"
    },
    "GetInboundLogsResponse": "hookbridge:GetInboundLogsResponse",
    "GetInboundMetricsResponse": "hookbridge:GetInboundMetricsResponse",
    "GetInboundTimeSeriesMetricsResponse": "hookbridge:GetInboundTimeSeriesMetricsResponse",
    "InboundRejection": "hookbridge:InboundRejection",
    "reason_code": {
      "@id": "hookbridge:reason_code",
      "@type": "xsd:string"
    },
    "reason_detail": {
      "@id": "hookbridge:reason_detail",
      "@type": "xsd:string"
    },
    "source_ip": {
      "@id": "hookbridge:source_ip",
      "@type": "xsd:string"
    },
    "headers_redacted": {
      "@id": "hookbridge:headers_redacted",
      "@type": "xsd:string"
    },
    "ListInboundRejectionsResponse": "hookbridge:ListInboundRejectionsResponse",
    "CreateExportRequest": "hookbridge:CreateExportRequest",
    "start_time": {
      "@id": "hookbridge:start_time",
      "@type": "xsd:dateTime"
    },
    "end_time": {
      "@id": "hookbridge:end_time",
      "@type": "xsd:dateTime"
    },
    "direction": {
      "@id": "hookbridge:direction",
      "@type": "xsd:string"
    },
    "ExportRecord": "hookbridge:ExportRecord",
    "filter_start_time": {
      "@id": "hookbridge:filter_start_time",
      "@type": "xsd:dateTime"
    },
    "filter_end_time": {
      "@id": "hookbridge:filter_end_time",
      "@type": "xsd:dateTime"
    },
    "filter_status": {
      "@id": "hookbridge:filter_status",
      "@type": "xsd:string"
    },
    "filter_endpoint_id": {
      "@id": "hookbridge:filter_endpoint_id",
      "@type": "xsd:string"
    },
    "filter_inbound_endpoint_id": {
      "@id": "hookbridge:filter_inbound_endpoint_id",
      "@type": "xsd:string"
    },
    "row_count": {
      "@id": "hookbridge:row_count",
      "@type": "xsd:integer"
    },
    "file_size_bytes": {
      "@id": "hookbridge:file_size_bytes",
      "@type": "xsd:integer"
    },
    "error_message": {
      "@id": "hookbridge:error_message",
      "@type": "xsd:string"
    },
    "started_at": {
      "@id": "hookbridge:started_at",
      "@type": "xsd:dateTime"
    },
    "completed_at": {
      "@id": "hookbridge:completed_at",
      "@type": "xsd:dateTime"
    },
    "CreateExportResponse": "hookbridge:CreateExportResponse",
    "ListExportsResponse": "hookbridge:ListExportsResponse",
    "GetExportResponse": "hookbridge:GetExportResponse",
    "Project": "hookbridge:Project",
    "tenant_id": {
      "@id": "hookbridge:tenant_id",
      "@type": "xsd:string"
    },
    "rate_limit_default": {
      "@id": "hookbridge:rate_limit_default",
      "@type": "xsd:integer"
    },
    "ListProjectsResponse": "hookbridge:ListProjectsResponse",
    "GetProjectResponse": "hookbridge:GetProjectResponse",
    "CreateProjectRequest": "hookbridge:CreateProjectRequest",
    "UpdateProjectRequest": "hookbridge:UpdateProjectRequest",
    "ReplayAllMessagesResponse": "hookbridge:ReplayAllMessagesResponse",
    "ReplayBatchMessagesResponse": "hookbridge:ReplayBatchMessagesResponse",
    "ReplayBatchInboundMessagesResponse": "hookbridge:ReplayBatchInboundMessagesResponse",
    "ReplayBatchRequest": "hookbridge:ReplayBatchRequest",
    "AttemptRecord": "hookbridge:AttemptRecord",
    "attempt_no": {
      "@id": "hookbridge:attempt_no",
      "@type": "xsd:integer"
    },
    "error_text": {
      "@id": "hookbridge:error_text",
      "@type": "xsd:string"
    },
    "response_headers": {
      "@id": "hookbridge:response_headers"
    },
    "retry_type": {
      "@id": "hookbridge:retry_type",
      "@type": "xsd:string"
    },
    "retry_after_seconds": {
      "@id": "hookbridge:retry_after_seconds",
      "@type": "xsd:integer"
    },
    "resolved_ip": {
      "@id": "hookbridge:resolved_ip",
      "@type": "xsd:string"
    },
    "request_headers": {
      "@id": "hookbridge:request_headers"
    },
    "dns_ms": {
      "@id": "hookbridge:dns_ms",
      "@type": "xsd:integer"
    },
    "tcp_connect_ms": {
      "@id": "hookbridge:tcp_connect_ms",
      "@type": "xsd:integer"
    },
    "tls_handshake_ms": {
      "@id": "hookbridge:tls_handshake_ms",
      "@type": "xsd:integer"
    },
    "ttfb_ms": {
      "@id": "hookbridge:ttfb_ms",
      "@type": "xsd:integer"
    },
    "transfer_ms": {
      "@id": "hookbridge:transfer_ms",
      "@type": "xsd:integer"
    },
    "conn_reused": {
      "@id": "hookbridge:conn_reused",
      "@type": "xsd:boolean"
    },
    "response_body_url": {
      "@id": "hookbridge:response_body_url",
      "@type": "@id"
    },
    "response_body_truncated": {
      "@id": "hookbridge:response_body_truncated",
      "@type": "xsd:boolean"
    },
    "GetMessageAttemptsResponse": "hookbridge:GetMessageAttemptsResponse",
    "InboundMessage": "hookbridge:InboundMessage",
    "failed_at": {
      "@id": "hookbridge:failed_at",
      "@type": "xsd:dateTime"
    },
    "GetInboundMessageResponse": "hookbridge:GetInboundMessageResponse",
    "GetInboundMessageAttemptsResponse": "hookbridge:GetInboundMessageAttemptsResponse",
    "CreatePullEndpointRequest": "hookbridge:CreatePullEndpointRequest",
    "retention_days": {
      "@id": "hookbridge:retention_days",
      "@type": "xsd:integer"
    },
    "event_type_source": {
      "@id": "hookbridge:event_type_source",
      "@type": "xsd:string"
    },
    "event_type_path": {
      "@id": "hookbridge:event_type_path",
      "@type": "xsd:string"
    },
    "UpdatePullEndpointRequest": "hookbridge:UpdatePullEndpointRequest",
    "PullEndpoint": "hookbridge:PullEndpoint",
    "counts": {
      "@id": "hookbridge:counts"
    },
    "CreatePullEndpointResponse": "hookbridge:CreatePullEndpointResponse",
    "GetPullEndpointResponse": "hookbridge:GetPullEndpointResponse",
    "ListPullEndpointsResponse": "hookbridge:ListPullEndpointsResponse",
    "PullTimingBreakdown": "hookbridge:PullTimingBreakdown",
    "ingest_processing_ms": {
      "@id": "hookbridge:ingest_processing_ms",
      "@type": "xsd:integer"
    },
    "time_to_fetch_ms": {
      "@id": "hookbridge:time_to_fetch_ms",
      "@type": "xsd:integer"
    },
    "time_to_ack_ms": {
      "@id": "hookbridge:time_to_ack_ms",
      "@type": "xsd:integer"
    },
    "total_lifecycle_ms": {
      "@id": "hookbridge:total_lifecycle_ms",
      "@type": "xsd:integer"
    },
    "PullEventSummary": "hookbridge:PullEventSummary",
    "event_type": {
      "@id": "hookbridge:event_type",
      "@type": "xsd:string"
    },
    "fetched_at": {
      "@id": "hookbridge:fetched_at",
      "@type": "xsd:dateTime"
    },
    "timing": {
      "@id": "hookbridge:timing",
      "@type": "@id"
    },
    "PullEventDetail": "hookbridge:PullEventDetail",
    "ListPullEventsResponse": "hookbridge:ListPullEventsResponse",
    "GetPullEventResponse": "hookbridge:GetPullEventResponse",
    "AckPullEventsRequest": "hookbridge:AckPullEventsRequest",
    "event_ids": {
      "@id": "hookbridge:event_ids",
      "@container": "@list"
    },
    "AckPullEventsResponse": "hookbridge:AckPullEventsResponse",
    "PullLogEntry": "hookbridge:PullLogEntry",
    "event_id": {
      "@id": "hookbridge:event_id",
      "@type": "xsd:string"
    },
    "pull_endpoint_id": {
      "@id": "hookbridge:pull_endpoint_id",
      "@type": "xsd:string"
    },
    "endpoint_name": {
      "@id": "hookbridge:endpoint_name",
      "@type": "xsd:string"
    },
    "GetPullLogsResponse": "hookbridge:GetPullLogsResponse",
    "GetPullMetricsResponse": "hookbridge:GetPullMetricsResponse",
    "PullTimeSeriesBucket": "hookbridge:PullTimeSeriesBucket",
    "stored": {
      "@id": "hookbridge:stored",
      "@type": "xsd:integer"
    },
    "fetched": {
      "@id": "hookbridge:fetched",
      "@type": "xsd:integer"
    },
    "GetPullTimeSeriesMetricsResponse": "hookbridge:GetPullTimeSeriesMetricsResponse",
    "ErrorResponse": "hookbridge:ErrorResponse",
    "ResponseMeta": "hookbridge:ResponseMeta",
    "request_id": {
      "@id": "hookbridge:request_id",
      "@type": "xsd:string"
    }
  },
  "@type": "schema:Dataset",
  "schema:name": "Hookbridge API JSON-LD context",
  "schema:description": "A JSON-LD @context for the objects Hookbridge's own API contract declares: one class per component schema, one property per declared field, typed from the contract. Derived by script (derive-json-ld.py, 2026-10-18) from openapi/_original/hookbridge-api-openapi.yml.",
  "dcterms:created": "2026-10-18",
  "dcterms:source": [
    "openapi/_original/hookbridge-api-openapi.yml"
  ]
}