Jos said:
The API returns all types of JSON fields, nulls, booleans, dates, and so on but if you are just consuming the object I'd say they are all strings, so you will have to parse the JSON object on the client side if you want to make use of the types.
Regarding broken calls, for what I've seen it actually depends on how broken the call is. If you have a typo in one of the arguments for instance, say you type trimuser instead of trim-user, the call will work anyway as if the parameter was not there, which I guess it can be good and bad. A more broken call such as forgetting the value of screen_name produces a not very helpful error:
{
error: "This method requires authentication.",
request: "/1/statuses/user_timeline.json?screen_name"
}
Not very helpful to tell you that you need to authenticate when your error is actually having forgotten a value!
I really like the count parameter to restrcit the number of results you get back, and also the trim_user parameter cause it seems that for every result it sends back a full user object within in, so you can trim that object to grab just the id of the user.
Regarding the last two questions, my view on construction of URLs is that it should be path-style for resources and argument-style to pass parameters for instance for search. REST is about representation of resources so those resources should be (in my view) well defined through paths. When you want to pass in parameters then arguments are good. But it's just my view on it!