<a id="http-json"></a>

# HTTP/JSON

Rather than connecting directly to the [control socket](api_control_sockets.html.md),
there is a JSON over HTTP endpoint that proxies calls to the `smtpd` control socket. The JSON [request](api_reference.html.md) body (called *payload*) and [response](api_reference.html.md)
are direct JSON representations of the respective Protobuf structures.
The HTTP/JSON API takes *version*, *program*, *command* and *payload* as arguments,
where *payload* contains the [request](api_reference.html.md) body.

* [Installation](api_install.html.md)
  * [Distributions](api_install.html.md#distributions)
    * [Ubuntu](api_install.html.md#ubuntu)
    * [RHEL](api_install.html.md#rhel)
    * [Azure Linux](api_install.html.md#azure-linux)
  * [Startup](api_install.html.md#startup)
* [Upgrade](api_upgrade.html.md)
* [Configuration](api_config.html.md)
  * [Authentication directives](api_config.html.md#authentication-directives)
  * [Listener directives](api_config.html.md#listener-directives)
  * [Other directives](api_config.html.md#other-directives)
  * [Environment directives](api_config.html.md#environment-directives)
* [Examples](api_examples.html.md)
