Why am I getting a 404 response from my POST in web api

The default action selection behavior in ASP.NET Web API cares about your action method parameters as well. If they are simple type objects and they are not optional, you will need to supply them in order to invoke that particular action method. In your case, you should send a request against a URI as below:

/api/account?user=Foo&password=bar

If you wanna get these values inside the request body rather than the query string (which is a better idea), just create a User object and send the request accordingly:

public class User { 
    public string Name {get;set;}
    public string Password {get;set;}
}

Request:

POST http://localhost:8181/api/account HTTP/1.1

Content-Type: application/json

Host: localhost:8181

Content-Length: 33

{"Name": "foo", "Password":"bar"}

And your action method should look like something below:

public HttpResponseMessage Post(User user) {

    //do what u need to do here

    //return back the proper response.
    //e.g: If you have created something, return back 201

    return new HttpResponseMessage(HttpStatusCode.Created);
}

When we are posting a json it expect a class so create class in model folder like this

public class Credential
{
    public string username { get; set; }
    public string password { get;set; }
}

and now change the parameter

[HttpPost]
public bool Post(Credential credential)
{
     return true; 
}

Try now everything will work smooth