0.6.1pypi · publicdotcom-mcp-server · latest release
Observed 2026-08-19T23:53:12.633Z using mcpSecurity-inventory. Protocol 2025-06-18.
| Tool | Category | Risk |
|---|---|---|
cancel_and_replace_order
Atomically cancel an existing order and replace it with new parameters.
⚠️ This modifies an existing order.
Supported for equity, option, and crypto quantity orders.
Args:
order_id: UUID of the existing order to cancel and replace.
order_type: MARKET, LIMIT, STOP, or STOP_LIMIT for the replacement.
time_in_force: DAY or GTD. Default is DAY.
quantity: New quantity for the replacement order. Mutually exclusive
with amount.
amount: New notional dollar amount for the replacement order.
Mutually exclusive with quantity.
limit_price: New limit price (for LIMIT/STOP_LIMIT orders).
stop_price: New stop price (for STOP/STOP_LIMIT orders).
expiration_time: Required when time_in_force is GTD. ISO 8601 format.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"order_id": {
"title": "Order Id",
"type": "string"
},
"order_type": {
"title": "Order Type",
"type": "string"
},
"time_in_force": {
"default": "DAY",
"title": "Time In Force",
"type": "string"
},
"quantity": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Quantity"
},
"amount": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Amount"
},
"limit_price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Limit Price"
},
"stop_price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Stop Price"
},
"expiration_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expiration Time"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"order_id",
"order_type"
],
"title": "cancel_and_replace_orderArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "cancel_and_replace_orderOutput",
"type": "object"
}Annotations{
"title": "Cancel and Replace Order",
"readOnlyHint": false,
"destructiveHint": true,
"idempotentHint": false,
"openWorldHint": true
} | — | — |
cancel_order
Cancel an existing order.
Note: While most cancellations are processed immediately during market
hours, this is not guaranteed. Use get_order to confirm cancellation.
Args:
order_id: The UUID of the order to cancel.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"order_id": {
"title": "Order Id",
"type": "string"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"order_id"
],
"title": "cancel_orderArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "cancel_orderOutput",
"type": "object"
}Annotations{
"title": "Cancel Order",
"readOnlyHint": false,
"destructiveHint": true,
"idempotentHint": true,
"openWorldHint": true
} | — | — |
check_setup
Verify that the Public.com API credentials are configured correctly.
Checks the PUBLIC_COM_SECRET environment variable and attempts to
authenticate. Run this first to confirm connectivity.
Input schema{
"properties": {},
"title": "check_setupArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "check_setupOutput",
"type": "object"
}Annotations{
"title": "Check Setup",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
flatten_and_go_short
Sell any existing long position in a symbol, then place a short-sale order.
⚠️ Experimental — this is a two-order workflow, not atomic. Market conditions
may change between the flatten fill and the short entry. Both orders execute
as real trades.
If no long position exists the flatten step is skipped and only the short
order is placed.
Args:
symbol: Ticker symbol (e.g. "AAPL").
short_quantity: Number of shares to short after flattening.
order_type: MARKET, LIMIT, STOP, or STOP_LIMIT. Default is MARKET.
time_in_force: DAY or GTD. Default is DAY.
limit_price: Required for LIMIT and STOP_LIMIT orders.
stop_price: Required for STOP and STOP_LIMIT orders.
expiration_time: Required when time_in_force is GTD. ISO 8601 format.
equity_market_session: CORE or EXTENDED.
flatten_timeout: Seconds to wait for the flatten order to fill (default 60).
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"symbol": {
"title": "Symbol",
"type": "string"
},
"short_quantity": {
"title": "Short Quantity",
"type": "string"
},
"order_type": {
"default": "MARKET",
"title": "Order Type",
"type": "string"
},
"time_in_force": {
"default": "DAY",
"title": "Time In Force",
"type": "string"
},
"limit_price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Limit Price"
},
"stop_price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Stop Price"
},
"expiration_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expiration Time"
},
"equity_market_session": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Equity Market Session"
},
"flatten_timeout": {
"default": 60,
"title": "Flatten Timeout",
"type": "number"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"symbol",
"short_quantity"
],
"title": "flatten_and_go_shortArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "flatten_and_go_shortOutput",
"type": "object"
}Annotations{
"title": "Flatten and Go Short",
"readOnlyHint": false,
"destructiveHint": true,
"idempotentHint": false,
"openWorldHint": true
} | — | — |
get_accounts
List all brokerage accounts associated with the API key.
Returns account IDs and types (BROKERAGE, HIGH_YIELD, etc.).
Input schema{
"properties": {},
"title": "get_accountsArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_accountsOutput",
"type": "object"
}Annotations{
"title": "Get Accounts",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
get_all_instruments
List all available tradeable instruments with optional filters.
Args:
type_filter: Filter by instrument types (e.g. ["EQUITY", "CRYPTO"]).
Valid: EQUITY, CRYPTO, OPTION, ALT, BOND, INDEX, TREASURY.
trading_filter: Filter by trading status (e.g. ["BUY_AND_SELL"]).
Valid: BUY_AND_SELL, LIQUIDATION_ONLY, DISABLED.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"type_filter": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Type Filter"
},
"trading_filter": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Trading Filter"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"title": "get_all_instrumentsArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_all_instrumentsOutput",
"type": "object"
}Annotations{
"title": "Get All Instruments",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
get_bond_details
Get comprehensive details for a single bond.
Returns pricing, ratings, coupon schedule, maturity, and call information
for the bond identified by its symbol.
Args:
symbol: Bond symbol, typically CUSIP-BOND format (e.g. "912810TM0-BOND").
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"symbol": {
"title": "Symbol",
"type": "string"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"symbol"
],
"title": "get_bond_detailsArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_bond_detailsOutput",
"type": "object"
}Annotations{
"title": "Get Bond Details",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
get_history
Retrieve account transaction history.
Returns trades, money movements (deposits, withdrawals, dividends),
and position adjustments (splits, mergers).
Args:
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
start: Start timestamp in ISO 8601 format (e.g. 2025-01-15T09:00:00-05:00).
end: End timestamp in ISO 8601 format.
page_size: Max number of records to return.
next_token: Pagination token for the next page.
Input schema{
"properties": {
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
},
"start": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Start"
},
"end": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "End"
},
"page_size": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Page Size"
},
"next_token": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Next Token"
}
},
"title": "get_historyArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_historyOutput",
"type": "object"
}Annotations{
"title": "Get History",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
get_instrument
Get details about a specific tradeable instrument.
Returns trading status, fractional trading availability, and option
trading capabilities.
Args:
symbol: Ticker symbol (e.g. "AAPL").
instrument_type: One of EQUITY, CRYPTO, OPTION, INDEX, ALT, BOND,
TREASURY. Default is EQUITY.
Input schema{
"properties": {
"symbol": {
"title": "Symbol",
"type": "string"
},
"instrument_type": {
"default": "EQUITY",
"title": "Instrument Type",
"type": "string"
}
},
"required": [
"symbol"
],
"title": "get_instrumentArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_instrumentOutput",
"type": "object"
}Annotations{
"title": "Get Instrument",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
get_option_chain
Get the full option chain (calls and puts) for a symbol and expiration.
Args:
symbol: Underlying ticker symbol (e.g. "AAPL").
expiration_date: Expiration date in YYYY-MM-DD format.
instrument_type: EQUITY or UNDERLYING_SECURITY_FOR_INDEX_OPTION.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"symbol": {
"title": "Symbol",
"type": "string"
},
"expiration_date": {
"title": "Expiration Date",
"type": "string"
},
"instrument_type": {
"default": "EQUITY",
"title": "Instrument Type",
"type": "string"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"symbol",
"expiration_date"
],
"title": "get_option_chainArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_option_chainOutput",
"type": "object"
}Annotations{
"title": "Get Option Chain",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
get_option_expirations
Get available option expiration dates for a symbol.
Args:
symbol: Underlying ticker symbol (e.g. "AAPL").
instrument_type: EQUITY or UNDERLYING_SECURITY_FOR_INDEX_OPTION.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"symbol": {
"title": "Symbol",
"type": "string"
},
"instrument_type": {
"default": "EQUITY",
"title": "Instrument Type",
"type": "string"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"symbol"
],
"title": "get_option_expirationsArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_option_expirationsOutput",
"type": "object"
}Annotations{
"title": "Get Option Expirations",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
get_option_greek
Get option Greeks (delta, gamma, theta, vega, rho, IV) for a single option symbol.
Args:
osi_symbol: OSI-normalized option symbol (e.g. "AAPL260320C00280000").
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"osi_symbol": {
"title": "Osi Symbol",
"type": "string"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"osi_symbol"
],
"title": "get_option_greekArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_option_greekOutput",
"type": "object"
}Annotations{
"title": "Get Option Greek",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
get_option_greeks
Get option Greeks (delta, gamma, theta, vega, rho, IV) for option symbols.
Args:
osi_symbols: List of OSI-normalized option symbols
(e.g. ["AAPL260320C00280000"]).
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"osi_symbols": {
"items": {
"type": "string"
},
"title": "Osi Symbols",
"type": "array"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"osi_symbols"
],
"title": "get_option_greeksArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_option_greeksOutput",
"type": "object"
}Annotations{
"title": "Get Option Greeks",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
get_order
Get the status and details of a specific order.
Note: Order placement is asynchronous. This may return an error if
the order has not yet been indexed.
Args:
order_id: The UUID of the order to look up.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"order_id": {
"title": "Order Id",
"type": "string"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"order_id"
],
"title": "get_orderArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_orderOutput",
"type": "object"
}Annotations{
"title": "Get Order",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
get_orders
Get all open/active orders on the account.
Fetches the account portfolio and returns only the orders list.
Returns order details including symbol, side, type, status, quantity,
and prices.
Args:
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"title": "get_ordersArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_ordersOutput",
"type": "object"
}Annotations{
"title": "Get Orders",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
get_portfolio
Get a snapshot of the account portfolio.
Returns positions, equity breakdown, buying power, open orders, and
cash/withdrawal figures (including cash, totalAccountValue, and
availableToWithdraw). Only non-IRA accounts are supported.
Args:
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"title": "get_portfolioArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_portfolioOutput",
"type": "object"
}Annotations{
"title": "Get Portfolio",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
get_price_history
Get historical OHLCV price bars for a symbol over a time period.
Returns open/high/low/close/volume bars split into pre-market, regular,
and after-hours sessions, plus previous close and total gain/loss. Use
this for trend analysis and historical prices — get_quotes returns the
current price only, and get_history is account activity, not prices.
Args:
symbol: Ticker symbol (e.g. "AAPL").
period: Time window to retrieve (e.g. "YEAR", "TEN_YEARS", "ALL").
instrument_type: EQUITY, CRYPTO, OPTION, or INDEX. Default EQUITY.
aggregation: Optional bar size. Prefer omitting it — the server then
picks an appropriate size for the period. Only a subset of sizes
is valid per period (finer/coarser sizes are rejected); if you set
an invalid one, the error lists the valid options.
purchase_date: Required only when period is "SINCE_PURCHASE".
Format "YYYY-MM-DD".
trading_session_toggle: Which sessions to include on the DAY equity
chart. Omit for the default (REGULAR_AND_EXTENDED_HOURS,
04:00–20:00 ET). REGULAR_HOURS limits to 09:30–16:00. ALL_SESSIONS
returns a full midnight-to-midnight chart including the overnight
ATS sessions, adding preMarketOvernight (00:00–04:00) and
postMarketOvernight (20:00–24:00) to the response.
ipo_date: Optional IPO / first-trade date of the asset. Format
"YYYY-MM-DD". When the asset is younger than the requested period,
the server fetches a finer aggregation over the available post-IPO
history (so the chart isn't a straight diagonal) and adds a
`leadingFill` object to the response describing the flat lead-in
to draw for the pre-IPO portion (startTimestamp, endTimestamp,
value, count, includedInTotalExpectedBars). Omit for unchanged
behavior. Ignored for the DAY chart; leadingFill is also never
emitted for the ALL / SINCE_PURCHASE periods.
Input schema{
"properties": {
"symbol": {
"title": "Symbol",
"type": "string"
},
"period": {
"enum": [
"DAY",
"WEEK",
"MONTH",
"QUARTER",
"HALF_YEAR",
"YEAR",
"FIVE_YEARS",
"TEN_YEARS",
"ALL",
"YTD",
"SINCE_PURCHASE"
],
"title": "Period",
"type": "string"
},
"instrument_type": {
"default": "EQUITY",
"enum": [
"EQUITY",
"CRYPTO",
"OPTION",
"INDEX"
],
"title": "Instrument Type",
"type": "string"
},
"aggregation": {
"anyOf": [
{
"enum": [
"ONE_MINUTE",
"FIVE_MINUTES",
"TEN_MINUTES",
"FIFTEEN_MINUTES",
"THIRTY_MINUTES",
"ONE_HOUR",
"ONE_DAY",
"ONE_WEEK",
"ONE_MONTH",
"THREE_MONTHS",
"SIX_MONTHS",
"ONE_YEAR"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Aggregation"
},
"purchase_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Purchase Date"
},
"trading_session_toggle": {
"anyOf": [
{
"enum": [
"REGULAR_HOURS",
"REGULAR_AND_EXTENDED_HOURS",
"ALL_SESSIONS"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Trading Session Toggle"
},
"ipo_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Ipo Date"
}
},
"required": [
"symbol",
"period"
],
"title": "get_price_historyArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_price_historyOutput",
"type": "object"
}Annotations{
"title": "Get Price History",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
get_quotes
Get real-time quotes for one or more symbols.
Returns last price, bid, ask, volume, and other market data.
Args:
symbols: List of ticker symbols (e.g. ["AAPL", "GOOGL"]).
instrument_type: Type for all symbols. One of EQUITY, CRYPTO, OPTION,
INDEX, ALT, BOND, TREASURY. Default is EQUITY. For mixed types,
call this tool multiple times.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"symbols": {
"items": {
"type": "string"
},
"title": "Symbols",
"type": "array"
},
"instrument_type": {
"default": "EQUITY",
"title": "Instrument Type",
"type": "string"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"symbols"
],
"title": "get_quotesArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_quotesOutput",
"type": "object"
}Annotations{
"title": "Get Quotes",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
get_strategy_quote
Get a consolidated quote for a multi-leg option strategy.
Prices the strategy as a whole (debit/credit, bid/ask/mark, net price)
from its option legs and optional equity leg. This is a read-only quote —
it does NOT place or preflight an order.
Args:
base_symbol: Underlying ticker for the strategy (e.g. "SPY").
option_legs: List of option leg objects. Each leg must have:
- symbol (str): The option OCC symbol (e.g. "SPY260313P00670000")
- side (str): BUY or SELL
- open_close_indicator (str, optional): OPEN or CLOSE
- ratio_quantity (int, optional): Ratio between legs (default 1)
Example: [{"symbol": "SPY260313P00670000", "side": "SELL",
"open_close_indicator": "OPEN", "ratio_quantity": 1},
{"symbol": "SPY260313P00665000", "side": "BUY",
"open_close_indicator": "OPEN", "ratio_quantity": 1}]
equity_leg: Optional equity leg (same shape as an option leg, with an
equity ticker as the symbol) for strategies that pair options with
stock (e.g. a covered call or collar).
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"$defs": {
"StrategyLeg": {
"description": "One leg of a strategy-quote request (option or equity).",
"properties": {
"symbol": {
"description": "Option OCC symbol (e.g. 'SPY260313P00670000') for option legs, or ticker (e.g. 'SPY') for the equity leg.",
"title": "Symbol",
"type": "string"
},
"side": {
"description": "Leg side.",
"enum": [
"BUY",
"SELL"
],
"title": "Side",
"type": "string"
},
"open_close_indicator": {
"anyOf": [
{
"enum": [
"OPEN",
"CLOSE"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "OPEN for new positions, CLOSE to close existing. Required for option legs.",
"title": "Open Close Indicator"
},
"ratio_quantity": {
"default": 1,
"description": "Ratio between legs in the strategy (default 1).",
"title": "Ratio Quantity",
"type": "integer"
}
},
"required": [
"symbol",
"side"
],
"title": "StrategyLeg",
"type": "object"
}
},
"properties": {
"base_symbol": {
"title": "Base Symbol",
"type": "string"
},
"option_legs": {
"items": {
"$ref": "#/$defs/StrategyLeg"
},
"title": "Option Legs",
"type": "array"
},
"equity_leg": {
"anyOf": [
{
"$ref": "#/$defs/StrategyLeg"
},
{
"type": "null"
}
],
"default": null
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"base_symbol",
"option_legs"
],
"title": "get_strategy_quoteArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_strategy_quoteOutput",
"type": "object"
}Annotations{
"title": "Get Strategy Quote",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
get_tax_lots
Get the unrealized tax-lot summary for the account.
Returns per-lot unrealized gain/loss, holding term (short/long/60-40),
cost basis, and the aggregate totals across all lots. Requires the API
key to have the `trading.read` scope.
Args:
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"title": "get_tax_lotsArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_tax_lotsOutput",
"type": "object"
}Annotations{
"title": "Get Tax Lots",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
get_tax_lots_csv
Export the unrealized tax lots as a CSV file.
Returns a file object with `fileName` and `base64Data`. The CSV contents
are Base64-encoded in the `base64Data` field — decode it to recover the
raw CSV text. Requires the API key to have the `trading.read` scope.
Args:
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"title": "get_tax_lots_csvArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_tax_lots_csvOutput",
"type": "object"
}Annotations{
"title": "Get Tax Lots CSV",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
get_tax_lots_for_symbol
Get the unrealized tax-lot detail for a single symbol.
Returns each open lot for the symbol with its unrealized gain/loss,
holding term, and cost basis. Requires the API key to have the
`trading.read` scope.
Args:
symbol: Ticker symbol (e.g. "AAPL").
price: Optional price (as a numeric string) to value the lots against.
Omit to use the current market price.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"symbol": {
"title": "Symbol",
"type": "string"
},
"price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Price"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"symbol"
],
"title": "get_tax_lots_for_symbolArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "get_tax_lots_for_symbolOutput",
"type": "object"
}Annotations{
"title": "Get Tax Lots For Symbol",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
place_call_credit_spread
Place a Bear Call Spread (call credit spread).
Sell a lower-strike call, buy a higher-strike call. Receives a net credit.
⚠️ This executes a real trade. Consider running preflight_call_credit_spread first.
Args:
sell_contract_osi: OSI symbol of the call to sell (lower strike).
buy_contract_osi: OSI symbol of the call to buy (higher strike).
quantity: Number of spreads.
limit_price: Minimum net credit to receive per spread.
time_in_force: DAY or GTD. Default is DAY.
expiration_time: Required when time_in_force is GTD. ISO 8601 format.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"sell_contract_osi": {
"title": "Sell Contract Osi",
"type": "string"
},
"buy_contract_osi": {
"title": "Buy Contract Osi",
"type": "string"
},
"quantity": {
"title": "Quantity",
"type": "integer"
},
"limit_price": {
"title": "Limit Price",
"type": "string"
},
"time_in_force": {
"default": "DAY",
"title": "Time In Force",
"type": "string"
},
"expiration_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expiration Time"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"sell_contract_osi",
"buy_contract_osi",
"quantity",
"limit_price"
],
"title": "place_call_credit_spreadArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "place_call_credit_spreadOutput",
"type": "object"
}Annotations{
"title": "Place Call Credit Spread",
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true
} | — | — |
place_call_debit_spread
Place a Bull Call Spread (call debit spread).
Buy a lower-strike call, sell a higher-strike call. Pays a net debit.
⚠️ This executes a real trade. Consider running preflight_call_debit_spread first.
Args:
sell_contract_osi: OSI symbol of the call to sell (higher strike).
buy_contract_osi: OSI symbol of the call to buy (lower strike).
quantity: Number of spreads.
limit_price: Maximum net debit to pay per spread.
time_in_force: DAY or GTD. Default is DAY.
expiration_time: Required when time_in_force is GTD. ISO 8601 format.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"sell_contract_osi": {
"title": "Sell Contract Osi",
"type": "string"
},
"buy_contract_osi": {
"title": "Buy Contract Osi",
"type": "string"
},
"quantity": {
"title": "Quantity",
"type": "integer"
},
"limit_price": {
"title": "Limit Price",
"type": "string"
},
"time_in_force": {
"default": "DAY",
"title": "Time In Force",
"type": "string"
},
"expiration_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expiration Time"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"sell_contract_osi",
"buy_contract_osi",
"quantity",
"limit_price"
],
"title": "place_call_debit_spreadArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "place_call_debit_spreadOutput",
"type": "object"
}Annotations{
"title": "Place Call Debit Spread",
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true
} | — | — |
place_multileg_order
Place a multi-leg order (options strategies: spreads, straddles, etc.).
⚠️ This executes a real trade. Consider running preflight_multileg_order first.
Args:
legs: List of leg objects. Each leg must have:
- symbol (str): The option/equity symbol (e.g. "SPY260313P00670000")
- type (str): EQUITY or OPTION
- side (str): BUY or SELL
- open_close_indicator (str, optional): OPEN or CLOSE (required for options)
- ratio_quantity (int, optional): Ratio between legs (default 1)
Example: [{"symbol": "SPY260313P00670000", "type": "OPTION", "side": "SELL",
"open_close_indicator": "OPEN", "ratio_quantity": 1},
{"symbol": "SPY260313P00665000", "type": "OPTION", "side": "BUY",
"open_close_indicator": "OPEN", "ratio_quantity": 1}]
quantity: Number of spreads. Must be > 0.
limit_price: Limit price. Positive for debit, negative for credit.
time_in_force: DAY or GTD. Default is DAY.
expiration_time: Required when time_in_force is GTD. ISO 8601 format.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"$defs": {
"OrderLeg": {
"description": "One leg of a multi-leg options/equity order.",
"properties": {
"symbol": {
"description": "Option OCC symbol (e.g. 'SPY260313P00670000') for options, or ticker (e.g. 'AAPL') for equity.",
"title": "Symbol",
"type": "string"
},
"type": {
"description": "Instrument type.",
"enum": [
"EQUITY",
"OPTION"
],
"title": "Type",
"type": "string"
},
"side": {
"description": "Order side.",
"enum": [
"BUY",
"SELL"
],
"title": "Side",
"type": "string"
},
"open_close_indicator": {
"anyOf": [
{
"enum": [
"OPEN",
"CLOSE"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "OPEN for new positions, CLOSE to close existing. Required for option legs.",
"title": "Open Close Indicator"
},
"ratio_quantity": {
"default": 1,
"description": "Ratio between legs in the spread (default 1).",
"title": "Ratio Quantity",
"type": "integer"
}
},
"required": [
"symbol",
"type",
"side"
],
"title": "OrderLeg",
"type": "object"
}
},
"properties": {
"legs": {
"items": {
"$ref": "#/$defs/OrderLeg"
},
"title": "Legs",
"type": "array"
},
"quantity": {
"title": "Quantity",
"type": "integer"
},
"limit_price": {
"title": "Limit Price",
"type": "string"
},
"time_in_force": {
"default": "DAY",
"title": "Time In Force",
"type": "string"
},
"expiration_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expiration Time"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"legs",
"quantity",
"limit_price"
],
"title": "place_multileg_orderArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "place_multileg_orderOutput",
"type": "object"
}Annotations{
"title": "Place Multi-Leg Order",
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true
} | — | — |
place_order
Place a single-leg order (buy/sell stocks, crypto, or options).
⚠️ This executes a real trade. Consider running preflight_order first.
Args:
symbol: Ticker symbol (e.g. "AAPL").
instrument_type: EQUITY, OPTION, or CRYPTO.
order_side: BUY or SELL.
order_type: MARKET, LIMIT, STOP, or STOP_LIMIT.
time_in_force: DAY or GTD. Default is DAY.
quantity: Number of shares/contracts (mutually exclusive with amount).
amount: Dollar amount (mutually exclusive with quantity).
limit_price: Required for LIMIT and STOP_LIMIT orders.
stop_price: Required for STOP and STOP_LIMIT orders.
open_close_indicator: For options only — OPEN or CLOSE.
expiration_time: Required when time_in_force is GTD. ISO 8601 format.
equity_market_session: CORE or EXTENDED. For equity orders only.
tax_lot_matching_instructions: Optional list of specific tax lots to
sell, each a dict {"tax_lot_id": str, "quantity": str}. Constraints
enforced by the API: at most 8 per request; only for a SELL equity
order with open_close_indicator=CLOSE; every lot must be the same
symbol as the order; only MARKET or good-for-day LIMIT orders;
the quantities must sum to the order quantity; and the account's
tax-lot information must have been updated today. Omit to let the
broker apply its default lot-matching.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"symbol": {
"title": "Symbol",
"type": "string"
},
"instrument_type": {
"title": "Instrument Type",
"type": "string"
},
"order_side": {
"title": "Order Side",
"type": "string"
},
"order_type": {
"title": "Order Type",
"type": "string"
},
"time_in_force": {
"default": "DAY",
"title": "Time In Force",
"type": "string"
},
"quantity": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Quantity"
},
"amount": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Amount"
},
"limit_price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Limit Price"
},
"stop_price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Stop Price"
},
"open_close_indicator": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Open Close Indicator"
},
"expiration_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expiration Time"
},
"equity_market_session": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Equity Market Session"
},
"tax_lot_matching_instructions": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Tax Lot Matching Instructions"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"symbol",
"instrument_type",
"order_side",
"order_type"
],
"title": "place_orderArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "place_orderOutput",
"type": "object"
}Annotations{
"title": "Place Order",
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true
} | — | — |
place_put_credit_spread
Place a Bull Put Spread (put credit spread).
Sell a higher-strike put, buy a lower-strike put. Receives a net credit.
⚠️ This executes a real trade. Consider running preflight_put_credit_spread first.
Args:
sell_contract_osi: OSI symbol of the put to sell (higher strike).
buy_contract_osi: OSI symbol of the put to buy (lower strike).
quantity: Number of spreads.
limit_price: Minimum net credit to receive per spread.
time_in_force: DAY or GTD. Default is DAY.
expiration_time: Required when time_in_force is GTD. ISO 8601 format.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"sell_contract_osi": {
"title": "Sell Contract Osi",
"type": "string"
},
"buy_contract_osi": {
"title": "Buy Contract Osi",
"type": "string"
},
"quantity": {
"title": "Quantity",
"type": "integer"
},
"limit_price": {
"title": "Limit Price",
"type": "string"
},
"time_in_force": {
"default": "DAY",
"title": "Time In Force",
"type": "string"
},
"expiration_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expiration Time"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"sell_contract_osi",
"buy_contract_osi",
"quantity",
"limit_price"
],
"title": "place_put_credit_spreadArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "place_put_credit_spreadOutput",
"type": "object"
}Annotations{
"title": "Place Put Credit Spread",
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true
} | — | — |
place_put_debit_spread
Place a Bear Put Spread (put debit spread).
Buy a higher-strike put, sell a lower-strike put. Pays a net debit.
⚠️ This executes a real trade. Consider running preflight_put_debit_spread first.
Args:
sell_contract_osi: OSI symbol of the put to sell (lower strike).
buy_contract_osi: OSI symbol of the put to buy (higher strike).
quantity: Number of spreads.
limit_price: Maximum net debit to pay per spread.
time_in_force: DAY or GTD. Default is DAY.
expiration_time: Required when time_in_force is GTD. ISO 8601 format.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"sell_contract_osi": {
"title": "Sell Contract Osi",
"type": "string"
},
"buy_contract_osi": {
"title": "Buy Contract Osi",
"type": "string"
},
"quantity": {
"title": "Quantity",
"type": "integer"
},
"limit_price": {
"title": "Limit Price",
"type": "string"
},
"time_in_force": {
"default": "DAY",
"title": "Time In Force",
"type": "string"
},
"expiration_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expiration Time"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"sell_contract_osi",
"buy_contract_osi",
"quantity",
"limit_price"
],
"title": "place_put_debit_spreadArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "place_put_debit_spreadOutput",
"type": "object"
}Annotations{
"title": "Place Put Debit Spread",
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true
} | — | — |
place_short_order
Place an equity short-sale order.
⚠️ This executes a real trade. Consider running preflight_short_order first.
Args:
symbol: Ticker symbol to short (e.g. "AAPL").
quantity: Number of shares to short.
order_type: MARKET, LIMIT, STOP, or STOP_LIMIT. Default is MARKET.
time_in_force: DAY or GTD. Default is DAY.
limit_price: Required for LIMIT and STOP_LIMIT orders.
stop_price: Required for STOP and STOP_LIMIT orders.
expiration_time: Required when time_in_force is GTD. ISO 8601 format.
equity_market_session: CORE or EXTENDED.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"symbol": {
"title": "Symbol",
"type": "string"
},
"quantity": {
"title": "Quantity",
"type": "string"
},
"order_type": {
"default": "MARKET",
"title": "Order Type",
"type": "string"
},
"time_in_force": {
"default": "DAY",
"title": "Time In Force",
"type": "string"
},
"limit_price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Limit Price"
},
"stop_price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Stop Price"
},
"expiration_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expiration Time"
},
"equity_market_session": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Equity Market Session"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"symbol",
"quantity"
],
"title": "place_short_orderArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "place_short_orderOutput",
"type": "object"
}Annotations{
"title": "Place Short Order",
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": false,
"openWorldHint": true
} | — | — |
preflight_call_credit_spread
Estimate costs for a Bear Call Spread (call credit spread) before placing it.
Sell a lower-strike call, buy a higher-strike call. Receives a net credit.
Does NOT place an order.
Args:
sell_contract_osi: OSI symbol of the call to sell (lower strike).
buy_contract_osi: OSI symbol of the call to buy (higher strike).
quantity: Number of spreads.
limit_price: Net credit to receive per spread (positive = credit received).
time_in_force: DAY or GTD. Default is DAY.
expiration_time: Required when time_in_force is GTD. ISO 8601 format.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"sell_contract_osi": {
"title": "Sell Contract Osi",
"type": "string"
},
"buy_contract_osi": {
"title": "Buy Contract Osi",
"type": "string"
},
"quantity": {
"title": "Quantity",
"type": "integer"
},
"limit_price": {
"title": "Limit Price",
"type": "string"
},
"time_in_force": {
"default": "DAY",
"title": "Time In Force",
"type": "string"
},
"expiration_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expiration Time"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"sell_contract_osi",
"buy_contract_osi",
"quantity",
"limit_price"
],
"title": "preflight_call_credit_spreadArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "preflight_call_credit_spreadOutput",
"type": "object"
}Annotations{
"title": "Preflight Call Credit Spread",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
preflight_call_debit_spread
Estimate costs for a Bull Call Spread (call debit spread) before placing it.
Buy a lower-strike call, sell a higher-strike call. Pays a net debit.
Does NOT place an order.
Args:
sell_contract_osi: OSI symbol of the call to sell (higher strike).
buy_contract_osi: OSI symbol of the call to buy (lower strike).
quantity: Number of spreads.
limit_price: Net debit to pay per spread (positive = debit paid).
time_in_force: DAY or GTD. Default is DAY.
expiration_time: Required when time_in_force is GTD. ISO 8601 format.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"sell_contract_osi": {
"title": "Sell Contract Osi",
"type": "string"
},
"buy_contract_osi": {
"title": "Buy Contract Osi",
"type": "string"
},
"quantity": {
"title": "Quantity",
"type": "integer"
},
"limit_price": {
"title": "Limit Price",
"type": "string"
},
"time_in_force": {
"default": "DAY",
"title": "Time In Force",
"type": "string"
},
"expiration_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expiration Time"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"sell_contract_osi",
"buy_contract_osi",
"quantity",
"limit_price"
],
"title": "preflight_call_debit_spreadArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "preflight_call_debit_spreadOutput",
"type": "object"
}Annotations{
"title": "Preflight Call Debit Spread",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
preflight_multileg_order
Estimate costs for a multi-leg (options strategy) trade before placing it.
Does NOT place an order.
Args:
legs: List of leg objects. Each leg must have:
- symbol (str): The option/equity symbol (e.g. "SPY260313P00670000")
- type (str): EQUITY or OPTION
- side (str): BUY or SELL
- open_close_indicator (str, optional): OPEN or CLOSE (required for options)
- ratio_quantity (int, optional): Ratio between legs (default 1)
Example: [{"symbol": "SPY260313P00670000", "type": "OPTION", "side": "SELL",
"open_close_indicator": "OPEN", "ratio_quantity": 1},
{"symbol": "SPY260313P00665000", "type": "OPTION", "side": "BUY",
"open_close_indicator": "OPEN", "ratio_quantity": 1}]
limit_price: The limit price for the spread.
time_in_force: DAY or GTD. Default is DAY.
quantity: Number of spreads. Must be > 0.
expiration_time: Required when time_in_force is GTD. ISO 8601 format.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"$defs": {
"OrderLeg": {
"description": "One leg of a multi-leg options/equity order.",
"properties": {
"symbol": {
"description": "Option OCC symbol (e.g. 'SPY260313P00670000') for options, or ticker (e.g. 'AAPL') for equity.",
"title": "Symbol",
"type": "string"
},
"type": {
"description": "Instrument type.",
"enum": [
"EQUITY",
"OPTION"
],
"title": "Type",
"type": "string"
},
"side": {
"description": "Order side.",
"enum": [
"BUY",
"SELL"
],
"title": "Side",
"type": "string"
},
"open_close_indicator": {
"anyOf": [
{
"enum": [
"OPEN",
"CLOSE"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "OPEN for new positions, CLOSE to close existing. Required for option legs.",
"title": "Open Close Indicator"
},
"ratio_quantity": {
"default": 1,
"description": "Ratio between legs in the spread (default 1).",
"title": "Ratio Quantity",
"type": "integer"
}
},
"required": [
"symbol",
"type",
"side"
],
"title": "OrderLeg",
"type": "object"
}
},
"properties": {
"legs": {
"items": {
"$ref": "#/$defs/OrderLeg"
},
"title": "Legs",
"type": "array"
},
"limit_price": {
"title": "Limit Price",
"type": "string"
},
"time_in_force": {
"default": "DAY",
"title": "Time In Force",
"type": "string"
},
"quantity": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Quantity"
},
"expiration_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expiration Time"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"legs",
"limit_price"
],
"title": "preflight_multileg_orderArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "preflight_multileg_orderOutput",
"type": "object"
}Annotations{
"title": "Preflight Multi-Leg Order",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
preflight_order
Estimate costs and impact of a potential single-leg trade before placing it.
Returns estimated commission, regulatory fees, order value, buying power
requirements, and margin impact. Does NOT place an order.
Args:
symbol: Ticker symbol (e.g. "AAPL").
instrument_type: EQUITY, OPTION, or CRYPTO.
order_side: BUY or SELL.
order_type: MARKET, LIMIT, STOP, or STOP_LIMIT.
time_in_force: DAY or GTD. Default is DAY.
quantity: Number of shares/contracts (mutually exclusive with amount).
amount: Dollar amount (mutually exclusive with quantity).
limit_price: Required for LIMIT and STOP_LIMIT orders.
stop_price: Required for STOP and STOP_LIMIT orders.
open_close_indicator: For options only — OPEN or CLOSE.
expiration_time: Required when time_in_force is GTD. ISO 8601 format.
equity_market_session: CORE or EXTENDED. For equity orders only.
tax_lot_matching_instructions: Optional list of specific tax lots to
sell, each a dict {"tax_lot_id": str, "quantity": str}. Constraints
enforced by the API: at most 8 per request; only for a SELL equity
order with open_close_indicator=CLOSE; every lot must be the same
symbol as the order; only MARKET or good-for-day LIMIT orders;
the quantities must sum to the order quantity; and the account's
tax-lot information must have been updated today. Omit to let the
broker apply its default lot-matching.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"symbol": {
"title": "Symbol",
"type": "string"
},
"instrument_type": {
"title": "Instrument Type",
"type": "string"
},
"order_side": {
"title": "Order Side",
"type": "string"
},
"order_type": {
"title": "Order Type",
"type": "string"
},
"time_in_force": {
"default": "DAY",
"title": "Time In Force",
"type": "string"
},
"quantity": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Quantity"
},
"amount": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Amount"
},
"limit_price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Limit Price"
},
"stop_price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Stop Price"
},
"open_close_indicator": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Open Close Indicator"
},
"expiration_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expiration Time"
},
"equity_market_session": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Equity Market Session"
},
"tax_lot_matching_instructions": {
"anyOf": [
{
"items": {
"additionalProperties": true,
"type": "object"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Tax Lot Matching Instructions"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"symbol",
"instrument_type",
"order_side",
"order_type"
],
"title": "preflight_orderArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "preflight_orderOutput",
"type": "object"
}Annotations{
"title": "Preflight Single-Leg Order",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
preflight_put_credit_spread
Estimate costs for a Bull Put Spread (put credit spread) before placing it.
Sell a higher-strike put, buy a lower-strike put. Receives a net credit.
Does NOT place an order.
Args:
sell_contract_osi: OSI symbol of the put to sell (higher strike).
buy_contract_osi: OSI symbol of the put to buy (lower strike).
quantity: Number of spreads.
limit_price: Net credit to receive per spread (positive = credit received).
time_in_force: DAY or GTD. Default is DAY.
expiration_time: Required when time_in_force is GTD. ISO 8601 format.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"sell_contract_osi": {
"title": "Sell Contract Osi",
"type": "string"
},
"buy_contract_osi": {
"title": "Buy Contract Osi",
"type": "string"
},
"quantity": {
"title": "Quantity",
"type": "integer"
},
"limit_price": {
"title": "Limit Price",
"type": "string"
},
"time_in_force": {
"default": "DAY",
"title": "Time In Force",
"type": "string"
},
"expiration_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expiration Time"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"sell_contract_osi",
"buy_contract_osi",
"quantity",
"limit_price"
],
"title": "preflight_put_credit_spreadArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "preflight_put_credit_spreadOutput",
"type": "object"
}Annotations{
"title": "Preflight Put Credit Spread",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
preflight_put_debit_spread
Estimate costs for a Bear Put Spread (put debit spread) before placing it.
Buy a higher-strike put, sell a lower-strike put. Pays a net debit.
Does NOT place an order.
Args:
sell_contract_osi: OSI symbol of the put to sell (lower strike).
buy_contract_osi: OSI symbol of the put to buy (higher strike).
quantity: Number of spreads.
limit_price: Net debit to pay per spread (positive = debit paid).
time_in_force: DAY or GTD. Default is DAY.
expiration_time: Required when time_in_force is GTD. ISO 8601 format.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"sell_contract_osi": {
"title": "Sell Contract Osi",
"type": "string"
},
"buy_contract_osi": {
"title": "Buy Contract Osi",
"type": "string"
},
"quantity": {
"title": "Quantity",
"type": "integer"
},
"limit_price": {
"title": "Limit Price",
"type": "string"
},
"time_in_force": {
"default": "DAY",
"title": "Time In Force",
"type": "string"
},
"expiration_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expiration Time"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"sell_contract_osi",
"buy_contract_osi",
"quantity",
"limit_price"
],
"title": "preflight_put_debit_spreadArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "preflight_put_debit_spreadOutput",
"type": "object"
}Annotations{
"title": "Preflight Put Debit Spread",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
preflight_short_order
Estimate costs for a short-sale equity order before placing it.
Returns estimated commission, fees, and buying power impact.
Does NOT place an order.
Args:
symbol: Ticker symbol to short (e.g. "AAPL").
quantity: Number of shares to short.
order_type: MARKET, LIMIT, STOP, or STOP_LIMIT. Default is MARKET.
time_in_force: DAY or GTD. Default is DAY.
limit_price: Required for LIMIT and STOP_LIMIT orders.
stop_price: Required for STOP and STOP_LIMIT orders.
expiration_time: Required when time_in_force is GTD. ISO 8601 format.
equity_market_session: CORE or EXTENDED.
account_id: Account ID. Optional if PUBLIC_COM_ACCOUNT_ID is set.
Input schema{
"properties": {
"symbol": {
"title": "Symbol",
"type": "string"
},
"quantity": {
"title": "Quantity",
"type": "string"
},
"order_type": {
"default": "MARKET",
"title": "Order Type",
"type": "string"
},
"time_in_force": {
"default": "DAY",
"title": "Time In Force",
"type": "string"
},
"limit_price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Limit Price"
},
"stop_price": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Stop Price"
},
"expiration_time": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Expiration Time"
},
"equity_market_session": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Equity Market Session"
},
"account_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Account Id"
}
},
"required": [
"symbol",
"quantity"
],
"title": "preflight_short_orderArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "preflight_short_orderOutput",
"type": "object"
}Annotations{
"title": "Preflight Short Order",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
search_bonds
Filtered, paged search for fixed income (bond) instruments.
All filters are optional; combine them to narrow down results. Returns a
page object with `content` (the bonds), `totalElements`, and `totalPages`.
Args:
page_number: Page number, zero-based. Default 0.
page_size: Items per page. Default 20.
sort_property: Property to sort by (e.g. "maturityDate").
sort_direction: ASC or DESC. Default DESC.
issuer: Filter by issuer name.
issuer_symbol: Filter by issuer symbol(s), e.g. ["AAPL"].
bond_status: e.g. ["OUTSTANDING"]. Valid: LIQUIDATED, CONVERTED,
FUNGED, REPAID, RESTRUCTURED, CALLED, DEFAULTED, MATURED,
OUTSTANDING, PUT, TENDERED, REPURCHASED, PRE_ISSUANCE, UNKNOWN.
bond_type: e.g. ["TREASURY", "CORPORATE"]. Valid: AGENCY, CD,
CORPORATE, GOVERNMENT, MUNICIPAL, TREASURY.
treasury_subtype: Valid: BOND, BILL, NOTE, STRIPS, TIPS, FLOATING.
rating: S&P rating(s), e.g. ["AAA", "AA+"]. From AAA through D,
NR for not rated (short-term ratings like A-1+/SP-1 also valid).
rating_category: INVESTMENT_GRADE or SPECULATIVE_GRADE.
sp_outlook: Valid: POSITIVE, NEGATIVE, DEVELOPING, STABLE,
NOT_RATED, NOT_MEANINGFUL.
sp_creditwatch: Valid: POSITIVE, NEGATIVE, DEVELOPING, NOT_MEANINGFUL.
coupon_frequency: Valid: AT_MATURITY, ZERO, MONTHLY, QUARTERLY,
SEMI_ANNUAL, ANNUAL.
min_coupon: Minimum coupon rate (numeric string).
max_coupon: Maximum coupon rate (numeric string).
min_maturity_date: yyyy-MM-dd. Defaults server-side to today + 14 days.
max_maturity_date: yyyy-MM-dd.
min_current_yield: Minimum current yield (numeric string).
max_current_yield: Maximum current yield (numeric string).
min_par_value: Minimum par value (numeric string).
max_par_value: Maximum par value (numeric string).
min_liquidity_rating: Minimum liquidity score, 1 (low) to 5 (high).
max_liquidity_rating: Maximum liquidity score, 1 (low) to 5 (high).
liquidity_rating: Specific liquidity score(s), 1–5.
callable: Filter by callable status.
perpetual: Filter by perpetual bond status.
partial_par: Filter by partial par status.
Input schema{
"properties": {
"page_number": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Page Number"
},
"page_size": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"title": "Page Size"
},
"sort_property": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Sort Property"
},
"sort_direction": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Sort Direction"
},
"issuer": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Issuer"
},
"issuer_symbol": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Issuer Symbol"
},
"bond_status": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Bond Status"
},
"bond_type": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Bond Type"
},
"treasury_subtype": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Treasury Subtype"
},
"rating": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Rating"
},
"rating_category": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Rating Category"
},
"sp_outlook": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Sp Outlook"
},
"sp_creditwatch": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Sp Creditwatch"
},
"coupon_frequency": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Coupon Frequency"
},
"min_coupon": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Min Coupon"
},
"max_coupon": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Coupon"
},
"min_maturity_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Min Maturity Date"
},
"max_maturity_date": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Maturity Date"
},
"min_current_yield": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Min Current Yield"
},
"max_current_yield": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Current Yield"
},
"min_par_value": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Min Par Value"
},
"max_par_value": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Par Value"
},
"min_liquidity_rating": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Min Liquidity Rating"
},
"max_liquidity_rating": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"title": "Max Liquidity Rating"
},
"liquidity_rating": {
"anyOf": [
{
"items": {
"type": "string"
},
"type": "array"
},
{
"type": "null"
}
],
"default": null,
"title": "Liquidity Rating"
},
"callable": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Callable"
},
"perpetual": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Perpetual"
},
"partial_par": {
"anyOf": [
{
"type": "boolean"
},
{
"type": "null"
}
],
"default": null,
"title": "Partial Par"
}
},
"title": "search_bondsArguments",
"type": "object"
}Output schema{
"properties": {
"result": {
"title": "Result",
"type": "string"
}
},
"required": [
"result"
],
"title": "search_bondsOutput",
"type": "object"
}Annotations{
"title": "Search Bonds",
"readOnlyHint": true,
"destructiveHint": false,
"openWorldHint": true
} | — | — |
No completed comparison is available.
| Risk | Change | Subject |
|---|---|---|
| No material changes recorded. | ||
| Severity | Finding | Advisory |
|---|---|---|
| No confirmed vulnerability is published for this version. | ||
Artifact SHA-256: 24c88c80976274a1fe7a63b8e7a3ab6d35b6f2acfb5a308fbcca475ecc795a5d
Scanner: mcp-proof-engine 0.1.0.