Skip to main content
PATCH
Update a trading rule

Authorizations

Authorization
string
header
required

JWT Bearer token for user session auth. Format: "Bearer {token}". Used by User and Organization endpoints.

Path Parameters

ruleId
string
required

The rule ID to update

Body

application/json
name
string

New rule name (must be unique)

Example:

"Updated Rule Name"

description
string

New description (null to clear)

Example:

"Updated description"

profitTarget
number

New profit target

Example:

12000

dailyProfit
number

New daily profit cap

maxProfit
number

New max profit cap

dailyLoss
number

New daily loss limit

Example:

3000

maxLoss
number

New max loss limit

Example:

6000

dailyDrawdown
number

New daily drawdown limit

maxDrawdown
number

New max drawdown limit

drawdownType
enum<string>

Change drawdown calculation method

Available options:
static,
trailing,
eod
drawdownDenomination
enum<string>

Unit of maxDrawdown. "percent" (default) = % of the reference. "dollars" = a fixed dollar amount below the reference — required for zero-based (e.g. $0 sim funded) accounts, where any percent of $0 is a $0 floor. Example: drawdownType "trailing" + denomination "dollars" + maxDrawdown 1000 = a $1,000 trailing max loss whose floor starts at -$1,000.

Available options:
percent,
dollars
Example:

"percent"

drawdownTrailCeiling
number

For trailing drawdowns: the floor stops climbing once it reaches initialBalance + this many dollars and locks there (the "ceiling"). Example: 100 on a $0 sim funded locks the floor at +$100 once equity has peaked $1,100. null/absent = the floor trails forever.

Example:

100

newsTradingAllowed
boolean

Display-only permission flag shown to traders: trading during news events (default true). Not engine-enforced.

Example:

true

microscalpingAllowed
boolean

Display-only permission flag shown to traders: microscalping (default true). Not engine-enforced.

Example:

true

weekendHoldingAllowed
boolean

Display-only permission flag shown to traders: holding positions over the weekend (default true). Not engine-enforced.

Example:

true

overnightHoldingAllowed
boolean

Display-only permission flag shown to traders: holding positions overnight (default true). Not engine-enforced.

Example:

true

consistency
number

New consistency requirement (% — see consistency notes)

consistencyEnforced
boolean

Opt-in enforcement switch. false (default) = consistency % is informational only. true = the engine gates evaluation completion (evaluation accounts) or payout eligibility (sim_funded accounts) on the consistency rule.

Example:

true

consistencyBase
enum<string>

What the consistency % applies to. null (default) = automatic by account type: evaluation → max_target_or_pnl (cap grows once total PnL exceeds the target), sim_funded → cycle_profit (profit since the last consistency reset). max_profit_target_or_pnl is accepted as an alias of max_target_or_pnl.

Available options:
max_target_or_pnl,
max_profit_target_or_pnl,
total_pnl,
profit_target,
cycle_profit
Example:

"max_target_or_pnl"

consistencyTolerancePct
number

Daily-cap buffer as a percent of starting balance, added on top of base × consistency%. Example: 0.2 = $100 buffer on a $50,000 account.

Required range: x >= 0
Example:

0.2

consistencyLeniency
number

Flat dollar buffer added to the daily cap (e.g. 40 = $40 leniency on funded payout consistency).

Required range: x >= 0
Example:

40

consistencyMinDays
integer

Minimum profitable days required to pass an evaluation. null (default) = automatic ceil(100 / consistency), e.g. 50% → 2 days, 40% → 3 days. 0 = disabled.

Required range: x >= 0
Example:

2

consistencyProfitableDayMin
number

A trading day counts as profitable when its net PnL is at least this many dollars. Default 0 (any non-negative traded day counts).

Required range: x >= 0
Example:

0

maxPayouts
integer

When set, the Nth processed payout fires the account.max_payouts_reached webhook (e.g. "trader goes live after 5 payouts"). null = unlimited.

Required range: x >= 1
Example:

5

payoutMllLockOffset
number

Default loss-floor offset used by payouts requesting move_mll_to_lock: floor = initial balance + offset. Can be overridden per payout with lockBalance.

Required range: x >= 0
Example:

100

maxPositionByMarket
object

Per-market position limits in each market's own unit{"BINANCE": 0.5} is half a Bitcoin, not 500 of anything. A market listed here is measured against this limit instead of maxContracts, so it is never gated twice; markets left out fall back to maxContracts in mini-equivalents. Prefer this over maxContracts for any market whose contract steps fractionally.

Example:
maxContracts
number

New max contracts limit (mini-equivalent units). A rule is not tied to a market, so this is always counted in ENGINE units: one unit is one futures contract, but 0.001 BTC on the Binance perpetual. A 0.1 BTC cap is therefore 100, and 1 BTC is 1000. Read quantityStep on the contract to convert.

microConversionRatio
integer

How many micros count as 1 unit toward maxContracts (null resets to the default 10)

Required range: x >= 1
Example:

5

scalingPlan
object

New scaling plan (replaces existing; null to remove and fall back to maxContracts)

Example:
personalRiskPolicy
object

Replaces the existing personal risk policy in full; null removes it and leaves traders unconstrained.

Example:
metadata
object

New metadata. Replaces existing metadata wholesale unless mergeMetadata is true.

Example:
mergeMetadata
boolean

When true, the provided metadata keys are merged into the existing metadata instead of replacing it entirely

Example:

true

Response

Rule updated successfully

success
boolean
Example:

true

message
string
Example:

"Trading rule updated successfully"

data
object