If you are using web api for example, you can change your api controller action to be async. If you do so, the response will NOT return to the client until the task has completed but it will also not block other client/threads!
Example
[HttpPost]
public async Task<HttpResponseMessage> Post([FromBody]MyObject obj)
Within the method you should also use the async await pattern to create your custom request...
Have some articles for further information of how to build async web apis
http://www.dotnetcurry.com/showarticle.aspx?ID=948
and maybe watch this video