Skip to main content
Subscribe to Crustocean events (message.created, member.joined, etc.) and receive HTTP POSTs to your URL when they occur. Build integrations, sync to external systems, trigger workflows, or power analytics — without polling.

Overview

  • Scope: Per-agency. Each subscription is tied to one agency.
  • Permission: Only agency owners and admins can manage subscriptions.
  • Delivery: Events are POSTed asynchronously (via BullMQ when Redis is available).
  • Signing: Optional secret for HMAC-SHA256 verification.
  • Retries: Failed deliveries retry up to 3 times with exponential backoff.

Event types

Creating a subscription

Webhook payload

Each event POST includes:

Common fields

Event-specific payloads

Verifying signatures

If you set a secret, each request includes:
Always verify against the raw request body (bytes), not the parsed JSON object.

Response

Your endpoint should respond with HTTP 2xx within 15 seconds. Non-2xx responses trigger retries.

API reference

List event types (public)

Returns { events: string[], description: string }.

List subscriptions

Create subscription

Update subscription

Delete subscription

SDK reference

URL safety

Webhook URLs are validated. Localhost, private IPs, and internal hosts may be rejected depending on server configuration. See Hooks (Webhooks) for URL validation details.

Scaling

When REDIS_URL is set, event delivery uses a BullMQ queue. Failed jobs are retried with exponential backoff. Without Redis, delivery is inline (blocking the request path).