How to send zip files to ASP.NET WebApi

I’m wondering how I can send a zip file to a WebApi controller and vice versa.
The problem is that my WebApi uses json to transmit data. A zip file is not serializable, either is a stream. A string would be serializable. But there has to be an other solution than to convert the zip into a string and than send the string. That just sounds wrong.

How can I generate a temporary Zip file, then auto-remove it after it is downloaded?

I have a download page where there are 3 download options: Word, Zip, and PDF. There is a folder containing .doc files. When a user clicks the Zip option on the page, I want ASP.NET to zip the folder with the .doc files into a temporary .zip file. Then the client will download it from the server. When the user’s download is finished, the temporary Zip file should delete itself.