Difference between Web Services and Web APIs:

  Controller WEB API Controller
assembly "System.Web.Mvc" "System.Web.Http"

The Web API helps the creation of RESTful services over the .Net Framework but the MVC does not support.


Use Controller to render your normal views.

We can use the MVC for developing  the Web application that replies as both data and views

ApiController action only return data that is serialized and sent to the client.

Web API is used for generating the HTTP services that replies only as data.

ReturnType MVC returns the data in the JSON format by using JSONResult.

.Web API controllers do not return views, they return data.

The Web API returns the data in various formats, such as JSON, XML and other format based on the accept header of the request.

When to use if you're writing an HTML based web/internet/intranet application - maybe with the occasional AJAX call returning JSON here and there - stick with MVC/Controller. If you want to provide a data-driven/REST-ful interface to a system, go with WebAPI.
content negotiation, self-hosting content negotiation, self-hosting are not supported by the MVC.

The Web API supports content negotiation, self hosting.