Event Delivery
Event Delivery sends you an HTTP request whenever something changes in your Helix feeds and fact-checks — new articles, event updates, fact-check completions — so your systems can react without polling.
Event Delivery separates where a delivery goes from what triggers it. A destination receives whatever its subscriptions match: news, event and fact-check events can all arrive at the same URL. Do not assume a destination only ever receives one kind of event.
Two objects, not one
Destinations — where
A destination is an HTTP endpoint that can receive deliveries: a URL, optional static headers, a debounce window, and one or more signing secrets. A destination knows nothing about which events it will receive — it is purely "here is a place to send things, and here is how to prove it came from us."
POST /events/destinations
{
"name": "Newsroom CMS",
"transport": "webhook",
"config": { "url": "https://cms.acme.com/hx" }
}
Subscriptions — what
A subscription belongs to a destination and declares which events it
receives: a set of event-type patterns (exact types or wildcards, such as
news.*) and a feed scope (every feed the organization can see, every feed
of one kind, or a specific pinned list).
POST /events/destinations/{ref}/subscriptions
{
"eventTypes": ["news.*"],
"scopeKind": "feeds",
"feeds": [{ "feedType": "news", "feedId": "…" }]
}
A pinned feed's feedType is news or events (plural).
One destination can hold several subscriptions. A single URL can therefore
receive news.* from two specific feeds and factcheck.* for the whole
organization at once, with the URL registered once.
Why destinations and subscriptions are separate
Splitting "where to send it" from "what to send" means:
- One endpoint, many rules. Register the URL once as a destination, then layer as many subscriptions on it as you need.
- Routing is data, not a hardcoded per-domain switch. Adding a new event
type never requires a new integration point — it is just another value
a subscription's
eventTypespattern can match. - Scope is explicit.
scopeKind: "all","feed_type", or"feeds"says exactly what each subscription can see.
What's next
- Concepts — the envelope, the event type taxonomy, wildcards, feed scoping, and debounce.
- Quickstart — create a destination, subscribe, send a test delivery, and receive your first delivery.
- Signature Verification — verify that a delivery came from Helix.
- Reliability — retries, auto-disable, replay, and backfill.
- API Reference — the full
/events/*surface.