always use the json version of endpoints; parse json responses