Often an endpoint's primary output is an email, rather than JSON, but it can be messy to send emails synchronously.

Background Tasks

There are often tasks API needs to perform that take too long to do synchronously. In those cases it's often better to run the task asychronously and let initiator of the request retrieve the results when the task has finished.