Endpoint Coverage

Every call and callback on the canonical list of the TWS API's surface, and what this client does with each. The table below is generated by scripts/gen_api_docs.py from the source: CI regenerates it on every push and fails if what is committed has drifted from the code.

Three things to read it with:

  • The status is per call, not per feature. Y means the call is served on that surface. STUB means it exists with the expected signature and is not served; for a callback, that it is declared and not fired here although a gateway sends it. What each stub is and why is on Limits. The callbacks that never fire on a gateway are marked in a column of their own, and are on Venue behaviour.
  • The evidence column is derived. A call is credited to the live session only when a suite that opens a session names it, and to the offline suites only when a test names it. Nothing in that column is hand-maintained, so nothing in it can go quietly out of date — and nothing in it is a promise that the call was exercised in the way you intend to use it.
  • Coverage is not correctness. A call that reaches the venue can still be the wrong call for what you are doing. The behaviour notes are in capabilities.md.

For which messages this client speaks, rather than which method names it carries, see Wire Coverage — taken from the dispatch tables and the message builders themselves.

API Coverage Matrix (v0.1.0)

Auto-generated from source — do not edit.

Canonical IB API methods vs ib-dx implementation status.

  • Y = Implemented: a call is served; a callback is declared and fired whenever what it reports arrives
  • STUB = Present and not served: a call reports why on the error callback; a callback is declared and not fired here, although a gateway sends it
  • - = Not present

The callback table also says whether each callback fires at all for a program on a gateway. Seven declared by the TWS API never do, so they fire neither there nor here.

The evidence column says how each status was established, and is derived rather than asserted: a call is credited to the live session only when a suite that runs against a real account names it, and to the offline suites only when a test names it.

Summary

IB APIRustPython
EClient methods8787 impl, 0 stub87 impl, 0 stub
EWrapper callbacks9088 impl, 2 stub88 impl, 2 stub

EClient Methods

CategoryIB API MethodC++ NameRustPythonEvidence
ConnectionconnecteConnectYYLive session
disconnecteDisconnectYYLive session
is_connectedisConnectedYYLive session
start_apistartApiYYOffline suites
set_server_log_levelsetServerLogLevelYYLive session
req_current_timereqCurrentTimeYYLive session
req_current_time_in_millisreqCurrentTimeInMillisYYLive session
verify_requestverifyRequestYYOffline suites
verify_messageverifyMessageYYOffline suites
verify_and_auth_requestverifyAndAuthRequestYYOffline suites
verify_and_auth_messageverifyAndAuthMessageYYOffline suites
Market Datareq_mkt_datareqMktDataYYLive session
cancel_mkt_datacancelMktDataYYLive session
req_market_data_typereqMarketDataTypeYYLive session
req_tick_by_tick_datareqTickByTickDataYYLive session
cancel_tick_by_tick_datacancelTickByTickDataYYLive session
req_mkt_depthreqMktDepthYYLive session
cancel_mkt_depthcancelMktDepthYYLive session
req_mkt_depth_exchangesreqMktDepthExchangesYYLive session
req_smart_componentsreqSmartComponentsYYLive session
req_real_time_barsreqRealTimeBarsYYLive session
cancel_real_time_barscancelRealTimeBarsYYLive session
Historical Datareq_historical_datareqHistoricalDataYYLive session
cancel_historical_datacancelHistoricalDataYYLive session
req_head_time_stampreqHeadTimeStampYYLive session
cancel_head_time_stampcancelHeadTimestampYYLive session
req_historical_ticksreqHistoricalTicksYYLive session
cancel_historical_tickscancelHistoricalTicksYYOffline suites
req_histogram_datareqHistogramDataYYLive session
cancel_histogram_datacancelHistogramDataYYLive session
req_historical_schedulereqHistoricalScheduleYYLive session
Ordersplace_orderplaceOrderYYLive session
cancel_ordercancelOrderYYLive session
req_open_ordersreqOpenOrdersYYLive session
req_all_open_ordersreqAllOpenOrdersYYLive session
req_auto_open_ordersreqAutoOpenOrdersYYLive session
req_idsreqIdsYYLive session
req_global_cancelreqGlobalCancelYYLive session
req_completed_ordersreqCompletedOrdersYYLive session
Executionsreq_executionsreqExecutionsYYLive session
Accountreq_account_updatesreqAccountUpdatesYYLive session
req_account_summaryreqAccountSummaryYYLive session
cancel_account_summarycancelAccountSummaryYYLive session
req_positionsreqPositionsYYLive session
cancel_positionscancelPositionsYYLive session
req_pnlreqPnLYYLive session
cancel_pnlcancelPnLYYLive session
req_pnl_singlereqPnLSingleYYLive session
cancel_pnl_singlecancelPnLSingleYYLive session
req_managed_acctsreqManagedAcctsYYLive session
req_account_updates_multireqAccountUpdatesMultiYYLive session
cancel_account_updates_multicancelAccountUpdatesMultiYYLive session
req_positions_multireqPositionsMultiYYLive session
cancel_positions_multicancelPositionsMultiYYLive session
Contractreq_contract_detailsreqContractDetailsYYLive session
cancel_contract_datacancelContractDataYYOffline suites
req_matching_symbolsreqMatchingSymbolsYYLive session
req_market_rulereqMarketRuleYYLive session
Scannerreq_scanner_parametersreqScannerParametersYYLive session
req_scanner_subscriptionreqScannerSubscriptionYYLive session
cancel_scanner_subscriptioncancelScannerSubscriptionYYLive session
Newsreq_news_providersreqNewsProvidersYYLive session
req_news_articlereqNewsArticleYYLive session
req_historical_newsreqHistoricalNewsYYLive session
req_news_bulletinsreqNewsBulletinsYYLive session
cancel_news_bulletinscancelNewsBulletinsYYLive session
Fundamentalreq_fundamental_datareqFundamentalDataYYLive session
cancel_fundamental_datacancelFundamentalDataYYLive session
Optionscalculate_implied_volatilitycalculateImpliedVolatilityYYLive session
cancel_calculate_implied_volatilitycancelCalculateImpliedVolatilityYYLive session
calculate_option_pricecalculateOptionPriceYYLive session
cancel_calculate_option_pricecancelCalculateOptionPriceYYLive session
exercise_optionsexerciseOptionsYYLive session
req_sec_def_opt_paramsreqSecDefOptParamsYYLive session
Referencereq_soft_dollar_tiersreqSoftDollarTiersYYLive session
req_family_codesreqFamilyCodesYYLive session
req_user_inforeqUserInfoYYLive session
Financial Advisorrequest_farequestFAYYOffline suites
replace_fareplaceFAYYOffline suites
Display Groupsquery_display_groupsqueryDisplayGroupsYYLive session
subscribe_to_group_eventssubscribeToGroupEventsYYLive session
unsubscribe_from_group_eventsunsubscribeFromGroupEventsYYLive session
update_display_groupupdateDisplayGroupYYLive session
WSHreq_wsh_meta_datareqWshMetaDataYYLive session
cancel_wsh_meta_datacancelWshMetaDataYYLive session
req_wsh_event_datareqWshEventDataYYLive session
cancel_wsh_event_datacancelWshEventDataYYLive session

