{"id":198797,"date":"2023-11-08T10:39:18","date_gmt":"2023-11-08T15:39:18","guid":{"rendered":"https:\/\/ibkrcampus.com\/?p=198797"},"modified":"2023-11-08T11:43:53","modified_gmt":"2023-11-08T16:43:53","slug":"understanding-asynchronous-libraries-with-the-tws-api","status":"publish","type":"post","link":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/understanding-asynchronous-libraries-with-the-tws-api\/","title":{"rendered":"Understanding Asynchronous Libraries with the TWS API"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Working with many new users of the TWS API, we often see individuals attempt to set something like \u2018x=reqMarketData()\u2019 with the expectation of receiving data by calling the variable throughout their code. However, this is not the case, as the TWS API is built on an Asynchronous Framework to help reduce lag time and display the most up to date information possible. In such a fluid world like the trading industry, attempting to lock data into a sequential series is an uphill battle.<\/p>\n\n\n\n<p class=\"has-text-align-left wp-block-paragraph\">To understand the choice to use this system, it\u2019s worth exploring the idea of synchronous and asynchronous. Synchronous systems imply that every action will have a reciprocated, sequential action. This is a standard system most users are familiar with in programming as asking for a variable typically results in that same variable being given back. Synchronous programming can be thought of like a professor instructing students in a classroom. There is a single point of conversation which will go back and forth in real time.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Conversely, asynchronous systems imply that after a call is made, some number of responses will be reciprocated. This can be anywhere from no responses to hundreds of responses. This is not the standard system most programmers are familiar with as most fields of computing do not require the user to receive more than a single value. However, in the aspect of market data where bid, ask, last, Greeks, and a plethora of other values need to be calculated, received, and updated as soon as possible, a synchronous system does not facilitate this data display. Back to our teaching example, one could consider this like homework assignments: some students will complete it on time alone, some in groups or with tutors, and some will not complete the assignment at all.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This asynchronicity has added value as well even beyond the formal standards of the market. Because traders will likely want market data for multiple instruments, all of the market data can have a single consolidated point for trade prices to return to. In the case of the TWS API, this would fall to <em>tickPrice<\/em>. This is far less resource intensive than having hundreds of values like <em>x.tickPrice.Bid<\/em> to be concurrently maintained by the machine. Instead, users can simply track a request identifier, and see that all resources displaying this value are linked back to our original market data request.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As such, developers can employ Interactive Brokers\u2019 TWS API library to request market data for a range of instruments while also reviewing account data, sending out and tracking orders, and maintain their calculations in the background at the same time.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Working with many new users of the TWS API, we often see individuals attempt to set something like \u2018x=reqMarketData()\u2019 with the expectation of receiving data by calling the variable throughout their code. However, this is not the case, as the TWS API is built on an Asynchronous Framework to help reduce lag time and display the most up to date information possible.<\/p>\n","protected":false},"author":1173,"featured_media":198806,"comment_status":"open","ping_status":"closed","sticky":true,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[345,346,339,340,347,343,349,338,341],"tags":[851,16223,575,10670],"contributors-categories":[13576],"class_list":["post-198797","post","type-post","status-publish","format-standard","has-post-thumbnail","category-c-sharp-development","category-c-plusplus-development","category-data-science","category-api-development","category-java-development","category-programing-languages","category-python-development","category-ibkr-quant-news","category-quant-development","tag-algo-trading","tag-asynchronous-libraries","tag-ibkr-api","tag-tws-api","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 v28.0) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Understanding Asynchronous Libraries with the TWS API<\/title>\n<meta name=\"description\" content=\"Working with many new users of the TWS API, we often see individuals attempt to set something like \u2018x=reqMarketData()\u2019 with the expectation of...\" \/>\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\/198797\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Understanding Asynchronous Libraries with the TWS API | IBKR Campus US\" \/>\n<meta property=\"og:description\" content=\"Working with many new users of the TWS API, we often see individuals attempt to set something like \u2018x=reqMarketData()\u2019 with the expectation of receiving data by calling the variable throughout their code.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/understanding-asynchronous-libraries-with-the-tws-api\/\" \/>\n<meta property=\"og:site_name\" content=\"IBKR Campus US\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-08T15:39:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-08T16:43:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/11\/api-code-hands.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=\"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\\\/understanding-asynchronous-libraries-with-the-tws-api\\\/#article\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/ibkr-quant-news\\\/understanding-asynchronous-libraries-with-the-tws-api\\\/\"\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\": \"Understanding Asynchronous Libraries with the TWS API\",\n\t            \"datePublished\": \"2023-11-08T15:39:18+00:00\",\n\t            \"dateModified\": \"2023-11-08T16:43:53+00:00\",\n\t            \"mainEntityOfPage\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/ibkr-quant-news\\\/understanding-asynchronous-libraries-with-the-tws-api\\\/\"\n\t            },\n\t            \"wordCount\": 447,\n\t            \"commentCount\": 8,\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\\\/understanding-asynchronous-libraries-with-the-tws-api\\\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/11\\\/api-code-hands.jpg\",\n\t            \"keywords\": [\n\t                \"Algo Trading\",\n\t                \"Asynchronous Libraries\",\n\t                \"IBKR API\",\n\t                \"TWS API\"\n\t            ],\n\t            \"articleSection\": [\n\t                \"C# Development\",\n\t                \"C++ Development\",\n\t                \"Data Science\",\n\t                \"IBKR API Development\",\n\t                \"Java Development\",\n\t                \"Programming Languages\",\n\t                \"Python Development\",\n\t                \"Quant\",\n\t                \"Quant Development\"\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\\\/ibkr-quant-news\\\/understanding-asynchronous-libraries-with-the-tws-api\\\/#respond\"\n\t                    ]\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"WebPage\",\n\t            \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/ibkr-quant-news\\\/understanding-asynchronous-libraries-with-the-tws-api\\\/\",\n\t            \"url\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/ibkr-quant-news\\\/understanding-asynchronous-libraries-with-the-tws-api\\\/\",\n\t            \"name\": \"Understanding Asynchronous Libraries with the TWS API | 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\\\/ibkr-quant-news\\\/understanding-asynchronous-libraries-with-the-tws-api\\\/#primaryimage\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\\\/\\\/ibkrcampus.com\\\/campus\\\/ibkr-quant-news\\\/understanding-asynchronous-libraries-with-the-tws-api\\\/#primaryimage\"\n\t            },\n\t            \"thumbnailUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/11\\\/api-code-hands.jpg\",\n\t            \"datePublished\": \"2023-11-08T15:39:18+00:00\",\n\t            \"dateModified\": \"2023-11-08T16:43:53+00:00\",\n\t            \"description\": \"Working with many new users of the TWS API, we often see individuals attempt to set something like \u2018x=reqMarketData()\u2019 with the expectation of receiving data by calling the variable throughout their code.\",\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\\\/understanding-asynchronous-libraries-with-the-tws-api\\\/\"\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\\\/understanding-asynchronous-libraries-with-the-tws-api\\\/#primaryimage\",\n\t            \"url\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/11\\\/api-code-hands.jpg\",\n\t            \"contentUrl\": \"https:\\\/\\\/www.interactivebrokers.com\\\/campus\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2023\\\/11\\\/api-code-hands.jpg\",\n\t            \"width\": 1000,\n\t            \"height\": 563,\n\t            \"caption\": \"API\"\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":"Understanding Asynchronous Libraries with the TWS API","description":"Working with many new users of the TWS API, we often see individuals attempt to set something like \u2018x=reqMarketData()\u2019 with the expectation of...","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\/198797\/","og_locale":"en_US","og_type":"article","og_title":"Understanding Asynchronous Libraries with the TWS API | IBKR Campus US","og_description":"Working with many new users of the TWS API, we often see individuals attempt to set something like \u2018x=reqMarketData()\u2019 with the expectation of receiving data by calling the variable throughout their code.","og_url":"https:\/\/www.interactivebrokers.com\/campus\/ibkr-quant-news\/understanding-asynchronous-libraries-with-the-tws-api\/","og_site_name":"IBKR Campus US","article_published_time":"2023-11-08T15:39:18+00:00","article_modified_time":"2023-11-08T16:43:53+00:00","og_image":[{"width":1000,"height":563,"url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/11\/api-code-hands.jpg","type":"image\/jpeg"}],"author":"Andrew Wise","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Andrew Wise","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"NewsArticle","@id":"https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/understanding-asynchronous-libraries-with-the-tws-api\/#article","isPartOf":{"@id":"https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/understanding-asynchronous-libraries-with-the-tws-api\/"},"author":{"name":"Andrew Wise","@id":"https:\/\/ibkrcampus.com\/campus\/#\/schema\/person\/68e347fb855adceb4ccfbfa350f5b783"},"headline":"Understanding Asynchronous Libraries with the TWS API","datePublished":"2023-11-08T15:39:18+00:00","dateModified":"2023-11-08T16:43:53+00:00","mainEntityOfPage":{"@id":"https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/understanding-asynchronous-libraries-with-the-tws-api\/"},"wordCount":447,"commentCount":8,"publisher":{"@id":"https:\/\/ibkrcampus.com\/campus\/#organization"},"image":{"@id":"https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/understanding-asynchronous-libraries-with-the-tws-api\/#primaryimage"},"thumbnailUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/11\/api-code-hands.jpg","keywords":["Algo Trading","Asynchronous Libraries","IBKR API","TWS API"],"articleSection":["C# Development","C++ Development","Data Science","IBKR API Development","Java Development","Programming Languages","Python Development","Quant","Quant Development"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/understanding-asynchronous-libraries-with-the-tws-api\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/understanding-asynchronous-libraries-with-the-tws-api\/","url":"https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/understanding-asynchronous-libraries-with-the-tws-api\/","name":"Understanding Asynchronous Libraries with the TWS API | IBKR Campus US","isPartOf":{"@id":"https:\/\/ibkrcampus.com\/campus\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/understanding-asynchronous-libraries-with-the-tws-api\/#primaryimage"},"image":{"@id":"https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/understanding-asynchronous-libraries-with-the-tws-api\/#primaryimage"},"thumbnailUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/11\/api-code-hands.jpg","datePublished":"2023-11-08T15:39:18+00:00","dateModified":"2023-11-08T16:43:53+00:00","description":"Working with many new users of the TWS API, we often see individuals attempt to set something like \u2018x=reqMarketData()\u2019 with the expectation of receiving data by calling the variable throughout their code.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/understanding-asynchronous-libraries-with-the-tws-api\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ibkrcampus.com\/campus\/ibkr-quant-news\/understanding-asynchronous-libraries-with-the-tws-api\/#primaryimage","url":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/11\/api-code-hands.jpg","contentUrl":"https:\/\/www.interactivebrokers.com\/campus\/wp-content\/uploads\/sites\/2\/2023\/11\/api-code-hands.jpg","width":1000,"height":563,"caption":"API"},{"@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\/2023\/11\/api-code-hands.jpg","_links":{"self":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts\/198797","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=198797"}],"version-history":[{"count":0,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/posts\/198797\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media\/198806"}],"wp:attachment":[{"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/media?parent=198797"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/categories?post=198797"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/tags?post=198797"},{"taxonomy":"contributors-categories","embeddable":true,"href":"https:\/\/ibkrcampus.com\/campus\/wp-json\/wp\/v2\/contributors-categories?post=198797"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}