- signal — what kind of event (
post_engagement). Browse them at GET /signals. - watch — who to watch: the author’s profile URL (one value or a list).
- url — your HTTPS endpoint (and optional
secret).
One envelope for every signal
Every signal is delivered with the same envelope — write one handler, one signature check, then branch onsignal:
| Field | Meaning |
|---|---|
signal | which signal fired |
event_type | the sub-event (for post_engagement, also post_engagement) |
target | what the event is about (null for market-wide signals) |
data | the signal-specific body — see each signal in the catalog |
chunk | a large event is split across several webhooks; index/total let you reassemble |
delivered_at | ISO 8601 |
Verifying authenticity
When a monitor has asecret, each delivery is signed: header X-Webhook-Signature: sha256=<hmac> where <hmac> is HMAC-SHA256(secret, raw_body). Recompute and compare.
Delivery & retries
Deliveries retry on failure (up to 5 attempts, exponential backoff). A very active event is chunked so no single webhook is oversized.Need full details on a person or company referenced in a signal? Pass the
profile_id / id to Enrich Profile or Enrich Company.
