Skip to content
Start Trading

Accounts

Manage trading accounts, balances, and portfolio history.

Get Accounts
$ clst v1:accounts get-accounts
GET/v1/accounts
Get Account By ID
$ clst v1:accounts get-account-by-id
GET/v1/accounts/{account_id}
Patch Account By ID
$ clst v1:accounts patch-account-by-id
PATCH/v1/accounts/{account_id}
Get Account Balances
$ clst v1:accounts get-account-balances
GET/v1/accounts/{account_id}/balances
Get Portfolio History
$ clst v1:accounts get-portfolio-history
GET/v1/accounts/{account_id}/portfolio-history
List non-trade activities
$ clst v1:accounts get-non-trade-activities
GET/v1/accounts/{account_id}/non-trade-activities
ModelsExpand Collapse
account: object { id, account_holder_entity_id, account_holder_entity_kind, 8 more }

Represents a trading account

id: number

The unique identifier for the account

account_holder_entity_id: number

The account holder entity identifier

account_holder_entity_kind: "NATURAL_PERSON" or "LEGAL_ENTITY" or "OTHER"

Whether the account holder is a natural person or a legal entity.

"NATURAL_PERSON"
"LEGAL_ENTITY"
"OTHER"
full_name: string

The full legal name of the account

open_date: string

The date the account was opened

options_level: number

The options level of the account

short_name: string

The short name of the account

status: "ACTIVE" or "INACTIVE" or "CLOSED"

The current status of the account

"ACTIVE"
"INACTIVE"
"CLOSED"
subtype: "CASH" or "MARGIN" or "OTHER"

The sub-type of account

"CASH"
"MARGIN"
"OTHER"
type: "CUSTOMER" or "OTHER"

The type of account

"CUSTOMER"
"OTHER"
close_date: optional string

The date the account was closed, if applicable When a null/undefined value is observed, it indicates it does not apply.

account_balances: object { account_id, buying_power, currency, 20 more }

Represents the balance details for a trading account

account_id: number

The unique identifier for the account

buying_power: string

The total buying power available in the account: base buying power plus the open order adjustment, where base buying power is maintenance margin excess times the multiplier for intraday and overnight margin excess times the multiplier for overnight.

currency: string

Currency identifier for all monetary values.

current_session: "intraday" or "overnight"

The session whose values the engine is applying to these balances. buying_power, multiplier, and margin_details.usage reflect this session. A closed market reports overnight.

"intraday"
"overnight"
daily_change: string

Difference between current equity and start-of-day equity.

daily_pnl: string

Total profit or loss since start of day.

daily_realized_pnl: string

Realized profit or loss since start of day.

daily_unrealized_pnl: string

Total unrealized profit or loss across all positions relative to prior close.

equity: string

The total equity in the account: cash plus long market value plus short market value, where short market value is negative.

long_market_value: string

The total market value of all long positions.

margin_type: "OTHER" or "NONE" or "PORTFOLIO_MARGIN" or 6 more

The applicable margin model for the account

"OTHER"
"NONE"
"PORTFOLIO_MARGIN"
"RISK_BASED_HAIRCUT_BROKER_DEALER"
"REG_T"
"RISK_BASED_HAIRCUT_MARKET_MAKER"
"CIRO"
"FUTURES_NLV"
"FUTURES_TOT_EQ"
open_order_adjustment: string

Buying power correction from open orders, computed as projected buying power minus actual buying power. A negative value means open orders are consuming buying power.

settled_cash: string

The amount of cash that is settled and available for withdrawal or trading.

sod: object { buying_power, equity, long_market_value, 5 more }

Start-of-day snapshot balances.

buying_power: string

Start-of-day buying power.

equity: string

Start-of-day equity.

long_market_value: string

Start-of-day long market value.

short_market_value: string

Start-of-day short market value.

asof: optional string

Timestamp for the start-of-day values. When a null/undefined value is observed, it indicates that there is no available data.

maintenance_margin_excess: optional string

Start-of-day maintenance margin excess: the difference between equity and the maintenance margin requirement. When a null/undefined value is observed, it indicates it does not apply.

maintenance_margin_requirement: optional string

Start-of-day maintenance margin requirement: the amount of equity required to maintain current positions. When a null/undefined value is observed, it indicates it does not apply.

trade_cash: optional string

Start-of-day trade cash. When a null/undefined value is observed, it indicates it does not apply.

trade_cash: string

Trade-date effective cash.

unrealized_pnl: string

Total unrealized profit or loss across all open positions.

