tastytrade · Agentic Access

tastytrade Agentic Access

x-agentic-access generated

tastytrade exposes 96 API operations that an AI agent could call, of which 20 are state-changing ‘acting’ operations. This is a recommended x-agentic-access execution contract — the scope, audience, consequence tier, short-lived token constraints, and escalation each action should carry before it is handed to an autonomous agent.

By consequence: 76 read, 8 write, and 12 physical.

Contracts are classified heuristically from the provider’s OpenAPI and refresh on every APIs.io network build; audience is bound per deployment. The model follows Curity’s Access Intelligence (apidays Munich 2026). Browse every provider’s agent contracts at agentic-access.apis.io.

FinanceBrokerageTradingOptionsFuturesEquitiesCryptoMarket DataWebSocket
Operations: 96 Acting: 20 Human-in-the-loop: 0 Method: generated

By consequence

read 76 write 8 physical 12

Highest-consequence actions

The physical and safety-critical operations an agent could invoke — the ones that most warrant scoped tokens, tight TTLs, and escalation. Full per-operation contracts are in the source below.

MethodPathConsequenceHuman-in-loop
POST /accounts/{account_number}/complex-orders physical conditional
POST /accounts/{account_number}/complex-orders/dry-run physical conditional
PATCH /accounts/{account_number}/complex-orders/{id} physical conditional
DELETE /accounts/{account_number}/complex-orders/{id} physical conditional
POST /accounts/{account_number}/complex-orders/{id}/dry-run physical conditional
POST /accounts/{account_number}/orders physical conditional
POST /accounts/{account_number}/orders/dry-run physical conditional
PUT /accounts/{account_number}/orders/{id} physical conditional
PATCH /accounts/{account_number}/orders/{id} physical conditional
DELETE /accounts/{account_number}/orders/{id} physical conditional
POST /accounts/{account_number}/orders/{id}/dry-run physical conditional
POST /simulate-trade physical conditional

Source

Agentic Access

Raw ↑
generated: '2026-07-15'
method: generated
source: openapi/account-status.json, openapi/accounts-and-customers.json, openapi/backtesting.json,
  openapi/balances-and-positions.json, openapi/instruments.json, openapi/margin-requirements.json,
  openapi/market-data.json, openapi/market-metrics.json, openapi/market-sessions.json, openapi/net-liquidating-value-history.json,
  openapi/orders.json, openapi/quote-alerts.json, openapi/risk-parameters.json, openapi/symbol-search.json,
  openapi/transactions.json, openapi/watchlists.json
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: 96
  by_action_class:
    connected: 76
    acting: 20
  by_consequence:
    read: 76
    write: 8
    physical: 12
  human_in_the_loop_required: 0
