{"id":101540,"date":"2021-09-02T11:48:26","date_gmt":"2021-09-02T15:48:26","guid":{"rendered":"https:\/\/ibkrcampus.com\/?p=101540"},"modified":"2023-03-01T15:21:38","modified_gmt":"2023-03-01T20:21:38","slug":"tutorial-web-api-how-to-connect-to-websocket","status":"publish","type":"post","link":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/tutorial-web-api-how-to-connect-to-websocket\/","title":{"rendered":"Tutorial: Web API &#8211; How to connect to WebSocket"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"1150\" height=\"720\" data-src=\"\/campus\/wp-content\/uploads\/sites\/2\/2019\/10\/quant-tec-01.jpg\" alt=\"Quant\" class=\"wp-image-20116 lazyload\" data-srcset=\"https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/10\/quant-tec-01.jpg 1150w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/10\/quant-tec-01-400x250.jpg 400w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/10\/quant-tec-01-800x501.jpg 800w, https:\/\/ibkrcampus.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/10\/quant-tec-01-768x481.jpg 768w\" data-sizes=\"(max-width: 1150px) 100vw, 1150px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1150px; aspect-ratio: 1150\/720;\" \/><\/figure>\n\n\n\n<p><strong>What is WebSocket?&nbsp;<\/strong>&nbsp;<\/p>\n\n\n\n<p>WebSocket is a bidirectional,&nbsp;fully-duplex&nbsp;protocol that is used in the same scenario as client-server communication. Unlike HTTP it starts from ws:\/\/ or&nbsp;wss:\/\/. It is a stateful protocol, which means the connection between the client and server will keep alive until it is terminated by either the client or server. After closing the connection it\u2019s terminated from both ends.&nbsp;&nbsp;<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#a8efb3; font-size:16px\"><em>Please be sure to authenticate first in order to resolve the below URLs.<\/em><br><em>For authentication details, visit&nbsp;<a href=\"https:\/\/www.interactivebrokers.com\/en\/trading\/ib-api.php\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/www.interactivebrokers.com\/en\/trading\/ib-api.php<\/a><\/em><\/p>\n\n\n\n<p><strong>How to connect to WebSocket?<\/strong>&nbsp;<\/p>\n\n\n\n<p>The&nbsp;websocket&nbsp;endpoint is available at&nbsp;<strong>wss:\/\/api.ibkr.com\/v1\/api\/ws<\/strong>, when using the Gateway for authentication replace&nbsp;<strong>api.ibkr.com<\/strong>&nbsp;with&nbsp;<strong>localhost:5000<\/strong>.&nbsp;Just having the socket open doesn\u2019t mean the session is alive or the socket would function. It could be lingering on one&nbsp;side,&nbsp;we&nbsp;use a&nbsp;reverse proxy in the middle.&nbsp;After opening the&nbsp;socket&nbsp;a message has to be sent to trigger an event on our backend.&nbsp;There are two ways of authorizing yourself with the&nbsp;websocket&nbsp;connection.&nbsp;&nbsp;<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Include the cookies from the &#8220;set-cookie&#8221; headers. The first time you send an endpoint the \u201cset-cookie\u201d&nbsp;is returned.&nbsp;Most browsers will automatically do this for you, although there are some&nbsp;exceptions&nbsp;such as Chrome.&nbsp;<\/li>\n<\/ol>\n\n\n\n<ol class=\"wp-block-list\" start=\"2\">\n<li>Send the &#8220;session&#8221; value obtained via the \/tickle endpoint. Once a&nbsp;websocket,&nbsp;without the proper cookies,&nbsp;is opened the&nbsp;websocket&nbsp;will reply with a message&nbsp;saying&nbsp;&#8220;waiting for session&#8221;. This indicates it is waiting for you to send the session value. The session value should be sent as a JSON object, with one key\/pair as follows:&nbsp;<\/li>\n<\/ol>\n\n\n\n<p><strong>Request:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\"session\":\"SESSION_VALUE_HERE\"}<\/code><\/pre>\n\n\n\n<p>Replace SESSION_VALUE_HERE with the actual session. If the session is valid the&nbsp;websocket&nbsp;will send a response confirming that you are authenticated:&nbsp;<\/p>\n\n\n\n<p><strong>Receive:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\"message\":\"waiting for session\"} <\/code><\/pre>\n\n\n\n<p>Then access the endpoint&nbsp;https:\/\/api.ibkr.com\/v1\/api\/tickle&nbsp;<\/p>\n\n\n\n<p><strong>Receive:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{ \n\n  \"session\": \"aeccc9d7515398c50fa894d967d099b1\", \n\n  \"iserver\": {, \n\n    \"tickle\": true,, \n\n    \"authStatus\": {, \n\n      \"authenticated\": true,, \n\n      \"competing\": false,, \n\n      \"message\": \"\",, \n\n      \"MAC\": \"98:F2:B3:23:CF:10\" \n\n    } \n\n  } \n\n} <\/code><\/pre>\n\n\n\n<p><strong>Request over&nbsp;websocket:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>   {\"session\":\"aeccc9d7515398c50fa894d967d099b1\"}<\/code><\/pre>\n\n\n\n<p><strong>Receive:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>   {\"topic\":\"sts\",\"args\":{\"authenticated\":true}} \n\n   {\"topic\":\"system\",\"success\":\"username\"} <\/code><\/pre>\n\n\n\n<p>If you have any further questions or issues connecting to&nbsp;websocket&nbsp;please reach-out to the API Group at\u202f<a href=\"https:\/\/www.interactivebrokers.com\/en\/index.php?f=47047\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>https:\/\/www.interactivebrokers.com\/en\/index.php?f=47047<\/strong><\/a>.&nbsp;<\/p>\n\n\n\n<p><em>Visit the IBKR API Center for Downloads, Resources, and Technical Details<\/em>:&nbsp;<br><a href=\"https:\/\/www.interactivebrokers.com\/en\/trading\/ib-api.php\" target=\"_blank\" rel=\"noreferrer noopener\"><strong><em>https:\/\/www.interactivebrokers.com\/en\/trading\/ib-api.php<\/em><\/strong><\/a>.&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WebSocket is a bidirectional, fully-duplex protocol that is used in the same scenario as client-server communication. Unlike HTTP it starts from ws:\/\/ or wss:\/\/.<\/p>\n","protected":false},"author":614,"featured_media":20116,"comment_status":"closed","ping_status":"open","sticky":true,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[340,343,338,341,352,344,9763],"tags":[851,865,575,9821,9552,10264],"contributors-categories":[13576],"class_list":{"0":"post-101540","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-api-development","8":"category-programing-languages","9":"category-ibkr-quant-news","10":"category-quant-development","11":"category-quant-north-america","12":"category-quant-regions","13":"category-rest-development","14":"tag-algo-trading","15":"tag-github","16":"tag-ibkr-api","17":"tag-rest-development","18":"tag-web-api","19":"tag-websocket","20":"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>Tutorial: Web API &#8211; How to connect to WebSocket<\/title>\n<meta name=\"description\" content=\"WebSocket is a bidirectional, fully-duplex protocol that is used in the same scenario as client-server communication. Unlike HTTP it starts from ws:\/\/...\" \/>\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\/101540\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Tutorial: Web API - How to connect to WebSocket | IBKR Quant Blog\" \/>\n<meta property=\"og:description\" content=\"WebSocket is a bidirectional, fully-duplex protocol that is used in the same scenario as client-server communication. Unlike HTTP it starts from ws:\/\/ or wss:\/\/.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/tutorial-web-api-how-to-connect-to-websocket\/\" \/>\n<meta property=\"og:site_name\" content=\"IBKR Campus US\" \/>\n<meta property=\"article:published_time\" content=\"2021-09-02T15:48:26+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-03-01T20:21:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/10\/quant-tec-01.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1150\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"IBKR API\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"IBKR API\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 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\\\/ibkr-quant-news\\\/tutorial-web-api-how-to-connect-to-websocket\\\/#article\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/ibkr-quant-news\\\/tutorial-web-api-how-to-connect-to-websocket\\\/\"\n\t            },\n\t            \"author\": {\n\t                \"name\": \"IBKR API\",\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#\\\/schema\\\/person\\\/a70292c923c6262ec34ebe59e937f0cc\"\n\t            },\n\t            \"headline\": \"Tutorial: Web API &#8211; How to connect to WebSocket\",\n\t            \"datePublished\": \"2021-09-02T15:48:26+00:00\",\n\t            \"dateModified\": \"2023-03-01T20:21:38+00:00\",\n\t            \"mainEntityOfPage\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/ibkr-quant-news\\\/tutorial-web-api-how-to-connect-to-websocket\\\/\"\n\t            },\n\t            \"wordCount\": 418,\n\t            \"publisher\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#organization\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/ibkr-quant-news\\\/tutorial-web-api-how-to-connect-to-websocket\\\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2019\\\/10\\\/quant-tec-01.jpg\",\n\t            \"keywords\": [\n\t                \"Algo Trading\",\n\t                \"GitHub\",\n\t                \"IBKR API\",\n\t                \"REST Development\",\n\t                \"Web API\",\n\t                \"WebSocket\"\n\t            ],\n\t            \"articleSection\": [\n\t                \"IBKR API Development\",\n\t                \"Programming Languages\",\n\t                \"Quant\",\n\t                \"Quant Development\",\n\t                \"Quant North America\",\n\t                \"Quant Regions\",\n\t                \"REST Development\"\n\t            ],\n\t            \"inLanguage\": \"en-US\"\n\t        },\n\t        {\n\t            \"@type\": \"WebPage\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/ibkr-quant-news\\\/tutorial-web-api-how-to-connect-to-websocket\\\/\",\n\t            \"url\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/ibkr-quant-news\\\/tutorial-web-api-how-to-connect-to-websocket\\\/\",\n\t            \"name\": \"Tutorial: Web API - How to connect to WebSocket | IBKR Quant Blog\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/#website\"\n\t            },\n\t            \"primaryImageOfPage\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/ibkr-quant-news\\\/tutorial-web-api-how-to-connect-to-websocket\\\/#primaryimage\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/ibkr-quant-news\\\/tutorial-web-api-how-to-connect-to-websocket\\\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2019\\\/10\\\/quant-tec-01.jpg\",\n\t            \"datePublished\": \"2021-09-02T15:48:26+00:00\",\n\t            \"dateModified\": \"2023-03-01T20:21:38+00:00\",\n\t            \"description\": \"WebSocket is a bidirectional, fully-duplex protocol that is used in the same scenario as client-server communication. Unlike HTTP it starts from ws:\\\/\\\/ or wss:\\\/\\\/.\",\n\t            \"inLanguage\": \"en-US\",\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"ReadAction\",\n\t                    \"target\": [\n\t                        \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/ibkr-quant-news\\\/tutorial-web-api-how-to-connect-to-websocket\\\/\"\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\\\/ibkr-quant-news\\\/tutorial-web-api-how-to-connect-to-websocket\\\/#primaryimage\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2019\\\/10\\\/quant-tec-01.jpg\",\n\t            \"contentUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2019\\\/10\\\/quant-tec-01.jpg\",\n\t            \"width\": 1150,\n\t            \"height\": 720,\n\t            \"caption\": \"Quant\"\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\\\/a70292c923c6262ec34ebe59e937f0cc\",\n\t            \"name\": \"IBKR API\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/author\\\/ibkrapi\\\/\"\n\t        }\n\t    ]\n\t}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Tutorial: Web API &#8211; How to connect to WebSocket","description":"WebSocket is a bidirectional, fully-duplex protocol that is used in the same scenario as client-server communication. Unlike HTTP it starts from ws:\/\/...","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\/101540\/","og_locale":"en_US","og_type":"article","og_title":"Tutorial: Web API - How to connect to WebSocket | IBKR Quant Blog","og_description":"WebSocket is a bidirectional, fully-duplex protocol that is used in the same scenario as client-server communication. Unlike HTTP it starts from ws:\/\/ or wss:\/\/.","og_url":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/tutorial-web-api-how-to-connect-to-websocket\/","og_site_name":"IBKR Campus US","article_published_time":"2021-09-02T15:48:26+00:00","article_modified_time":"2023-03-01T20:21:38+00:00","og_image":[{"width":1150,"height":720,"url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/10\/quant-tec-01.jpg","type":"image\/jpeg"}],"author":"IBKR API","twitter_card":"summary_large_image","twitter_misc":{"Written by":"IBKR API","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/tutorial-web-api-how-to-connect-to-websocket\/#article","isPartOf":{"@id":"https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/tutorial-web-api-how-to-connect-to-websocket\/"},"author":{"name":"IBKR API","@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/person\/a70292c923c6262ec34ebe59e937f0cc"},"headline":"Tutorial: Web API &#8211; How to connect to WebSocket","datePublished":"2021-09-02T15:48:26+00:00","dateModified":"2023-03-01T20:21:38+00:00","mainEntityOfPage":{"@id":"https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/tutorial-web-api-how-to-connect-to-websocket\/"},"wordCount":418,"publisher":{"@id":"https:\/\/ibkrcampus.com\/campus\/#organization"},"image":{"@id":"https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/tutorial-web-api-how-to-connect-to-websocket\/#primaryimage"},"thumbnailUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/10\/quant-tec-01.jpg","keywords":["Algo Trading","GitHub","IBKR API","REST Development","Web API","WebSocket"],"articleSection":["IBKR API Development","Programming Languages","Quant","Quant Development","Quant North America","Quant Regions","REST Development"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/tutorial-web-api-how-to-connect-to-websocket\/","url":"https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/tutorial-web-api-how-to-connect-to-websocket\/","name":"Tutorial: Web API - How to connect to WebSocket | IBKR Quant Blog","isPartOf":{"@id":"https:\/\/ibkrcampus.com\/campus\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/tutorial-web-api-how-to-connect-to-websocket\/#primaryimage"},"image":{"@id":"https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/tutorial-web-api-how-to-connect-to-websocket\/#primaryimage"},"thumbnailUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/10\/quant-tec-01.jpg","datePublished":"2021-09-02T15:48:26+00:00","dateModified":"2023-03-01T20:21:38+00:00","description":"WebSocket is a bidirectional, fully-duplex protocol that is used in the same scenario as client-server communication. Unlike HTTP it starts from ws:\/\/ or wss:\/\/.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/tutorial-web-api-how-to-connect-to-websocket\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/tutorial-web-api-how-to-connect-to-websocket\/#primaryimage","url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/10\/quant-tec-01.jpg","contentUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/10\/quant-tec-01.jpg","width":1150,"height":720,"caption":"Quant"},{"@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\/a70292c923c6262ec34ebe59e937f0cc","name":"IBKR API","url":"https:\/\/www.interactivebrokers.com\/campus\/author\/ibkrapi\/"}]}},"jetpack_featured_media_url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2019\/10\/quant-tec-01.jpg","_links":{"self":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts\/101540","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\/614"}],"replies":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/comments?post=101540"}],"version-history":[{"count":0,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts\/101540\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media\/20116"}],"wp:attachment":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media?parent=101540"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/categories?post=101540"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/tags?post=101540"},{"taxonomy":"contributors-categories","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/contributors-categories?post=101540"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}