unsettled_credits: string

Trade-date unsettled cash credits.

unsettled_debits: string

Trade-date unsettled cash debits.

withdrawable_cash: string

The amount of cash currently available to withdraw.

margin_details: optional object { initial_margin_excess, initial_margin_requirement, intraday_details, 7 more }

Margin-account-only details. When a null/undefined value is observed, it indicates it does not apply.

initial_margin_excess: string

The difference between equity and the initial margin requirement.

initial_margin_requirement: string

The amount of equity required to open new positions.

intraday_details: object { buying_power, multiplier }

Intraday session margin calculation details.

buying_power: string

Maximum buying power available in the account during the session: base buying power plus the open order adjustment, where base buying power is maintenance margin excess times the multiplier for intraday and overnight margin excess times the multiplier for overnight.

multiplier: optional string

Margin multiplier for the session: 4 during intraday sessions (pre-market, regular, and after-hours) and 2 during the overnight session.

maintenance_margin_excess: string

The difference between equity and the maintenance margin requirement.

maintenance_margin_requirement: string

The amount of equity required to maintain current positions.

overnight_details: object { buying_power, multiplier }

Overnight session margin calculation details.

buying_power: string

Maximum buying power available in the account during the session: base buying power plus the open order adjustment, where base buying power is maintenance margin excess times the multiplier for intraday and overnight margin excess times the multiplier for overnight.

multiplier: optional string

Margin multiplier for the session: 4 during intraday sessions (pre-market, regular, and after-hours) and 2 during the overnight session.

overnight_margin_excess: string

The difference between equity and the overnight margin requirement.

overnight_margin_requirement: string

The amount of equity required to hold current positions overnight.

top_contributors: optional array of MarginTopContributor { initial_margin_requirement, maintenance_margin_requirement, market_value, 2 more }

Optional top margin contributors, returned only when explicitly requested.

initial_margin_requirement: string

Initial margin requirement attributable to this underlying.

maintenance_margin_requirement: string

Maintenance margin requirement attributable to this underlying.

market_value: string

Net market value attributable to this underlying.

overnight_margin_requirement: string

Overnight margin requirement attributable to this underlying.

underlying_instrument_id: string

UUID of the underlying security contributing to margin requirement.

usage: optional object { total, used }

Current usage totals. When a null/undefined value is observed, it indicates that there is no available data.

total: string

The total margin available in the current model.

used: string

The amount of margin that is currently being utilized.

multiplier: optional string

Margin multiplier: 4 during intraday sessions (pre-market, regular, and after-hours) and 2 during the overnight session. When a null/undefined value is observed, it indicates it does not apply.

short_market_value: optional string

The total market value of all short positions. When null/undefined, the value should be assumed to be zero. The field is omitted to simplify the response.

sma: optional object { asof, value }

The intraday special memorandum account (SMA) of the account holder. Omitted when no SMA is available for the current trade date, or when the account holder has more than one open account. When a null/undefined value is observed, it indicates that there is no available data.

asof: string

The time the SMA was calculated as of (UTC). During a trade date the API returns the last published value, so use this time to judge how current the value is.

value: string

The SMA amount in the account currency. The value can be negative.

account_balances_sma: object { asof, value }

The intraday special memorandum account (SMA) of an account holder.

The SMA belongs to the account holder, not to one account. The API returns it only when the account holder has a single open account.

asof: string

The time the SMA was calculated as of (UTC). During a trade date the API returns the last published value, so use this time to judge how current the value is.

value: string

The SMA amount in the account currency. The value can be negative.

account_balances_sod: object { buying_power, equity, long_market_value, 5 more }
buying_power: string

Start-of-day buying power.

equity: string

Start-of-day equity.

long_market_value: string

Start-of-day long market value.

short_market_value: string

Start-of-day short market value.

asof: optional string

Timestamp for the start-of-day values. When a null/undefined value is observed, it indicates that there is no available data.

maintenance_margin_excess: optional string

Start-of-day maintenance margin excess: the difference between equity and the maintenance margin requirement. When a null/undefined value is observed, it indicates it does not apply.

maintenance_margin_requirement: optional string

Start-of-day maintenance margin requirement: the amount of equity required to maintain current positions. When a null/undefined value is observed, it indicates it does not apply.

trade_cash: optional string

Start-of-day trade cash. When a null/undefined value is observed, it indicates it does not apply.

account_holder_entity_kind: "NATURAL_PERSON" or "LEGAL_ENTITY" or "OTHER"

