Account Actions
Perform advanced account management operations with powerful tools for resetting demo accounts, switching risk categories, updating liquidity, and managing trading halts.
Reset Demo Account State
Reset a simulation account to its market-open state on a given date. This is useful for returning accounts to their starting values or fixing issues that occurred during trading.
The account must still have an active trading permission assigned to the trader. Accounts that were automatically revoked are not included and must be reset separately by your organization.
Via Dashboard
- Navigate to the Query Builder and select “accounts” from the Repository Name dropdown
- Enter IDs of accounts you want to reset to the given date
- For example, to find accounts with a negative P/L affected by a trading issue, use a WHERE clause like
active AND !isNull(cta.ctaContact) AND dollarTotalPL < 0
- For example, to find accounts with a negative P/L affected by a trading issue, use a WHERE clause like
- Click “Run Query” and wait for the list to populate
- Select one or more accounts (bulk execution is allowed)
- Click “ACTIONS”, then “Reset Demo Account State”
- Select a date using the Date input, then click “APPLY”
- For example, when resetting after a trading issue, select the prior trading day to restore accounts to their start-of-day state
Bulk Operations: You can select multiple accounts for bulk execution of this action.
Via API
Use the following endpoints:
Production: https://demo.tradovateapi.com/v1/account/resetDemoAccountState
Development: https://demo-api.staging.ninjatrader.dev/v1/account/resetDemoAccountState
Send a POST request with this JSON body:
Success Response:
Error Response:
Switch Account’s Active Risk Category
Switch an account’s Risk Category to change risk parameters like max lot size, allowed products, or to switch to a trade-halted category.
Risk Category: A Risk Category is the base risk profile assigned to your account templates. We design each Risk Category based on vendor requirements. These entities define the most basic risk params associated with the account type, such as max lot size and allowed/restricted products.
Via Dashboard
- Go to the Query Builder and select ‘accounts’ from the Repository Name dropdown
- Enter relevant IDs, master ID, or SQL-like WHERE statements to filter results
- Run the query and select one or more accounts (bulk actions are allowed)
- Click “ACTIONS” and select “Switch Risk Category”
- Choose from the defined Risk Category entities for your business
- Confirm the change
Via API
Use the following endpoints:
Production: https://demo.tradovateapi.com/v1/accountRiskStatus/switchRiskCategory
Development: https://demo-api.staging.ninjatrader.dev/v1/accountRiskStatus/switchRiskCategory
Send a POST request with this JSON body:
To find all Risk Categories associated with your organization, call /riskCategory/list.
Lock or Unlock an Account
Lock or unlock an account to control trading permissions and account access. For step-by-step instructions, see Immediate Trading Halts.
For the full list of available adminAction and adminActionReasonCode values, see the setAdminAutoLiqAction API reference.
Most evaluation partners primarily use Other (with a descriptive adminActionReason) and FullBalanceWithdrawal. The Close* and Restricted* codes are typically used by NinjaTrader internal teams for brokerage account management.
There is no bulk version of setAdminAutoLiqAction. You must call the endpoint separately for each account.
Update Max Net Liquidity
Update an account’s maximum net liquidity to fix drawdown issues or adjust risk parameters.
Via Dashboard
- Use the Query Builder to find an account or list of accounts
- Select the account you want to modify
- Click “ACTIONS” and select “Update MaxNetLiq”
- Enter the desired value and click “Update”
- You should see a confirmation message appear
Via API
Use the following endpoints:
Production: https://demo.tradovateapi.com/v1/accountRiskStatus/updateMaxNetLiq
Development: https://demo-api.staging.ninjatrader.dev/v1/accountRiskStatus/updateMaxNetLiq
Send a POST request with this JSON body:
Halt Trading for a Risk Category
Halt trading for all accounts with a given risk category. For step-by-step instructions, see Immediate Trading Halts.
For scheduled halts like holidays, use RiskTimePeriod instead of Category Halt. For details and worked examples, see Scheduled Trading Halts.
Demo Account Manual Cash Adjustment
Make direct balance changes to demo accounts. Use this carefully as it may have unexpected results when dealing with auto-liquidation configurations.
Via Dashboard
- Use the Query Builder to find an account or list of accounts
- Select the account you want to modify
- Click “ACTIONS” and select “Manual Cash Adjust”
- Fill in the adjustment details:
- Amount: The credit (positive value) or debit (negative value) to the account
- Type: How the credit/debit affects other values (Manual Adjustment is typically what you want)
- Currency: The currency type of the change amount
- Description: An arbitrary comment to describe the transaction
- Click “APPLY”
Via API
For high-volume or automated workflows, use the adjustCash endpoint. It supports higher throughput than changeDemoBalance and gives you control over the change type, currency, and audit comments.
Production: https://demo.tradovateapi.com/v1/fundtransaction/adjustcash
Development: https://demo-api.staging.ninjatrader.dev/v1/fundtransaction/adjustcash
Send a POST request with this JSON body:
If your call returns a 401 “Access is denied” error, contact Evaluation Support to have the Funds:FullAccess permission added to your API key.
For simple balance changes, you can also use the changeDemoBalance endpoint, which requires only cashChange and accountId:
Production: https://demo.tradovateapi.com/v1/cashBalance/changeDemoBalance
Development: https://demo-api.staging.ninjatrader.dev/v1/cashBalance/changeDemoBalance
Bulk Operations
Bulk Trading Permission Revocation
Revoke multiple trading permissions at once using the following endpoints:
Production: https://demo.tradovateapi.com/v1/user/revokeTradingPermissions
Development: https://demo-api.staging.ninjatrader.dev/v1/user/revokeTradingPermissions
Send a POST request with this body:
- This endpoint will accept up to 1024 ID arguments
- The endpoint will skip already-revoked permissions if any are present
- If all provided IDs are for trading permissions that have already been declined, this will fail
Cancel Everything
Use the special “cancelEverything” API endpoint to cancel all subscriptions, revoke trading permissions, and clear MD subscriptions and renewals.
Important: To clear all subscriptions, you MUST call the endpoint on both live and demo environments! This endpoint should be used when an end user fails their evaluation accounts to ensure all subscriptions are expired/revoked.
Production Endpoints:
https://demo.tradovateapi.com/v1/user/cancelEverythinghttps://live.tradovateapi.com/v1/user/cancelEverything
Development Endpoints:
https://demo-api.staging.ninjatrader.dev/v1/user/cancelEverythinghttps://live-api.staging.ninjatrader.dev/v1/user/cancelEverything
Send a POST request with this JSON body:
Response:
tradovateSubscriptionIds, userPluginIds, and marketDataSubscriptionIds will only be cancelled when calling from the LIVE environment, while tradingPermissionIds will only be cancelled when calling from the DEMO environment. This is why it is necessary to call the endpoint in both environments to fully cancel the user’s membership.