operations:
- path: /accounts/{account_number}/trading-status
  method: get
  operationId: getAccountsAccountNumberTradingStatus
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /api-quote-tokens
  method: get
  operationId: getApiQuoteTokens
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/{customer_id}
  method: get
  operationId: getCustomersCustomerId
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/{customer_id}/accounts
  method: get
  operationId: getCustomersCustomerIdAccounts
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/{customer_id}/accounts/{account_number}
  method: get
  operationId: getCustomersCustomerIdAccountsAccountNumber
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /backtests
  method: get
  operationId: GetUsersBacktests
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /backtests
  method: post
  operationId: PostBacktests
  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: /backtests/{id}
  method: get
  operationId: GetBacktests
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /backtests/{id}/logs
  method: get
  operationId: GetBacktestsLogs
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /backtests/{id}/cancel
  method: post
  operationId: CancelBacktests
  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: /available-dates
  method: get
  operationId: GetAvailableDates
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /simulate-trade
  method: post
  operationId: SimulateTrade
  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_number}/balance-snapshots
  method: get
  operationId: getAccountsAccountNumberBalanceSnapshots
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /accounts/{account_number}/balances
  method: get
  operationId: getAccountsAccountNumberBalances
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /accounts/{account_number}/balances/{currency}
  method: get
  operationId: getAccountsAccountNumberBalancesCurrency
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /accounts/{account_number}/positions
  method: get
  operationId: getAccountsAccountNumberPositions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /futures-option-chains/{symbol}
  method: get
  operationId: getFuturesOptionChainsSymbol
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /futures-option-chains/{symbol}/nested
  method: get
  operationId: getFuturesOptionChainsSymbolNested
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /instruments/cryptocurrencies
  method: get
  operationId: getInstrumentsCryptocurrencies
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /instruments/cryptocurrencies/{symbol}
  method: get
  operationId: getInstrumentsCryptocurrenciesSymbol
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /instruments/equities
  method: get
  operationId: getInstrumentsEquities
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /instruments/equities/active
  method: get
  operationId: getInstrumentsEquitiesActive
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /instruments/equities/{symbol}
  method: get
  operationId: getInstrumentsEquitiesSymbol
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /instruments/equity-options/{symbol}
  method: get
  operationId: getInstrumentsEquityOptionsSymbol
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /instruments/future-option-products
  method: get
  operationId: getInstrumentsFutureOptionProducts
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /instruments/future-option-products/{exchange}/{root_symbol}
  method: get
  operationId: getInstrumentsFutureOptionProductsExchangeRootSymbol
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /instruments/future-option-products/{root_symbol}
  method: get
  operationId: getInstrumentsFutureOptionProductsRootSymbol
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /instruments/future-options/{symbol}
  method: get
  operationId: getInstrumentsFutureOptionsSymbol
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /instruments/future-products
  method: get
  operationId: getInstrumentsFutureProducts
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /instruments/future-products/{exchange}/{code}
  method: get
  operationId: getInstrumentsFutureProductsExchangeCode
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /instruments/futures
  method: get
  operationId: getInstrumentsFutures
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /instruments/futures/{symbol}
  method: get
  operationId: getInstrumentsFuturesSymbol
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /instruments/quantity-decimal-precisions
  method: get
  operationId: getInstrumentsQuantityDecimalPrecisions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /instruments/search
  method: get
  operationId: getInstrumentsSearch
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /instruments/warrants
  method: get
  operationId: getInstrumentsWarrants
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /instruments/warrants/{symbol}
  method: get
  operationId: getInstrumentsWarrantsSymbol
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /option-chains/{symbol}
  method: get
  operationId: getOptionChainsSymbol
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /option-chains/{symbol}/compact
  method: get
  operationId: getOptionChainsSymbolCompact
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /option-chains/{symbol}/nested
  method: get
  operationId: getOptionChainsSymbolNested
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /margin/accounts/{account_number}/requirements
  method: get
  operationId: getMarginAccountsAccountNumberRequirements
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /margin/accounts/{account_number}/dry-run
  method: post
  operationId: createMarginAccountsAccountNumberDryRun
  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: /market-data/by-type
  method: get
  operationId: getMarketDataByType
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /market-metrics
  method: get
  operationId: getMarketMetricsIndex
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /market-metrics/historic-corporate-events/dividends/{symbol}
  method: get
  operationId: getMarketMetricsDividendsSymbol
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /market-metrics/historic-corporate-events/earnings-reports/{symbol}
  method: get
  operationId: getMarketMetricsEarningsSymbol
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /market-time/sessions
  method: get
  operationId: getMarketTimeSessions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /market-time/sessions/current
  method: get
  operationId: getMarketTimeSessionsCurrent
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /market-time/equities/sessions/current
  method: get
  operationId: getMarketTimeEquitiesSessionsCurrent
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /market-time/equities/sessions/next
  method: get
  operationId: getMarketTimeEquitiesSessionsNext
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /market-time/equities/sessions/previous
  method: get
  operationId: getMarketTimeEquitiesSessionsPrevious
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /market-time/equities/holidays
  method: get
  operationId: getMarketTimeEquitiesHolidays
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /market-time/futures/sessions/current
  method: get
  operationId: getMarketTimeFuturesSessionsCurrent
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /market-time/futures/sessions/current/{instrument_collection}
  method: get
  operationId: getMarketTimeFuturesSessionsCurrentInstrumentCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /market-time/futures/sessions/next/{instrument_collection}
  method: get
  operationId: getMarketTimeFuturesSessionsNextInstrumentCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /market-time/futures/sessions/previous/{instrument_collection}
  method: get
  operationId: getMarketTimeFuturesSessionsPreviousInstrumentCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /market-time/futures/holidays/{instrument_collection}
  method: get
  operationId: getMarketTimeFuturesHolidaysInstrumentCollection
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /accounts/{accountNumber}/net-liq/history
  method: get
  operationId: getNetLiqHistory
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /accounts/{account_number}/complex-orders
  method: get
  operationId: getAccountsAccountNumberComplexOrders
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /accounts/{account_number}/complex-orders
  method: post
  operationId: postAccountsAccountNumberComplexOrders
  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_number}/complex-orders/dry-run
  method: post
  operationId: postAccountsAccountNumberComplexOrdersDryRun
  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_number}/complex-orders/live
  method: get
  operationId: getAccountsAccountNumberComplexOrdersLive
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /accounts/{account_number}/complex-orders/{id}
  method: get
  operationId: getAccountsAccountNumberComplexOrdersId
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /accounts/{account_number}/complex-orders/{id}
  method: patch
  operationId: patchAccountsAccountNumberComplexOrdersId
  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_number}/complex-orders/{id}
  method: delete
  operationId: deleteAccountsAccountNumberComplexOrdersId
  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_number}/complex-orders/{id}/dry-run
  method: post
  operationId: postAccountsAccountNumberComplexOrdersIdDryRun
  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_number}/orders
  method: get
  operationId: getAccountsAccountNumberOrders
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /accounts/{account_number}/orders
  method: post
  operationId: postAccountsAccountNumberOrders
  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_number}/orders/dry-run
  method: post
  operationId: postAccountsAccountNumberOrdersDryRun
  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_number}/orders/live
  method: get
  operationId: getAccountsAccountNumberOrdersLive
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /accounts/{account_number}/orders/{id}
  method: get
  operationId: getAccountsAccountNumberOrdersId
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /accounts/{account_number}/orders/{id}
  method: put
  operationId: putAccountsAccountNumberOrdersId
  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_number}/orders/{id}
  method: patch
  operationId: patchAccountsAccountNumberOrdersId
  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_number}/orders/{id}
  method: delete
  operationId: deleteAccountsAccountNumberOrdersId
  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_number}/orders/{id}/dry-run
  method: post
  operationId: postAccountsAccountNumberOrdersIdDryRun
  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: /customers/{customer_id}/orders
  method: get
  operationId: getCustomersCustomerIdOrders
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /customers/{customer_id}/orders/live
  method: get
  operationId: getCustomersCustomerIdOrdersLive
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /quote-alerts
  method: get
  operationId: getQuoteAlerts
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /quote-alerts
  method: post
  operationId: postQuoteAlerts
  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: /quote-alerts/{alert_external_id}
  method: delete
  operationId: deleteQuoteAlertsAlertExternalId
  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: /accounts/{account_number}/position-limit
  method: get
  operationId: getAccountsAccountNumberPositionLimit
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /accounts/{account_number}/margin-requirements/{underlying_symbol}/effective
  method: get
  operationId: getAccountsAccountNumberMarginRequirementsUnderlyingSymbolEffective
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /margin-requirements-public-configuration
  method: get
  operationId: getMarginRequirementsPublicConfiguration
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /span/rows
  method: get
  operationId: getSpanRows
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /symbols/search/{symbol}
  method: get
  operationId: searchSymbols
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /accounts/{account_number}/transactions
  method: get
  operationId: getAccountsAccountNumberTransactions
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /accounts/{account_number}/transactions/total-fees
  method: get
  operationId: getAccountsAccountNumberTransactionsTotalFees
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /accounts/{account_number}/transactions/{id}
  method: get
  operationId: getAccountsAccountNumberTransactionsId
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /public-watchlists
  method: get
  operationId: getPublicWatchlists
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /public-watchlists/{watchlist_name}
  method: get
  operationId: getPublicWatchlistsWatchlistName
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /watchlists
  method: post
  operationId: postWatchlists
  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: /watchlists
  method: get
  operationId: getWatchlists
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /watchlists/{watchlist_name}
  method: put
  operationId: putWatchlistsWatchlistName
  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: /watchlists/{watchlist_name}
  method: delete
  operationId: deleteWatchlistsWatchlistName
  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: /watchlists/{watchlist_name}
  method: get
  operationId: getWatchlistsWatchlistName
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /pairs-watchlists
  method: get
  operationId: getPairsWatchlists
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none
- path: /pairs-watchlists/{pairs_watchlist_name}
  method: get
  operationId: getPairsWatchlistsPairsWatchlistName
  x-agentic-access:
    action-class: connected
    consequence: read
    subject: optional
    token:
      max-ttl: 3600
    audit: none