Whether an account holder is a natural person or a legal entity.

"NATURAL_PERSON"
"LEGAL_ENTITY"
"OTHER"
account_list: array of Account { id, account_holder_entity_id, account_holder_entity_kind, 8 more }
id: number

The unique identifier for the account

account_holder_entity_id: number

The account holder entity identifier

account_holder_entity_kind: "NATURAL_PERSON" or "LEGAL_ENTITY" or "OTHER"

Whether the account holder is a natural person or a legal entity.

"NATURAL_PERSON"
"LEGAL_ENTITY"
"OTHER"
full_name: string

The full legal name of the account

open_date: string

The date the account was opened

options_level: number

The options level of the account

short_name: string

The short name of the account

status: "ACTIVE" or "INACTIVE" or "CLOSED"

The current status of the account

"ACTIVE"
"INACTIVE"
"CLOSED"
subtype: "CASH" or "MARGIN" or "OTHER"

The sub-type of account

"CASH"
"MARGIN"
"OTHER"
type: "CUSTOMER" or "OTHER"

The type of account

"CUSTOMER"
"OTHER"
close_date: optional string

The date the account was closed, if applicable When a null/undefined value is observed, it indicates it does not apply.

account_settings: object { risk }
risk: optional object { max_notional }

Risk settings for the account When a null/undefined value is observed, it indicates that there is no available data.

max_notional: optional string

The maximum notional value available to the account. On update, a value must be 0 or greater, null clears the limit, and omitting the field leaves the limit unchanged. When a null/undefined value is observed, it indicates that there is no available data.

account_status: "ACTIVE" or "INACTIVE" or "CLOSED"

Account status

"ACTIVE"
"INACTIVE"
"CLOSED"
account_subtype: "CASH" or "MARGIN" or "OTHER"

Account subtype classification providing more granular categorization

"CASH"
"MARGIN"
"OTHER"
account_type: "CUSTOMER" or "OTHER"

Account type classification

"CUSTOMER"
"OTHER"
account_with_personal_details: object { id, account_holder_entity_id, account_holder_entity_kind, 12 more }

Represents a trading account

id: number

The unique identifier for the account

account_holder_entity_id: number

The account holder entity identifier

account_holder_entity_kind: "NATURAL_PERSON" or "LEGAL_ENTITY" or "OTHER"

Whether the account holder is a natural person or a legal entity.

"NATURAL_PERSON"
"LEGAL_ENTITY"
"OTHER"
full_name: string

The full legal name of the account

open_date: string

The date the account was opened

options_level: number

The options level of the account

short_name: string

The short name of the account

status: "ACTIVE" or "INACTIVE" or "CLOSED"

The current status of the account

"ACTIVE"
"INACTIVE"
"CLOSED"
subtype: "CASH" or "MARGIN" or "OTHER"

The sub-type of account

"CASH"
"MARGIN"
"OTHER"
type: "CUSTOMER" or "OTHER"

The type of account

"CUSTOMER"
"OTHER"
close_date: optional string

The date the account was closed, if applicable When a null/undefined value is observed, it indicates it does not apply.

country_of_tax_residency: optional string

The country of tax residency of the account-holder entity. null when not on file or entity reference data is unavailable. When a null/undefined value is observed, it indicates that there is no available data.

date_of_birth: optional string

The date of birth of the account holder’s primary contact. null when not on file or entity reference data is unavailable. When a null/undefined value is observed, it indicates that there is no available data.

mailing_address: optional object { city, country, line1, 3 more }

The mailing address of the account-holder entity. null when no mailing address is on file or entity reference data is unavailable. When a null/undefined value is observed, it indicates that there is no available data.

city: string

City

country: string

Country

line1: string

First street address line

postal_code: string

Postal code

line2: optional string

Second street address line When a null/undefined value is observed, it indicates it does not apply.

state: optional string

State or province When a null/undefined value is observed, it indicates it does not apply.

phone_number: optional string

The phone number of the account holder’s primary contact. null when not on file or entity reference data is unavailable. When a null/undefined value is observed, it indicates that there is no available data.

activity_state: "settled" or "cancelled"

The states exposed by this endpoint.

"settled"
"cancelled"
activity_type: "money_movement" or "interest" or "fee" or 7 more

Type of an activity.

"money_movement"
"interest"
"fee"
"dividend"
"option_event"
"transfer"
"corporate_action"
"tax_withholding"
"adjustment"
"other"
address: object { city, country, line1, 3 more }

A postal address.

