1. Developers
  2. Webhooks

REST hooks for automation platforms

Subscribe to one event from code, the way Zapier and similar tools do, and remove the subscription when done.

Updated October 5, 2026

REST hooks let software create and remove its own webhook subscriptions through the API. Automation platforms use them: when a user turns a Zap on, the platform subscribes; when they turn it off, it unsubscribes. Subscriptions made this way show up in the app under Settings, Integrations, next to endpoints added by hand.

Subscribe

Call Register a webhook with one event and the URL to deliver to.

curl -X POST "https://howdybell.com/api/v1/hooks" \
  -H "Authorization: Bearer $HOWDYBELL_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "event": "contact.created",
    "target_url": "https://hooks.example.com/catch/123",
    "location_id": 1
  }'
{ "id": 42, "event": "contact.created", "target_url": "https://hooks.example.com/catch/123" }
  • event is one of the events listed in Webhooks, except ping.
  • location_id is optional and limits deliveries to one location. With an OAuth token the subscription is always tied to the location the app was installed on.
  • An OAuth app may only subscribe to events its scopes cover. See Scopes.
  • target_url must be a public https address.

Deliveries have the same body, headers and retry rules as Webhooks.

Unsubscribe

Call Remove a webhook with the id you got back. It answers 204 with no body.

curl -X DELETE "https://howdybell.com/api/v1/hooks/42" \
  -H "Authorization: Bearer $HOWDYBELL_TOKEN"

Sample data

Automation platforms show users sample records while they build. Call Get sample payloads with the event name:

curl "https://howdybell.com/api/v1/hooks/samples/contact.created" \
  -H "Authorization: Bearer $HOWDYBELL_TOKEN"

It returns {"data": [...]} with recent real payloads for that event, or a built-in example when there are none yet.

Who am I

Get current user info returns the workspace, the location (for OAuth installs), the app and its scopes. Platforms use it to label the connection and to test that a token works.

{ "workspace": { "id": 1, "name": "Victoria Cycle Works" }, "location": null, "app": null, "scopes": ["*"] }
REST hooks for automation platforms | HowdyBell Developers