Skip to content

POST /api/admin/bounce/v1

Making a POST request to this endpoint allows the system operator to administratively bounce messages that match certain criteria, or if no criteria are provided, ALL messages.


There is no way to undo the actions carried out by this request!

The body of the post request must be a JSON object; here's an example:

    "domain": "",
    "reason": "no time to explain!11!"

and the response will look something like this, with an entry for each matching queue name and the count of matching messages that were bounced:

{"bounced":{"":42}, "total_bounced":42}

The following fields are possible in the request:


Optional string. The domain name to match. If omitted, any domain will match.


Since: Version 2023.08.22-4d895015

The functionality described in this outlined box requires version 2023.08.22-4d895015 of KumoMTA, or a more recent version.

Optional string. The routing_domain name to match. If omitted, any routing_domain will match.


Optional string. The campaign name to match. If omitted, any campaign will match.


Optional string. The tenant to match. If omitted, any tenant will match.


If you specify none of domain, campaign or tenant, then ALL queues will be bounced.

With great power, comes great responsibility!


Required. Reason to log in the delivery log.


Optional duration string. Defaults to "5m". Specifies how long this bounce directive remains active.

While active, newly injected messages that match the bounce criteria will also be bounced.

Kumo CLI

In addition to making raw API requests, you may use the kumo CLI:

$ kcli --endpoint bounce --everything --reason purge
  "id": "0234c7c9-afd3-49f9-9a4c-a1cc37fcc53b",
  "bounced": {},
  "total_bounced": 0

Run kcli bounce --help for more informtion.