generated: '2026-08-02' method: generated source: openapi/clear-street-legacy-api-swagger.yml, openapi/clear-street-studio-openapi.yml, openapi/clear-street-trading-api-openapi.yml description: Recommended x-agentic-access execution contracts, classified heuristically from the OpenAPI. A governance starting point for exposing this API to AI agents — review and bind audience per deployment. See research/curity/agentic-governance/. summary: operations: 98 by_action_class: acting: 35 connected: 63 by_consequence: physical: 13 write: 22 read: 63 human_in_the_loop_required: 0 operations: - path: /trades method: post operationId: trades_insert x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /trades/{trade_id} method: delete operationId: trades_cancel x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /uploads/insert method: post operationId: uploads_insert_create x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /uploads/cancel method: post operationId: uploads_cancel_create x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /uploads/{upload_id} method: get operationId: uploads_get_by_id x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /accounts/{account_id}/pnl-sums method: get operationId: listPNLSums x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /accounts/{account_id}/holdings method: get operationId: listHoldings x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /accounts/{account_id}/bulk-orders method: post operationId: createBulkOrders x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /accounts/{account_id}/orders method: post operationId: createOrder x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /accounts/{account_id}/orders method: get operationId: listOrders x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /accounts/{account_id}/orders method: delete operationId: deleteAllOrders x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /accounts/{account_id}/orders/{order_id} method: get operationId: getOrder x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /accounts/{account_id}/orders/{order_id} method: delete operationId: deleteOrder x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /accounts/{account_id}/orders/{order_id} method: patch operationId: updateOrder x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /accounts/{account_id}/trades/{trade_id} method: get operationId: getTrade x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /accounts/{account_id}/trades method: get operationId: listTrades x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /accounts/{account_id}/positions/{symbol} method: get operationId: getPosition x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /accounts/{account_id}/positions method: get operationId: listPositions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /accounts/{account_id}/locate-orders method: post operationId: createLocateOrder x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /accounts/{account_id}/locate-orders method: get operationId: listLocateOrders x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /accounts/{account_id}/locate-orders/{locate_order_id} method: get operationId: getLocateOrder x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /accounts/{account_id}/locate-orders/{locate_order_id} method: patch operationId: updateLocateOrder x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /accounts/{account_id}/easy-borrows method: get operationId: listEasyBorrows x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /accounts/{account_id}/inventories/{symbol} method: get operationId: getInventory x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /entities method: get operationId: listEntities x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /entities/{entity_id} method: get operationId: getEntity x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /accounts method: get operationId: listAccounts x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /accounts/{account_id} method: get operationId: getAccount x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /instruments method: get operationId: listInstruments x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /instruments/{symbol} method: get operationId: getInstrument x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /entities/{entity_id}/pnl-summary method: get operationId: getEntityPnlSummary x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /accounts/{account_id}/pnl-summary method: get operationId: getAccountPnlSummary x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /accounts/{account_id}/pnl-details method: get operationId: listPnlDetails x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /entities/{entity_id}/regt-margin method: get operationId: getRegTMargin x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /entities/{entity_id}/portfolio-margin method: get operationId: getPortfolioMargin x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /entities/{entity_id}/regt-margin-simulations method: post operationId: createRegTMarginSimulation x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /entities/{entity_id}/regt-margin-simulations/{simulation_id} method: get operationId: getRegTMarginSimulation x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/accounts method: get operationId: get_accounts x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/accounts/{account_id} method: get operationId: get_account_by_id x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/accounts/{account_id} method: patch operationId: patch_account_by_id x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/accounts/{account_id}/balances method: get operationId: get_account_balances x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/accounts/{account_id}/executions method: get operationId: get_executions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/accounts/{account_id}/orders method: get operationId: get_orders x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/accounts/{account_id}/orders method: post operationId: submit_orders x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/accounts/{account_id}/orders method: delete operationId: cancel_all_open_orders x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/accounts/{account_id}/orders/{order_id} method: get operationId: get_order_by_id x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/accounts/{account_id}/orders/{order_id} method: delete operationId: cancel_open_order x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/accounts/{account_id}/orders/{order_id} method: patch operationId: replace_order x-agentic-access: action-class: acting consequence: physical subject: required audience: null token: max-ttl: 300 exchange: true purpose-required: true escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/accounts/{account_id}/portfolio-history method: get operationId: get_portfolio_history x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/accounts/{account_id}/positions method: get operationId: get_positions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/accounts/{account_id}/positions method: delete operationId: close_positions x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/accounts/{account_id}/positions/instructions method: get operationId: get_position_instructions x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/accounts/{account_id}/positions/instructions method: post operationId: submit_position_instructions x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/accounts/{account_id}/positions/instructions/{instruction_id} method: delete operationId: cancel_position_instruction x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/accounts/{account_id}/positions/{instrument_id} method: delete operationId: close_position x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/calendars/market-hours method: get operationId: get_market_hours_calendar x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/clock method: get operationId: get_clock x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/instruments method: get operationId: get_instruments x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/instruments/events method: get operationId: get_all_instrument_events x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/instruments/options/contracts method: get operationId: get_option_contracts x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/instruments/search method: get operationId: search_instruments x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/instruments/{instrument_id} method: get operationId: get_instrument_by_id x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/instruments/{instrument_id}/analyst-reporting method: get operationId: get_instrument_analyst_consensus x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/instruments/{instrument_id}/balance-sheets method: get operationId: get_instrument_balance_sheet_statements x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/instruments/{instrument_id}/cash-flow-statements method: get operationId: get_instrument_cash_flow_statements x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/instruments/{instrument_id}/events method: get operationId: get_instrument_events x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/instruments/{instrument_id}/fundamentals method: get operationId: get_instrument_fundamentals x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/instruments/{instrument_id}/income-statements method: get operationId: get_instrument_income_statements x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/market-data/daily-summary method: get operationId: get_daily_summaries x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/market-data/snapshot method: get operationId: get_snapshots x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/news method: get operationId: get_news x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/omni-ai/entitlement-agreements method: get operationId: get_entitlement_agreements x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/omni-ai/entitlements method: get operationId: get_entitlements x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/omni-ai/entitlements method: post operationId: create_entitlements x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/omni-ai/entitlements/{entitlement_id} method: delete operationId: delete_entitlement x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/omni-ai/messages/{message_id} method: get operationId: get_message_by_id x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/omni-ai/messages/{message_id}/feedback method: post operationId: submit_feedback x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/omni-ai/responses/{response_id} method: get operationId: get_response_by_id x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/omni-ai/responses/{response_id} method: delete operationId: cancel_response x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/omni-ai/threads method: get operationId: get_threads x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/omni-ai/threads method: post operationId: create_thread x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/omni-ai/threads/{thread_id} method: get operationId: get_thread_by_id x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/omni-ai/threads/{thread_id}/messages method: get operationId: get_messages x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/omni-ai/threads/{thread_id}/messages method: post operationId: create_message x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/omni-ai/threads/{thread_id}/response method: get operationId: get_thread_response x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/saved-screeners method: get operationId: get_screeners x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/saved-screeners method: post operationId: create_screener x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/saved-screeners/{screener_id} method: get operationId: get_screener_by_id x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/saved-screeners/{screener_id} method: put operationId: replace_screener x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/saved-screeners/{screener_id} method: delete operationId: delete_screener x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/screener method: post operationId: search_screener x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/version method: get operationId: get_version x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/watchlists method: get operationId: get_watchlists x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/watchlists method: post operationId: create_watchlist x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/watchlists/{watchlist_id} method: get operationId: get_watchlist_by_id x-agentic-access: action-class: connected consequence: read subject: optional token: max-ttl: 3600 audit: none - path: /v1/watchlists/{watchlist_id} method: delete operationId: delete_watchlist x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/watchlists/{watchlist_id}/items method: post operationId: add_watchlist_item x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required - path: /v1/watchlists/{watchlist_id}/items/{item_id} method: delete operationId: delete_watchlist_item x-agentic-access: action-class: acting consequence: write subject: required audience: null token: max-ttl: 900 escalation: human-in-the-loop: conditional triggers: - abnormal - high-value audit: required