city: string

City

country: string

Country

line1: string

First street address line

postal_code: string

Postal code

line2: optional string

Second street address line When a null/undefined value is observed, it indicates it does not apply.

state: optional string

State or province When a null/undefined value is observed, it indicates it does not apply.

margin_details: object { initial_margin_excess, initial_margin_requirement, intraday_details, 7 more }
initial_margin_excess: string

The difference between equity and the initial margin requirement.

initial_margin_requirement: string

The amount of equity required to open new positions.

intraday_details: object { buying_power, multiplier }

Intraday session margin calculation details.

buying_power: string

Maximum buying power available in the account during the session: base buying power plus the open order adjustment, where base buying power is maintenance margin excess times the multiplier for intraday and overnight margin excess times the multiplier for overnight.

multiplier: optional string

Margin multiplier for the session: 4 during intraday sessions (pre-market, regular, and after-hours) and 2 during the overnight session.

maintenance_margin_excess: string

The difference between equity and the maintenance margin requirement.

maintenance_margin_requirement: string

The amount of equity required to maintain current positions.

overnight_details: object { buying_power, multiplier }

Overnight session margin calculation details.

buying_power: string

Maximum buying power available in the account during the session: base buying power plus the open order adjustment, where base buying power is maintenance margin excess times the multiplier for intraday and overnight margin excess times the multiplier for overnight.

multiplier: optional string

Margin multiplier for the session: 4 during intraday sessions (pre-market, regular, and after-hours) and 2 during the overnight session.

overnight_margin_excess: string

The difference between equity and the overnight margin requirement.

overnight_margin_requirement: string

The amount of equity required to hold current positions overnight.

top_contributors: optional array of MarginTopContributor { initial_margin_requirement, maintenance_margin_requirement, market_value, 2 more }

Optional top margin contributors, returned only when explicitly requested.

initial_margin_requirement: string

Initial margin requirement attributable to this underlying.

maintenance_margin_requirement: string

Maintenance margin requirement attributable to this underlying.

market_value: string

Net market value attributable to this underlying.

overnight_margin_requirement: string

Overnight margin requirement attributable to this underlying.

underlying_instrument_id: string

UUID of the underlying security contributing to margin requirement.

usage: optional object { total, used }

Current usage totals. When a null/undefined value is observed, it indicates that there is no available data.

total: string

The total margin available in the current model.

used: string

The amount of margin that is currently being utilized.

margin_details_usage: object { total, used }
total: string

The total margin available in the current model.

used: string

The amount of margin that is currently being utilized.

margin_session: "intraday" or "overnight"

The margin session applied to an account’s balances.

"intraday"
"overnight"
margin_session_details: object { buying_power, multiplier }
buying_power: string

Maximum buying power available in the account during the session: base buying power plus the open order adjustment, where base buying power is maintenance margin excess times the multiplier for intraday and overnight margin excess times the multiplier for overnight.

multiplier: optional string

Margin multiplier for the session: 4 during intraday sessions (pre-market, regular, and after-hours) and 2 during the overnight session.

margin_top_contributor: object { initial_margin_requirement, maintenance_margin_requirement, market_value, 2 more }
initial_margin_requirement: string

Initial margin requirement attributable to this underlying.

maintenance_margin_requirement: string

Maintenance margin requirement attributable to this underlying.

market_value: string

Net market value attributable to this underlying.

overnight_margin_requirement: string

Overnight margin requirement attributable to this underlying.

underlying_instrument_id: string

UUID of the underlying security contributing to margin requirement.

margin_type: "OTHER" or "NONE" or "PORTFOLIO_MARGIN" or 6 more

An account’s margin type

"OTHER"
"NONE"
"PORTFOLIO_MARGIN"
"RISK_BASED_HAIRCUT_BROKER_DEALER"
"REG_T"
"RISK_BASED_HAIRCUT_MARKET_MAKER"
"CIRO"
"FUTURES_NLV"
"FUTURES_TOT_EQ"
non_trade_activity: object { id, account_id, activity_subtype, 13 more }
id: string

ID for the activity, in UUID-v7 format.

account_id: string

Account ID

activity_subtype: string

Subtype within its activity_type.

activity_type: "money_movement" or "interest" or "fee" or 7 more

Categorization for the activity.

"money_movement"
"interest"
"fee"
"dividend"
"option_event"
"transfer"
"corporate_action"
"tax_withholding"
"adjustment"
"other"
amount: string

Cash amount change.

created_at: string

