{"id":204864,"date":"2024-04-12T10:45:53","date_gmt":"2024-04-12T14:45:53","guid":{"rendered":"https:\/\/ibkrcampus.com\/?p=204864"},"modified":"2024-06-06T13:23:38","modified_gmt":"2024-06-06T17:23:38","slug":"unlocking-websockets","status":"publish","type":"post","link":"https:\/\/www.interactivebrokers.com\/campus\/podcasts\/ibkr-podcasts\/unlocking-websockets\/","title":{"rendered":"Unlocking WebSockets"},"content":{"rendered":"\n<p>Interactive Brokers\u2019 Web API delivers real-time access to Interactive Brokers\u2019 trading functionality, including live market data, market scanners, and intra-day portfolio updates. This podcast introduces WebSocket technology.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-summary-ibkr-podcasts-ep-151\">Summary \u2013 IBKR Podcasts Ep. 151<\/h2>\n\n\n\n<p><em>The following is a summary of a live audio recording and may contain errors in spelling or grammar. Although IBKR has edited for clarity no material changes have been made<\/em>.<\/p>\n\n\n\n<iframe title=\"Unlocking WebSockets\" allowtransparency=\"true\" height=\"150\" width=\"100%\" style=\"border: none; min-width: min(100%, 430px);height:150px;\" scrolling=\"no\" data-name=\"pb-iframe-player\" src=\"https:\/\/www.podbean.com\/player-v2\/?i=aiw8k-15dc70a-pb&#038;from=pb6admin&#038;share=1&#038;download=1&#038;rtl=0&#038;fonts=Arial&#038;skin=1b1b1b&#038;font-color=ffffff&#038;logo_link=episode_page&#038;btn-skin=c73a3a\" loading=\"lazy\"><\/iframe>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-mary-macnamara\">Mary MacNamara<\/h3>\n\n\n\n<p>Hello everybody and welcome to today&#8217;s IBKR Podcast. And today, we&#8217;re going to talk about the Client Portal API and one of its facets, WebSockets. Anyway, joining me is Andrew Wise. He&#8217;s the US API Support Supervisor for Interactive Brokers. So, Andrew, thanks for joining. What is a WebSocket?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-andrew-wise\">Andrew Wise<\/h3>\n\n\n\n<p>Hi Mary, glad to be here. So, a WebSocket is a sort of asynchronous data stream that allows data to flow into the user\u2019s program after requesting it. It&#8217;s a very strongly underutilized tool we find in the Web API because it gives clients the ability to get kind of a non-stop stream of let&#8217;s say market data or portfolio information, trades data, all of those things that a lot of users tend to kind of request on a loop. It adds that automated update time for you and that&#8217;s kind of the general use at least at Interactive Brokers of what a WebSocket is.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-mary-macnamara-0\">Mary MacNamara<\/h3>\n\n\n\n<p>And once again, you would be using this within the browser itself. You&#8217;d be writing some sort of browser application that would be connecting via this WebSocket to get all this continuous data.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-andrew-wise-0\">Andrew Wise<\/h3>\n\n\n\n<p>Yeah, so it would be a lot like our other use cases for the endpoints APIs where you can build it into other browser application or if you just wanted to make a fully automated system that doesn&#8217;t have a UI and a WebSocket would work just the same and it is completely flexible for both use cases. Obviously, if you want to see the data in real time, it is an excellent tool and I know I&#8217;ve even built it to connect into applications like Excel and it works flawlessly there.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-mary-macnamara-1\">Mary MacNamara<\/h3>\n\n\n\n<p>Love that! Who can use a WebSocket?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-andrew-wise-1\">Andrew Wise<\/h3>\n\n\n\n<p>Yeah. So, the nice thing about the WebSocket is that it has all of the same sort of restrictions, if you want to call it that, of the standard Web API. So, anyone that can use the Web API as we discussed in our last podcast together can use the WebSocket suggest as well.&nbsp; No extra limitations or fees or anything like that.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-mary-macnamara-2\">Mary MacNamara<\/h3>\n\n\n\n<p>But you do have to have a funded account, right?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-andrew-wise-2\">Andrew Wise<\/h3>\n\n\n\n<p>Yes, it has to be a funding account at Interactive Brokers. And to reiterate from before, it is an IBKR Pro account only doesn&#8217;t work with Lite accounts.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-mary-macnamara-3\">Mary MacNamara<\/h3>\n\n\n\n<p>Got it, OK. So how can you use this?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-andrew-wise-3\">Andrew Wise<\/h3>\n\n\n\n<p>So WebSocket technology is ever evolving, and Interactive Brokers are really working harder than ever to bring it up to par. WebSockets are a structure that&#8217;s kind of a unanimous system, similar to a rest API. And so, it can be used to stream market data, order information and account details like I mentioned before.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-mary-macnamara-4\">Mary MacNamara<\/h3>\n\n\n\n<p>OK. So, we talked about the how, when should I use it?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-andrew-wise-4\">Andrew Wise<\/h3>\n\n\n\n<p>In instances where a value is constantly needed as soon as it&#8217;s available. For most users, the essential values in this case are something like live market data or information about order status and execution. So that way the moment a trade does fill or gets partially executed, you&#8217;re able to get that data as soon as it&#8217;s provided, which can be a great tool in your kind of day-to-day trading.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-mary-macnamara-5\">Mary MacNamara<\/h3>\n\n\n\n<p>What can be used to build a WebSocket? Are there any special technologies for it? And so forth?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-andrew-wise-5\">Andrew Wise<\/h3>\n\n\n\n<p>So, the beauty of the WebSocket like I was saying, similar to a REST standard, is that it is a standard. &nbsp;Almost any program that can build out like these REST requests can almost always build out a WebSocket structure. Even Curl has access to build the actual structure. However, not all systems are created equal in the sense that while Curl can build the WebSocket, it doesn&#8217;t have the information necessary to send topic requests within it. We most often see things like Python, JavaScript and even actually Postman as a new evolving tool in the WebSocket world. So, you can build everything in just the standard Postman script without too much extra work and it is completely functional in that way to facilitate your WebSockets. In our Python tutorial series cover exactly how to use WebSockets through the use of Python and its WebSocket client library.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-mary-macnamara-6\">Mary MacNamara<\/h3>\n\n\n\n<p>That&#8217;s great. So does that mean Interactive Brokers is going to start maybe using Postman, putting out some examples, just a question about that.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-andrew-wise-6\">Andrew Wise<\/h3>\n\n\n\n<p>Oh yeah, certainly. And not to get too in depth on the details, but we actually do have a large restructuring of our existing campus documentation that will feature a lot of Swagger code and access for WebSocket kind of in a Open API spec style and so we should expect that in the near future and as some users may be aware most Open API spec you can import directly into Postman and the same should be going for WebSockets as well.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-mary-macnamara-7\">Mary MacNamara<\/h3>\n\n\n\n<p>Question should I just use endpoints. The extra request system sounds like it could be complicated.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-andrew-wise-7\">Andrew Wise<\/h3>\n\n\n\n<p>So luckily, clients are welcome to use endpoints if that&#8217;s something of preference. However, the nice thing about a WebSocket structure over an endpoint is that you&#8217;re typically going to have to loop through the endpoint every couple of seconds. Or even every second to try and get that data, whereas with a WebSocket it&#8217;s going to provide that feedback instantaneously from Interactive Broker\u2019s side. &nbsp;We also see several scenarios where clients might be looping over this data very quickly and because of that you might also impede on your pacing limitation which can further exacerbate your other requests.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-mary-macnamara-8\">Mary MacNamara<\/h3>\n\n\n\n<p>Why don&#8217;t you talk about this pacing limitation for those who may not know what it is.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-andrew-wise-8\">Andrew Wise<\/h3>\n\n\n\n<p>Generally speaking, Interactive Brokers has a 10 requests per second pacing limitation. And what that means is in order to kind of maintain our infrastructure, we require that users send no more than 10 endpoint requests in any given second. This can include anything from requests for market data, request for portfolio information, all the way to trying to place orders. We kind of cap it off at 10 requests per second, but because WebSockets are a different technology and a different structure building these out won&#8217;t actually impede your standard workflow. &nbsp;So, you can get live market data and then still place 10 orders per second without kind of conflicting one another with those pacing limitations.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-mary-macnamara-9\">Mary MacNamara<\/h3>\n\n\n\n<p>OK, so if I&#8217;m new to web environments as a whole, can this be compared to anything this whole WebSocket technology?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-andrew-wise-9\">Andrew Wise<\/h3>\n\n\n\n<p>Certainly, so like I said at the top, it is an asynchronous technology and for users not too familiar with web technologies, but have been trading using the TWS API, they seem to be a lot of similarity here. &nbsp;Both the TWS API and WebSockets function through this asynchronous environment, where outbound requests are not always met 1:1 with the response. Instead, you&#8217;ll often open a large stream of data and retrieve every update as it&#8217;s available rather than pinging the server and getting a single response back.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-mary-macnamara-10\">Mary MacNamara<\/h3>\n\n\n\n<p>If this is like the TWS API, specifically with Python, why wouldn&#8217;t I just use that?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-andrew-wise-10\">Andrew Wise<\/h3>\n\n\n\n<p>And you certainly could. The nice thing about WebSockets and this goes back to even our prior discussion from the other podcast. &nbsp;It is the perk of the Web API and that you have a lighter environment. You no longer have to build out the IB Gateway or Trader Workstation on your platform. You&#8217;re able to get the lightweight work of a REST API to do all of your requesting.<\/p>\n\n\n\n<p>You can either use the system interchangeably so that way you could use partially TWS and partially the Web API. But you can also kind of build out new technologies like I said before, I was actually importing the WebSocket into Excel using the Python xlwings Library and that way I can kind of replicate a similar structure as the Trader Workstation API. But now I can do it without having the intense resource demand on my machine and also that gives me the opportunity with the Python library to kind of obfuscate around using Visual Basic so that I can kind of dedicate my own work into Python which I&#8217;m already familiar with and into WebSockets, which is another familiar technology for me. So, it can help kind of alleviate that extra level of difficulty you might see using these other programming languages.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-mary-macnamara-11\">Mary MacNamara<\/h3>\n\n\n\n<p>I love this discussion with the Excel because my experience has been that a lot of people use different platforms because they can integrate the market data into their portfolio within Excel, get the real time data and they&#8217;re so familiar with using macros and Excel that this is hugely beneficial.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-andrew-wise-11\">Andrew Wise<\/h3>\n\n\n\n<p>Hmm.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-mary-macnamara-12\">Mary MacNamara<\/h3>\n\n\n\n<p>So, my question is, in order to use this component within the Excel library, do you have to pay extra for it, or does it come with Excel?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-andrew-wise-12\">Andrew Wise<\/h3>\n\n\n\n<p>That&#8217;s entirely free. And like I said, I actually have been using a library called xlwings. We actually have been working on an article on the other side of the IBKR Campus through the API article feed where we already have integrated xlwings with the TWS API if you want to get a look at that. But in the near future we&#8217;re going to be putting out a new article referencing actually how to use WebSockets with that same Python library, but there&#8217;s no cost, there&#8217;s no extra fees, even though library itself is free. So, it&#8217;s one of those things we definitely encourage our users to explore.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-mary-macnamara-13\">Mary MacNamara<\/h3>\n\n\n\n<p>Is this on the Quant blog?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-andrew-wise-13\">Andrew Wise<\/h3>\n\n\n\n<p>This is on the Quant blog.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-mary-macnamara-14\">Mary MacNamara<\/h3>\n\n\n\n<p>Oh, I love that. OK so for people who don&#8217;t know about this, if you&#8217;re on the Interactive Brokers website, you go under Education. You can see the campus and the campus has a Quant Blog. The Quant Blog has articles, code snippets. Just from not only Interactive Brokers but other parties as well, other contributors. So, it&#8217;s really has a lot of information. Anything you want to add about the new documentation, Andrew?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-andrew-wise-14\">Andrew Wise<\/h3>\n\n\n\n<p>Uh, the only thing I can really say about it is it&#8217;s one of those things that&#8217;s ever evolving and improving. Like I said, we are doing our best to kind of bring it up to the industry standard. And so, there&#8217;s going to be a lot of pretty major updates coming in the following month. So, we encourage everybody to check it out. We have dedicated Excel pages there if that&#8217;s something people are interested in. And of course, we have a full kind of documentation spread for the Client Portal API as a whole, so definitely check it out.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-mary-macnamara-15\">Mary MacNamara<\/h3>\n\n\n\n<p>All right, so we&#8217;re going to keep this short and sweet. Thank you, Andrew for coming on to this podcast and talking to us about WebSockets. We&#8217;re going to do this approximately once a once a month, folks. So, we can get a little techie in our podcast, not only talk about market commentary, but also, programmatically how you can access market data and so forth. All right, so Andrew, have a great weekend and thank you so much once again for joining us.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-andrew-wise-15\">Andrew Wise<\/h3>\n\n\n\n<p>You as well, Mary, thank you for having me.<\/p>\n\n\n\n<p><a href=\"\/campus\/ibkr-api-page\/webapi-doc\/\" target=\"_blank\" rel=\"noreferrer noopener\">Web API Documentation<\/a><\/p>\n\n\n\n<p><a href=\"\/campus\/category\/ibkr-quant-news\/programing-languages\/rest-development\/\" target=\"_blank\" rel=\"noreferrer noopener\">REST Development<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Interactive Brokers\u2019 Web API delivers real-time access to Interactive Brokers\u2019 trading functionality, including live market data, market scanners, and intra-day portfolio updates. This podcast introduces WebSocket technology.<\/p>\n","protected":false},"author":1173,"featured_media":204867,"comment_status":"open","ping_status":"closed","sticky":true,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[10842,13857,16425],"tags":[16385,11707,12204,9552,10264],"contributors-categories":[13576],"class_list":{"0":"post-204864","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-ibkr-podcasts","8":"category-podcasts","9":"category-quant-podcasts","10":"tag-api-application-programming-interface","11":"tag-python-api","12":"tag-rest-api","13":"tag-web-api","14":"tag-websocket","15":"contributors-categories-interactive-brokers"},"pp_statuses_selecting_workflow":false,"pp_workflow_action":"current","pp_status_selection":"publish","acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Unlocking WebSockets | IBKR Podcasts<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.interactivebrokers.com\/campus\/wp-json\/wp\/v2\/posts\/204864\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Unlocking WebSockets | IBKR Campus US\" \/>\n<meta property=\"og:description\" content=\"Interactive Brokers\u2019 Web API delivers real-time access to Interactive Brokers\u2019 trading functionality, including live market data, market scanners, and intra-day portfolio updates. This podcast introduces WebSocket technology.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.interactivebrokers.com\/campus\/podcasts\/ibkr-podcasts\/unlocking-websockets\/\" \/>\n<meta property=\"og:site_name\" content=\"IBKR Campus US\" \/>\n<meta property=\"article:published_time\" content=\"2024-04-12T14:45:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-06T17:23:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/04\/websocket-rect.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1000\" \/>\n\t<meta property=\"og:image:height\" content=\"563\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Andrew Wise\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Andrew Wise\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\n\t    \"@context\": \"https:\\\/\\\/schema.org\",\n\t    \"@graph\": [\n\t        {\n\t            \"@type\": \"NewsArticle\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/podcasts\\\/ibkr-podcasts\\\/unlocking-websockets\\\/#article\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/podcasts\\\/ibkr-podcasts\\\/unlocking-websockets\\\/\"\n\t            },\n\t            \"author\": {\n\t                \"name\": \"Andrew Wise\",\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/person\\\/68e347fb855adceb4ccfbfa350f5b783\"\n\t            },\n\t            \"headline\": \"Unlocking WebSockets\",\n\t            \"datePublished\": \"2024-04-12T14:45:53+00:00\",\n\t            \"dateModified\": \"2024-06-06T17:23:38+00:00\",\n\t            \"mainEntityOfPage\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/podcasts\\\/ibkr-podcasts\\\/unlocking-websockets\\\/\"\n\t            },\n\t            \"wordCount\": 2044,\n\t            \"commentCount\": 4,\n\t            \"publisher\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#organization\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/podcasts\\\/ibkr-podcasts\\\/unlocking-websockets\\\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/04\\\/websocket-rect.jpg\",\n\t            \"keywords\": [\n\t                \"API (Application Programming Interface)\",\n\t                \"Python API\",\n\t                \"Rest API\",\n\t                \"Web API\",\n\t                \"WebSocket\"\n\t            ],\n\t            \"articleSection\": [\n\t                \"IBKR Podcasts\",\n\t                \"Podcasts\",\n\t                \"Quant Podcasts\"\n\t            ],\n\t            \"inLanguage\": \"en-US\",\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"CommentAction\",\n\t                    \"name\": \"Comment\",\n\t                    \"target\": [\n\t                        \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/podcasts\\\/ibkr-podcasts\\\/unlocking-websockets\\\/#respond\"\n\t                    ]\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"WebPage\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/podcasts\\\/ibkr-podcasts\\\/unlocking-websockets\\\/\",\n\t            \"url\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/podcasts\\\/ibkr-podcasts\\\/unlocking-websockets\\\/\",\n\t            \"name\": \"Unlocking WebSockets | IBKR Campus US\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#website\"\n\t            },\n\t            \"primaryImageOfPage\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/podcasts\\\/ibkr-podcasts\\\/unlocking-websockets\\\/#primaryimage\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/podcasts\\\/ibkr-podcasts\\\/unlocking-websockets\\\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/04\\\/websocket-rect.jpg\",\n\t            \"datePublished\": \"2024-04-12T14:45:53+00:00\",\n\t            \"dateModified\": \"2024-06-06T17:23:38+00:00\",\n\t            \"inLanguage\": \"en-US\",\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"ReadAction\",\n\t                    \"target\": [\n\t                        \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/podcasts\\\/ibkr-podcasts\\\/unlocking-websockets\\\/\"\n\t                    ]\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"ImageObject\",\n\t            \"inLanguage\": \"en-US\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/podcasts\\\/ibkr-podcasts\\\/unlocking-websockets\\\/#primaryimage\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/04\\\/websocket-rect.jpg\",\n\t            \"contentUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/04\\\/websocket-rect.jpg\",\n\t            \"width\": 1000,\n\t            \"height\": 563,\n\t            \"caption\": \"Unlocking WebSockets\"\n\t        },\n\t        {\n\t            \"@type\": \"WebSite\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#website\",\n\t            \"url\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/\",\n\t            \"name\": \"IBKR Campus US\",\n\t            \"description\": \"Financial Education from Interactive Brokers\",\n\t            \"publisher\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#organization\"\n\t            },\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"SearchAction\",\n\t                    \"target\": {\n\t                        \"@type\": \"EntryPoint\",\n\t                        \"urlTemplate\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/?s={search_term_string}\"\n\t                    },\n\t                    \"query-input\": {\n\t                        \"@type\": \"PropertyValueSpecification\",\n\t                        \"valueRequired\": true,\n\t                        \"valueName\": \"search_term_string\"\n\t                    }\n\t                }\n\t            ],\n\t            \"inLanguage\": \"en-US\"\n\t        },\n\t        {\n\t            \"@type\": \"Organization\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#organization\",\n\t            \"name\": \"Interactive Brokers\",\n\t            \"alternateName\": \"IBKR\",\n\t            \"url\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/\",\n\t            \"logo\": {\n\t                \"@type\": \"ImageObject\",\n\t                \"inLanguage\": \"en-US\",\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/logo\\\/image\\\/\",\n\t                \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/05\\\/ibkr-campus-logo.jpg\",\n\t                \"contentUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2024\\\/05\\\/ibkr-campus-logo.jpg\",\n\t                \"width\": 669,\n\t                \"height\": 669,\n\t                \"caption\": \"Interactive Brokers\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/logo\\\/image\\\/\"\n\t            },\n\t            \"publishingPrinciples\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/about-ibkr-campus\\\/\",\n\t            \"ethicsPolicy\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/cyber-security-notice\\\/\"\n\t        },\n\t        {\n\t            \"@type\": \"Person\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/person\\\/68e347fb855adceb4ccfbfa350f5b783\",\n\t            \"name\": \"Andrew Wise\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/author\\\/andrew-wise\\\/\"\n\t        }\n\t    ]\n\t}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Unlocking WebSockets | IBKR Podcasts","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.interactivebrokers.com\/campus\/wp-json\/wp\/v2\/posts\/204864\/","og_locale":"en_US","og_type":"article","og_title":"Unlocking WebSockets | IBKR Campus US","og_description":"Interactive Brokers\u2019 Web API delivers real-time access to Interactive Brokers\u2019 trading functionality, including live market data, market scanners, and intra-day portfolio updates. This podcast introduces WebSocket technology.","og_url":"https:\/\/www.interactivebrokers.com\/campus\/podcasts\/ibkr-podcasts\/unlocking-websockets\/","og_site_name":"IBKR Campus US","article_published_time":"2024-04-12T14:45:53+00:00","article_modified_time":"2024-06-06T17:23:38+00:00","og_image":[{"width":1000,"height":563,"url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/04\/websocket-rect.jpg","type":"image\/jpeg"}],"author":"Andrew Wise","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Andrew Wise","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/ibkrcampus.com\/campus\/podcasts\/ibkr-podcasts\/unlocking-websockets\/#article","isPartOf":{"@id":"https:\/\/ibkrcampus.com\/campus\/podcasts\/ibkr-podcasts\/unlocking-websockets\/"},"author":{"name":"Andrew Wise","@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/person\/68e347fb855adceb4ccfbfa350f5b783"},"headline":"Unlocking WebSockets","datePublished":"2024-04-12T14:45:53+00:00","dateModified":"2024-06-06T17:23:38+00:00","mainEntityOfPage":{"@id":"https:\/\/ibkrcampus.com\/campus\/podcasts\/ibkr-podcasts\/unlocking-websockets\/"},"wordCount":2044,"commentCount":4,"publisher":{"@id":"https:\/\/ibkrcampus.com\/campus\/#organization"},"image":{"@id":"https:\/\/ibkrcampus.com\/campus\/podcasts\/ibkr-podcasts\/unlocking-websockets\/#primaryimage"},"thumbnailUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/04\/websocket-rect.jpg","keywords":["API (Application Programming Interface)","Python API","Rest API","Web API","WebSocket"],"articleSection":["IBKR Podcasts","Podcasts","Quant Podcasts"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ibkrcampus.com\/campus\/podcasts\/ibkr-podcasts\/unlocking-websockets\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ibkrcampus.com\/campus\/podcasts\/ibkr-podcasts\/unlocking-websockets\/","url":"https:\/\/ibkrcampus.com\/campus\/podcasts\/ibkr-podcasts\/unlocking-websockets\/","name":"Unlocking WebSockets | IBKR Campus US","isPartOf":{"@id":"https:\/\/ibkrcampus.com\/campus\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ibkrcampus.com\/campus\/podcasts\/ibkr-podcasts\/unlocking-websockets\/#primaryimage"},"image":{"@id":"https:\/\/ibkrcampus.com\/campus\/podcasts\/ibkr-podcasts\/unlocking-websockets\/#primaryimage"},"thumbnailUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/04\/websocket-rect.jpg","datePublished":"2024-04-12T14:45:53+00:00","dateModified":"2024-06-06T17:23:38+00:00","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ibkrcampus.com\/campus\/podcasts\/ibkr-podcasts\/unlocking-websockets\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ibkrcampus.com\/campus\/podcasts\/ibkr-podcasts\/unlocking-websockets\/#primaryimage","url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/04\/websocket-rect.jpg","contentUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/04\/websocket-rect.jpg","width":1000,"height":563,"caption":"Unlocking WebSockets"},{"@type":"WebSite","@id":"https:\/\/ibkrcampus.com\/campus\/#website","url":"https:\/\/ibkrcampus.com\/campus\/","name":"IBKR Campus US","description":"Financial Education from Interactive Brokers","publisher":{"@id":"https:\/\/ibkrcampus.com\/campus\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ibkrcampus.com\/campus\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ibkrcampus.com\/campus\/#organization","name":"Interactive Brokers","alternateName":"IBKR","url":"https:\/\/ibkrcampus.com\/campus\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/logo\/image\/","url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/05\/ibkr-campus-logo.jpg","contentUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/05\/ibkr-campus-logo.jpg","width":669,"height":669,"caption":"Interactive Brokers"},"image":{"@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/logo\/image\/"},"publishingPrinciples":"https:\/\/www.interactivebrokers.com\/campus\/about-ibkr-campus\/","ethicsPolicy":"https:\/\/www.interactivebrokers.com\/campus\/cyber-security-notice\/"},{"@type":"Person","@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/person\/68e347fb855adceb4ccfbfa350f5b783","name":"Andrew Wise","url":"https:\/\/www.interactivebrokers.com\/campus\/author\/andrew-wise\/"}]}},"jetpack_featured_media_url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2024\/04\/websocket-rect.jpg","_links":{"self":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts\/204864","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/users\/1173"}],"replies":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/comments?post=204864"}],"version-history":[{"count":0,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts\/204864\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media\/204867"}],"wp:attachment":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media?parent=204864"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/categories?post=204864"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/tags?post=204864"},{"taxonomy":"contributors-categories","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/contributors-categories?post=204864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}