POST

/api/v1/bots/dca

Permission: BOTS_WRITESecurity: BEARER_JWT

Creates a new Dollar Cost Averaging (DCA) bot. Configure initial base order size, safety order laddering, price deviation scaling, profit targets, and stop-loss risk controls executed by the high-performance Tokio trade engine.

See DCA Bot Entity for complete attribute definitions and live telemetry structures
DCA Bot Entity

Body Parameters

21
namestring required

User-defined label for the DCA Bot (1 to 100 characters).

exchangestring required
default: binance

Exchange identifier where the bot executes orders: binance, bybit, okx, kucoin, bitget, reku, indodax, tokocrypto, etc.

connection_iduuid required

UUID of the connected exchange credentials entity from GET /api/v1/exchanges.

pairstring required

Trading pair in Quentrade format (e.g. BTC/USDT, ETH/USDT, SOL/USDT).

market_typestring
default: spot

Trading market type: 'spot' or 'futures'.

strategystring required
default: Long

Trading strategy direction: 'Long' (buy low, sell high) or 'Short' (futures only).

start_order_typestring
default: limit

Initial order execution type: 'limit' or 'market'.

base_order_sizenumber required

Initial base order size in quote currency (e.g. 100 USDT).

safety_order_sizenumber required

Initial safety order size in quote currency (e.g. 50 USDT).

safety_order_step_scalenumber
default: 1.0

Step scale multiplier applied to subsequent safety order price deviations.

safety_order_volume_scalenumber
default: 1.0

Volume multiplier applied to increase size of subsequent safety orders.

price_deviationnumber required
default: 1.0

Percentage price drop from average entry price to trigger each safety order.

max_safety_ordersinteger required
default: 5

Maximum number of safety orders the bot can execute per trade cycle.

take_profit_pctnumber required

Target profit percentage above average entry price to close the deal (e.g. 2.5).

tp_typestring
default: percentage

Take profit calculation type: 'percentage'.

tp_trailingboolean
default: false

Enables trailing take profit to let profits run during strong rallies.

tp_trailing_pctnumber
default: 0.0

Trailing profit deviation percentage (e.g. 0.2).

stop_loss_enabledboolean
default: false

Enables stop loss protection to cap maximum drawdown.

stop_loss_pctnumber
default: 0.0

Stop loss percentage below average entry price (e.g. 5.0).

cooldown_between_tradesinteger
default: 0

Cooldown period in seconds before starting a new deal after closing.

start_conditionstring
default: asap

Deal start trigger condition: 'asap', 'manual', or 'signal'.

dev_create_dca_bot.additional_info.title

dev_create_dca_bot.additional_info.leverage_title

dev_create_dca_bot.additional_info.leverage_desc

Currency Rates & Leverage Limits

dev_create_dca_bot.additional_info.tp_steps_title

dev_create_dca_bot.additional_info.tp_steps_desc

take_profit_steps.json
{
  "take_profit_steps": [
    {
      "amount_percentage": 50,
      "profit_percentage": 10
    },
    {
      "amount_percentage": 50,
      "profit_percentage": 20
    }
  ]
}

dev_create_dca_bot.additional_info.strategy_title

dev_create_dca_bot.additional_info.strategy_desc

Available Strategy List

Example Request

create_dca_bot_request.json
POST /api/v1/bots/dca
{
  "name": "BTC/USDT Classic Long DCA",
  "exchange": "binance",
  "connection_id": "b3e0c4a1-8d2a-4a5f-b567-9c123456789a",
  "pair": "BTC/USDT",
  "market_type": "spot",
  "strategy": "Long",
  "start_order_type": "limit",
  "base_order_size": 100,
  "safety_order_size": 50,
  "safety_order_step_scale": 1.5,
  "safety_order_volume_scale": 1.5,
  "price_deviation": 1,
  "max_safety_orders": 5,
  "take_profit_pct": 2.5,
  "tp_type": "percentage",
  "tp_trailing": true,
  "tp_trailing_pct": 0.2,
  "stop_loss_enabled": true,
  "stop_loss_pct": 5,
  "sl_type": "stop_loss",
  "cooldown_between_trades": 60,
  "start_condition": "asap"
}

Example Responses

Returns the newly created DCA Bot entity with default status 'stopped'. Call POST /api/v1/bots/dca//start to launch execution.

create_dca_bot_201.json
201 Created
{
  "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "user_id": "9a1b2c3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d",
  "connection_id": "b3e0c4a1-8d2a-4a5f-b567-9c123456789a",
  "name": "BTC/USDT Classic Long DCA",
  "exchange": "binance",
  "pair": "BTC/USDT",
  "market_type": "spot",
  "strategy": "Long",
  "start_order_type": "limit",
  "base_order_size": 100,
  "safety_order_size": 50,
  "safety_order_step_scale": 1.5,
  "safety_order_volume_scale": 1.5,
  "quote_currency": "USDT",
  "price_deviation": 1,
  "max_safety_orders": 5,
  "max_active_trades": 1,
  "cooldown_between_trades": 60,
  "take_profit_pct": 2.5,
  "tp_type": "percentage",
  "tp_trailing": true,
  "tp_trailing_pct": 0.2,
  "stop_loss_enabled": true,
  "stop_loss_pct": 5,
  "sl_type": "stop_loss",
  "start_condition": "asap",
  "status": "stopped",
  "active_trades": 0,
  "total_profit": 0,
  "total_trades": 0,
  "created_at": "2026-08-20T10:15:30.000Z",
  "updated_at": "2026-08-20T10:15:30.000Z"
}