- Solve real problems with our hands-on interface
- Progress from basic puts and calls to advanced strategies

Posted October 27, 2025 at 2:08 pm
Following a recent survey produced by the Interactive Brokers API Development team, we found widespread interest amongst our users in a synchronous variant of the TWS API / IBAPI package. In an effort to resolve customer concerns on the matter, we have provided the newly produced “sync-wrapper” package through the Python content within the TWSAPI download from https://interactivebrokers.github.io/. This will be available in the Latest release, 10.40, and beyond. We will also be including the “sync-tester.py” file in our Samples directory which showcases an implementation for all available features. Users looking for more information on the difference between Synchronous and Asynchronous should check out our article at https://www.interactivebrokers.com/campus/ibkr-quant-news/understanding-asynchronous-libraries-with-the-tws-api/.
The Sync Wrapper offers a new implementation structure adhering to a synchronized user experience. As an example, users may create a request like ‘x = app.reqHistoricalData(contract, end_date_time=””, duration_str=”1 W”, bar_size_setting=”1 day”, what_to_show=”TRADES”, use_rth=True)’. And in this scenario, ‘x’ will return a list of the bar objects for the duration.
On that note, much of the functionality is carried over from the original ibapi. Objects, such as Contract, Order, Bar and so on are still utilized within the Sync Wrapper implementation, with the primary shift in functionality focusing on the long-time asynchronous approach. The new wrapper structure currently maintains a limited scope of functionality, focusing on alternatives for our reqMktData, reqHistoricalData, along with execution and portfolio monitoring. Importing the Sync Wrapper will import the structures from ibapi.client and ibapi.wrapper, so users may still reference all asynchronous functions not otherwise included to reference as needed.
The Sync Wrapper is currently in a Beta state that we welcome clients test with using Paper Trading Accounts. We welcome feedback from users in our Github either as Pull Requests or by raising Issues. Users may sign up for the private Github repository by visiting https://interactivebrokers.github.io/api_software_contribute.html. The Synchronous API is fully documented within our IBKR Campus space at https://www.interactivebrokers.com/campus/ibkr-api-page/twsapi-doc/#sync-api. For any further questions on the implementation, please do not hesitate to reach out to our Customer Service team, detailed at https://www.ibkrguides.com/complianceportal/creatingaticket.htm.
For specific platform feedback and suggestions, please submit it directly to our team using these instructions.
If you have an account-specific question or concern, please reach out to Client Services.
We encourage you to look through our FAQs before posting. Your question may already be covered!
The analysis in this material is provided for information only and is not and should not be construed as an offer to sell or the solicitation of an offer to buy any security. To the extent that this material discusses general market activity, industry or sector trends or other broad-based economic or political conditions, it should not be construed as research or investment advice. To the extent that it includes references to specific securities, commodities, currencies, or other instruments, those references do not constitute a recommendation by IBKR to buy, sell or hold such investments. This material does not and is not intended to take into account the particular financial conditions, investment objectives or requirements of individual customers. Before acting on this material, you should consider whether it is suitable for your particular circumstances and, as necessary, seek professional advice.
The views and opinions expressed herein are those of the author and do not necessarily reflect the views of Interactive Brokers, its affiliates, or its employees.
Throughout the lesson, please keep in mind that the examples discussed are purely for technical demonstration purposes, and do not constitute trading advice. Also, it is important to remember that placing trades in a paper account is recommended before any live trading.
The order types available through Interactive Brokers LLC's Trader Workstation are designed to help you limit your loss and/or lock in a profit. Market conditions and other factors may affect execution. In general, orders guarantee a fill or guarantee a price, but not both. In extreme market conditions, an order may either be executed at a different price than anticipated or may not be filled in the marketplace.
Are there any advantages of using this new API vs existing (and pretty stable) packages such as ib_async and ib_insync?
Hi, thank you for reaching out. The most distinct difference in this scenario would be that the Sync Wrapper is officially supported by Interactive Brokers. This means that we will continue to supply updates for the package while also being able to provide API support on the matter. As the ib_async libraries are produced by third party entities, the Interactive Brokers team would be unable to assist with that software. In addition, given the system is still in a Beta state, user feedback will shape and guide future releases of the Sync Wrapper, allowing the platform to build directly around user need. If you have any additional questions, please reach out to our API experts via web ticket. We have a category specifically for “API.” One of our API experts will be happy to guide you! https://spr.ly/IBKR_TicketCampus
When are you going to release version 10.40? For now, the most recent version I can find is 9.81.1.
Hello, thank you for reaching out. TWS API 10.40 was released in September of 2025. If you are observing 9.81 as your released version, it sounds like you may be using pip to install the API, which is not an official release by Interactive Brokers. The only supported location to download the TWS API and it’s updates is directly from https://interactivebrokers.github.io/
We hope this helps!
nice. in particular i find it inconvenient to setup option spreads since we have to req contract details -> wait for callback -> map conid, especially when there are standard formats for uniquely identifying option contracts (e.g. “AAPL 251107…”). synchronous reqcontractdetails would significantly reduce implementation complexity in this case.
Thank you for the feedback! We will look to implement your feedback in a coming release.