The creation time at UTC, when this activity became part of the ledger

currency: string

Currency of the cash amount. Always USD for now.

effective_date: string

Effective date for the activity

instrument_type: "COMMON_STOCK" or "INDEX" or "OPTION" or "CASH"

The security type.

"COMMON_STOCK"
"INDEX"
"OPTION"
"CASH"
memo: string

Memo

qty: string

Quantity change in the instrument.

state: "settled" or "cancelled"

State for this activity.

"settled"
"cancelled"
cancelled_reference_id: optional string

Reference ID for the record that is being cancelled. Present only on records where the activity state is ‘cancelled’. The contents of this fields points at the reference_id of the original record that is being cancelled by this record.

instrument_id: optional string

Instrument identifier. Omitted when the activity has no single resolvable instrument.

reference_id: optional string

Reference ID for the activity, in ULID format. Present only on records where activity state is ‘settled’. When a activity is cancelled, the cancelation record is pointing at this reference_id.

symbol: optional string

Symbol of the instrument. Omitted when the activity has no single resolvable instrument.

non_trade_activity_list: array of NonTradeActivity { id, account_id, activity_subtype, 13 more }
id: string

ID for the activity, in UUID-v7 format.

account_id: string

Account ID

activity_subtype: string

Subtype within its activity_type.

activity_type: "money_movement" or "interest" or "fee" or 7 more

Categorization for the activity.

"money_movement"
"interest"
"fee"
"dividend"
"option_event"
"transfer"
"corporate_action"
"tax_withholding"
"adjustment"
"other"
amount: string

Cash amount change.

created_at: string

The creation time at UTC, when this activity became part of the ledger

currency: string

Currency of the cash amount. Always USD for now.

effective_date: string

Effective date for the activity

instrument_type: "COMMON_STOCK" or "INDEX" or "OPTION" or "CASH"

The security type.

"COMMON_STOCK"
"INDEX"
"OPTION"
"CASH"
memo: string

Memo

qty: string

Quantity change in the instrument.

state: "settled" or "cancelled"

State for this activity.

"settled"
"cancelled"
cancelled_reference_id: optional string

Reference ID for the record that is being cancelled. Present only on records where the activity state is ‘cancelled’. The contents of this fields points at the reference_id of the original record that is being cancelled by this record.

instrument_id: optional string

Instrument identifier. Omitted when the activity has no single resolvable instrument.

reference_id: optional string

Reference ID for the activity, in ULID format. Present only on records where activity state is ‘settled’. When a activity is cancelled, the cancelation record is pointing at this reference_id.

symbol: optional string

Symbol of the instrument. Omitted when the activity has no single resolvable instrument.

portfolio_history_response: object { segments }
segments: array of PortfolioHistorySegment { date, eod_equity, realized_pnl, 7 more }
date: string

The date for this segment

eod_equity: string

The equity at the end of the trading day.

realized_pnl: string

Sum of the profit and loss realized from position closing trading activity.

sod_equity: string

The equity at the start of the trading day.

unrealized_pnl: string

Sum of the profit and loss from market changes.

bought_notional: optional string

Amount bought MTM

day_pnl: optional string

Sum of the profit and loss from intraday trading activities for the trading day.

net_pnl: optional string

P&L after netting all realized and unrealized P&L, adjustments, dividends, change in accruals, income and expenses

position_pnl: optional string

P&L attributable to start-of-day (carried) positions from market movement during this trading day.

sold_notional: optional string

Amount sold MTM

portfolio_history_segment: object { date, eod_equity, realized_pnl, 7 more }
date: string

The date for this segment

eod_equity: string

The equity at the end of the trading day.

realized_pnl: string

Sum of the profit and loss realized from position closing trading activity.

sod_equity: string

The equity at the start of the trading day.

unrealized_pnl: string

Sum of the profit and loss from market changes.

bought_notional: optional string

Amount bought MTM

day_pnl: optional string

Sum of the profit and loss from intraday trading activities for the trading day.

net_pnl: optional string

P&L after netting all realized and unrealized P&L, adjustments, dividends, change in accruals, income and expenses

position_pnl: optional string

P&L attributable to start-of-day (carried) positions from market movement during this trading day.

sold_notional: optional string

Amount sold MTM

risk_settings: object { max_notional }

Risk settings for an account

max_notional: optional string

The maximum notional value available to the account. On update, a value must be 0 or greater, null clears the limit, and omitting the field leaves the limit unchanged. When a null/undefined value is observed, it indicates that there is no available data.