Your routing isn't quite correct, largely because you're referencing a parameter that isn't there. If you include a default option, you should also have a placeholder in the template to match it:
For instance (based on the URL in your question):
config.Routes.MapHttpRoute(
name: "reportsApi",
routeTemplate: "api/{controller}/{reports}/list/",
defaults: new { reports = RouteParameter.Optional }
);
Looking at it, I'm not sure what the 'list' is doing for you in that particular route, but based on your URL I can only assume it's either ReportController.List(), or an acceptable id parameter for ReportController.Get(). My supposition is that it's using the default route when you change the address.