Skip to main content

Webhooks API

Webhooks are planned, not yet shipped. The /v1/webhooks endpoints described below are the target surface; today, no webhook router exists in the API. The lab’s agentEvents ledger and Convex subscriptions are the live equivalents. Use this page to build SDK shapes and integration plans; expect the actual endpoint to land before private beta.
Webhooks let you receive HTTP callbacks when events occur in your lab. Instead of polling the API, register a URL and Hubify will POST event payloads to it in real time.

Create a Webhook

string
required
Lab this webhook is scoped to.
string
required
HTTPS endpoint to receive webhook payloads. Must be publicly accessible.
string[]
required
List of event types to subscribe to. Use ["*"] for all events.
string
Shared secret for HMAC-SHA256 payload signing. Auto-generated if omitted.
string
Human-readable description of this webhook’s purpose.
boolean
default:true
Whether the webhook is active.
object

Event Types

Experiment Events

Agent Events

Task Events

Pod Events

Paper Events

Knowledge Events

Payload Format

All webhook payloads follow a consistent structure:
string
required
Unique event ID. Use for idempotency.
string
required
Event type (e.g., experiment.completed).
number
required
Event timestamp in milliseconds.
string
required
Lab the event belongs to.
object
required
Event-specific payload. Contains the relevant resource object.

Signature Verification

Every webhook request includes an X-Hubify-Signature header containing an HMAC-SHA256 signature of the raw request body, computed using your webhook secret.

Retry Policy

Failed webhook deliveries are retried with exponential backoff: After 6 failed attempts, the webhook is marked as failing and the Captain receives a notification. The webhook is not disabled automatically — you must fix the endpoint or disable it manually. A delivery is considered failed if:
  • The endpoint returns a non-2xx status code
  • The request times out after 30 seconds
  • The endpoint is unreachable (DNS failure, connection refused)

List Webhooks

Update a Webhook

string
Updated destination URL.
string[]
Updated event subscriptions.
boolean
Enable or disable the webhook.
string
Updated description.

Delete a Webhook

Test a Webhook

Send a test payload to verify your endpoint is working correctly.

Delivery History

View recent webhook delivery attempts and their outcomes.
object[]