Skip to content

Endpoints

An endpoint is an ingestion URL plus verification and routing rules. Create one per source, not per destination — that keeps retries and logs easy to reason about.

  1. Open Endpoints and choose Create endpoint.
  2. Pick a provider so Hooks pre-fills the right signature header.
  3. Copy the ingestion URL into the provider’s webhook settings.
  4. Add at least one destination and send a test event.
Field Notes
name Human-readable label shown in logs and alerts.
provider Preset for signature verification and event headers: generic, github, stripe, slack, or linear.
signing_secret Generated on creation. Rotate it from endpoint settings.
status active or paused. Paused endpoints keep receiving events.
https://api.hooks.events/in/{endpoint-public-id}

The public id is stable for the life of the endpoint. Treat the URL as a secret: anyone with it can create events.

Provider Signature header Notes
generic X-Hooks-Signature Timestamp + HMAC over the raw body.
github X-Hub-Signature-256 HMAC-SHA256 over the raw body.
stripe Stripe-Signature t=...,v1=... with a 5-minute tolerance.
slack X-Slack-Signature v0= HMAC over v0:<timestamp>:<body>.
linear Linear-Signature Hex HMAC over the raw body plus a 60-second webhookTimestamp window.

Queue a synthetic event instead of sending traffic through the public ingress:

Terminal window
curl -X POST "https://api.hooks.events/v1/endpoints/$ENDPOINT_ID/test-events" \
-H "Authorization: Bearer $HOOKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"eventType":"agent.check"}'