json-rpc generic api