Skip to content
Start Trading

V1

ModelsExpand Collapse
security_type: "COMMON_STOCK" or "OPTION" or "CASH"

Security type

"COMMON_STOCK"
"OPTION"
"CASH"
sort_direction: "ASC" or "DESC"

Sort direction sorted results

"ASC"
"DESC"

V1Accounts

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
ModelsExpand Collapse
account: object { id, account_holder_entity_id, full_name, 7 more }

Represents a trading account

id: number

The unique identifier for the account

account_holder_entity_id: number

The account holder entity identifier

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, 19 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.

currency: string

Currency identifier for all monetary values.

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_total_pnl: string

Total 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.

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

Signed buying-power correction from open orders.

settled_cash: string

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

sod: object { buying_power, equity, long_market_value, 6 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.

Deprecatedday_trade_buying_power: optional string

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

maintenance_margin_excess: optional string

Start-of-day maintenance margin excess. When a null/undefined value is observed, it indicates it does not apply.

maintenance_margin_requirement: optional string

Start-of-day maintenance margin requirement. 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 { day_trade_count, initial_margin_excess, initial_margin_requirement, 8 more }

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

Deprecatedday_trade_count: number

The number of day trades executed over the 5 most recent trading days.

initial_margin_excess: string

Initial margin excess for trade-date balances.

initial_margin_requirement: string

Initial margin requirement for trade-date balances.

intraday_details: object { buying_power, multiplier }

Intraday session margin calculation details.

buying_power: string

Maximum buying power available in the account during the session.

multiplier: optional string

Effective multiplier for margin calculations during the session.

maintenance_margin_excess: string

Maintenance margin excess for trade-date balances.

maintenance_margin_requirement: string

Maintenance margin requirement for trade-date balances.

overnight_details: object { buying_power, multiplier }

Overnight session margin calculation details.

buying_power: string

Maximum buying power available in the account during the session.

multiplier: optional string

Effective multiplier for margin calculations during the session.

Deprecatedpattern_day_trader: boolean

true if the account is currently flagged as a PDT, otherwise false.

Deprecatedday_trade_buying_power_usage: optional string

The amount of day-trade buying power used during the current trading day. When null/undefined, the value should be assumed to be zero. The field is omitted to simplify the response.

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

Optional top margin contributors, returned only when explicitly requested.

Deprecatedday_trade_buying_power_usage: string

Day-trade buying power consumed by fills against this underlying on the current trade date. Populated only for pattern day trader accounts.

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.

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

Applied multiplier for margin calculations. 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.

account_balances_sod: object { buying_power, equity, long_market_value, 6 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.

Deprecatedday_trade_buying_power: optional string

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

maintenance_margin_excess: optional string

Start-of-day maintenance margin excess. When a null/undefined value is observed, it indicates it does not apply.

maintenance_margin_requirement: optional string

Start-of-day maintenance margin requirement. 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_list: array of Account { id, account_holder_entity_id, full_name, 7 more }
id: number

The unique identifier for the account

account_holder_entity_id: number

The account holder entity identifier

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 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"
margin_details: object { day_trade_count, initial_margin_excess, initial_margin_requirement, 8 more }
Deprecatedday_trade_count: number

The number of day trades executed over the 5 most recent trading days.

initial_margin_excess: string

Initial margin excess for trade-date balances.

initial_margin_requirement: string

Initial margin requirement for trade-date balances.

intraday_details: object { buying_power, multiplier }

Intraday session margin calculation details.

buying_power: string

Maximum buying power available in the account during the session.

multiplier: optional string

Effective multiplier for margin calculations during the session.

maintenance_margin_excess: string

Maintenance margin excess for trade-date balances.

maintenance_margin_requirement: string

Maintenance margin requirement for trade-date balances.

overnight_details: object { buying_power, multiplier }

Overnight session margin calculation details.

buying_power: string

Maximum buying power available in the account during the session.

multiplier: optional string

Effective multiplier for margin calculations during the session.

Deprecatedpattern_day_trader: boolean

true if the account is currently flagged as a PDT, otherwise false.

Deprecatedday_trade_buying_power_usage: optional string

The amount of day-trade buying power used during the current trading day. When null/undefined, the value should be assumed to be zero. The field is omitted to simplify the response.

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

Optional top margin contributors, returned only when explicitly requested.

Deprecatedday_trade_buying_power_usage: string

Day-trade buying power consumed by fills against this underlying on the current trade date. Populated only for pattern day trader accounts.

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.

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_details: object { buying_power, multiplier }
buying_power: string

Maximum buying power available in the account during the session.

multiplier: optional string

Effective multiplier for margin calculations during the session.

margin_top_contributor: object { day_trade_buying_power_usage, initial_margin_requirement, maintenance_margin_requirement, 2 more }
Deprecatedday_trade_buying_power_usage: string

Day-trade buying power consumed by fills against this underlying on the current trade date. Populated only for pattern day trader accounts.

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.

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"
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 When a null/undefined value is observed, it indicates that there is no available data.

V1API Version

Endpoints for API service metadata.

Get the API version.
$ clst v1:api-version get-version
GET/v1/version
ModelsExpand Collapse
version: object { version }

API version information

version: string

API version string

V1Calendar

Access clocks and financial calendars for market sessions and events.

Get Clock
$ clst v1:calendar get-clock
GET/v1/clock
Get Market Hours Calendar.
$ clst v1:calendar get-market-hours-calendar
GET/v1/calendars/market-hours
ModelsExpand Collapse
clock_detail: object { clock }

Current server time and market clock information

clock: string

Current server time in UTC

day_type: "TRADING_DAY" or "EARLY_CLOSE" or "HOLIDAY" or "WEEKEND"

Day type for market hours - indicates the type of trading day

"TRADING_DAY"
"EARLY_CLOSE"
"HOLIDAY"
"WEEKEND"
market_hours_detail: object { current_time, date, market, 5 more }

Comprehensive market hours information for a specific market and date

current_time: string

Current time in market timezone with offset

date: string

The date for which market hours are provided

market: "us_equities" or "us_options"

Market type identifier

"us_equities"
"us_options"
market_name: string

Human-readable market name

next_sessions: object { after_hours, pre_market, regular }

Next trading day’s session schedules (without time_until fields)

after_hours: optional object { close, open, time_until_close, time_until_open }

After-hours session schedule, null if not available When a null/undefined value is observed, it indicates it does not apply.

close: string

Session close timestamp with timezone offset

open: string

Session open timestamp with timezone offset

time_until_close: optional string

ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.

time_until_open: optional string

ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.

pre_market: optional object { close, open, time_until_close, time_until_open }

Pre-market session schedule, null if not available When a null/undefined value is observed, it indicates it does not apply.

close: string

Session close timestamp with timezone offset

open: string

Session open timestamp with timezone offset

time_until_close: optional string

ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.

time_until_open: optional string

ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.

regular: optional object { close, open, time_until_close, time_until_open }

Regular trading session schedule, null if holiday/weekend When a null/undefined value is observed, it indicates it does not apply.

close: string

Session close timestamp with timezone offset

open: string

Session open timestamp with timezone offset

time_until_close: optional string

ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.

time_until_open: optional string

ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.

status: object { day_type, is_open, current_session }

Market status information

day_type: "TRADING_DAY" or "EARLY_CLOSE" or "HOLIDAY" or "WEEKEND"

The type of trading day

"TRADING_DAY"
"EARLY_CLOSE"
"HOLIDAY"
"WEEKEND"
is_open: boolean

Whether the market is currently open (real-time)

current_session: optional "pre_market" or "regular" or "after_hours"

Current session type if market is open, null if closed When a null/undefined value is observed, it indicates it does not apply.

"pre_market"
"regular"
"after_hours"
timezone: string

IANA timezone identifier for the market

today_sessions: object { after_hours, pre_market, regular }

Trading session schedules for the requested date with time_until fields

after_hours: optional object { close, open, time_until_close, time_until_open }

After-hours session schedule, null if not available When a null/undefined value is observed, it indicates it does not apply.

close: string

Session close timestamp with timezone offset

open: string

Session open timestamp with timezone offset

time_until_close: optional string

ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.

time_until_open: optional string

ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.

pre_market: optional object { close, open, time_until_close, time_until_open }

Pre-market session schedule, null if not available When a null/undefined value is observed, it indicates it does not apply.

close: string

Session close timestamp with timezone offset

open: string

Session open timestamp with timezone offset

time_until_close: optional string

ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.

time_until_open: optional string

ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.

regular: optional object { close, open, time_until_close, time_until_open }

Regular trading session schedule, null if holiday/weekend When a null/undefined value is observed, it indicates it does not apply.

close: string

Session close timestamp with timezone offset

open: string

Session open timestamp with timezone offset

time_until_close: optional string

ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.

time_until_open: optional string

ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.

market_hours_detail_list: array of MarketHoursDetail { current_time, date, market, 5 more }
current_time: string

Current time in market timezone with offset

date: string

The date for which market hours are provided

market: "us_equities" or "us_options"

Market type identifier

"us_equities"
"us_options"
market_name: string

Human-readable market name

next_sessions: object { after_hours, pre_market, regular }

Next trading day’s session schedules (without time_until fields)

after_hours: optional object { close, open, time_until_close, time_until_open }

After-hours session schedule, null if not available When a null/undefined value is observed, it indicates it does not apply.

close: string

Session close timestamp with timezone offset

open: string

Session open timestamp with timezone offset

time_until_close: optional string

ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.

time_until_open: optional string

ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.

pre_market: optional object { close, open, time_until_close, time_until_open }

Pre-market session schedule, null if not available When a null/undefined value is observed, it indicates it does not apply.

close: string

Session close timestamp with timezone offset

open: string

Session open timestamp with timezone offset

time_until_close: optional string

ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.

time_until_open: optional string

ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.

regular: optional object { close, open, time_until_close, time_until_open }

Regular trading session schedule, null if holiday/weekend When a null/undefined value is observed, it indicates it does not apply.

close: string

Session close timestamp with timezone offset

open: string

Session open timestamp with timezone offset

time_until_close: optional string

ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.

time_until_open: optional string

ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.

status: object { day_type, is_open, current_session }

Market status information

day_type: "TRADING_DAY" or "EARLY_CLOSE" or "HOLIDAY" or "WEEKEND"

The type of trading day

"TRADING_DAY"
"EARLY_CLOSE"
"HOLIDAY"
"WEEKEND"
is_open: boolean

Whether the market is currently open (real-time)

current_session: optional "pre_market" or "regular" or "after_hours"

Current session type if market is open, null if closed When a null/undefined value is observed, it indicates it does not apply.

"pre_market"
"regular"
"after_hours"
timezone: string

IANA timezone identifier for the market

today_sessions: object { after_hours, pre_market, regular }

Trading session schedules for the requested date with time_until fields

after_hours: optional object { close, open, time_until_close, time_until_open }

After-hours session schedule, null if not available When a null/undefined value is observed, it indicates it does not apply.

close: string

Session close timestamp with timezone offset

open: string

Session open timestamp with timezone offset

time_until_close: optional string

ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.

time_until_open: optional string

ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.

pre_market: optional object { close, open, time_until_close, time_until_open }

Pre-market session schedule, null if not available When a null/undefined value is observed, it indicates it does not apply.

close: string

Session close timestamp with timezone offset

open: string

Session open timestamp with timezone offset

time_until_close: optional string

ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.

time_until_open: optional string

ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.

regular: optional object { close, open, time_until_close, time_until_open }

Regular trading session schedule, null if holiday/weekend When a null/undefined value is observed, it indicates it does not apply.

close: string

Session close timestamp with timezone offset

open: string

Session open timestamp with timezone offset

time_until_close: optional string

ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.

time_until_open: optional string

ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.

market_session_type: "pre_market" or "regular" or "after_hours"

Session type for market hours

"pre_market"
"regular"
"after_hours"
market_status: object { day_type, is_open, current_session }

Market status information

day_type: "TRADING_DAY" or "EARLY_CLOSE" or "HOLIDAY" or "WEEKEND"

The type of trading day

"TRADING_DAY"
"EARLY_CLOSE"
"HOLIDAY"
"WEEKEND"
is_open: boolean

Whether the market is currently open (real-time)

current_session: optional "pre_market" or "regular" or "after_hours"

Current session type if market is open, null if closed When a null/undefined value is observed, it indicates it does not apply.

"pre_market"
"regular"
"after_hours"
market_type: "us_equities" or "us_options"

Market type for market hours calendar endpoint

"us_equities"
"us_options"
session_schedule: object { close, open, time_until_close, time_until_open }

Session schedule with open and close timestamps

close: string

Session close timestamp with timezone offset

open: string

Session open timestamp with timezone offset

time_until_close: optional string

ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.

time_until_open: optional string

ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.

trading_sessions: object { after_hours, pre_market, regular }

Trading sessions for a market day with full timestamps

after_hours: optional object { close, open, time_until_close, time_until_open }

After-hours session schedule, null if not available When a null/undefined value is observed, it indicates it does not apply.

close: string

Session close timestamp with timezone offset

open: string

Session open timestamp with timezone offset

time_until_close: optional string

ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.

time_until_open: optional string

ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.

pre_market: optional object { close, open, time_until_close, time_until_open }

Pre-market session schedule, null if not available When a null/undefined value is observed, it indicates it does not apply.

close: string

Session close timestamp with timezone offset

open: string

Session open timestamp with timezone offset

time_until_close: optional string

ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.

time_until_open: optional string

ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.

regular: optional object { close, open, time_until_close, time_until_open }

Regular trading session schedule, null if holiday/weekend When a null/undefined value is observed, it indicates it does not apply.

close: string

Session close timestamp with timezone offset

open: string

Session open timestamp with timezone offset

time_until_close: optional string

ISO 8601 duration until session closes. Null if session is not currently open. When a null/undefined value is observed, it indicates it does not apply.

time_until_open: optional string

ISO 8601 duration until session opens. Null if session has already started or closed. When a null/undefined value is observed, it indicates it does not apply.

V1Instrument Data

Retrieve instrument analytics, market data, news, and related reference data.

Get All Instrument Events
$ clst v1:instrument-data get-all-instrument-events
GET/v1/instruments/events
Get Instrument Events
$ clst v1:instrument-data get-instrument-events
GET/v1/instruments/{instrument_id}/events
Get Instrument Fundamentals
$ clst v1:instrument-data get-instrument-fundamentals
GET/v1/instruments/{instrument_id}/fundamentals
Get Instrument Balance Sheet Statements
$ clst v1:instrument-data get-instrument-balance-sheet-statements
GET/v1/instruments/{instrument_id}/balance-sheets
Get Instrument Income Statements
$ clst v1:instrument-data get-instrument-income-statements
GET/v1/instruments/{instrument_id}/income-statements
Get Instrument Analyst Consensus
$ clst v1:instrument-data get-instrument-analyst-consensus
GET/v1/instruments/{instrument_id}/analyst-reporting
Get Instrument Cash Flow Statements
$ clst v1:instrument-data get-instrument-cash-flow-statements
GET/v1/instruments/{instrument_id}/cash-flow-statements
ModelsExpand Collapse
all_events_event_type: "EARNINGS" or "DIVIDEND" or "STOCK_SPLIT" or "IPO"

Event types supported by the all-events endpoint.

"EARNINGS"
"DIVIDEND"
"STOCK_SPLIT"
"IPO"
analyst_distribution: object { buy, hold, sell, 2 more }

Analyst recommendation distribution

buy: number

Number of buy recommendations

hold: number

Number of hold recommendations

sell: number

Number of sell recommendations

strong_buy: number

Number of strong buy recommendations

strong_sell: number

Number of strong sell recommendations

analyst_rating: "STRONG_BUY" or "BUY" or "HOLD" or 2 more

Analyst rating category

"STRONG_BUY"
"BUY"
"HOLD"
"SELL"
"STRONG_SELL"
fiscal_period_type: "QUARTERLY" or "ANNUAL" or "TTM" or "BIANNUAL"

Fiscal period type for earnings reports

"QUARTERLY"
"ANNUAL"
"TTM"
"BIANNUAL"
instrument_all_events_data: object { event_dates }

All-events payload grouped by date.

event_dates: array of InstrumentEventsByDate { date, events }

Events grouped by date in descending order.

date: string

Event date.

events: array of InstrumentEventEnvelope { symbol, type, dividend_event_data, 6 more }

Flat event envelopes for this date.

symbol: string

Symbol associated with the event.

type: "EARNINGS" or "DIVIDEND" or "STOCK_SPLIT" or "IPO"

Event type discriminator.

"EARNINGS"
"DIVIDEND"
"STOCK_SPLIT"
"IPO"
dividend_event_data: optional object { adjusted_dividend_amount, ex_date, declaration_date, 5 more }

Dividend payload when type is DIVIDEND. When a null/undefined value is observed, it indicates it does not apply.

adjusted_dividend_amount: string

The adjusted dividend amount accounting for any splits.

ex_date: string

The day the stock starts trading without the right to receive that dividend.

declaration_date: optional string

The declaration date of the dividend When a null/undefined value is observed, it indicates that there is no available data.

dividend_amount: optional string

The dividend amount per share. When a null/undefined value is observed, it indicates that there is no available data.

dividend_yield: optional string

The dividend yield as a percentage of the stock price. When a null/undefined value is observed, it indicates that there is no available data.

frequency: optional string

The frequency of the dividend payments (e.g., “Quarterly”, “Annual”). When a null/undefined value is observed, it indicates that there is no available data.

payment_date: optional string

The payment date is the date on which a declared stock dividend is scheduled to be paid. When a null/undefined value is observed, it indicates that there is no available data.

record_date: optional string

The record date, set by a company’s board of directors, is when a company compiles a list of shareholders of the stock for which it has declared a dividend. When a null/undefined value is observed, it indicates that there is no available data.

earnings_event_data: optional object { date, eps_actual, eps_estimate, 4 more }

Earnings payload when type is EARNINGS. When a null/undefined value is observed, it indicates it does not apply.

date: string

The date when the earnings report was published

eps_actual: optional string

The actual earnings per share (EPS) for the period When a null/undefined value is observed, it indicates that there is no available data.

eps_estimate: optional string

The estimated earnings per share (EPS) for the period When a null/undefined value is observed, it indicates that there is no available data.

eps_surprise_percent: optional string

The percentage difference between actual and estimated EPS When a null/undefined value is observed, it indicates that there is no available data.

revenue_actual: optional string

The actual total revenue for the period When a null/undefined value is observed, it indicates that there is no available data.

revenue_estimate: optional string

The estimated total revenue for the period When a null/undefined value is observed, it indicates that there is no available data.

revenue_surprise_percent: optional string

The percentage difference between actual and estimated revenue When a null/undefined value is observed, it indicates that there is no available data.

instrument_id: optional string

Instrument identifier, when available. When a null/undefined value is observed, it indicates that there is no available data.

ipo_event_data: optional object { actions, announced_at, company, 4 more }

IPO payload when type is IPO. When a null/undefined value is observed, it indicates it does not apply.

actions: optional string

IPO action. When a null/undefined value is observed, it indicates that there is no available data.

announced_at: optional string

IPO announced timestamp. When a null/undefined value is observed, it indicates that there is no available data.

company: optional string

IPO company name. When a null/undefined value is observed, it indicates that there is no available data.

exchange: optional string

IPO exchange. When a null/undefined value is observed, it indicates that there is no available data.

market_cap: optional string

IPO market cap. When a null/undefined value is observed, it indicates that there is no available data.

price_range: optional string

IPO price range. When a null/undefined value is observed, it indicates that there is no available data.

shares: optional string

IPO shares offered. When a null/undefined value is observed, it indicates that there is no available data.

name: optional string

Instrument name associated with the event, when available. When a null/undefined value is observed, it indicates that there is no available data.

reporting_currency: optional string

The currency used for reporting financial data. When a null/undefined value is observed, it indicates that there is no available data.

stock_split_event_data: optional object { date, denominator, numerator, split_type }

Stock split payload when type is STOCK_SPLIT. When a null/undefined value is observed, it indicates it does not apply.

date: string

The date of the stock split

denominator: string

The denominator of the split ratio

numerator: string

The numerator of the split ratio

split_type: string

The type of stock split (e.g., “stock-split”, “stock-dividend”, “bonus-issue”)

instrument_analyst_consensus: object { date, distribution, price_target, rating }

Aggregated analyst consensus metrics

date: string

The date the consensus snapshot was generated

distribution: optional object { buy, hold, sell, 2 more }

Count of individual analyst recommendations by category When a null/undefined value is observed, it indicates that there is no available data.

buy: number

Number of buy recommendations

hold: number

Number of hold recommendations

sell: number

Number of sell recommendations

strong_buy: number

Number of strong buy recommendations

strong_sell: number

Number of strong sell recommendations

price_target: optional object { average, currency, high, low }

Aggregated analyst price target statistics When a null/undefined value is observed, it indicates that there is no available data.

average: string

Average analyst price target

currency: string

ISO 4217 currency code of the price targets

high: string

Highest analyst price target

low: string

Lowest analyst price target

rating: optional "STRONG_BUY" or "BUY" or "HOLD" or 2 more

Consensus analyst rating When a null/undefined value is observed, it indicates that there is no available data.

"STRONG_BUY"
"BUY"
"HOLD"
"SELL"
"STRONG_SELL"
instrument_balance_sheet_statement: object { accepted_date, filing_date, period, 55 more }

A quarterly balance sheet statement for an instrument.

accepted_date: string

The date and time when the filing was accepted by the SEC

filing_date: string

The date the financial statement was filed

period: string

The fiscal period identifier (e.g., “Q1”, “Q2”, “Q3”, “Q4”)

period_type: "QUARTERLY" or "ANNUAL" or "TTM" or "BIANNUAL"

The type of fiscal period

"QUARTERLY"
"ANNUAL"
"TTM"
"BIANNUAL"
reported_currency: string

The currency in which the statement is reported (ISO 4217)

year: number

The fiscal year of the statement

account_payables: optional string

Account payables

accounts_receivables: optional string

Accounts receivables

accrued_expenses: optional string

Accrued expenses

accumulated_other_comprehensive_income_loss: optional string

Accumulated other comprehensive income/loss

additional_paid_in_capital: optional string

Additional paid-in capital

capital_lease_obligations: optional string

Capital lease obligations (total)

capital_lease_obligations_current: optional string

Capital lease obligations (current portion)

cash_and_cash_equivalents: optional string

Cash and cash equivalents

cash_and_short_term_investments: optional string

Cash and short-term investments combined

common_stock: optional string

Common stock

deferred_revenue: optional string

Deferred revenue

deferred_revenue_non_current: optional string

Deferred revenue (non-current)

deferred_tax_liabilities_non_current: optional string

Deferred tax liabilities (non-current)

goodwill: optional string

Goodwill

goodwill_and_intangible_assets: optional string

Goodwill and intangible assets combined

intangible_assets: optional string

Intangible assets

inventory: optional string

Inventory

long_term_debt: optional string

Long-term debt

long_term_investments: optional string

Long-term investments

minority_interest: optional string

Minority interest

net_debt: optional string

Net debt (total debt minus cash)

net_receivables: optional string

Net receivables

other_assets: optional string

Other assets

other_current_assets: optional string

Other current assets

other_current_liabilities: optional string

Other current liabilities

other_liabilities: optional string

Other liabilities

other_non_current_assets: optional string

Other non-current assets

other_non_current_liabilities: optional string

Other non-current liabilities

other_payables: optional string

Other payables

other_receivables: optional string

Other receivables

other_total_stockholders_equity: optional string

Other total stockholders equity

preferred_stock: optional string

Preferred stock

prepaids: optional string

Prepaids

property_plant_and_equipment_net: optional string

Property, plant and equipment net of depreciation

retained_earnings: optional string

Retained earnings

short_term_debt: optional string

Short-term debt

short_term_investments: optional string

Short-term investments

tax_assets: optional string

Tax assets

tax_payables: optional string

Tax payables

total_assets: optional string

Total assets

total_current_assets: optional string

Total current assets

total_current_liabilities: optional string

Total current liabilities

total_debt: optional string

Total debt

total_equity: optional string

Total equity

total_investments: optional string

Total investments

total_liabilities: optional string

Total liabilities

total_liabilities_and_total_equity: optional string

Total liabilities and total equity

total_non_current_assets: optional string

Total non-current assets

total_non_current_liabilities: optional string

Total non-current liabilities

total_payables: optional string

Total payables

total_stockholders_equity: optional string

Total stockholders equity

treasury_stock: optional string

Treasury stock

instrument_balance_sheet_statement_list: array of InstrumentBalanceSheetStatement { accepted_date, filing_date, period, 55 more }
accepted_date: string

The date and time when the filing was accepted by the SEC

filing_date: string

The date the financial statement was filed

period: string

The fiscal period identifier (e.g., “Q1”, “Q2”, “Q3”, “Q4”)

period_type: "QUARTERLY" or "ANNUAL" or "TTM" or "BIANNUAL"

The type of fiscal period

"QUARTERLY"
"ANNUAL"
"TTM"
"BIANNUAL"
reported_currency: string

The currency in which the statement is reported (ISO 4217)

year: number

The fiscal year of the statement

account_payables: optional string

Account payables

accounts_receivables: optional string

Accounts receivables

accrued_expenses: optional string

Accrued expenses

accumulated_other_comprehensive_income_loss: optional string

Accumulated other comprehensive income/loss

additional_paid_in_capital: optional string

Additional paid-in capital

capital_lease_obligations: optional string

Capital lease obligations (total)

capital_lease_obligations_current: optional string

Capital lease obligations (current portion)

cash_and_cash_equivalents: optional string

Cash and cash equivalents

cash_and_short_term_investments: optional string

Cash and short-term investments combined

common_stock: optional string

Common stock

deferred_revenue: optional string

Deferred revenue

deferred_revenue_non_current: optional string

Deferred revenue (non-current)

deferred_tax_liabilities_non_current: optional string

Deferred tax liabilities (non-current)

goodwill: optional string

Goodwill

goodwill_and_intangible_assets: optional string

Goodwill and intangible assets combined

intangible_assets: optional string

Intangible assets

inventory: optional string

Inventory

long_term_debt: optional string

Long-term debt

long_term_investments: optional string

Long-term investments

minority_interest: optional string

Minority interest

net_debt: optional string

Net debt (total debt minus cash)

net_receivables: optional string

Net receivables

other_assets: optional string

Other assets

other_current_assets: optional string

Other current assets

other_current_liabilities: optional string

Other current liabilities

other_liabilities: optional string

Other liabilities

other_non_current_assets: optional string

Other non-current assets

other_non_current_liabilities: optional string

Other non-current liabilities

other_payables: optional string

Other payables

other_receivables: optional string

Other receivables

other_total_stockholders_equity: optional string

Other total stockholders equity

preferred_stock: optional string

Preferred stock

prepaids: optional string

Prepaids

property_plant_and_equipment_net: optional string

Property, plant and equipment net of depreciation

retained_earnings: optional string

Retained earnings

short_term_debt: optional string

Short-term debt

short_term_investments: optional string

Short-term investments

tax_assets: optional string

Tax assets

tax_payables: optional string

Tax payables

total_assets: optional string

Total assets

total_current_assets: optional string

Total current assets

total_current_liabilities: optional string

Total current liabilities

total_debt: optional string

Total debt

total_equity: optional string

Total equity

total_investments: optional string

Total investments

total_liabilities: optional string

Total liabilities

total_liabilities_and_total_equity: optional string

Total liabilities and total equity

total_non_current_assets: optional string

Total non-current assets

total_non_current_liabilities: optional string

Total non-current liabilities

total_payables: optional string

Total payables

total_stockholders_equity: optional string

Total stockholders equity

treasury_stock: optional string

Treasury stock

instrument_cash_flow_statement: object { accepted_date, filing_date, period, 42 more }

A quarterly cash flow statement for an instrument.

accepted_date: string

The date and time when the filing was accepted by the SEC

filing_date: string

The date the financial statement was filed

period: string

The fiscal period identifier (e.g., “Q1”, “Q2”, “Q3”, “Q4”)

period_type: "QUARTERLY" or "ANNUAL" or "TTM" or "BIANNUAL"

The type of fiscal period

"QUARTERLY"
"ANNUAL"
"TTM"
"BIANNUAL"
reported_currency: string

The currency in which the statement is reported (ISO 4217)

year: number

The fiscal year of the statement

accounts_payables: optional string

Change in accounts payables

accounts_receivables: optional string

Change in accounts receivables

acquisitions_net: optional string

Net acquisitions

capital_expenditure: optional string

Capital expenditure

cash_at_beginning_of_period: optional string

Cash and cash equivalents at beginning of period

cash_at_end_of_period: optional string

Cash and cash equivalents at end of period

change_in_working_capital: optional string

Change in working capital

common_dividends_paid: optional string

Common dividends paid

common_stock_issuance: optional string

Common stock issuance

common_stock_repurchased: optional string

Common stock repurchased (buybacks)

deferred_income_tax: optional string

Deferred income tax expense

depreciation_and_amortization: optional string

Depreciation and amortization expense

effect_of_forex_changes_on_cash: optional string

Effect of foreign exchange changes on cash

free_cash_flow: optional string

Free cash flow (operating cash flow minus capital expenditure)

income_taxes_paid: optional string

Income taxes paid

interest_paid: optional string

Interest paid

inventory: optional string

Change in inventory

investments_in_property_plant_and_equipment: optional string

Investments in property, plant, and equipment

long_term_net_debt_issuance: optional string

Long-term net debt issuance

net_cash_provided_by_financing_activities: optional string

Net cash provided by financing activities

net_cash_provided_by_investing_activities: optional string

Net cash provided by investing activities

net_cash_provided_by_operating_activities: optional string

Net cash provided by operating activities

net_change_in_cash: optional string

Net change in cash during the period

net_common_stock_issuance: optional string

Net common stock issuance

net_debt_issuance: optional string

Net debt issuance (long-term + short-term)

net_dividends_paid: optional string

Net dividends paid (common + preferred)

net_income: optional string

Net income for the period

net_preferred_stock_issuance: optional string

Net preferred stock issuance

net_stock_issuance: optional string

Net stock issuance (common + preferred)

operating_cash_flow: optional string

Operating cash flow (alternative calculation)

other_financing_activities: optional string

Other financing activities

other_investing_activities: optional string

Other investing activities

other_non_cash_items: optional string

Other non-cash items

other_working_capital: optional string

Change in other working capital

preferred_dividends_paid: optional string

Preferred dividends paid

purchases_of_investments: optional string

Purchases of investments

sales_maturities_of_investments: optional string

Sales and maturities of investments

short_term_net_debt_issuance: optional string

Short-term net debt issuance

stock_based_compensation: optional string

Stock-based compensation expense

instrument_cash_flow_statement_list: array of InstrumentCashFlowStatement { accepted_date, filing_date, period, 42 more }
accepted_date: string

The date and time when the filing was accepted by the SEC

filing_date: string

The date the financial statement was filed

period: string

The fiscal period identifier (e.g., “Q1”, “Q2”, “Q3”, “Q4”)

period_type: "QUARTERLY" or "ANNUAL" or "TTM" or "BIANNUAL"

The type of fiscal period

"QUARTERLY"
"ANNUAL"
"TTM"
"BIANNUAL"
reported_currency: string

The currency in which the statement is reported (ISO 4217)

year: number

The fiscal year of the statement

accounts_payables: optional string

Change in accounts payables

accounts_receivables: optional string

Change in accounts receivables

acquisitions_net: optional string

Net acquisitions

capital_expenditure: optional string

Capital expenditure

cash_at_beginning_of_period: optional string

Cash and cash equivalents at beginning of period

cash_at_end_of_period: optional string

Cash and cash equivalents at end of period

change_in_working_capital: optional string

Change in working capital

common_dividends_paid: optional string

Common dividends paid

common_stock_issuance: optional string

Common stock issuance

common_stock_repurchased: optional string

Common stock repurchased (buybacks)

deferred_income_tax: optional string

Deferred income tax expense

depreciation_and_amortization: optional string

Depreciation and amortization expense

effect_of_forex_changes_on_cash: optional string

Effect of foreign exchange changes on cash

free_cash_flow: optional string

Free cash flow (operating cash flow minus capital expenditure)

income_taxes_paid: optional string

Income taxes paid

interest_paid: optional string

Interest paid

inventory: optional string

Change in inventory

investments_in_property_plant_and_equipment: optional string

Investments in property, plant, and equipment

long_term_net_debt_issuance: optional string

Long-term net debt issuance

net_cash_provided_by_financing_activities: optional string

Net cash provided by financing activities

net_cash_provided_by_investing_activities: optional string

Net cash provided by investing activities

net_cash_provided_by_operating_activities: optional string

Net cash provided by operating activities

net_change_in_cash: optional string

Net change in cash during the period

net_common_stock_issuance: optional string

Net common stock issuance

net_debt_issuance: optional string

Net debt issuance (long-term + short-term)

net_dividends_paid: optional string

Net dividends paid (common + preferred)

net_income: optional string

Net income for the period

net_preferred_stock_issuance: optional string

Net preferred stock issuance

net_stock_issuance: optional string

Net stock issuance (common + preferred)

operating_cash_flow: optional string

Operating cash flow (alternative calculation)

other_financing_activities: optional string

Other financing activities

other_investing_activities: optional string

Other investing activities

other_non_cash_items: optional string

Other non-cash items

other_working_capital: optional string

Change in other working capital

preferred_dividends_paid: optional string

Preferred dividends paid

purchases_of_investments: optional string

Purchases of investments

sales_maturities_of_investments: optional string

Sales and maturities of investments

short_term_net_debt_issuance: optional string

Short-term net debt issuance

stock_based_compensation: optional string

Stock-based compensation expense

instrument_dividend_event: object { adjusted_dividend_amount, ex_date, declaration_date, 5 more }

Represents a dividend event for an instrument

adjusted_dividend_amount: string

The adjusted dividend amount accounting for any splits.

ex_date: string

The day the stock starts trading without the right to receive that dividend.

declaration_date: optional string

The declaration date of the dividend When a null/undefined value is observed, it indicates that there is no available data.

dividend_amount: optional string

The dividend amount per share. When a null/undefined value is observed, it indicates that there is no available data.

dividend_yield: optional string

The dividend yield as a percentage of the stock price. When a null/undefined value is observed, it indicates that there is no available data.

frequency: optional string

The frequency of the dividend payments (e.g., “Quarterly”, “Annual”). When a null/undefined value is observed, it indicates that there is no available data.

payment_date: optional string

The payment date is the date on which a declared stock dividend is scheduled to be paid. When a null/undefined value is observed, it indicates that there is no available data.

record_date: optional string

The record date, set by a company’s board of directors, is when a company compiles a list of shareholders of the stock for which it has declared a dividend. When a null/undefined value is observed, it indicates that there is no available data.

instrument_earnings: object { date, eps_actual, eps_estimate, 4 more }

Represents instrument earnings data

date: string

The date when the earnings report was published

eps_actual: optional string

The actual earnings per share (EPS) for the period When a null/undefined value is observed, it indicates that there is no available data.

eps_estimate: optional string

The estimated earnings per share (EPS) for the period When a null/undefined value is observed, it indicates that there is no available data.

eps_surprise_percent: optional string

The percentage difference between actual and estimated EPS When a null/undefined value is observed, it indicates that there is no available data.

revenue_actual: optional string

The actual total revenue for the period When a null/undefined value is observed, it indicates that there is no available data.

revenue_estimate: optional string

The estimated total revenue for the period When a null/undefined value is observed, it indicates that there is no available data.

revenue_surprise_percent: optional string

The percentage difference between actual and estimated revenue When a null/undefined value is observed, it indicates that there is no available data.

instrument_event_envelope: object { symbol, type, dividend_event_data, 6 more }

Unified envelope for the all-events response.

symbol: string

Symbol associated with the event.

type: "EARNINGS" or "DIVIDEND" or "STOCK_SPLIT" or "IPO"

Event type discriminator.

"EARNINGS"
"DIVIDEND"
"STOCK_SPLIT"
"IPO"
dividend_event_data: optional object { adjusted_dividend_amount, ex_date, declaration_date, 5 more }

Dividend payload when type is DIVIDEND. When a null/undefined value is observed, it indicates it does not apply.

adjusted_dividend_amount: string

The adjusted dividend amount accounting for any splits.

ex_date: string

The day the stock starts trading without the right to receive that dividend.

declaration_date: optional string

The declaration date of the dividend When a null/undefined value is observed, it indicates that there is no available data.

dividend_amount: optional string

The dividend amount per share. When a null/undefined value is observed, it indicates that there is no available data.

dividend_yield: optional string

The dividend yield as a percentage of the stock price. When a null/undefined value is observed, it indicates that there is no available data.

frequency: optional string

The frequency of the dividend payments (e.g., “Quarterly”, “Annual”). When a null/undefined value is observed, it indicates that there is no available data.

payment_date: optional string

The payment date is the date on which a declared stock dividend is scheduled to be paid. When a null/undefined value is observed, it indicates that there is no available data.

record_date: optional string

The record date, set by a company’s board of directors, is when a company compiles a list of shareholders of the stock for which it has declared a dividend. When a null/undefined value is observed, it indicates that there is no available data.

earnings_event_data: optional object { date, eps_actual, eps_estimate, 4 more }

Earnings payload when type is EARNINGS. When a null/undefined value is observed, it indicates it does not apply.

date: string

The date when the earnings report was published

eps_actual: optional string

The actual earnings per share (EPS) for the period When a null/undefined value is observed, it indicates that there is no available data.

eps_estimate: optional string

The estimated earnings per share (EPS) for the period When a null/undefined value is observed, it indicates that there is no available data.

eps_surprise_percent: optional string

The percentage difference between actual and estimated EPS When a null/undefined value is observed, it indicates that there is no available data.

revenue_actual: optional string

The actual total revenue for the period When a null/undefined value is observed, it indicates that there is no available data.

revenue_estimate: optional string

The estimated total revenue for the period When a null/undefined value is observed, it indicates that there is no available data.

revenue_surprise_percent: optional string

The percentage difference between actual and estimated revenue When a null/undefined value is observed, it indicates that there is no available data.

instrument_id: optional string

Instrument identifier, when available. When a null/undefined value is observed, it indicates that there is no available data.

ipo_event_data: optional object { actions, announced_at, company, 4 more }

IPO payload when type is IPO. When a null/undefined value is observed, it indicates it does not apply.

actions: optional string

IPO action. When a null/undefined value is observed, it indicates that there is no available data.

announced_at: optional string

IPO announced timestamp. When a null/undefined value is observed, it indicates that there is no available data.

company: optional string

IPO company name. When a null/undefined value is observed, it indicates that there is no available data.

exchange: optional string

IPO exchange. When a null/undefined value is observed, it indicates that there is no available data.

market_cap: optional string

IPO market cap. When a null/undefined value is observed, it indicates that there is no available data.

price_range: optional string

IPO price range. When a null/undefined value is observed, it indicates that there is no available data.

shares: optional string

IPO shares offered. When a null/undefined value is observed, it indicates that there is no available data.

name: optional string

Instrument name associated with the event, when available. When a null/undefined value is observed, it indicates that there is no available data.

reporting_currency: optional string

The currency used for reporting financial data. When a null/undefined value is observed, it indicates that there is no available data.

stock_split_event_data: optional object { date, denominator, numerator, split_type }

Stock split payload when type is STOCK_SPLIT. When a null/undefined value is observed, it indicates it does not apply.

date: string

The date of the stock split

denominator: string

The denominator of the split ratio

numerator: string

The numerator of the split ratio

split_type: string

The type of stock split (e.g., “stock-split”, “stock-dividend”, “bonus-issue”)

instrument_event_ipo_item: object { actions, announced_at, company, 4 more }

IPO event in the all-events date grouping response.

actions: optional string

IPO action. When a null/undefined value is observed, it indicates that there is no available data.

announced_at: optional string

IPO announced timestamp. When a null/undefined value is observed, it indicates that there is no available data.

company: optional string

IPO company name. When a null/undefined value is observed, it indicates that there is no available data.

exchange: optional string

IPO exchange. When a null/undefined value is observed, it indicates that there is no available data.

market_cap: optional string

IPO market cap. When a null/undefined value is observed, it indicates that there is no available data.

price_range: optional string

IPO price range. When a null/undefined value is observed, it indicates that there is no available data.

shares: optional string

IPO shares offered. When a null/undefined value is observed, it indicates that there is no available data.

instrument_events_by_date: object { date, events }

Instrument events for a single date.

date: string

Event date.

events: array of InstrumentEventEnvelope { symbol, type, dividend_event_data, 6 more }

Flat event envelopes for this date.

symbol: string

Symbol associated with the event.

type: "EARNINGS" or "DIVIDEND" or "STOCK_SPLIT" or "IPO"

Event type discriminator.

"EARNINGS"
"DIVIDEND"
"STOCK_SPLIT"
"IPO"
dividend_event_data: optional object { adjusted_dividend_amount, ex_date, declaration_date, 5 more }

Dividend payload when type is DIVIDEND. When a null/undefined value is observed, it indicates it does not apply.

adjusted_dividend_amount: string

The adjusted dividend amount accounting for any splits.

ex_date: string

The day the stock starts trading without the right to receive that dividend.

declaration_date: optional string

The declaration date of the dividend When a null/undefined value is observed, it indicates that there is no available data.

dividend_amount: optional string

The dividend amount per share. When a null/undefined value is observed, it indicates that there is no available data.

dividend_yield: optional string

The dividend yield as a percentage of the stock price. When a null/undefined value is observed, it indicates that there is no available data.

frequency: optional string

The frequency of the dividend payments (e.g., “Quarterly”, “Annual”). When a null/undefined value is observed, it indicates that there is no available data.

payment_date: optional string

The payment date is the date on which a declared stock dividend is scheduled to be paid. When a null/undefined value is observed, it indicates that there is no available data.

record_date: optional string

The record date, set by a company’s board of directors, is when a company compiles a list of shareholders of the stock for which it has declared a dividend. When a null/undefined value is observed, it indicates that there is no available data.

earnings_event_data: optional object { date, eps_actual, eps_estimate, 4 more }

Earnings payload when type is EARNINGS. When a null/undefined value is observed, it indicates it does not apply.

date: string

The date when the earnings report was published

eps_actual: optional string

The actual earnings per share (EPS) for the period When a null/undefined value is observed, it indicates that there is no available data.

eps_estimate: optional string

The estimated earnings per share (EPS) for the period When a null/undefined value is observed, it indicates that there is no available data.

eps_surprise_percent: optional string

The percentage difference between actual and estimated EPS When a null/undefined value is observed, it indicates that there is no available data.

revenue_actual: optional string

The actual total revenue for the period When a null/undefined value is observed, it indicates that there is no available data.

revenue_estimate: optional string

The estimated total revenue for the period When a null/undefined value is observed, it indicates that there is no available data.

revenue_surprise_percent: optional string

The percentage difference between actual and estimated revenue When a null/undefined value is observed, it indicates that there is no available data.

instrument_id: optional string

Instrument identifier, when available. When a null/undefined value is observed, it indicates that there is no available data.

ipo_event_data: optional object { actions, announced_at, company, 4 more }

IPO payload when type is IPO. When a null/undefined value is observed, it indicates it does not apply.

actions: optional string

IPO action. When a null/undefined value is observed, it indicates that there is no available data.

announced_at: optional string

IPO announced timestamp. When a null/undefined value is observed, it indicates that there is no available data.

company: optional string

IPO company name. When a null/undefined value is observed, it indicates that there is no available data.

exchange: optional string

IPO exchange. When a null/undefined value is observed, it indicates that there is no available data.

market_cap: optional string

IPO market cap. When a null/undefined value is observed, it indicates that there is no available data.

price_range: optional string

IPO price range. When a null/undefined value is observed, it indicates that there is no available data.

shares: optional string

IPO shares offered. When a null/undefined value is observed, it indicates that there is no available data.

name: optional string

Instrument name associated with the event, when available. When a null/undefined value is observed, it indicates that there is no available data.

reporting_currency: optional string

The currency used for reporting financial data. When a null/undefined value is observed, it indicates that there is no available data.

stock_split_event_data: optional object { date, denominator, numerator, split_type }

Stock split payload when type is STOCK_SPLIT. When a null/undefined value is observed, it indicates it does not apply.

date: string

The date of the stock split

denominator: string

The denominator of the split ratio

numerator: string

The numerator of the split ratio

split_type: string

The type of stock split (e.g., “stock-split”, “stock-dividend”, “bonus-issue”)

instrument_events_data: object { dividends, earnings, instrument_id, 2 more }

Grouped instrument events by type

dividends: array of InstrumentDividendEvent { adjusted_dividend_amount, ex_date, declaration_date, 5 more }

Dividend distribution events

adjusted_dividend_amount: string

The adjusted dividend amount accounting for any splits.

ex_date: string

The day the stock starts trading without the right to receive that dividend.

declaration_date: optional string

The declaration date of the dividend When a null/undefined value is observed, it indicates that there is no available data.

dividend_amount: optional string

The dividend amount per share. When a null/undefined value is observed, it indicates that there is no available data.

dividend_yield: optional string

The dividend yield as a percentage of the stock price. When a null/undefined value is observed, it indicates that there is no available data.

frequency: optional string

The frequency of the dividend payments (e.g., “Quarterly”, “Annual”). When a null/undefined value is observed, it indicates that there is no available data.

payment_date: optional string

The payment date is the date on which a declared stock dividend is scheduled to be paid. When a null/undefined value is observed, it indicates that there is no available data.

record_date: optional string

The record date, set by a company’s board of directors, is when a company compiles a list of shareholders of the stock for which it has declared a dividend. When a null/undefined value is observed, it indicates that there is no available data.

earnings: array of InstrumentEarnings { date, eps_actual, eps_estimate, 4 more }

Earnings announcement events

date: string

The date when the earnings report was published

eps_actual: optional string

The actual earnings per share (EPS) for the period When a null/undefined value is observed, it indicates that there is no available data.

eps_estimate: optional string

The estimated earnings per share (EPS) for the period When a null/undefined value is observed, it indicates that there is no available data.

eps_surprise_percent: optional string

The percentage difference between actual and estimated EPS When a null/undefined value is observed, it indicates that there is no available data.

revenue_actual: optional string

The actual total revenue for the period When a null/undefined value is observed, it indicates that there is no available data.

revenue_estimate: optional string

The estimated total revenue for the period When a null/undefined value is observed, it indicates that there is no available data.

revenue_surprise_percent: optional string

The percentage difference between actual and estimated revenue When a null/undefined value is observed, it indicates that there is no available data.

instrument_id: string

Instrument identifier

splits: array of InstrumentSplitEvent { date, denominator, numerator, split_type }

Stock split events

date: string

The date of the stock split

denominator: string

The denominator of the split ratio

numerator: string

The numerator of the split ratio

split_type: string

The type of stock split (e.g., “stock-split”, “stock-dividend”, “bonus-issue”)

reporting_currency: optional string

The currency used for reporting financial data When a null/undefined value is observed, it indicates that there is no available data.

instrument_fundamentals: object { average_volume, beta, description, 12 more }

Supplemental fundamentals and company profile data for an instrument.

average_volume: optional number

The average daily trading volume over the past 30 days When a null/undefined value is observed, it indicates that there is no available data.

beta: optional string

The beta value, measuring the instrument’s volatility relative to the overall market When a null/undefined value is observed, it indicates that there is no available data.

description: optional string

A detailed description of the instrument or company When a null/undefined value is observed, it indicates that there is no available data.

dividend_yield: optional string

The trailing twelve months (TTM) dividend yield When a null/undefined value is observed, it indicates that there is no available data.

earnings_per_share: optional string

The trailing twelve months (TTM) earnings per share When a null/undefined value is observed, it indicates that there is no available data.

fifty_two_week_high: optional string

The highest price over the last 52 weeks When a null/undefined value is observed, it indicates that there is no available data.

fifty_two_week_low: optional string

The lowest price over the last 52 weeks When a null/undefined value is observed, it indicates that there is no available data.

industry: optional string

The specific industry of the instrument’s issuer When a null/undefined value is observed, it indicates that there is no available data.

list_date: optional string

The date the instrument was first listed When a null/undefined value is observed, it indicates that there is no available data.

logo_url: optional string

URL to a representative logo image for the instrument or issuer When a null/undefined value is observed, it indicates that there is no available data.

market_cap: optional string

The total market capitalization When a null/undefined value is observed, it indicates that there is no available data.

previous_close: optional string

The closing price from the previous trading day When a null/undefined value is observed, it indicates that there is no available data.

price_to_earnings: optional string

The price-to-earnings (P/E) ratio for the trailing twelve months (TTM) When a null/undefined value is observed, it indicates that there is no available data.

reporting_currency: optional string

The currency used for reporting financial data When a null/undefined value is observed, it indicates that there is no available data.

sector: optional string

The business sector of the instrument’s issuer When a null/undefined value is observed, it indicates that there is no available data.

instrument_income_statement: object { accepted_date, filing_date, period, 34 more }

A quarterly income statement for an instrument.

accepted_date: string

The date and time when the filing was accepted by the SEC

filing_date: string

The date the financial statement was filed

period: string

The fiscal period identifier (e.g., “Q1”, “Q2”, “Q3”, “Q4”)

period_type: "QUARTERLY" or "ANNUAL" or "TTM" or "BIANNUAL"

The type of fiscal period

"QUARTERLY"
"ANNUAL"
"TTM"
"BIANNUAL"
reported_currency: string

The currency in which the statement is reported (ISO 4217)

year: number

The fiscal year of the statement

bottom_line_net_income: optional string

Bottom line net income after all adjustments

cost_and_expenses: optional string

Total costs and expenses

cost_of_revenue: optional string

Direct costs attributable to producing goods sold

depreciation_and_amortization: optional string

Depreciation and amortization expenses

ebit: optional string

Earnings before interest and taxes

ebitda: optional string

Earnings before interest, taxes, depreciation, and amortization

eps: optional string

Basic earnings per share

eps_diluted: optional string

Diluted earnings per share

general_and_administrative_expenses: optional string

General administrative overhead expenses

gross_profit: optional string

Revenue minus cost of revenue

income_before_tax: optional string

Income before income tax expense

income_tax_expense: optional string

Income tax expense for the period

interest_expense: optional string

Interest paid on debt

interest_income: optional string

Interest earned on investments and cash

net_income: optional string

Total net income for the period

net_income_deductions: optional string

Deductions from net income

net_income_from_continuing_operations: optional string

Net income from continuing operations

net_income_from_discontinued_operations: optional string

Net income from discontinued operations

net_interest_income: optional string

Net interest income (interest income minus interest expense)

non_operating_income_excluding_interest: optional string

Non-operating income excluding interest

operating_expenses: optional string

Total operating expenses

operating_income: optional string

Income from core business operations

other_adjustments_to_net_income: optional string

Other adjustments to net income

other_expenses: optional string

Other miscellaneous expenses

research_and_development_expenses: optional string

Expenditure on research and development activities

revenue: optional string

Total revenue from sales of goods and services

selling_and_marketing_expenses: optional string

Expenditure on marketing and sales activities

selling_general_and_administrative_expenses: optional string

Combined selling, general, and administrative expenses

total_other_income_expenses_net: optional string

Net of other income and expenses

weighted_average_shs_out: optional string

Weighted average shares outstanding (basic)

weighted_average_shs_out_dil: optional string

Weighted average shares outstanding (diluted)

instrument_income_statement_list: array of InstrumentIncomeStatement { accepted_date, filing_date, period, 34 more }
accepted_date: string

The date and time when the filing was accepted by the SEC

filing_date: string

The date the financial statement was filed

period: string

The fiscal period identifier (e.g., “Q1”, “Q2”, “Q3”, “Q4”)

period_type: "QUARTERLY" or "ANNUAL" or "TTM" or "BIANNUAL"

The type of fiscal period

"QUARTERLY"
"ANNUAL"
"TTM"
"BIANNUAL"
reported_currency: string

The currency in which the statement is reported (ISO 4217)

year: number

The fiscal year of the statement

bottom_line_net_income: optional string

Bottom line net income after all adjustments

cost_and_expenses: optional string

Total costs and expenses

cost_of_revenue: optional string

Direct costs attributable to producing goods sold

depreciation_and_amortization: optional string

Depreciation and amortization expenses

ebit: optional string

Earnings before interest and taxes

ebitda: optional string

Earnings before interest, taxes, depreciation, and amortization

eps: optional string

Basic earnings per share

eps_diluted: optional string

Diluted earnings per share

general_and_administrative_expenses: optional string

General administrative overhead expenses

gross_profit: optional string

Revenue minus cost of revenue

income_before_tax: optional string

Income before income tax expense

income_tax_expense: optional string

Income tax expense for the period

interest_expense: optional string

Interest paid on debt

interest_income: optional string

Interest earned on investments and cash

net_income: optional string

Total net income for the period

net_income_deductions: optional string

Deductions from net income

net_income_from_continuing_operations: optional string

Net income from continuing operations

net_income_from_discontinued_operations: optional string

Net income from discontinued operations

net_interest_income: optional string

Net interest income (interest income minus interest expense)

non_operating_income_excluding_interest: optional string

Non-operating income excluding interest

operating_expenses: optional string

Total operating expenses

operating_income: optional string

Income from core business operations

other_adjustments_to_net_income: optional string

Other adjustments to net income

other_expenses: optional string

Other miscellaneous expenses

research_and_development_expenses: optional string

Expenditure on research and development activities

revenue: optional string

Total revenue from sales of goods and services

selling_and_marketing_expenses: optional string

Expenditure on marketing and sales activities

selling_general_and_administrative_expenses: optional string

Combined selling, general, and administrative expenses

total_other_income_expenses_net: optional string

Net of other income and expenses

weighted_average_shs_out: optional string

Weighted average shares outstanding (basic)

weighted_average_shs_out_dil: optional string

Weighted average shares outstanding (diluted)

instrument_split_event: object { date, denominator, numerator, split_type }

Represents a stock split event for an instrument

date: string

The date of the stock split

denominator: string

The denominator of the split ratio

numerator: string

The numerator of the split ratio

split_type: string

The type of stock split (e.g., “stock-split”, “stock-dividend”, “bonus-issue”)

price_target: object { average, currency, high, low }

Analyst price target statistics

average: string

Average analyst price target

currency: string

ISO 4217 currency code of the price targets

high: string

Highest analyst price target

low: string

Lowest analyst price target

V1Instrument DataMarket Data

Retrieve instrument analytics, market data, news, and related reference data.

Get Snapshots
$ clst v1:instrument-data:market-data get-snapshots
GET/v1/market-data/snapshot
Get Daily Aggregate Summaries
$ clst v1:instrument-data:market-data get-daily-summaries
GET/v1/market-data/daily-summary
ModelsExpand Collapse
daily_summary: object { instrument_id, high, low, 4 more }

Daily aggregate (OHLV) summary for a single instrument.

Returned by GET /market-data/daily-summary. Every field except instrument_id is Option:

  • Unresolvable instrument_id → all other fields None (including symbol).
  • Resolvable instrument_id with no realtime cache entry → symbol populated, OHLV/trade_date None.
  • trade_date reflects the session the OHLV represents (today during trading hours, the last trading date during weekends/holidays).
instrument_id: string

Unique instrument identifier. Always populated; echoes the request ID.

high: optional string

Session high. When a null/undefined value is observed, it indicates that there is no available data.

low: optional string

Session low. When a null/undefined value is observed, it indicates that there is no available data.

open: optional string

Opening price for the session. When a null/undefined value is observed, it indicates that there is no available data.

symbol: optional string

Display symbol for the security. None for unresolvable IDs. When a null/undefined value is observed, it indicates that there is no available data.

trade_date: optional string

Session date the OHLV represents, US/Eastern. When a null/undefined value is observed, it indicates that there is no available data.

volume: optional number

Session cumulative trading volume. When a null/undefined value is observed, it indicates that there is no available data.

daily_summary_list: array of DailySummary { instrument_id, high, low, 4 more }
instrument_id: string

Unique instrument identifier. Always populated; echoes the request ID.

high: optional string

Session high. When a null/undefined value is observed, it indicates that there is no available data.

low: optional string

Session low. When a null/undefined value is observed, it indicates that there is no available data.

open: optional string

Opening price for the session. When a null/undefined value is observed, it indicates that there is no available data.

symbol: optional string

Display symbol for the security. None for unresolvable IDs. When a null/undefined value is observed, it indicates that there is no available data.

trade_date: optional string

Session date the OHLV represents, US/Eastern. When a null/undefined value is observed, it indicates that there is no available data.

volume: optional number

Session cumulative trading volume. When a null/undefined value is observed, it indicates that there is no available data.

market_data_snapshot: object { instrument_id, symbol, cumulative_volume, 5 more }

Market data snapshot for a single security.

instrument_id: string

Unique instrument identifier.

symbol: string

Display symbol for the security.

cumulative_volume: optional number

Cumulative traded volume reported on the most recent trade, in shares for equities or contracts for options. Absent when no trade is available. When a null/undefined value is observed, it indicates that there is no available data.

greeks: optional object { delta, gamma, iv, 5 more }

Theoretical price and Greeks for option instruments. None for equities, and for options whose Greeks have not yet been observed When a null/undefined value is observed, it indicates that there is no available data.

delta: string

Delta: ∂V/∂S, range [-1, 1].

gamma: string

Gamma: ∂²V/∂S².

iv: string

Implied volatility, annualized (0.20 == 20%).

rho: string

Rho per 1.0 rate point.

theo_price: string

Theoretical option price in USD per share.

theta: string

Theta per trading day.

timestamp: string

Timestamp when the Greeks were calculated.

vega: string

Vega per 1.0 vol point.

last_quote: optional object { ask, ask_size, bid, 2 more }

Most recent quote if available. When a null/undefined value is observed, it indicates that there is no available data.

ask: optional string

Current best ask. Absent when no ask is available (one-sided quote). When a null/undefined value is observed, it indicates that there is no available data.

ask_size: optional number

Size at the best ask, in shares. When a null/undefined value is observed, it indicates that there is no available data.

bid: optional string

Current best bid. Absent when no bid is available (one-sided quote). When a null/undefined value is observed, it indicates that there is no available data.

bid_size: optional number

Size at the best bid, in shares. When a null/undefined value is observed, it indicates that there is no available data.

midpoint: optional string

Midpoint of bid and ask. Absent when either side is missing. When a null/undefined value is observed, it indicates that there is no available data.

last_trade: optional object { price, size }

Most recent last-sale trade if available. When a null/undefined value is observed, it indicates that there is no available data.

price: string

Most recent last-sale eligible trade price.

size: number

Share quantity of the most recent last-sale eligible trade.

name: optional string

Security name if available. When a null/undefined value is observed, it indicates that there is no available data.

session: optional object { change, change_percent, previous_close }

Session metrics computed from previous close and last trade, if available. When a null/undefined value is observed, it indicates that there is no available data.

change: string

Absolute change from previous close to last trade.

change_percent: string

Percent change from previous close to last trade.

previous_close: string

Previous session close price.

market_data_snapshot_list: array of MarketDataSnapshot { instrument_id, symbol, cumulative_volume, 5 more }
instrument_id: string

Unique instrument identifier.

symbol: string

Display symbol for the security.

cumulative_volume: optional number

Cumulative traded volume reported on the most recent trade, in shares for equities or contracts for options. Absent when no trade is available. When a null/undefined value is observed, it indicates that there is no available data.

greeks: optional object { delta, gamma, iv, 5 more }

Theoretical price and Greeks for option instruments. None for equities, and for options whose Greeks have not yet been observed When a null/undefined value is observed, it indicates that there is no available data.

delta: string

Delta: ∂V/∂S, range [-1, 1].

gamma: string

Gamma: ∂²V/∂S².

iv: string

Implied volatility, annualized (0.20 == 20%).

rho: string

Rho per 1.0 rate point.

theo_price: string

Theoretical option price in USD per share.

theta: string

Theta per trading day.

timestamp: string

Timestamp when the Greeks were calculated.

vega: string

Vega per 1.0 vol point.

last_quote: optional object { ask, ask_size, bid, 2 more }

Most recent quote if available. When a null/undefined value is observed, it indicates that there is no available data.

ask: optional string

Current best ask. Absent when no ask is available (one-sided quote). When a null/undefined value is observed, it indicates that there is no available data.

ask_size: optional number

Size at the best ask, in shares. When a null/undefined value is observed, it indicates that there is no available data.

bid: optional string

Current best bid. Absent when no bid is available (one-sided quote). When a null/undefined value is observed, it indicates that there is no available data.

bid_size: optional number

Size at the best bid, in shares. When a null/undefined value is observed, it indicates that there is no available data.

midpoint: optional string

Midpoint of bid and ask. Absent when either side is missing. When a null/undefined value is observed, it indicates that there is no available data.

last_trade: optional object { price, size }

Most recent last-sale trade if available. When a null/undefined value is observed, it indicates that there is no available data.

price: string

Most recent last-sale eligible trade price.

size: number

Share quantity of the most recent last-sale eligible trade.

name: optional string

Security name if available. When a null/undefined value is observed, it indicates that there is no available data.

session: optional object { change, change_percent, previous_close }

Session metrics computed from previous close and last trade, if available. When a null/undefined value is observed, it indicates that there is no available data.

change: string

Absolute change from previous close to last trade.

change_percent: string

Percent change from previous close to last trade.

previous_close: string

Previous session close price.

snapshot_greeks: object { delta, gamma, iv, 5 more }

Theoretical price and Greeks for an options snapshot. All values are per share; no contract multiplier is applied.

delta: string

Delta: ∂V/∂S, range [-1, 1].

gamma: string

Gamma: ∂²V/∂S².

iv: string

Implied volatility, annualized (0.20 == 20%).

rho: string

Rho per 1.0 rate point.

theo_price: string

Theoretical option price in USD per share.

theta: string

Theta per trading day.

timestamp: string

Timestamp when the Greeks were calculated.

vega: string

Vega per 1.0 vol point.

snapshot_last_trade: object { price, size }

Last-trade fields for a market data snapshot.

price: string

Most recent last-sale eligible trade price.

size: number

Share quantity of the most recent last-sale eligible trade.

snapshot_quote: object { ask, ask_size, bid, 2 more }

L1 quote fields for a market data snapshot.

ask: optional string

Current best ask. Absent when no ask is available (one-sided quote). When a null/undefined value is observed, it indicates that there is no available data.

ask_size: optional number

Size at the best ask, in shares. When a null/undefined value is observed, it indicates that there is no available data.

bid: optional string

Current best bid. Absent when no bid is available (one-sided quote). When a null/undefined value is observed, it indicates that there is no available data.

bid_size: optional number

Size at the best bid, in shares. When a null/undefined value is observed, it indicates that there is no available data.

midpoint: optional string

Midpoint of bid and ask. Absent when either side is missing. When a null/undefined value is observed, it indicates that there is no available data.

snapshot_session: object { change, change_percent, previous_close }

Session-level pricing metrics for a market data snapshot.

change: string

Absolute change from previous close to last trade.

change_percent: string

Percent change from previous close to last trade.

previous_close: string

Previous session close price.

V1Instrument DataNews

Retrieve instrument analytics, market data, news, and related reference data.

Get News
$ clst v1:instrument-data:news get-news
GET/v1/news
ModelsExpand Collapse
news_instrument: object { instrument_id, name, symbol }

Instrument associated with a news item.

instrument_id: string

Instrument identifier.

name: optional string

Instrument name/description, if available. When a null/undefined value is observed, it indicates that there is no available data.

symbol: optional string

Trading symbol, if available. When a null/undefined value is observed, it indicates that there is no available data.

news_item: object { instruments, news_type, published_at, 6 more }

A single news item and its associated instruments.

instruments: array of NewsInstrument { instrument_id, name, symbol }

Instruments associated with this news item.

instrument_id: string

Instrument identifier.

name: optional string

Instrument name/description, if available. When a null/undefined value is observed, it indicates that there is no available data.

symbol: optional string

Trading symbol, if available. When a null/undefined value is observed, it indicates that there is no available data.

news_type: "NEWS" or "PRESS_RELEASE"

Classification of the item.

"NEWS"
"PRESS_RELEASE"
published_at: string

The published date/time of the article in UTC.

publisher: string

The publisher or newswire source.

title: string

The headline/title of the article.

url: string

Canonical URL to the full article.

image_url: optional string

URL of an associated image if provided by the source. When a null/undefined value is observed, it indicates that there is no available data.

site: optional string

The primary domain/site of the publisher. When a null/undefined value is observed, it indicates that there is no available data.

text: optional string

The full or excerpted article body. When a null/undefined value is observed, it indicates that there is no available data.

news_item_list: array of NewsItem { instruments, news_type, published_at, 6 more }
instruments: array of NewsInstrument { instrument_id, name, symbol }

Instruments associated with this news item.

instrument_id: string

Instrument identifier.

name: optional string

Instrument name/description, if available. When a null/undefined value is observed, it indicates that there is no available data.

symbol: optional string

Trading symbol, if available. When a null/undefined value is observed, it indicates that there is no available data.

news_type: "NEWS" or "PRESS_RELEASE"

Classification of the item.

"NEWS"
"PRESS_RELEASE"
published_at: string

The published date/time of the article in UTC.

publisher: string

The publisher or newswire source.

title: string

The headline/title of the article.

url: string

Canonical URL to the full article.

image_url: optional string

URL of an associated image if provided by the source. When a null/undefined value is observed, it indicates that there is no available data.

site: optional string

The primary domain/site of the publisher. When a null/undefined value is observed, it indicates that there is no available data.

text: optional string

The full or excerpted article body. When a null/undefined value is observed, it indicates that there is no available data.

news_type: "NEWS" or "PRESS_RELEASE"

News item classification.

"NEWS"
"PRESS_RELEASE"

V1Instruments

Retrieve core details and discovery endpoints for tradable instruments.

Get Instruments
$ clst v1:instruments get-instruments
GET/v1/instruments
Get Instrument By ID
$ clst v1:instruments get-instrument-by-id
GET/v1/instruments/{instrument_id}
Search Instruments
$ clst v1:instruments search-instruments
GET/v1/instruments/search
Get Option Contracts
$ clst v1:instruments get-option-contracts
GET/v1/instruments/options/contracts
ModelsExpand Collapse
contract_type: "CALL" or "PUT"

The type of options contract

"CALL"
"PUT"
exercise_style: "AMERICAN" or "EUROPEAN"

The exercise style of an options contract

"AMERICAN"
"EUROPEAN"
instrument: object { id, country_of_issue, currency, 20 more }

Represents a tradable financial instrument.

id: string

Unique instrument identifier (UUID)

country_of_issue: string

The ISO country code of the instrument’s issue

currency: string

The ISO currency code in which the instrument is traded

easy_to_borrow: boolean

Indicates if the instrument is classified as Easy-To-Borrow

is_fractionable: boolean

Indicates if the instrument supports fractional-quantity orders

is_liquidation_only: boolean

Indicates if the instrument is liquidation only and cannot be bought

is_marginable: boolean

Indicates if the instrument is marginable

is_ptp: boolean

Indicates if the instrument is a publicly traded partnership (PTP). PTP sales are subject to a 10% withholding tax for non-US tax residents.

is_short_prohibited: boolean

Indicates if short selling is prohibited for the instrument

is_threshold_security: boolean

Indicates if the instrument is on the Regulation SHO Threshold Security List

is_tradable: boolean

Indicates if the instrument is tradable

symbol: string

The trading symbol for the instrument

venue: string

The MIC code of the primary listing venue

adv: optional string

Average daily share volume from the security definition. When a null/undefined value is observed, it indicates that there is no available data.

Deprecatedexpiry: optional string

Deprecated. Always null. When a null/undefined value is observed, it indicates it does not apply.

instrument_type: optional "COMMON_STOCK" or "OPTION" or "CASH"

The type of security (e.g., Common Stock, ETF) When a null/undefined value is observed, it indicates that there is no available data.

"COMMON_STOCK"
"OPTION"
"CASH"
long_margin_rate: optional string

The percent of a long position’s value you must post as margin When a null/undefined value is observed, it indicates that there is no available data.

name: optional string

The full name of the instrument or its issuer When a null/undefined value is observed, it indicates that there is no available data.

notional_adv: optional string

Notional average daily volume (ADV multiplied by previous close price). When a null/undefined value is observed, it indicates that there is no available data.

options_expiry_dates: optional array of string

Available options expiration dates for this instrument. Present only when include_options_expiry_dates=true in the request. When a null/undefined value is observed, it indicates it does not apply.

previous_close: optional string

Last close price from the security definition. When a null/undefined value is observed, it indicates that there is no available data.

short_margin_rate: optional string

The percent of a short position’s value you must post as margin When a null/undefined value is observed, it indicates that there is no available data.

Deprecatedstrike_price: optional string

Deprecated. Always null. When a null/undefined value is observed, it indicates it does not apply.

instrument_core: object { id, country_of_issue, currency, 19 more }
id: string

Unique instrument identifier (UUID)

country_of_issue: string

The ISO country code of the instrument’s issue

currency: string

The ISO currency code in which the instrument is traded

easy_to_borrow: boolean

Indicates if the instrument is classified as Easy-To-Borrow

is_fractionable: boolean

Indicates if the instrument supports fractional-quantity orders

is_liquidation_only: boolean

Indicates if the instrument is liquidation only and cannot be bought

is_marginable: boolean

Indicates if the instrument is marginable

is_ptp: boolean

Indicates if the instrument is a publicly traded partnership (PTP). PTP sales are subject to a 10% withholding tax for non-US tax residents.

is_short_prohibited: boolean

Indicates if short selling is prohibited for the instrument

is_threshold_security: boolean

Indicates if the instrument is on the Regulation SHO Threshold Security List

is_tradable: boolean

Indicates if the instrument is tradable

symbol: string

The trading symbol for the instrument

venue: string

The MIC code of the primary listing venue

adv: optional string

Average daily share volume from the security definition. When a null/undefined value is observed, it indicates that there is no available data.

Deprecatedexpiry: optional string

Deprecated. Always null. When a null/undefined value is observed, it indicates it does not apply.

instrument_type: optional "COMMON_STOCK" or "OPTION" or "CASH"

The type of security (e.g., Common Stock, ETF) When a null/undefined value is observed, it indicates that there is no available data.

"COMMON_STOCK"
"OPTION"
"CASH"
long_margin_rate: optional string

The percent of a long position’s value you must post as margin When a null/undefined value is observed, it indicates that there is no available data.

name: optional string

The full name of the instrument or its issuer When a null/undefined value is observed, it indicates that there is no available data.

notional_adv: optional string

Notional average daily volume (ADV multiplied by previous close price). When a null/undefined value is observed, it indicates that there is no available data.

previous_close: optional string

Last close price from the security definition. When a null/undefined value is observed, it indicates that there is no available data.

short_margin_rate: optional string

The percent of a short position’s value you must post as margin When a null/undefined value is observed, it indicates that there is no available data.

Deprecatedstrike_price: optional string

Deprecated. Always null. When a null/undefined value is observed, it indicates it does not apply.

instrument_core_list: array of InstrumentCore { id, country_of_issue, currency, 19 more }
id: string

Unique instrument identifier (UUID)

country_of_issue: string

The ISO country code of the instrument’s issue

currency: string

The ISO currency code in which the instrument is traded

easy_to_borrow: boolean

Indicates if the instrument is classified as Easy-To-Borrow

is_fractionable: boolean

Indicates if the instrument supports fractional-quantity orders

is_liquidation_only: boolean

Indicates if the instrument is liquidation only and cannot be bought

is_marginable: boolean

Indicates if the instrument is marginable

is_ptp: boolean

Indicates if the instrument is a publicly traded partnership (PTP). PTP sales are subject to a 10% withholding tax for non-US tax residents.

is_short_prohibited: boolean

Indicates if short selling is prohibited for the instrument

is_threshold_security: boolean

Indicates if the instrument is on the Regulation SHO Threshold Security List

is_tradable: boolean

Indicates if the instrument is tradable

symbol: string

The trading symbol for the instrument

venue: string

The MIC code of the primary listing venue

adv: optional string

Average daily share volume from the security definition. When a null/undefined value is observed, it indicates that there is no available data.

Deprecatedexpiry: optional string

Deprecated. Always null. When a null/undefined value is observed, it indicates it does not apply.

instrument_type: optional "COMMON_STOCK" or "OPTION" or "CASH"

The type of security (e.g., Common Stock, ETF) When a null/undefined value is observed, it indicates that there is no available data.

"COMMON_STOCK"
"OPTION"
"CASH"
long_margin_rate: optional string

The percent of a long position’s value you must post as margin When a null/undefined value is observed, it indicates that there is no available data.

name: optional string

The full name of the instrument or its issuer When a null/undefined value is observed, it indicates that there is no available data.

notional_adv: optional string

Notional average daily volume (ADV multiplied by previous close price). When a null/undefined value is observed, it indicates that there is no available data.

previous_close: optional string

Last close price from the security definition. When a null/undefined value is observed, it indicates that there is no available data.

short_margin_rate: optional string

The percent of a short position’s value you must post as margin When a null/undefined value is observed, it indicates that there is no available data.

Deprecatedstrike_price: optional string

Deprecated. Always null. When a null/undefined value is observed, it indicates it does not apply.

listing_type: "STANDARD" or "FLEX" or "OTC"

The listing type of an options contract

"STANDARD"
"FLEX"
"OTC"
options_contract: object { id, contract_type, currency, 11 more }

An options contract with options-specific metadata

id: string

Instrument identifier

contract_type: "CALL" or "PUT"

Whether this is a CALL or PUT

"CALL"
"PUT"
currency: string

ISO currency code

exchange: string

MIC code of the primary listing venue

exercise_style: "AMERICAN" or "EUROPEAN"

Exercise style

"AMERICAN"
"EUROPEAN"
expiry: string

Expiration date

is_liquidation_only: boolean

Whether the contract is liquidation-only

is_marginable: boolean

Whether the contract is marginable

listing_type: "STANDARD" or "FLEX" or "OTC"

Listing type

"STANDARD"
"FLEX"
"OTC"
multiplier: string

Contract multiplier (100 for standard options)

strike_price: string

Strike price

symbol: string

OSI symbol (e.g. “AAPL 251219C00150000”)

open_interest: optional number

Open interest (number of outstanding contracts), if available When a null/undefined value is observed, it indicates that there is no available data.

underlying_instrument_id: optional string

Instrument ID of the underlying instrument, when available When a null/undefined value is observed, it indicates that there is no available data.

options_contract_list: array of OptionsContract { id, contract_type, currency, 11 more }
id: string

Instrument identifier

contract_type: "CALL" or "PUT"

Whether this is a CALL or PUT

"CALL"
"PUT"
currency: string

ISO currency code

exchange: string

MIC code of the primary listing venue

exercise_style: "AMERICAN" or "EUROPEAN"

Exercise style

"AMERICAN"
"EUROPEAN"
expiry: string

Expiration date

is_liquidation_only: boolean

Whether the contract is liquidation-only

is_marginable: boolean

Whether the contract is marginable

listing_type: "STANDARD" or "FLEX" or "OTC"

Listing type

"STANDARD"
"FLEX"
"OTC"
multiplier: string

Contract multiplier (100 for standard options)

strike_price: string

Strike price

symbol: string

OSI symbol (e.g. “AAPL 251219C00150000”)

open_interest: optional number

Open interest (number of outstanding contracts), if available When a null/undefined value is observed, it indicates that there is no available data.

underlying_instrument_id: optional string

Instrument ID of the underlying instrument, when available When a null/undefined value is observed, it indicates that there is no available data.

V1Omni AI

ModelsExpand Collapse
action_button: object { buttonId, label, prompt, structuredAction }

Button metadata shared by chart and suggested-actions payloads.

buttonId: string

Stable button identifier within the content part.

label: string

User-visible label.

prompt: optional object { prompt }

Follow-up prompt to submit as the next user message. When a null/undefined value is observed, it indicates it does not apply.

prompt: string

Prompt text to submit as the next user turn.

structuredAction: optional object { actionId }

Structured action in the same message to execute on click. When a null/undefined value is observed, it indicates it does not apply.

actionId: optional string

UUID of a structured_action content part in the same message. When a null/undefined value is observed, it indicates it does not apply.

chart_payload: object { chartId, actionButtons, dataChart }

Typed chart payload rendered inline in assistant content.

chartId: string

Stable chart identifier scoped to the content part.

actionButtons: optional array of ActionButton { buttonId, label, prompt, structuredAction }

Buttons associated with this chart.

buttonId: string

Stable button identifier within the content part.

label: string

User-visible label.

prompt: optional object { prompt }

Follow-up prompt to submit as the next user message. When a null/undefined value is observed, it indicates it does not apply.

prompt: string

Prompt text to submit as the next user turn.

structuredAction: optional object { actionId }

Structured action in the same message to execute on click. When a null/undefined value is observed, it indicates it does not apply.

actionId: optional string

UUID of a structured_action content part in the same message. When a null/undefined value is observed, it indicates it does not apply.

dataChart: optional object { series }

Explicit series-driven chart definition. When a null/undefined value is observed, it indicates it does not apply.

series: optional array of ChartSeries { name, points }
name: string
points: optional array of ChartPoint { x, y }
x: string
y: number
chart_point: object { x, y }

Single chart coordinate.

x: string
y: number
chart_series: object { name, points }

Named data series within a chart.

name: string
points: optional array of ChartPoint { x, y }
x: string
y: number
content_part_chart_payload: object { payload }

Chart payload content part.

payload: object { chartId, actionButtons, dataChart }

Typed chart payload rendered inline in assistant content.

chartId: string

Stable chart identifier scoped to the content part.

actionButtons: optional array of ActionButton { buttonId, label, prompt, structuredAction }

Buttons associated with this chart.

buttonId: string

Stable button identifier within the content part.

label: string

User-visible label.

prompt: optional object { prompt }

Follow-up prompt to submit as the next user message. When a null/undefined value is observed, it indicates it does not apply.

prompt: string

Prompt text to submit as the next user turn.

structuredAction: optional object { actionId }

Structured action in the same message to execute on click. When a null/undefined value is observed, it indicates it does not apply.

actionId: optional string

UUID of a structured_action content part in the same message. When a null/undefined value is observed, it indicates it does not apply.

dataChart: optional object { series }

Explicit series-driven chart definition. When a null/undefined value is observed, it indicates it does not apply.

series: optional array of ChartSeries { name, points }
name: string
points: optional array of ChartPoint { x, y }
x: string
y: number
content_part_custom_payload: object { payload }

Escape-hatch custom payload content part.

payload: unknown
content_part_structured_action_payload: object { action, action_id }

Structured action content part.

action: object { prefill_order } or object { open_chart } or object { open_screener } or object { open_entitlement_consent }

Structured actions that Omni AI can return to clients.

These actions provide machine-readable instructions for the client to execute, such as prefilling an order ticket, opening a chart, or navigating to a route.

PrefillOrder: object { prefill_order }

Prefill an order ticket for user confirmation

prefill_order: PrefillNewOrderAction { orders } or PrefillCancelOrderAction { orders }

Prefill an order ticket for user confirmation

PrefillNewOrderAction: PrefillNewOrderAction { orders }

Create one or more new orders.

action_type: "NEW"
"NEW"
PrefillCancelOrderAction: PrefillCancelOrderAction { orders }

Cancel one or more existing orders.

action_type: "CANCEL"
"CANCEL"
OpenChart: object { open_chart }

Open a chart for a symbol

open_chart: object { symbol, extras, timeframe }

Open a chart for a symbol

symbol: string

Trading symbol to chart

extras: optional unknown

Additional chart configuration (indicators, overlays, etc.) When a null/undefined value is observed, it indicates it does not apply.

timeframe: optional string

Chart timeframe (e.g., “1D”, “1W”, “1M”, “3M”, “1Y”, “5Y”) When a null/undefined value is observed, it indicates it does not apply.

OpenScreener: object { open_screener }

Open a stock screener with filters

open_screener: object { filters, columns, field_filter, 3 more }

Open a stock screener with filters

filters: array of ScreenerFilter { field, operator, value }

Filter criteria for the screener

field: string

Field to filter on (e.g., “market_cap”, “sector”, “price”)

operator: string

Comparison operator (e.g., “eq”, “gte”, “lte”, “in”)

value: unknown

Filter value

columns: optional array of string

Optional field/column selection for screener results. When a null/undefined value is observed, it indicates it does not apply.

Deprecatedfield_filter: optional array of string

Deprecated: use columns instead. Mirrors columns.

page_size: optional number

Optional page size. When a null/undefined value is observed, it indicates it does not apply.

sort_by: optional string

Optional sort field for screener rows. When a null/undefined value is observed, it indicates it does not apply.

sort_direction: optional string

Optional sort direction (ASC or DESC). When a null/undefined value is observed, it indicates it does not apply.

OpenEntitlementConsent: object { open_entitlement_consent }

Open entitlement consent flow

Open entitlement consent flow

Stable entitlement agreement family key.

"omni_account_data_access"
"omni.account_data"
action_id: string
content_part_suggested_actions_payload: object { payload }

Suggested actions payload content part.

payload: object { actionButtons }

Suggested follow-up buttons rendered at the end of an assistant message.

actionButtons: optional array of ActionButton { buttonId, label, prompt, structuredAction }

Ordered message-level buttons.

buttonId: string

Stable button identifier within the content part.

label: string

User-visible label.

prompt: optional object { prompt }

Follow-up prompt to submit as the next user message. When a null/undefined value is observed, it indicates it does not apply.

prompt: string

Prompt text to submit as the next user turn.

structuredAction: optional object { actionId }

Structured action in the same message to execute on click. When a null/undefined value is observed, it indicates it does not apply.

actionId: optional string

UUID of a structured_action content part in the same message. When a null/undefined value is observed, it indicates it does not apply.

content_part_text_payload: object { text }

Text content part.

text: string
content_part_thinking_payload: object { thoughts }

Thinking content part shown on dynamic response polling.

thoughts: array of string
data_chart: object { series }

Chart represented by explicit data series.

series: optional array of ChartSeries { name, points }
name: string
points: optional array of ChartPoint { x, y }
x: string
y: number
entitlement_agreement_key: "omni_account_data_access"

Stable entitlement agreement family key.

"omni_account_data_access"
entitlement_code: "omni.account_data"

Stable entitlement code granted by an agreement.

"omni.account_data"
open_chart_action: object { symbol, extras, timeframe }

Action to open a chart for a symbol.

symbol: string

Trading symbol to chart

extras: optional unknown

Additional chart configuration (indicators, overlays, etc.) When a null/undefined value is observed, it indicates it does not apply.

timeframe: optional string

Chart timeframe (e.g., “1D”, “1W”, “1M”, “3M”, “1Y”, “5Y”) When a null/undefined value is observed, it indicates it does not apply.

Action to open entitlement consent flow for one or more accounts.

Stable entitlement agreement family key.

"omni_account_data_access"
"omni.account_data"
open_screener_action: object { filters, columns, field_filter, 3 more }

Action to open a stock screener with filters.

filters: array of ScreenerFilter { field, operator, value }

Filter criteria for the screener

field: string

Field to filter on (e.g., “market_cap”, “sector”, “price”)

operator: string

Comparison operator (e.g., “eq”, “gte”, “lte”, “in”)

value: unknown

Filter value

columns: optional array of string

Optional field/column selection for screener results. When a null/undefined value is observed, it indicates it does not apply.

Deprecatedfield_filter: optional array of string

Deprecated: use columns instead. Mirrors columns.

page_size: optional number

Optional page size. When a null/undefined value is observed, it indicates it does not apply.

sort_by: optional string

Optional sort field for screener rows. When a null/undefined value is observed, it indicates it does not apply.

sort_direction: optional string

Optional sort direction (ASC or DESC). When a null/undefined value is observed, it indicates it does not apply.

prefill_cancel_order_action: object { orders }

Cancel-order prefill action.

orders: array of CancelOrderRequest { account_id, order_id }

Orders to cancel using the same identifiers required by the cancel-order API.

account_id: number

Account ID (from path parameter)

order_id: string

Order ID to cancel (from path parameter)

prefill_new_order_action: object { orders }

New-order prefill action.

orders: array of NewOrderRequest { order_type, quantity, side, 12 more }

Orders to prefill using the same shape accepted by the orders API.

order_type: "MARKET" or "LIMIT" or "STOP" or 3 more

Type of order

"MARKET"
"LIMIT"
"STOP"
"STOP_LIMIT"
"TRAILING_STOP"
"TRAILING_STOP_LIMIT"
quantity: string

Quantity to trade. For COMMON_STOCK: shares (may be fractional if supported). For OPTION (single-leg): contracts (must be an integer)

side: "BUY" or "SELL" or "SELL_SHORT" or "OTHER"

Side of the order

"BUY"
"SELL"
"SELL_SHORT"
"OTHER"
time_in_force: "DAY" or "GOOD_TILL_CANCEL" or "IMMEDIATE_OR_CANCEL" or 7 more

Time in force

"DAY"
"GOOD_TILL_CANCEL"
"IMMEDIATE_OR_CANCEL"
"FILL_OR_KILL"
"GOOD_TILL_DATE"
"AT_THE_OPENING"
"AT_THE_CLOSE"
"GOOD_TILL_CROSSING"
"GOOD_THROUGH_CROSSING"
"AT_CROSSING"
id: optional string

Optional client-provided unique ID (idempotency). Required to be unique per account.

expires_at: optional string

The timestamp when the order should expire (UTC). Required when time_in_force is GOOD_TILL_DATE.

extended_hours: optional boolean

Allow trading outside regular trading hours. Some brokers disallow options outside RTH.

instrument_id: optional string

Instrument identifier

limit_offset: optional string

Limit offset for trailing stop-limit orders (signed)

limit_price: optional string

Limit price (required for LIMIT and STOP_LIMIT orders)

position_effect: optional "OPEN" or "CLOSE"

Required for options. Specifies whether the order opens or closes a position.

"OPEN"
"CLOSE"
stop_price: optional string

Stop price (required for STOP and STOP_LIMIT orders)

symbol: optional string

Trading symbol. For equities, use the ticker symbol (e.g., “TSLA”). For options, use the OSI symbol (e.g., “TSLA 250117C00190000”). Either symbol or instrument_id must be provided.

trailing_offset: optional string

Trailing offset amount (required for trailing orders)

trailing_offset_type: optional "PRICE" or "BPS"

Trailing offset type (PRICE or PERCENT_BPS)

"PRICE"
"BPS"
prefill_order_action: PrefillNewOrderAction { orders } or PrefillCancelOrderAction { orders }

Action to prefill order details for user confirmation.

The user must review and authorize the order before submission to the trading API. This action provides parsed order data that can be used to prefill an order ticket UI or submitted directly via the orders API after user confirmation.

PrefillNewOrderAction: PrefillNewOrderAction { orders }

Create one or more new orders.

action_type: "NEW"
"NEW"
PrefillCancelOrderAction: PrefillCancelOrderAction { orders }

Cancel one or more existing orders.

action_type: "CANCEL"
"CANCEL"
prompt_button_action: object { prompt }

Prompt-style button behavior.

prompt: string

Prompt text to submit as the next user turn.

structured_action: object { prefill_order } or object { open_chart } or object { open_screener } or object { open_entitlement_consent }

Structured actions that Omni AI can return to clients.

These actions provide machine-readable instructions for the client to execute, such as prefilling an order ticket, opening a chart, or navigating to a route.

PrefillOrder: object { prefill_order }

Prefill an order ticket for user confirmation

prefill_order: PrefillNewOrderAction { orders } or PrefillCancelOrderAction { orders }

Prefill an order ticket for user confirmation

PrefillNewOrderAction: PrefillNewOrderAction { orders }

Create one or more new orders.

action_type: "NEW"
"NEW"
PrefillCancelOrderAction: PrefillCancelOrderAction { orders }

Cancel one or more existing orders.

action_type: "CANCEL"
"CANCEL"
OpenChart: object { open_chart }

Open a chart for a symbol

open_chart: object { symbol, extras, timeframe }

Open a chart for a symbol

symbol: string

Trading symbol to chart

extras: optional unknown

Additional chart configuration (indicators, overlays, etc.) When a null/undefined value is observed, it indicates it does not apply.

timeframe: optional string

Chart timeframe (e.g., “1D”, “1W”, “1M”, “3M”, “1Y”, “5Y”) When a null/undefined value is observed, it indicates it does not apply.

OpenScreener: object { open_screener }

Open a stock screener with filters

open_screener: object { filters, columns, field_filter, 3 more }

Open a stock screener with filters

filters: array of ScreenerFilter { field, operator, value }

Filter criteria for the screener

field: string

Field to filter on (e.g., “market_cap”, “sector”, “price”)

operator: string

Comparison operator (e.g., “eq”, “gte”, “lte”, “in”)

value: unknown

Filter value

columns: optional array of string

Optional field/column selection for screener results. When a null/undefined value is observed, it indicates it does not apply.

Deprecatedfield_filter: optional array of string

Deprecated: use columns instead. Mirrors columns.

page_size: optional number

Optional page size. When a null/undefined value is observed, it indicates it does not apply.

sort_by: optional string

Optional sort field for screener rows. When a null/undefined value is observed, it indicates it does not apply.

sort_direction: optional string

Optional sort direction (ASC or DESC). When a null/undefined value is observed, it indicates it does not apply.

OpenEntitlementConsent: object { open_entitlement_consent }

Open entitlement consent flow

Open entitlement consent flow

Stable entitlement agreement family key.

"omni_account_data_access"
"omni.account_data"
structured_action_button_action: object { actionId }

Structured-action button behavior.

actionId: optional string

UUID of a structured_action content part in the same message. When a null/undefined value is observed, it indicates it does not apply.

suggested_actions_payload: object { actionButtons }

Suggested follow-up buttons rendered at the end of an assistant message.

actionButtons: optional array of ActionButton { buttonId, label, prompt, structuredAction }

Ordered message-level buttons.

buttonId: string

Stable button identifier within the content part.

label: string

User-visible label.

prompt: optional object { prompt }

Follow-up prompt to submit as the next user message. When a null/undefined value is observed, it indicates it does not apply.

prompt: string

Prompt text to submit as the next user turn.

structuredAction: optional object { actionId }

Structured action in the same message to execute on click. When a null/undefined value is observed, it indicates it does not apply.

actionId: optional string

UUID of a structured_action content part in the same message. When a null/undefined value is observed, it indicates it does not apply.

V1Omni AIEntitlements

Thread-centric AI assistant for conversational trading. Create threads to start conversations, poll response objects for in-progress output, and read finalized messages from thread history. Thread/message/response endpoints require an explicit account_id. Entitlement endpoints are caller-scoped and use account_ids.

Get Entitlements
$ clst v1:omni-ai:entitlements get-entitlements
GET/v1/omni-ai/entitlements
Create Entitlements
$ clst v1:omni-ai:entitlements create-entitlements
POST/v1/omni-ai/entitlements
Delete Entitlement
$ clst v1:omni-ai:entitlements delete-entitlement
DELETE/v1/omni-ai/entitlements/{entitlement_id}
Get Entitlement Agreements
$ clst v1:omni-ai:entitlements get-entitlement-agreements
GET/v1/omni-ai/entitlement-agreements
ModelsExpand Collapse
delete_entitlement_response: object { entitlement_id, revoked }
entitlement_id: string
revoked: boolean
entitlement_agreement_resource: object { agreement_id, agreement_key, document_content, 4 more }
agreement_id: string
agreement_key: "omni_account_data_access"

Stable entitlement agreement family key.

"omni_account_data_access"
document_content: string
document_sha256: string
entitlement_codes: array of EntitlementCode
"omni.account_data"
title: string
version: number
entitlement_agreement_resource_list: array of EntitlementAgreementResource { agreement_id, agreement_key, document_content, 4 more }
agreement_id: string
agreement_key: "omni_account_data_access"

Stable entitlement agreement family key.

"omni_account_data_access"
document_content: string
document_sha256: string
entitlement_codes: array of EntitlementCode
"omni.account_data"
title: string
version: number
entitlement_resource: object { agreement_id, entitlement_code, entitlement_id, 2 more }
agreement_id: string
entitlement_code: "omni.account_data"

Stable entitlement code granted by an agreement.

"omni.account_data"
entitlement_id: string
granted_at: string
trading_account_id: number
entitlement_resource_list: array of EntitlementResource { agreement_id, entitlement_code, entitlement_id, 2 more }
agreement_id: string
entitlement_code: "omni.account_data"

Stable entitlement code granted by an agreement.

"omni.account_data"
entitlement_id: string
granted_at: string
trading_account_id: number

V1Omni AIMessages

Thread-centric AI assistant for conversational trading. Create threads to start conversations, poll response objects for in-progress output, and read finalized messages from thread history. Thread/message/response endpoints require an explicit account_id. Entitlement endpoints are caller-scoped and use account_ids.

Get Message By ID
$ clst v1:omni-ai:messages get-message-by-id
GET/v1/omni-ai/messages/{message_id}
Submit Feedback
$ clst v1:omni-ai:messages submit-feedback
POST/v1/omni-ai/messages/{message_id}/feedback
ModelsExpand Collapse
create_feedback_response: object { created_at, feedback_id }
created_at: string
feedback_id: optional string

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

V1Omni AIResponses

Thread-centric AI assistant for conversational trading. Create threads to start conversations, poll response objects for in-progress output, and read finalized messages from thread history. Thread/message/response endpoints require an explicit account_id. Entitlement endpoints are caller-scoped and use account_ids.

Get Response By ID
$ clst v1:omni-ai:responses get-response-by-id
GET/v1/omni-ai/responses/{response_id}
Cancel Response
$ clst v1:omni-ai:responses cancel-response
DELETE/v1/omni-ai/responses/{response_id}
ModelsExpand Collapse
cancel_response_payload: object { canceled }
canceled: boolean
error_status: object { code, message, details }

Shared sanitized error payload.

code: string
message: string
details: optional unknown

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

response: object { id, status, thread_id, 4 more }

Dynamic pollable response.

id: string
status: "queued" or "running" or "succeeded" or 2 more

Dynamic lifecycle status for a pollable response.

"queued"
"running"
"succeeded"
"failed"
"canceled"
thread_id: string
user_message_id: string
content: optional object { parts }

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

parts: array of ResponseContentPart
ContentPartText: ContentPartTextPayload { text }

Text content part.

type: "text"
"text"
ContentPartThinking: ContentPartThinkingPayload { thoughts }

Thinking content part shown on dynamic response polling.

type: "thinking"
"thinking"
ContentPartStructuredAction: ContentPartStructuredActionPayload { action, action_id }

Structured action content part.

type: "structured_action"
"structured_action"
ContentPartChart: ContentPartChartPayload { payload }

Chart payload content part.

type: "chart"
"chart"
ContentPartSuggestedActions: ContentPartSuggestedActionsPayload { payload }

Suggested actions payload content part.

type: "suggested_actions"
"suggested_actions"
ContentPartCustom: ContentPartCustomPayload { payload }

Escape-hatch custom payload content part.

type: "custom"
"custom"
error: optional object { code, message, details }

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

code: string
message: string
details: optional unknown

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

output_message_id: optional string

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

response_content: object { parts }

Dynamic response content container. May include thinking parts.

parts: array of ResponseContentPart
ContentPartText: ContentPartTextPayload { text }

Text content part.

type: "text"
"text"
ContentPartThinking: ContentPartThinkingPayload { thoughts }

Thinking content part shown on dynamic response polling.

type: "thinking"
"thinking"
ContentPartStructuredAction: ContentPartStructuredActionPayload { action, action_id }

Structured action content part.

type: "structured_action"
"structured_action"
ContentPartChart: ContentPartChartPayload { payload }

Chart payload content part.

type: "chart"
"chart"
ContentPartSuggestedActions: ContentPartSuggestedActionsPayload { payload }

Suggested actions payload content part.

type: "suggested_actions"
"suggested_actions"
ContentPartCustom: ContentPartCustomPayload { payload }

Escape-hatch custom payload content part.

type: "custom"
"custom"
response_content_part: ContentPartTextPayload { text } or ContentPartThinkingPayload { thoughts } or ContentPartStructuredActionPayload { action, action_id } or 3 more

Dynamic content part visible on a pollable response.

ContentPartText: ContentPartTextPayload { text }

Text content part.

type: "text"
"text"
ContentPartThinking: ContentPartThinkingPayload { thoughts }

Thinking content part shown on dynamic response polling.

type: "thinking"
"thinking"
ContentPartStructuredAction: ContentPartStructuredActionPayload { action, action_id }

Structured action content part.

type: "structured_action"
"structured_action"
ContentPartChart: ContentPartChartPayload { payload }

Chart payload content part.

type: "chart"
"chart"
ContentPartSuggestedActions: ContentPartSuggestedActionsPayload { payload }

Suggested actions payload content part.

type: "suggested_actions"
"suggested_actions"
ContentPartCustom: ContentPartCustomPayload { payload }

Escape-hatch custom payload content part.

type: "custom"
"custom"
response_status: "queued" or "running" or "succeeded" or 2 more

Dynamic lifecycle status for a pollable response.

"queued"
"running"
"succeeded"
"failed"
"canceled"

V1Omni AIThreads

Thread-centric AI assistant for conversational trading. Create threads to start conversations, poll response objects for in-progress output, and read finalized messages from thread history. Thread/message/response endpoints require an explicit account_id. Entitlement endpoints are caller-scoped and use account_ids.

Get Threads
$ clst v1:omni-ai:threads get-threads
GET/v1/omni-ai/threads
Get Thread By ID
$ clst v1:omni-ai:threads get-thread-by-id
GET/v1/omni-ai/threads/{thread_id}
Create Thread
$ clst v1:omni-ai:threads create-thread
POST/v1/omni-ai/threads
Get Thread Response
$ clst v1:omni-ai:threads get-thread-response
GET/v1/omni-ai/threads/{thread_id}/response
Get Messages
$ clst v1:omni-ai:threads get-messages
GET/v1/omni-ai/threads/{thread_id}/messages
Create Message
$ clst v1:omni-ai:threads create-message
POST/v1/omni-ai/threads/{thread_id}/messages
ModelsExpand Collapse
create_message_response: object { response_id, thread_id, user_message_id }

Response payload for continuing a thread with a new message.

response_id: string
thread_id: string
user_message_id: string
create_thread_response: object { response_id, thread_id, user_message_id }

Response payload for thread creation.

response_id: string
thread_id: string
user_message_id: string
message: object { id, content, created_at, 5 more }

Final immutable message.

id: string
content: object { parts }

Finalized immutable message content container. Never includes thinking parts.

parts: array of MessageContentPart
ContentPartText: ContentPartTextPayload { text }

Text content part.

type: "text"
"text"
ContentPartStructuredAction: ContentPartStructuredActionPayload { action, action_id }

Structured action content part.

type: "structured_action"
"structured_action"
ContentPartChart: ContentPartChartPayload { payload }

Chart payload content part.

type: "chart"
"chart"
ContentPartSuggestedActions: ContentPartSuggestedActionsPayload { payload }

Suggested actions payload content part.

type: "suggested_actions"
"suggested_actions"
ContentPartCustom: ContentPartCustomPayload { payload }

Escape-hatch custom payload content part.

type: "custom"
"custom"
created_at: string
outcome: "completed" or "errored" or "canceled"

Immutable terminal outcome for a finalized assistant message.

"completed"
"errored"
"canceled"
role: "USER" or "ASSISTANT"

Finalized message role in the public contract.

"USER"
"ASSISTANT"
seq: number
thread_id: string
error: optional object { code, message, details }

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

code: string
message: string
details: optional unknown

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

message_content: object { parts }

Finalized immutable message content container. Never includes thinking parts.

parts: array of MessageContentPart
ContentPartText: ContentPartTextPayload { text }

Text content part.

type: "text"
"text"
ContentPartStructuredAction: ContentPartStructuredActionPayload { action, action_id }

Structured action content part.

type: "structured_action"
"structured_action"
ContentPartChart: ContentPartChartPayload { payload }

Chart payload content part.

type: "chart"
"chart"
ContentPartSuggestedActions: ContentPartSuggestedActionsPayload { payload }

Suggested actions payload content part.

type: "suggested_actions"
"suggested_actions"
ContentPartCustom: ContentPartCustomPayload { payload }

Escape-hatch custom payload content part.

type: "custom"
"custom"
message_content_part: ContentPartTextPayload { text } or ContentPartStructuredActionPayload { action, action_id } or ContentPartChartPayload { payload } or 2 more

Final immutable content part visible on persisted messages.

ContentPartText: ContentPartTextPayload { text }

Text content part.

type: "text"
"text"
ContentPartStructuredAction: ContentPartStructuredActionPayload { action, action_id }

Structured action content part.

type: "structured_action"
"structured_action"
ContentPartChart: ContentPartChartPayload { payload }

Chart payload content part.

type: "chart"
"chart"
ContentPartSuggestedActions: ContentPartSuggestedActionsPayload { payload }

Suggested actions payload content part.

type: "suggested_actions"
"suggested_actions"
ContentPartCustom: ContentPartCustomPayload { payload }

Escape-hatch custom payload content part.

type: "custom"
"custom"
message_list: array of Message { id, content, created_at, 5 more }
id: string
content: object { parts }

Finalized immutable message content container. Never includes thinking parts.

parts: array of MessageContentPart
ContentPartText: ContentPartTextPayload { text }

Text content part.

type: "text"
"text"
ContentPartStructuredAction: ContentPartStructuredActionPayload { action, action_id }

Structured action content part.

type: "structured_action"
"structured_action"
ContentPartChart: ContentPartChartPayload { payload }

Chart payload content part.

type: "chart"
"chart"
ContentPartSuggestedActions: ContentPartSuggestedActionsPayload { payload }

Suggested actions payload content part.

type: "suggested_actions"
"suggested_actions"
ContentPartCustom: ContentPartCustomPayload { payload }

Escape-hatch custom payload content part.

type: "custom"
"custom"
created_at: string
outcome: "completed" or "errored" or "canceled"

Immutable terminal outcome for a finalized assistant message.

"completed"
"errored"
"canceled"
role: "USER" or "ASSISTANT"

Finalized message role in the public contract.

"USER"
"ASSISTANT"
seq: number
thread_id: string
error: optional object { code, message, details }

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

code: string
message: string
details: optional unknown

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

message_outcome: "completed" or "errored" or "canceled"

Immutable terminal outcome for a finalized assistant message.

"completed"
"errored"
"canceled"
message_role: "USER" or "ASSISTANT"

Finalized message role in the public contract.

"USER"
"ASSISTANT"
thread: object { id, created_at, title, updated_at }

Thread metadata returned by list/get thread endpoints.

id: string
created_at: string
title: string
updated_at: string
thread_list: array of Thread { id, created_at, title, updated_at }
id: string
created_at: string
title: string
updated_at: string

V1Orders

Place, monitor, and manage trading orders.

Get Orders
$ clst v1:orders get-orders
GET/v1/accounts/{account_id}/orders
Get Order By ID
$ clst v1:orders get-order-by-id
GET/v1/accounts/{account_id}/orders/{order_id}
Submit Orders
$ clst v1:orders submit-orders
POST/v1/accounts/{account_id}/orders
Replace Order
$ clst v1:orders replace-order
PATCH/v1/accounts/{account_id}/orders/{order_id}
Cancel Open Order
$ clst v1:orders cancel-open-order
DELETE/v1/accounts/{account_id}/orders/{order_id}
Cancel All Open Orders
$ clst v1:orders cancel-all-open-orders
DELETE/v1/accounts/{account_id}/orders
Get Executions
$ clst v1:orders get-executions
GET/v1/accounts/{account_id}/executions
ModelsExpand Collapse
cancel_order_request: object { account_id, order_id }

Request to cancel an existing order

Note: In the API, order cancellation is done via DELETE request without a body. The order_id and account_id come from the URL path parameters.

account_id: number

Account ID (from path parameter)

order_id: string

Order ID to cancel (from path parameter)

execution: object { id, instrument_id, order_id, 5 more }

Represents a single fill of an order for an account.

id: string

Unique identifier for this execution report.

instrument_id: string

Unique instrument identifier.

order_id: string

Identifier of the order this execution belongs to.

price: string

Fill price.

quantity: string

Filled quantity.

side: "BUY" or "SELL" or "SELL_SHORT" or "OTHER"

Side of the fill.

"BUY"
"SELL"
"SELL_SHORT"
"OTHER"
symbol: string

Trading symbol.

transaction_time: string

Transaction timestamp in nanosecond precision (UTC).

execution_list: array of Execution { id, instrument_id, order_id, 5 more }
id: string

Unique identifier for this execution report.

instrument_id: string

Unique instrument identifier.

order_id: string

Identifier of the order this execution belongs to.

price: string

Fill price.

quantity: string

Filled quantity.

side: "BUY" or "SELL" or "SELL_SHORT" or "OTHER"

Side of the fill.

"BUY"
"SELL"
"SELL_SHORT"
"OTHER"
symbol: string

Trading symbol.

transaction_time: string

Transaction timestamp in nanosecond precision (UTC).

instrument_id_or_symbol: string

Instrument identifier

new_order_request: object { order_type, quantity, side, 12 more }

Request to submit a new order (PlaceOrderRequest from spec)

order_type: "MARKET" or "LIMIT" or "STOP" or 3 more

Type of order

"MARKET"
"LIMIT"
"STOP"
"STOP_LIMIT"
"TRAILING_STOP"
"TRAILING_STOP_LIMIT"
quantity: string

Quantity to trade. For COMMON_STOCK: shares (may be fractional if supported). For OPTION (single-leg): contracts (must be an integer)

side: "BUY" or "SELL" or "SELL_SHORT" or "OTHER"

Side of the order

"BUY"
"SELL"
"SELL_SHORT"
"OTHER"
time_in_force: "DAY" or "GOOD_TILL_CANCEL" or "IMMEDIATE_OR_CANCEL" or 7 more

Time in force

"DAY"
"GOOD_TILL_CANCEL"
"IMMEDIATE_OR_CANCEL"
"FILL_OR_KILL"
"GOOD_TILL_DATE"
"AT_THE_OPENING"
"AT_THE_CLOSE"
"GOOD_TILL_CROSSING"
"GOOD_THROUGH_CROSSING"
"AT_CROSSING"
id: optional string

Optional client-provided unique ID (idempotency). Required to be unique per account.

expires_at: optional string

The timestamp when the order should expire (UTC). Required when time_in_force is GOOD_TILL_DATE.

extended_hours: optional boolean

Allow trading outside regular trading hours. Some brokers disallow options outside RTH.

instrument_id: optional string

Instrument identifier

limit_offset: optional string

Limit offset for trailing stop-limit orders (signed)

limit_price: optional string

Limit price (required for LIMIT and STOP_LIMIT orders)

position_effect: optional "OPEN" or "CLOSE"

Required for options. Specifies whether the order opens or closes a position.

"OPEN"
"CLOSE"
stop_price: optional string

Stop price (required for STOP and STOP_LIMIT orders)

symbol: optional string

Trading symbol. For equities, use the ticker symbol (e.g., “TSLA”). For options, use the OSI symbol (e.g., “TSLA 250117C00190000”). Either symbol or instrument_id must be provided.

trailing_offset: optional string

Trailing offset amount (required for trailing orders)

trailing_offset_type: optional "PRICE" or "BPS"

Trailing offset type (PRICE or PERCENT_BPS)

"PRICE"
"BPS"
order: object { id, account_id, client_order_id, 29 more }

A trading order with its current state and execution details.

This is the unified API representation of an order across its lifecycle, combining data from execution reports, order status queries, and parent/child tracking.

id: string

Engine-assigned unique identifier for this order (UUID).

account_id: number

Account placing the order

client_order_id: string

Client-provided identifier echoed back.

created_at: string

Timestamp when order was created (UTC)

filled_quantity: string

Cumulative filled quantity

instrument_id: string

Instrument identifier for the traded instrument.

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

Type of security

"COMMON_STOCK"
"OPTION"
"CASH"
leaves_quantity: string

Remaining unfilled quantity

order_type: "MARKET" or "LIMIT" or "STOP" or 4 more

Type of order (MARKET, LIMIT, etc.)

"MARKET"
"LIMIT"
"STOP"
"STOP_LIMIT"
"TRAILING_STOP"
"TRAILING_STOP_LIMIT"
"OTHER"
quantity: string

Total order quantity

side: "BUY" or "SELL" or "SELL_SHORT" or "OTHER"

Side of the order (BUY, SELL, SELL_SHORT)

"BUY"
"SELL"
"SELL_SHORT"
"OTHER"
status: "PENDING_NEW" or "NEW" or "PARTIALLY_FILLED" or 12 more

Current status of the order

"PENDING_NEW"
"NEW"
"PARTIALLY_FILLED"
"FILLED"
"CANCELED"
"REJECTED"
"EXPIRED"
"PENDING_CANCEL"
"PENDING_REPLACE"
"REPLACED"
"DONE_FOR_DAY"
"STOPPED"
"SUSPENDED"
"CALCULATED"
"OTHER"
symbol: string

Trading symbol

time_in_force: "DAY" or "GOOD_TILL_CANCEL" or "IMMEDIATE_OR_CANCEL" or 8 more

Time in force instruction

"DAY"
"GOOD_TILL_CANCEL"
"IMMEDIATE_OR_CANCEL"
"FILL_OR_KILL"
"GOOD_TILL_DATE"
"AT_THE_OPENING"
"AT_THE_CLOSE"
"GOOD_TILL_CROSSING"
"GOOD_THROUGH_CROSSING"
"AT_CROSSING"
"OTHER"
updated_at: string

Timestamp of the most recent update (UTC)

venue: string

MIC code of the venue where the order is routed

average_fill_price: optional string

Average fill price across all executions When a null/undefined value is observed, it indicates that there is no available data.

details: optional array of string

Contains execution, rejection or cancellation details, if any

expires_at: optional string

Timestamp when the order will expire (UTC). Present when time_in_force is GOOD_TILL_DATE. When a null/undefined value is observed, it indicates it does not apply.

extended_hours: optional boolean

Whether the order is eligible for extended-hours trading.

limit_offset: optional string

Limit offset for trailing stop-limit orders (signed) When a null/undefined value is observed, it indicates it does not apply.

limit_price: optional string

Limit price (for LIMIT and STOP_LIMIT orders) When a null/undefined value is observed, it indicates it does not apply.

queue_state: optional "AWAITING_RELEASE" or "RELEASED"

Parent order queue state, present when the order is awaiting release or released. When a null/undefined value is observed, it indicates it does not apply.

"AWAITING_RELEASE"
"RELEASED"
releases_at: optional string

Scheduled release time for orders awaiting release. When a null/undefined value is observed, it indicates it does not apply.

stop_price: optional string

Stop price (for STOP and STOP_LIMIT orders) When a null/undefined value is observed, it indicates it does not apply.

trailing_limit_px: optional string

Current trailing limit price computed by the trailing strategy When a null/undefined value is observed, it indicates it does not apply.

trailing_offset: optional string

Trailing offset amount for trailing orders When a null/undefined value is observed, it indicates it does not apply.

trailing_offset_type: optional "PRICE" or "BPS"

Trailing offset type for trailing orders When a null/undefined value is observed, it indicates it does not apply.

"PRICE"
"BPS"
trailing_stop_px: optional string

Current trailing stop price computed by the trailing strategy When a null/undefined value is observed, it indicates it does not apply.

trailing_watermark_px: optional string

Trailing watermark price for trailing orders When a null/undefined value is observed, it indicates it does not apply.

trailing_watermark_ts: optional string

Trailing watermark timestamp for trailing orders When a null/undefined value is observed, it indicates it does not apply.

underlying_instrument_id: optional string

Instrument ID of the option’s underlying instrument. Populated only for options orders. A null means one of two things: the order is not an option, so the field does not apply; or the order is an option whose underlier has not yet been resolved. When a null/undefined value is observed, it indicates it does not apply.

order_list: array of Order { id, account_id, client_order_id, 29 more }
id: string

Engine-assigned unique identifier for this order (UUID).

account_id: number

Account placing the order

client_order_id: string

Client-provided identifier echoed back.

created_at: string

Timestamp when order was created (UTC)

filled_quantity: string

Cumulative filled quantity

instrument_id: string

Instrument identifier for the traded instrument.

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

Type of security

"COMMON_STOCK"
"OPTION"
"CASH"
leaves_quantity: string

Remaining unfilled quantity

order_type: "MARKET" or "LIMIT" or "STOP" or 4 more

Type of order (MARKET, LIMIT, etc.)

"MARKET"
"LIMIT"
"STOP"
"STOP_LIMIT"
"TRAILING_STOP"
"TRAILING_STOP_LIMIT"
"OTHER"
quantity: string

Total order quantity

side: "BUY" or "SELL" or "SELL_SHORT" or "OTHER"

Side of the order (BUY, SELL, SELL_SHORT)

"BUY"
"SELL"
"SELL_SHORT"
"OTHER"
status: "PENDING_NEW" or "NEW" or "PARTIALLY_FILLED" or 12 more

Current status of the order

"PENDING_NEW"
"NEW"
"PARTIALLY_FILLED"
"FILLED"
"CANCELED"
"REJECTED"
"EXPIRED"
"PENDING_CANCEL"
"PENDING_REPLACE"
"REPLACED"
"DONE_FOR_DAY"
"STOPPED"
"SUSPENDED"
"CALCULATED"
"OTHER"
symbol: string

Trading symbol

time_in_force: "DAY" or "GOOD_TILL_CANCEL" or "IMMEDIATE_OR_CANCEL" or 8 more

Time in force instruction

"DAY"
"GOOD_TILL_CANCEL"
"IMMEDIATE_OR_CANCEL"
"FILL_OR_KILL"
"GOOD_TILL_DATE"
"AT_THE_OPENING"
"AT_THE_CLOSE"
"GOOD_TILL_CROSSING"
"GOOD_THROUGH_CROSSING"
"AT_CROSSING"
"OTHER"
updated_at: string

Timestamp of the most recent update (UTC)

venue: string

MIC code of the venue where the order is routed

average_fill_price: optional string

Average fill price across all executions When a null/undefined value is observed, it indicates that there is no available data.

details: optional array of string

Contains execution, rejection or cancellation details, if any

expires_at: optional string

Timestamp when the order will expire (UTC). Present when time_in_force is GOOD_TILL_DATE. When a null/undefined value is observed, it indicates it does not apply.

extended_hours: optional boolean

Whether the order is eligible for extended-hours trading.

limit_offset: optional string

Limit offset for trailing stop-limit orders (signed) When a null/undefined value is observed, it indicates it does not apply.

limit_price: optional string

Limit price (for LIMIT and STOP_LIMIT orders) When a null/undefined value is observed, it indicates it does not apply.

queue_state: optional "AWAITING_RELEASE" or "RELEASED"

Parent order queue state, present when the order is awaiting release or released. When a null/undefined value is observed, it indicates it does not apply.

"AWAITING_RELEASE"
"RELEASED"
releases_at: optional string

Scheduled release time for orders awaiting release. When a null/undefined value is observed, it indicates it does not apply.

stop_price: optional string

Stop price (for STOP and STOP_LIMIT orders) When a null/undefined value is observed, it indicates it does not apply.

trailing_limit_px: optional string

Current trailing limit price computed by the trailing strategy When a null/undefined value is observed, it indicates it does not apply.

trailing_offset: optional string

Trailing offset amount for trailing orders When a null/undefined value is observed, it indicates it does not apply.

trailing_offset_type: optional "PRICE" or "BPS"

Trailing offset type for trailing orders When a null/undefined value is observed, it indicates it does not apply.

"PRICE"
"BPS"
trailing_stop_px: optional string

Current trailing stop price computed by the trailing strategy When a null/undefined value is observed, it indicates it does not apply.

trailing_watermark_px: optional string

Trailing watermark price for trailing orders When a null/undefined value is observed, it indicates it does not apply.

trailing_watermark_ts: optional string

Trailing watermark timestamp for trailing orders When a null/undefined value is observed, it indicates it does not apply.

underlying_instrument_id: optional string

Instrument ID of the option’s underlying instrument. Populated only for options orders. A null means one of two things: the order is not an option, so the field does not apply; or the order is an option whose underlier has not yet been resolved. When a null/undefined value is observed, it indicates it does not apply.

order_status: "PENDING_NEW" or "NEW" or "PARTIALLY_FILLED" or 12 more

Order status

"PENDING_NEW"
"NEW"
"PARTIALLY_FILLED"
"FILLED"
"CANCELED"
"REJECTED"
"EXPIRED"
"PENDING_CANCEL"
"PENDING_REPLACE"
"REPLACED"
"DONE_FOR_DAY"
"STOPPED"
"SUSPENDED"
"CALCULATED"
"OTHER"
order_type: "MARKET" or "LIMIT" or "STOP" or 4 more

Order type

"MARKET"
"LIMIT"
"STOP"
"STOP_LIMIT"
"TRAILING_STOP"
"TRAILING_STOP_LIMIT"
"OTHER"
position_effect: "OPEN" or "CLOSE"

Position effect for options orders

"OPEN"
"CLOSE"
queue_state: "AWAITING_RELEASE" or "RELEASED"

Parent order queue or hold state.

"AWAITING_RELEASE"
"RELEASED"
request_order_type: "MARKET" or "LIMIT" or "STOP" or 3 more

Strict order-type enum for order submission/replacement requests.

"MARKET"
"LIMIT"
"STOP"
"STOP_LIMIT"
"TRAILING_STOP"
"TRAILING_STOP_LIMIT"
request_time_in_force: "DAY" or "GOOD_TILL_CANCEL" or "IMMEDIATE_OR_CANCEL" or 7 more

Strict time-in-force enum for order submission/replacement requests.

"DAY"
"GOOD_TILL_CANCEL"
"IMMEDIATE_OR_CANCEL"
"FILL_OR_KILL"
"GOOD_TILL_DATE"
"AT_THE_OPENING"
"AT_THE_CLOSE"
"GOOD_TILL_CROSSING"
"GOOD_THROUGH_CROSSING"
"AT_CROSSING"
side: "BUY" or "SELL" or "SELL_SHORT" or "OTHER"

Side of an order

"BUY"
"SELL"
"SELL_SHORT"
"OTHER"
time_in_force: "DAY" or "GOOD_TILL_CANCEL" or "IMMEDIATE_OR_CANCEL" or 8 more

Time in force

"DAY"
"GOOD_TILL_CANCEL"
"IMMEDIATE_OR_CANCEL"
"FILL_OR_KILL"
"GOOD_TILL_DATE"
"AT_THE_OPENING"
"AT_THE_CLOSE"
"GOOD_TILL_CROSSING"
"GOOD_THROUGH_CROSSING"
"AT_CROSSING"
"OTHER"
trailing_offset_type: "PRICE" or "BPS"

Trailing offset type for trailing stop orders.

"PRICE"
"BPS"

V1Positions

View positions and manage position instructions.

Get Positions
$ clst v1:positions get-positions
GET/v1/accounts/{account_id}/positions
Close Positions
$ clst v1:positions close-positions
DELETE/v1/accounts/{account_id}/positions
Close Position
$ clst v1:positions close-position
DELETE/v1/accounts/{account_id}/positions/{instrument_id}
Get Position Instructions
$ clst v1:positions get-position-instructions
GET/v1/accounts/{account_id}/positions/instructions
Submit Position Instructions
$ clst v1:positions submit-position-instructions
POST/v1/accounts/{account_id}/positions/instructions
Cancel Position Instruction
$ clst v1:positions cancel-position-instruction
DELETE/v1/accounts/{account_id}/positions/instructions/{instruction_id}
ModelsExpand Collapse
position: object { account_id, available_quantity, instrument_id, 16 more }

Represents a holding of a particular instrument in an account

account_id: number

The account this position belongs to

available_quantity: string

The quantity of a position that is free to be operated on.

instrument_id: string

Unique instrument identifier

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

Type of security

"COMMON_STOCK"
"OPTION"
"CASH"
market_value: string

The current market value of the position

position_type: "LONG" or "SHORT" or "LONG_CALL" or 3 more

The type of position

"LONG"
"SHORT"
"LONG_CALL"
"SHORT_CALL"
"LONG_PUT"
"SHORT_PUT"
quantity: string

The number of shares or contracts. Can be positive (long) or negative (short)

symbol: string

The trading symbol for the instrument

avg_price: optional string

The average price paid per share or contract for this position When a null/undefined value is observed, it indicates that there is no available data.

closing_price: optional string

The closing price used to value the position for the last trading day When a null/undefined value is observed, it indicates that there is no available data.

closing_price_date: optional string

The market date associated with closing_price When a null/undefined value is observed, it indicates that there is no available data.

cost_basis: optional string

The total cost basis for this position When a null/undefined value is observed, it indicates that there is no available data.

daily_realized_pnl: optional string

The realized profit or loss for this position for the current day When a null/undefined value is observed, it indicates that there is no available data.

daily_unrealized_pnl: optional string

The unrealized profit or loss for this position relative to the previous close When a null/undefined value is observed, it indicates that there is no available data.

daily_unrealized_pnl_pct: optional string

The unrealized profit/loss for the position for the current day, expressed as a percentage of the baseline value (range: 0-100). When a null/undefined value is observed, it indicates that there is no available data.

instrument_price: optional string

The current market price of the instrument When a null/undefined value is observed, it indicates that there is no available data.

underlying_instrument_id: optional string

Identifier of the underlying instrument, when available When a null/undefined value is observed, it indicates it does not apply.

unrealized_pnl: optional string

The total unrealized profit or loss for this position based on current market value When a null/undefined value is observed, it indicates that there is no available data.

unrealized_pnl_pct: optional string

The unrealized profit/loss for the position, expressed as a percentage of the position’s cost basis (range: 0-100). When a null/undefined value is observed, it indicates that there is no available data.

position_instruction: object { id, account_id, instruction_id, 9 more }

A position instruction and its current lifecycle state.

id: string

Server-assigned id. Used as the path parameter on cancel.

account_id: number

Account the instruction belongs to.

instruction_id: string

Caller-supplied idempotency key echoed from the submit request; the server-assigned fallback when none was supplied.

instruction_type: "EXERCISE" or "DO_NOT_EXERCISE" or "CONTRARY_EXERCISE"

The action this instruction requests.

"EXERCISE"
"DO_NOT_EXERCISE"
"CONTRARY_EXERCISE"
instrument_id: string

Identifier of the options contract this instruction acts on.

quantity: string

Number of contracts included in the instruction.

status: "SENT" or "ACCEPTED" or "REJECTED" or 4 more

Current lifecycle status.

"SENT"
"ACCEPTED"
"REJECTED"
"CANCEL_REQUESTED"
"CANCELLED"
"CANCEL_FAILED"
"UNKNOWN"
symbol: string

Options symbol (OSI) for display.

accepted_quantity: optional string

Number of contracts accepted by the clearing venue. Populated once the instruction reaches ACCEPTED. When a null/undefined value is observed, it indicates that there is no available data.

created_at: optional string

When the instruction was first accepted by the service. When a null/undefined value is observed, it indicates that there is no available data.

rejection_reason: optional string

Human-readable explanation populated on any non-success terminal status — REJECTED or CANCEL_FAILED. On a 207 Multi-Status batch submit the top-level error field summarizes the batch; per-row detail continues to live here. When a null/undefined value is observed, it indicates it does not apply.

updated_at: optional string

When the instruction’s lifecycle state last changed. When a null/undefined value is observed, it indicates that there is no available data.

position_instruction_list: array of PositionInstruction { id, account_id, instruction_id, 9 more }
id: string

Server-assigned id. Used as the path parameter on cancel.

account_id: number

Account the instruction belongs to.

instruction_id: string

Caller-supplied idempotency key echoed from the submit request; the server-assigned fallback when none was supplied.

instruction_type: "EXERCISE" or "DO_NOT_EXERCISE" or "CONTRARY_EXERCISE"

The action this instruction requests.

"EXERCISE"
"DO_NOT_EXERCISE"
"CONTRARY_EXERCISE"
instrument_id: string

Identifier of the options contract this instruction acts on.

quantity: string

Number of contracts included in the instruction.

status: "SENT" or "ACCEPTED" or "REJECTED" or 4 more

Current lifecycle status.

"SENT"
"ACCEPTED"
"REJECTED"
"CANCEL_REQUESTED"
"CANCELLED"
"CANCEL_FAILED"
"UNKNOWN"
symbol: string

Options symbol (OSI) for display.

accepted_quantity: optional string

Number of contracts accepted by the clearing venue. Populated once the instruction reaches ACCEPTED. When a null/undefined value is observed, it indicates that there is no available data.

created_at: optional string

When the instruction was first accepted by the service. When a null/undefined value is observed, it indicates that there is no available data.

rejection_reason: optional string

Human-readable explanation populated on any non-success terminal status — REJECTED or CANCEL_FAILED. On a 207 Multi-Status batch submit the top-level error field summarizes the batch; per-row detail continues to live here. When a null/undefined value is observed, it indicates it does not apply.

updated_at: optional string

When the instruction’s lifecycle state last changed. When a null/undefined value is observed, it indicates that there is no available data.

position_instruction_status: "SENT" or "ACCEPTED" or "REJECTED" or 4 more

Lifecycle status of a position instruction.

  • SENT: accepted and submitted to the clearing venue.
  • ACCEPTED: terminal — accepted by the clearing venue.
  • REJECTED: terminal rejection; rejection_reason carries the detail. Covers both venue-reported rejections and rejections raised before the instruction reached the clearing venue (e.g. duplicate instruction_id, DO_NOT_EXERCISE / CONTRARY_EXERCISE submitted on a non-expiry day, insufficient position, or an instrument that does not resolve).
  • CANCEL_REQUESTED: cancel accepted; final cancel state pending.
  • CANCELLED: terminal — cancel completed.
  • CANCEL_FAILED: cancel could not be completed; operator attention required. rejection_reason carries the detail.
  • UNKNOWN: status could not be determined.
"SENT"
"ACCEPTED"
"REJECTED"
"CANCEL_REQUESTED"
"CANCELLED"
"CANCEL_FAILED"
"UNKNOWN"
position_instruction_type: "EXERCISE" or "DO_NOT_EXERCISE" or "CONTRARY_EXERCISE"

The action to take against an options position.

"EXERCISE"
"DO_NOT_EXERCISE"
"CONTRARY_EXERCISE"
position_list: array of Position { account_id, available_quantity, instrument_id, 16 more }
account_id: number

The account this position belongs to

available_quantity: string

The quantity of a position that is free to be operated on.

instrument_id: string

Unique instrument identifier

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

Type of security

"COMMON_STOCK"
"OPTION"
"CASH"
market_value: string

The current market value of the position

position_type: "LONG" or "SHORT" or "LONG_CALL" or 3 more

The type of position

"LONG"
"SHORT"
"LONG_CALL"
"SHORT_CALL"
"LONG_PUT"
"SHORT_PUT"
quantity: string

The number of shares or contracts. Can be positive (long) or negative (short)

symbol: string

The trading symbol for the instrument

avg_price: optional string

The average price paid per share or contract for this position When a null/undefined value is observed, it indicates that there is no available data.

closing_price: optional string

The closing price used to value the position for the last trading day When a null/undefined value is observed, it indicates that there is no available data.

closing_price_date: optional string

The market date associated with closing_price When a null/undefined value is observed, it indicates that there is no available data.

cost_basis: optional string

The total cost basis for this position When a null/undefined value is observed, it indicates that there is no available data.

daily_realized_pnl: optional string

The realized profit or loss for this position for the current day When a null/undefined value is observed, it indicates that there is no available data.

daily_unrealized_pnl: optional string

The unrealized profit or loss for this position relative to the previous close When a null/undefined value is observed, it indicates that there is no available data.

daily_unrealized_pnl_pct: optional string

The unrealized profit/loss for the position for the current day, expressed as a percentage of the baseline value (range: 0-100). When a null/undefined value is observed, it indicates that there is no available data.

instrument_price: optional string

The current market price of the instrument When a null/undefined value is observed, it indicates that there is no available data.

underlying_instrument_id: optional string

Identifier of the underlying instrument, when available When a null/undefined value is observed, it indicates it does not apply.

unrealized_pnl: optional string

The total unrealized profit or loss for this position based on current market value When a null/undefined value is observed, it indicates that there is no available data.

unrealized_pnl_pct: optional string

The unrealized profit/loss for the position, expressed as a percentage of the position’s cost basis (range: 0-100). When a null/undefined value is observed, it indicates that there is no available data.

position_type: "LONG" or "SHORT" or "LONG_CALL" or 3 more

Position type classification

"LONG"
"SHORT"
"LONG_CALL"
"SHORT_CALL"
"LONG_PUT"
"SHORT_PUT"

V1Screener

Search instruments and manage saved screeners.

Search Screener
$ clst v1:screener search-screener
POST/v1/screener
Get Screeners
$ clst v1:screener get-screeners
GET/v1/saved-screeners
Get Screener By ID
$ clst v1:screener get-screener-by-id
GET/v1/saved-screeners/{screener_id}
Create Screener
$ clst v1:screener create-screener
POST/v1/saved-screeners
Replace Screener
$ clst v1:screener replace-screener
PUT/v1/saved-screeners/{screener_id}
Delete Screener
$ clst v1:screener delete-screener
DELETE/v1/saved-screeners/{screener_id}
ModelsExpand Collapse
field_lookback: "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Historical lookback window for price/change fields.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
field_period: "QUARTER" or "TRAILING_TWELVE_MONTHS"

Reporting period for financial data fields.

"QUARTER"
"TRAILING_TWELVE_MONTHS"
field_ref: object { name, lookback, period, value_type }

A reference to a screener field.

name: string

The field name.

lookback: optional "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Optional historical lookback window.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
period: optional "QUARTER" or "TRAILING_TWELVE_MONTHS"

Optional reporting period (e.g. quarter or TTM).

"QUARTER"
"TRAILING_TWELVE_MONTHS"
value_type: optional "DECIMAL" or "INTEGER" or "STRING" or 2 more

The data type of the field value. Present only in responses.

"DECIMAL"
"INTEGER"
"STRING"
"ANALYST_RATING"
"DATE"
field_type: "DECIMAL" or "INTEGER" or "STRING" or 2 more

The data type of a screener field value.

"DECIMAL"
"INTEGER"
"STRING"
"ANALYST_RATING"
"DATE"
filter_op_spec: object { name, args }

Operator specification with optional behavioral arguments.

name: "LESS_THAN" or "LESS_OR_EQUAL" or "GREATER_THAN" or 11 more

The operator to apply.

"LESS_THAN"
"LESS_OR_EQUAL"
"GREATER_THAN"
"GREATER_OR_EQUAL"
"EQUAL"
"BETWEEN"
"NOT_BETWEEN"
"ONE_OF"
"REGEX"
"BEGINS_WITH"
"ENDS_WITH"
"CONTAINS"
"IS_NULL"
"IS_NOT_NULL"
args: optional array of OperatorArg

Optional arguments that modify operator behavior.

"LEFT_INCLUSIVE"
"RIGHT_INCLUSIVE"
"LEFT_EXCLUSIVE"
"RIGHT_EXCLUSIVE"
"CASE_INSENSITIVE"
filter_operator: "LESS_THAN" or "LESS_OR_EQUAL" or "GREATER_THAN" or 11 more

Filter operators supported by the screener.

Abbreviated and lowercase forms are accepted as serde aliases for backward compatibility with earlier API revisions; the canonical wire form is the SCREAMING_SNAKE_CASE rendering.

"LESS_THAN"
"LESS_OR_EQUAL"
"GREATER_THAN"
"GREATER_OR_EQUAL"
"EQUAL"
"BETWEEN"
"NOT_BETWEEN"
"ONE_OF"
"REGEX"
"BEGINS_WITH"
"ENDS_WITH"
"CONTAINS"
"IS_NULL"
"IS_NOT_NULL"
filter_value: object { value, variable }

A filter value: either a literal or a variable reference.

value: optional number or string
union_member_0: number
union_member_1: string
variable: optional object { name, lookback, modifier, period }

A variable reference.

name: string

The variable name.

lookback: optional "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Optional historical lookback window.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
modifier: optional object { args, name }

Optional arithmetic modifier.

args: array of number or string
union_member_0: number
union_member_1: string
name: "ADD" or "SUBTRACT"

The modifier operation.

"ADD"
"SUBTRACT"
period: optional "QUARTER" or "TRAILING_TWELVE_MONTHS"

Optional reporting period.

"QUARTER"
"TRAILING_TWELVE_MONTHS"
modifier: object { args, name }

Arithmetic modifier applied to a variable value.

args: array of number or string
union_member_0: number
union_member_1: string
name: "ADD" or "SUBTRACT"

The modifier operation.

"ADD"
"SUBTRACT"
modifier_op: "ADD" or "SUBTRACT"

Modifier operation applied to a variable.

"ADD"
"SUBTRACT"
operator_arg: "LEFT_INCLUSIVE" or "RIGHT_INCLUSIVE" or "LEFT_EXCLUSIVE" or 2 more

Argument that modifies operator behavior.

"LEFT_INCLUSIVE"
"RIGHT_INCLUSIVE"
"LEFT_EXCLUSIVE"
"RIGHT_EXCLUSIVE"
"CASE_INSENSITIVE"
screener_column: object { field, name, value, type }

A single column in the screener search response.

field: object { name, lookback, period, value_type }

Field reference (same shape as filter/sort field references)

name: string

The field name.

lookback: optional "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Optional historical lookback window.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
period: optional "QUARTER" or "TRAILING_TWELVE_MONTHS"

Optional reporting period (e.g. quarter or TTM).

"QUARTER"
"TRAILING_TWELVE_MONTHS"
value_type: optional "DECIMAL" or "INTEGER" or "STRING" or 2 more

The data type of the field value. Present only in responses.

"DECIMAL"
"INTEGER"
"STRING"
"ANALYST_RATING"
"DATE"
name: string

Human-readable display name for this field

value: number or string
union_member_0: number
union_member_1: string
type: optional string

Value format hint: “CURR_USD”, “PERCENT”, etc. Omitted when not applicable. When a null/undefined value is observed, it indicates it does not apply.

screener_entry: object { id, created_at, filters, 5 more }

A saved screener configuration entry

id: string
created_at: string
filters: array of SearchFilter { left, op, right }
left: object { name, lookback, period, value_type }

The field to filter on.

name: string

The field name.

lookback: optional "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Optional historical lookback window.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
period: optional "QUARTER" or "TRAILING_TWELVE_MONTHS"

Optional reporting period (e.g. quarter or TTM).

"QUARTER"
"TRAILING_TWELVE_MONTHS"
value_type: optional "DECIMAL" or "INTEGER" or "STRING" or 2 more

The data type of the field value. Present only in responses.

"DECIMAL"
"INTEGER"
"STRING"
"ANALYST_RATING"
"DATE"
op: optional object { name, args }

The operator and optional arguments. Omit together with right for an unenabled filter.

name: "LESS_THAN" or "LESS_OR_EQUAL" or "GREATER_THAN" or 11 more

The operator to apply.

"LESS_THAN"
"LESS_OR_EQUAL"
"GREATER_THAN"
"GREATER_OR_EQUAL"
"EQUAL"
"BETWEEN"
"NOT_BETWEEN"
"ONE_OF"
"REGEX"
"BEGINS_WITH"
"ENDS_WITH"
"CONTAINS"
"IS_NULL"
"IS_NOT_NULL"
args: optional array of OperatorArg

Optional arguments that modify operator behavior.

"LEFT_INCLUSIVE"
"RIGHT_INCLUSIVE"
"LEFT_EXCLUSIVE"
"RIGHT_EXCLUSIVE"
"CASE_INSENSITIVE"
right: optional array of FilterValue { value, variable }

The value(s) to compare against. Omit together with op for an unenabled filter.

value: optional number or string
union_member_0: number
union_member_1: string
variable: optional object { name, lookback, modifier, period }

A variable reference.

name: string

The variable name.

lookback: optional "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Optional historical lookback window.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
modifier: optional object { args, name }

Optional arithmetic modifier.

args: array of number or string
union_member_0: number
union_member_1: string
name: "ADD" or "SUBTRACT"

The modifier operation.

"ADD"
"SUBTRACT"
period: optional "QUARTER" or "TRAILING_TWELVE_MONTHS"

Optional reporting period.

"QUARTER"
"TRAILING_TWELVE_MONTHS"
name: string
updated_at: string
columns: optional array of FieldRef { name, lookback, period, value_type }

Field references included when running this screener.

name: string

The field name.

lookback: optional "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Optional historical lookback window.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
period: optional "QUARTER" or "TRAILING_TWELVE_MONTHS"

Optional reporting period (e.g. quarter or TTM).

"QUARTER"
"TRAILING_TWELVE_MONTHS"
value_type: optional "DECIMAL" or "INTEGER" or "STRING" or 2 more

The data type of the field value. Present only in responses.

"DECIMAL"
"INTEGER"
"STRING"
"ANALYST_RATING"
"DATE"
Deprecatedfield_filter: optional array of FieldRef { name, lookback, period, value_type }

Deprecated: use columns instead. Mirrors columns.

name: string

The field name.

lookback: optional "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Optional historical lookback window.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
period: optional "QUARTER" or "TRAILING_TWELVE_MONTHS"

Optional reporting period (e.g. quarter or TTM).

"QUARTER"
"TRAILING_TWELVE_MONTHS"
value_type: optional "DECIMAL" or "INTEGER" or "STRING" or 2 more

The data type of the field value. Present only in responses.

"DECIMAL"
"INTEGER"
"STRING"
"ANALYST_RATING"
"DATE"
sorts: optional array of SortSpec { field, direction }
field: object { name, lookback, period, value_type }

The field to sort by.

name: string

The field name.

lookback: optional "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Optional historical lookback window.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
period: optional "QUARTER" or "TRAILING_TWELVE_MONTHS"

Optional reporting period (e.g. quarter or TTM).

"QUARTER"
"TRAILING_TWELVE_MONTHS"
value_type: optional "DECIMAL" or "INTEGER" or "STRING" or 2 more

The data type of the field value. Present only in responses.

"DECIMAL"
"INTEGER"
"STRING"
"ANALYST_RATING"
"DATE"
direction: optional "ASC" or "DESC"

Sort direction (defaults to DESC).

"ASC"
"DESC"
screener_entry_list: array of ScreenerEntry { id, created_at, filters, 5 more }
id: string
created_at: string
filters: array of SearchFilter { left, op, right }
left: object { name, lookback, period, value_type }

The field to filter on.

name: string

The field name.

lookback: optional "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Optional historical lookback window.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
period: optional "QUARTER" or "TRAILING_TWELVE_MONTHS"

Optional reporting period (e.g. quarter or TTM).

"QUARTER"
"TRAILING_TWELVE_MONTHS"
value_type: optional "DECIMAL" or "INTEGER" or "STRING" or 2 more

The data type of the field value. Present only in responses.

"DECIMAL"
"INTEGER"
"STRING"
"ANALYST_RATING"
"DATE"
op: optional object { name, args }

The operator and optional arguments. Omit together with right for an unenabled filter.

name: "LESS_THAN" or "LESS_OR_EQUAL" or "GREATER_THAN" or 11 more

The operator to apply.

"LESS_THAN"
"LESS_OR_EQUAL"
"GREATER_THAN"
"GREATER_OR_EQUAL"
"EQUAL"
"BETWEEN"
"NOT_BETWEEN"
"ONE_OF"
"REGEX"
"BEGINS_WITH"
"ENDS_WITH"
"CONTAINS"
"IS_NULL"
"IS_NOT_NULL"
args: optional array of OperatorArg

Optional arguments that modify operator behavior.

"LEFT_INCLUSIVE"
"RIGHT_INCLUSIVE"
"LEFT_EXCLUSIVE"
"RIGHT_EXCLUSIVE"
"CASE_INSENSITIVE"
right: optional array of FilterValue { value, variable }

The value(s) to compare against. Omit together with op for an unenabled filter.

value: optional number or string
union_member_0: number
union_member_1: string
variable: optional object { name, lookback, modifier, period }

A variable reference.

name: string

The variable name.

lookback: optional "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Optional historical lookback window.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
modifier: optional object { args, name }

Optional arithmetic modifier.

args: array of number or string
union_member_0: number
union_member_1: string
name: "ADD" or "SUBTRACT"

The modifier operation.

"ADD"
"SUBTRACT"
period: optional "QUARTER" or "TRAILING_TWELVE_MONTHS"

Optional reporting period.

"QUARTER"
"TRAILING_TWELVE_MONTHS"
name: string
updated_at: string
columns: optional array of FieldRef { name, lookback, period, value_type }

Field references included when running this screener.

name: string

The field name.

lookback: optional "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Optional historical lookback window.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
period: optional "QUARTER" or "TRAILING_TWELVE_MONTHS"

Optional reporting period (e.g. quarter or TTM).

"QUARTER"
"TRAILING_TWELVE_MONTHS"
value_type: optional "DECIMAL" or "INTEGER" or "STRING" or 2 more

The data type of the field value. Present only in responses.

"DECIMAL"
"INTEGER"
"STRING"
"ANALYST_RATING"
"DATE"
Deprecatedfield_filter: optional array of FieldRef { name, lookback, period, value_type }

Deprecated: use columns instead. Mirrors columns.

name: string

The field name.

lookback: optional "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Optional historical lookback window.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
period: optional "QUARTER" or "TRAILING_TWELVE_MONTHS"

Optional reporting period (e.g. quarter or TTM).

"QUARTER"
"TRAILING_TWELVE_MONTHS"
value_type: optional "DECIMAL" or "INTEGER" or "STRING" or 2 more

The data type of the field value. Present only in responses.

"DECIMAL"
"INTEGER"
"STRING"
"ANALYST_RATING"
"DATE"
sorts: optional array of SortSpec { field, direction }
field: object { name, lookback, period, value_type }

The field to sort by.

name: string

The field name.

lookback: optional "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Optional historical lookback window.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
period: optional "QUARTER" or "TRAILING_TWELVE_MONTHS"

Optional reporting period (e.g. quarter or TTM).

"QUARTER"
"TRAILING_TWELVE_MONTHS"
value_type: optional "DECIMAL" or "INTEGER" or "STRING" or 2 more

The data type of the field value. Present only in responses.

"DECIMAL"
"INTEGER"
"STRING"
"ANALYST_RATING"
"DATE"
direction: optional "ASC" or "DESC"

Sort direction (defaults to DESC).

"ASC"
"DESC"
screener_filter: object { field, operator, value }

A single filter criterion for the screener.

field: string

Field to filter on (e.g., “market_cap”, “sector”, “price”)

operator: string

Comparison operator (e.g., “eq”, “gte”, “lte”, “in”)

value: unknown

Filter value

screener_row: array of ScreenerColumn { field, name, value, type }

A single row of screener columns for one instrument.

field: object { name, lookback, period, value_type }

Field reference (same shape as filter/sort field references)

name: string

The field name.

lookback: optional "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Optional historical lookback window.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
period: optional "QUARTER" or "TRAILING_TWELVE_MONTHS"

Optional reporting period (e.g. quarter or TTM).

"QUARTER"
"TRAILING_TWELVE_MONTHS"
value_type: optional "DECIMAL" or "INTEGER" or "STRING" or 2 more

The data type of the field value. Present only in responses.

"DECIMAL"
"INTEGER"
"STRING"
"ANALYST_RATING"
"DATE"
name: string

Human-readable display name for this field

value: number or string
union_member_0: number
union_member_1: string
type: optional string

Value format hint: “CURR_USD”, “PERCENT”, etc. Omitted when not applicable. When a null/undefined value is observed, it indicates it does not apply.

screener_row_list: array of ScreenerRow { field, name, value, type }
field: object { name, lookback, period, value_type }

Field reference (same shape as filter/sort field references)

name: string

The field name.

lookback: optional "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Optional historical lookback window.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
period: optional "QUARTER" or "TRAILING_TWELVE_MONTHS"

Optional reporting period (e.g. quarter or TTM).

"QUARTER"
"TRAILING_TWELVE_MONTHS"
value_type: optional "DECIMAL" or "INTEGER" or "STRING" or 2 more

The data type of the field value. Present only in responses.

"DECIMAL"
"INTEGER"
"STRING"
"ANALYST_RATING"
"DATE"
name: string

Human-readable display name for this field

value: number or string
union_member_0: number
union_member_1: string
type: optional string

Value format hint: “CURR_USD”, “PERCENT”, etc. Omitted when not applicable. When a null/undefined value is observed, it indicates it does not apply.

search_filter: object { left, op, right }

A single filter condition.

When op and right are both absent, the filter is “unenabled”: it persists a left field reference without applying any predicate. Unenabled filters are skipped during search execution but still round-trip through save/load so callers can preserve draft state.

left: object { name, lookback, period, value_type }

The field to filter on.

name: string

The field name.

lookback: optional "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Optional historical lookback window.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
period: optional "QUARTER" or "TRAILING_TWELVE_MONTHS"

Optional reporting period (e.g. quarter or TTM).

"QUARTER"
"TRAILING_TWELVE_MONTHS"
value_type: optional "DECIMAL" or "INTEGER" or "STRING" or 2 more

The data type of the field value. Present only in responses.

"DECIMAL"
"INTEGER"
"STRING"
"ANALYST_RATING"
"DATE"
op: optional object { name, args }

The operator and optional arguments. Omit together with right for an unenabled filter.

name: "LESS_THAN" or "LESS_OR_EQUAL" or "GREATER_THAN" or 11 more

The operator to apply.

"LESS_THAN"
"LESS_OR_EQUAL"
"GREATER_THAN"
"GREATER_OR_EQUAL"
"EQUAL"
"BETWEEN"
"NOT_BETWEEN"
"ONE_OF"
"REGEX"
"BEGINS_WITH"
"ENDS_WITH"
"CONTAINS"
"IS_NULL"
"IS_NOT_NULL"
args: optional array of OperatorArg

Optional arguments that modify operator behavior.

"LEFT_INCLUSIVE"
"RIGHT_INCLUSIVE"
"LEFT_EXCLUSIVE"
"RIGHT_EXCLUSIVE"
"CASE_INSENSITIVE"
right: optional array of FilterValue { value, variable }

The value(s) to compare against. Omit together with op for an unenabled filter.

value: optional number or string
union_member_0: number
union_member_1: string
variable: optional object { name, lookback, modifier, period }

A variable reference.

name: string

The variable name.

lookback: optional "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Optional historical lookback window.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
modifier: optional object { args, name }

Optional arithmetic modifier.

args: array of number or string
union_member_0: number
union_member_1: string
name: "ADD" or "SUBTRACT"

The modifier operation.

"ADD"
"SUBTRACT"
period: optional "QUARTER" or "TRAILING_TWELVE_MONTHS"

Optional reporting period.

"QUARTER"
"TRAILING_TWELVE_MONTHS"
sort_spec: object { field, direction }

A sort specification pairing a field with a direction.

field: object { name, lookback, period, value_type }

The field to sort by.

name: string

The field name.

lookback: optional "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Optional historical lookback window.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
period: optional "QUARTER" or "TRAILING_TWELVE_MONTHS"

Optional reporting period (e.g. quarter or TTM).

"QUARTER"
"TRAILING_TWELVE_MONTHS"
value_type: optional "DECIMAL" or "INTEGER" or "STRING" or 2 more

The data type of the field value. Present only in responses.

"DECIMAL"
"INTEGER"
"STRING"
"ANALYST_RATING"
"DATE"
direction: optional "ASC" or "DESC"

Sort direction (defaults to DESC).

"ASC"
"DESC"
variable: object { name, lookback, modifier, period }

A variable reference (field or built-in like today).

name: string

The variable name.

lookback: optional "ONE_DAY" or "ONE_WEEK" or "ONE_MONTH" or 4 more

Optional historical lookback window.

"ONE_DAY"
"ONE_WEEK"
"ONE_MONTH"
"THREE_MONTHS"
"SIX_MONTHS"
"YEAR_TO_DATE"
"ONE_YEAR"
modifier: optional object { args, name }

Optional arithmetic modifier.

args: array of number or string
union_member_0: number
union_member_1: string
name: "ADD" or "SUBTRACT"

The modifier operation.

"ADD"
"SUBTRACT"
period: optional "QUARTER" or "TRAILING_TWELVE_MONTHS"

Optional reporting period.

"QUARTER"
"TRAILING_TWELVE_MONTHS"

V1Watchlist

Create and manage watchlists.

Get Watchlists
$ clst v1:watchlist get-watchlists
GET/v1/watchlists
Get Watchlist By ID
$ clst v1:watchlist get-watchlist-by-id
GET/v1/watchlists/{watchlist_id}
Create Watchlist
$ clst v1:watchlist create-watchlist
POST/v1/watchlists
Delete Watchlist
$ clst v1:watchlist delete-watchlist
DELETE/v1/watchlists/{watchlist_id}
Add Watchlist Item
$ clst v1:watchlist add-watchlist-item
POST/v1/watchlists/{watchlist_id}/items
Delete Watchlist Item
$ clst v1:watchlist delete-watchlist-item
DELETE/v1/watchlists/{watchlist_id}/items/{item_id}
ModelsExpand Collapse
add_watchlist_item_data: object { item_id }

Response data for adding a watchlist item

item_id: string

ID of the created item

watchlist_detail: object { id, created_at, items, name }

Detailed watchlist with all items

id: string

Watchlist ID

created_at: string

Creation timestamp

items: array of WatchlistItemEntry { id, added_at, added_price, instrument }

Items in the watchlist

id: string

Item ID

added_at: string

When the item was added

added_price: optional string

Price when the item was added When a null/undefined value is observed, it indicates that there is no available data.

instrument: optional object { id, country_of_issue, currency, 20 more }

Instrument details When a null/undefined value is observed, it indicates that there is no available data.

id: string

Unique instrument identifier (UUID)

country_of_issue: string

The ISO country code of the instrument’s issue

currency: string

The ISO currency code in which the instrument is traded

easy_to_borrow: boolean

Indicates if the instrument is classified as Easy-To-Borrow

is_fractionable: boolean

Indicates if the instrument supports fractional-quantity orders

is_liquidation_only: boolean

Indicates if the instrument is liquidation only and cannot be bought

is_marginable: boolean

Indicates if the instrument is marginable

is_ptp: boolean

Indicates if the instrument is a publicly traded partnership (PTP). PTP sales are subject to a 10% withholding tax for non-US tax residents.

is_short_prohibited: boolean

Indicates if short selling is prohibited for the instrument

is_threshold_security: boolean

Indicates if the instrument is on the Regulation SHO Threshold Security List

is_tradable: boolean

Indicates if the instrument is tradable

symbol: string

The trading symbol for the instrument

venue: string

The MIC code of the primary listing venue

adv: optional string

Average daily share volume from the security definition. When a null/undefined value is observed, it indicates that there is no available data.

Deprecatedexpiry: optional string

Deprecated. Always null. When a null/undefined value is observed, it indicates it does not apply.

instrument_type: optional "COMMON_STOCK" or "OPTION" or "CASH"

The type of security (e.g., Common Stock, ETF) When a null/undefined value is observed, it indicates that there is no available data.

"COMMON_STOCK"
"OPTION"
"CASH"
long_margin_rate: optional string

The percent of a long position’s value you must post as margin When a null/undefined value is observed, it indicates that there is no available data.

name: optional string

The full name of the instrument or its issuer When a null/undefined value is observed, it indicates that there is no available data.

notional_adv: optional string

Notional average daily volume (ADV multiplied by previous close price). When a null/undefined value is observed, it indicates that there is no available data.

options_expiry_dates: optional array of string

Available options expiration dates for this instrument. Present only when include_options_expiry_dates=true in the request. When a null/undefined value is observed, it indicates it does not apply.

previous_close: optional string

Last close price from the security definition. When a null/undefined value is observed, it indicates that there is no available data.

short_margin_rate: optional string

The percent of a short position’s value you must post as margin When a null/undefined value is observed, it indicates that there is no available data.

Deprecatedstrike_price: optional string

Deprecated. Always null. When a null/undefined value is observed, it indicates it does not apply.

name: string

Watchlist name

watchlist_entry: object { id, created_at, name }

Represents a user watchlist.

id: string

The unique identifier for the watchlist.

created_at: string

The timestamp when the watchlist was created.

name: string

The user-provided watchlist name.

watchlist_entry_list: array of WatchlistEntry { id, created_at, name }
id: string

The unique identifier for the watchlist.

created_at: string

The timestamp when the watchlist was created.

name: string

The user-provided watchlist name.

watchlist_item_entry: object { id, added_at, added_price, instrument }

A single item in a watchlist

id: string

Item ID

added_at: string

When the item was added

added_price: optional string

Price when the item was added When a null/undefined value is observed, it indicates that there is no available data.

instrument: optional object { id, country_of_issue, currency, 20 more }

Instrument details When a null/undefined value is observed, it indicates that there is no available data.

id: string

Unique instrument identifier (UUID)

country_of_issue: string

The ISO country code of the instrument’s issue

currency: string

The ISO currency code in which the instrument is traded

easy_to_borrow: boolean

Indicates if the instrument is classified as Easy-To-Borrow

is_fractionable: boolean

Indicates if the instrument supports fractional-quantity orders

is_liquidation_only: boolean

Indicates if the instrument is liquidation only and cannot be bought

is_marginable: boolean

Indicates if the instrument is marginable

is_ptp: boolean

Indicates if the instrument is a publicly traded partnership (PTP). PTP sales are subject to a 10% withholding tax for non-US tax residents.

is_short_prohibited: boolean

Indicates if short selling is prohibited for the instrument

is_threshold_security: boolean

Indicates if the instrument is on the Regulation SHO Threshold Security List

is_tradable: boolean

Indicates if the instrument is tradable

symbol: string

The trading symbol for the instrument

venue: string

The MIC code of the primary listing venue

adv: optional string

Average daily share volume from the security definition. When a null/undefined value is observed, it indicates that there is no available data.

Deprecatedexpiry: optional string

Deprecated. Always null. When a null/undefined value is observed, it indicates it does not apply.

instrument_type: optional "COMMON_STOCK" or "OPTION" or "CASH"

The type of security (e.g., Common Stock, ETF) When a null/undefined value is observed, it indicates that there is no available data.

"COMMON_STOCK"
"OPTION"
"CASH"
long_margin_rate: optional string

The percent of a long position’s value you must post as margin When a null/undefined value is observed, it indicates that there is no available data.

name: optional string

The full name of the instrument or its issuer When a null/undefined value is observed, it indicates that there is no available data.

notional_adv: optional string

Notional average daily volume (ADV multiplied by previous close price). When a null/undefined value is observed, it indicates that there is no available data.

options_expiry_dates: optional array of string

Available options expiration dates for this instrument. Present only when include_options_expiry_dates=true in the request. When a null/undefined value is observed, it indicates it does not apply.

previous_close: optional string

Last close price from the security definition. When a null/undefined value is observed, it indicates that there is no available data.

short_margin_rate: optional string

The percent of a short position’s value you must post as margin When a null/undefined value is observed, it indicates that there is no available data.

Deprecatedstrike_price: optional string

Deprecated. Always null. When a null/undefined value is observed, it indicates it does not apply.