api request implement