client api request interface, docs halfway