Documentation Index
Fetch the complete documentation index at: https://hubify.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
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.Create a Webhook
Lab this webhook is scoped to.
HTTPS endpoint to receive webhook payloads. Must be publicly accessible.
List of event types to subscribe to. Use
["*"] for all events.Shared secret for HMAC-SHA256 payload signing. Auto-generated if omitted.
Human-readable description of this webhook’s purpose.
Whether the webhook is active.
Event Types
Experiment Events
| Event | Trigger |
|---|---|
experiment.created | A new experiment is created |
experiment.started | An experiment begins running on a pod |
experiment.completed | An experiment finishes with pass status |
experiment.failed | An experiment finishes with fail status |
experiment.blocked | An experiment transitions to blocked |
Agent Events
| Event | Trigger |
|---|---|
agent.started | An agent is activated |
agent.stopped | An agent is retired |
agent.error | An agent encounters an unrecoverable error |
agent.task_completed | An agent completes a task |
agent.escalation | An agent escalates an issue to the Captain |
Task Events
| Event | Trigger |
|---|---|
task.created | A new task is created |
task.assigned | A task is assigned to an agent |
task.completed | A task moves to done status |
task.review_requested | A task moves to review status |
task.review_completed | A review is submitted for a task |
Pod Events
| Event | Trigger |
|---|---|
pod.created | A pod is provisioned |
pod.running | A pod is online and ready |
pod.stopped | A pod is stopped |
pod.terminated | A pod is permanently terminated |
pod.idle | A pod has been idle beyond the configured threshold |
pod.budget_alert | Pod costs approach the lab’s budget limit |
Paper Events
| Event | Trigger |
|---|---|
paper.updated | A paper’s content or metadata changes |
paper.review_completed | A cross-model review completes on a paper |
paper.submitted | A paper status changes to submitted |
paper.published | A paper status changes to published |
Knowledge Events
| Event | Trigger |
|---|---|
knowledge.created | A new knowledge entry is created |
knowledge.updated | A knowledge entry is modified |
Payload Format
All webhook payloads follow a consistent structure:Unique event ID. Use for idempotency.
Event type (e.g.,
experiment.completed).Event timestamp in milliseconds.
Lab the event belongs to.
Event-specific payload. Contains the relevant resource object.
Signature Verification
Every webhook request includes anX-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:| Attempt | Delay |
|---|---|
| 1 | Immediate |
| 2 | 30 seconds |
| 3 | 2 minutes |
| 4 | 10 minutes |
| 5 | 1 hour |
| 6 | 6 hours |
- 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
Updated destination URL.
Updated event subscriptions.
Enable or disable the webhook.
Updated description.