EWrapper Callbacks

CategoryCallbackRustPythonFires on a gateway
Connectionconnect_ackYYyes
connection_closedYYyes
next_valid_idYYyes
managed_accountsYYyes
errorYYyes
current_timeYYyes
current_time_in_millisYYyes
Market Datatick_priceYYyes
tick_sizeYYyes
tick_stringYYyes
tick_genericYYyes
tick_snapshot_endYYyes
market_data_typeYYyes
tick_req_paramsYYyes
Ordersorder_statusYYyes
open_orderYYyes
open_order_endYYyes
order_boundYYyes
Executionsexec_detailsYYyes
exec_details_endYYyes
commission_and_fees_reportYYyes
Accountupdate_account_valueYYyes
update_portfolioYYyes
update_account_timeYYyes
account_download_endYYyes
account_summaryYYyes
account_summary_endYYyes
positionYYyes
position_endYYyes
pnlYYyes
pnl_singleYYyes
position_multiYYyes
position_multi_endYYyes
account_update_multiYYyes
account_update_multi_endYYyes
Contractcontract_detailsYYyes
contract_details_endYYyes
bond_contract_detailsYYyes
symbol_samplesYYyes
Historical Datahistorical_dataYYyes
historical_data_endYYyes
historical_data_updateYYyes
head_timestampYYyes
historical_ticksYYyes
historical_ticks_bid_askYYyes
historical_ticks_lastYYyes
histogram_dataYYyes
historical_scheduleYYyes
Market Depthupdate_mkt_depthYYyes
update_mkt_depth_l2YYyes
mkt_depth_exchangesYYyes
Tick-by-Ticktick_by_tick_all_lastYYyes
tick_by_tick_bid_askYYyes
tick_by_tick_mid_pointYYyes
Scannerscanner_dataYYyes
scanner_data_endYYyes
scanner_parametersYYyes
Newsnews_providersYYyes
news_articleYYyes
historical_newsYYyes
historical_news_endYYyes
tick_newsYYyes
update_news_bulletinYYyes
Real-Time Barsreal_time_barYYyes
Fundamentalfundamental_dataYYyes
Market Rulesmarket_ruleYYyes
Completed Orderscompleted_orderYYyes
completed_orders_endYYyes
Optionstick_option_computationYYyes
security_definition_option_parameterYYyes
security_definition_option_parameter_endYYyes
Referencesmart_componentsYYyes
soft_dollar_tiersYYyes
family_codesYYyes
user_infoYYyes
FAreceive_faYYyes
replace_fa_endYYyes
Display Groupsdisplay_group_listYYyes
display_group_updatedYYyes
Otherdelta_neutral_validationYYno
WSHwsh_meta_dataYYyes
wsh_event_dataYYyes
Market Datareroute_mkt_data_reqSTUBSTUByes
reroute_mkt_depth_reqSTUBSTUByes
tick_efpYYno
Connectionverify_message_apiYYno
verify_completedYYno
verify_and_auth_message_apiYYno
verify_and_auth_completedYYno
win_errorYYno