To make API requests you will need to create an app and have an access token. If you haven't created an access token yet, please follow the tutorial Get an access token with Oauth2 first.
Step 1: Retrieve the base configuration of your trading bot
To retrieve the base configuration of your trading bot you will need to make a POST call to the hopper/{id}/config endpoint, where {id} is the id of your trading bot.
API endpoint:
https://api.cryptohopper.com/v1/hopper/{id}/config
When the API request is successfull you will receive a JSON response with the base configuration of your trading bot in the data field.
JSON response example:
{ "data": { "name": "name", "live": "1", "last_loaded_config": "config", "last_loaded_config_date": "1632137029", "exchange": "kucoin", "api_key": "***", "api_secret": "***", "api_passphrase": "***", "extra_api_key": "***", "extra_api_secret": "***", "okex_version": "3", "ticker_type": "bidask", "allowed_coins": [ "BTC", "ETH" ], "allow_all_coins": "1", "perc_buy_amount": "2.88", "min_buy_amount": "0.1", "min_buy_amount_force": "1", "strategy": "strategy", "num_targets_per_buy": "50", "advanced_ta_candle_size": "1800", "min_buy_score": "0.05", "min_sell_score": "-1", "rsi_candle_size": "1800", "bbands_candle_size": "60", "buy_order_type": "market", "bid_percentage": "0.2", "bid_percentage_type": "lower", "max_open_time_buy": "5", "max_open_positions": "500", "max_open_positions_per_coin": "0.1", "cooldown_when": "buys", "cooldown_count": "1", "cooldown_val": "days", "one_open_order": "1", "only_when_positive_time": "480", "stop_loss_trailing": "1", "stop_loss_trailing_percentage": "0.5", "stop_loss_trailing_arm": "2", "trailing_stop_loss_reset": "1", "trailing_stop_loss_profit": "1", "trailing_buy_percentage": "0.2", "short_stop_loss_trailing_percentage": "1", "short_stop_loss_trailing_arm": "3", "short_auto_close_positions_time": "-5 minutes", "short_auto_remove_positions_time": "-5 minutes", "short_remove_on_loss": "1", "hold_assets": "1", "auto_close_positions_time": "-7 days", "auto_dca": "1", "dca_order_type": "market", "auto_dca_time": "-5 minutes", "auto_dca_max": "1", "auto_dca_percentage": "4", "auto_dca_size": "custom", "auto_dca_size_custom": "100", "set_percentage": "1000", "sell_order_type": "market", "max_open_time": "5", "ask_percentage": "0.1", "ask_percentage_type": "higher", "send_trade_email": "1", "submit": "1", "walletscrubber_leftovers": "1", "collect_currency": "usdt", "output_live_feed": "1", "buy_btc_amount": "0.0005" } }
Step 2: Update the base configuration of your trading bot.
Now that we have retrieved the base configuration of your trading bot, we can update the base configuration of your trading bot by sending a PATCH request to the same end point we used in the previous step and supplying the updated configuration. In this example we will change the stop_loss_trailing_percentage to 0.75.
API endpoint:
https://api.cryptohopper.com/v1/hopper/{id}/config
Example JSON PATCH request:
{ "config": { "name": "name", "live": "1", "last_loaded_config": "config", "last_loaded_config_date": "1632137029", "exchange": "kucoin", "api_key": "***", "api_secret": "***", "api_passphrase": "***", "extra_api_key": "***", "extra_api_secret": "***", "okex_version": "3", "ticker_type": "bidask", "allowed_coins": [ "BTC", "ETH" ], "allow_all_coins": "1", "perc_buy_amount": "2.88", "min_buy_amount": "0.1", "min_buy_amount_force": "1", "strategy": "strategy", "num_targets_per_buy": "50", "advanced_ta_candle_size": "1800", "min_buy_score": "0.05", "min_sell_score": "-1", "rsi_candle_size": "1800", "bbands_candle_size": "60", "buy_order_type": "market", "bid_percentage": "0.2", "bid_percentage_type": "lower", "max_open_time_buy": "5", "max_open_positions": "500", "max_open_positions_per_coin": "0.1", "cooldown_when": "buys", "cooldown_count": "1", "cooldown_val": "days", "one_open_order": "1", "only_when_positive_time": "480", "stop_loss_trailing": "1", "stop_loss_trailing_percentage": "0.75", "stop_loss_trailing_arm": "2", "trailing_stop_loss_reset": "1", "trailing_stop_loss_profit": "1", "trailing_buy_percentage": "0.2", "short_stop_loss_trailing_percentage": "1", "short_stop_loss_trailing_arm": "3", "short_auto_close_positions_time": "-5 minutes", "short_auto_remove_positions_time": "-5 minutes", "short_remove_on_loss": "1", "hold_assets": "1", "auto_close_positions_time": "-7 days", "auto_dca": "1", "dca_order_type": "market", "auto_dca_time": "-5 minutes", "auto_dca_max": "1", "auto_dca_percentage": "4", "auto_dca_size": "custom", "auto_dca_size_custom": "100", "set_percentage": "1000", "sell_order_type": "market", "max_open_time": "5", "ask_percentage": "0.1", "ask_percentage_type": "higher", "send_trade_email": "1", "submit": "1", "walletscrubber_leftovers": "1", "collect_currency": "usdt", "output_live_feed": "1", "buy_btc_amount": "0.0005" } }
When the API request is successfull you will receive a 200 response with the updated config object returned and a message stating: "Config saved.".
JSON response example:
{ "data": { "config": { "name": "name", "live": "1", "last_loaded_config": "config", "last_loaded_config_date": "1632137029", "paper_trading_account": "0", "exchange": "kucoin", "api_key": "***", "api_secret": "***", "api_passphrase": "***", "extra_api_key": "***", "extra_api_secret": "***", "okex_version": "3", "ticker_type": "bidask", "allowed_coins": [ "BTC", "ETH" ], "allow_all_coins": "1", "perc_buy_amount": "2.88", "min_buy_amount": "0.1", "min_buy_amount_force": "1", "strategy": "strategy", "num_targets_per_buy": "50", "advanced_ta_candle_size": "1800", "advanced_ta_stoch_slow_k_matype": "0", "advanced_ta_stoch_slow_d_matype": "0", "advanced_ta_stochrsi_fast_d_matype": "0", "advanced_ta_bbands_matype": "0", "rsi_candle_size": "1800", "bbands_candle_size": "60", "bbands_deviation": "", "buy_order_type": "market", "bid_percentage": "0.2", "bid_percentage_type": "lower", "max_open_time_buy": "5", "max_open_positions": "500", "max_open_positions_per_coin": "0.1", "cooldown_when": "buys", "cooldown_count": "1", "cooldown_val": "days", "one_open_order": "1", "only_when_positive_time": "480", "arbitrage": "0", "stop_loss_trailing": "1", "stop_loss_trailing_percentage": "0.75", "stop_loss_trailing_arm": "2", "trailing_stop_loss_reset": "1", "trailing_stop_loss_profit": "1", "trailing_buy_percentage": "0.2", "short_stop_loss_trailing_percentage": "1", "short_stop_loss_trailing_arm": "3", "short_auto_close_positions_time": "-5 minutes", "short_auto_remove_positions_time": "-5 minutes", "short_remove_on_loss": "1", "hold_assets": "1", "auto_close_positions_time": "-7 days", "auto_dca": "1", "dca_order_type": "market", "auto_dca_time": "-5 minutes", "auto_dca_max": "1", "auto_dca_percentage": "4", "auto_dca_size": "custom", "auto_dca_size_custom": "100", "set_percentage": "1000", "sell_order_type": "market", "max_open_time": "5", "ask_percentage": "0.1", "ask_percentage_type": "higher", "send_trade_email": "1", "submit": "1", "stop_buying": "0", "stop_selling": "0", "walletscrubber_leftovers": "1", "walletscrubber_auto": "0", "walletscrubber_noopen": "0", "collect_currency": "usdt", "output_live_feed": "1", "output_errors_only": "0", "autosync": "0", "autosync_all_coins": "0", "send_trade_error_email": "0", "send_cancelled_email": "0", "buy_btc_amount": "0.0005", "max_amount_allocated": "", "advanced_ta_stoch_fast_k": "", "advanced_ta_stoch_slow_k": "", "advanced_ta_stoch_slow_d": "", "advanced_ta_stoch_oversold": "", "advanced_ta_stoch_overbought": "", "advanced_ta_stochrsi_period": "", "advanced_ta_stochrsi_fast_k": "", "advanced_ta_stochrsi_fast_d": "", "advanced_ta_stochrsi_oversold": "", "advanced_ta_stochrsi_overbought": "", "advanced_ta_rsi_period": "", "advanced_ta_rsi_oversold": "", "advanced_ta_rsi_overbought": "", "advanced_ta_macd_fast_period": "", "advanced_ta_macd_slow_period": "", "advanced_ta_macd_signal_period": "", "advanced_ta_ema_short_period": "", "advanced_ta_ema_long_period": "", "advanced_ta_sma_short_period": "", "advanced_ta_sma_long_period": "", "advanced_ta_kama_short_period": "", "advanced_ta_kama_long_period": "", "advanced_ta_bbands_period": "", "advanced_ta_bbands_dev_up": "", "advanced_ta_bbands_dev_low": "", "rsi_period": "", "rsi_oversold": "", "bbands_days": "", "stop_loss_percentage": "", "max_open_short_positions": "", "short_percentage_profit": "" }, "message": "Config saved." } }
Hopefully you managed to update the base configuration of your trading bot after reading this tutorial.