— Deane Barker, May 2025
In this document, I have endeavored to “dump” everything I know about webhooks.
This document has been compiled from my experience —
What’s described in this document is a broad survey of webhook styles, architectures, and options. This is not presented as a list of requirements for any particular webhook system, but rather as a catalog of all possible options. To my knowledge, no observed system implements every option presented here.
Also, the usage of webhooks in this document is biased toward content management scenarios, simply due to the majority of my experience.
Finally, in some cases, architectural concepts have been defined. These definitions are for illustration, or represent commonly accepted norms, features, or conventions.
A “webhook” is a informal term to refer to an HTTP request made from an originating system in response an internal event. The goal is to notify and transmit data related to the event to another system.
A webhook effectively allows an originating system to notify a remote system of an event and provide it with data describing the event.
Remote procedure calls are not new (consider DCOM or gRPC as historical examples), however webhooks differ in that:
There has never been a formal specification or even agreement on specifics, simply an informal understanding the architecture, purpose, and usage.
There has traditionally been a website at webhooks.org which served as a wiki for informal webhook information, however it appears to be offline. Here’s the last capture of the site from the Internet Archive.