{"id":15648,"date":"2021-05-25T00:52:03","date_gmt":"2021-05-24T16:52:03","guid":{"rendered":"https:\/\/www.tejwin.com\/?post_type=insight&#038;p=15648"},"modified":"2023-08-04T17:30:26","modified_gmt":"2023-08-04T09:30:26","slug":"tej-rest-api-document","status":"publish","type":"insight","link":"https:\/\/www.tejwin.com\/en\/insight\/tej-rest-api-document\/","title":{"rendered":"TEJ Rest API Document"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"527\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/\/image-230-1024x527.png\" alt=\"\" class=\"wp-image-15649\" srcset=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/image-230-1024x527.png 1024w, https:\/\/www.tejwin.com\/wp-content\/uploads\/image-230-300x154.png 300w, https:\/\/www.tejwin.com\/wp-content\/uploads\/image-230-150x77.png 150w, https:\/\/www.tejwin.com\/wp-content\/uploads\/image-230-768x395.png 768w, https:\/\/www.tejwin.com\/wp-content\/uploads\/image-230.png 1400w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Using the document to have a deep understanding of TEJ Rest API.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69f12b22e84bb\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"ez-toc-cssicon\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69f12b22e84bb\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.tejwin.com\/en\/insight\/tej-rest-api-document\/#Preface\" >Preface<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.tejwin.com\/en\/insight\/tej-rest-api-document\/#Highlights_of_this_article\" >Highlights of this article<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.tejwin.com\/en\/insight\/tej-rest-api-document\/#Links_related_to_this_article\" >Links related to this article<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.tejwin.com\/en\/insight\/tej-rest-api-document\/#API_KEY_ApplyBuy\" >API KEY Apply\/Buy<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.tejwin.com\/en\/insight\/tej-rest-api-document\/#User_guide\" >User guide<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.tejwin.com\/en\/insight\/tej-rest-api-document\/#Import_packages\" >Import packages<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.tejwin.com\/en\/insight\/tej-rest-api-document\/#Enter_API_key\" >Enter API key<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.tejwin.com\/en\/insight\/tej-rest-api-document\/#Get_the_information_of_URL\" >Get the information of URL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.tejwin.com\/en\/insight\/tej-rest-api-document\/#Data_processing_json_%E2%9E%A1%EF%B8%8F_Dataframe\" >Data processing (json \u27a1\ufe0f Dataframe)<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.tejwin.com\/en\/insight\/tej-rest-api-document\/#Optional_Parameters_Introduction\" >Optional Parameters Introduction<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.tejwin.com\/en\/insight\/tej-rest-api-document\/#Get_the_stock_data_for_the_selected_companies\" >Get the stock data for the selected companies.<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.tejwin.com\/en\/insight\/tej-rest-api-document\/#Columns_Selected\" >Columns Selected<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.tejwin.com\/en\/insight\/tej-rest-api-document\/#Date_Selected\" >Date Selected<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.tejwin.com\/en\/insight\/tej-rest-api-document\/#Table_Information\" >Table Information<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.tejwin.com\/en\/insight\/tej-rest-api-document\/#Search_Table\" >Search Table<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.tejwin.com\/en\/insight\/tej-rest-api-document\/#API_KEY_information\" >API KEY information<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.tejwin.com\/en\/insight\/tej-rest-api-document\/#Conclusion\" >Conclusion<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/www.tejwin.com\/en\/insight\/tej-rest-api-document\/#Links_related_to_this_article_again\" >Links related to this article again!<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\" id=\"ea0a\"><span class=\"ez-toc-section\" id=\"Preface\"><\/span>Preface<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p id=\"83c5\">TEJ has official packages which are specialized for R, Python users to make data collection more convenient. (<a href=\"https:\/\/medium.com\/tej-api-%E9%87%91%E8%9E%8D%E8%B3%87%E6%96%99%E5%88%86%E6%9E%90\/%E6%96%B0%E6%89%8B%E4%B8%8A%E8%B7%AF-%E4%B8%89-tej-api-%E6%96%87%E4%BB%B6%E8%A7%A3%E8%AA%AA-9c3d149a7668\" target=\"_blank\" rel=\"noopener\"><strong>Python API document<\/strong><\/a>)<\/p>\n\n\n\n<p id=\"a38d\">TEJ also cares about the programmers of other language users(C, C#, Java), so we have developed Rest API to extract data from the databases.<\/p>\n\n\n\n<p id=\"af69\">The methodology of Rest API is similar to website crawl, and we can get the information from the Uniform Resource Locator (URL). In this episode, we will show you how to use Rest API to collect the data.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"79c6\"><span class=\"ez-toc-section\" id=\"Highlights_of_this_article\"><\/span><strong>Highlights of this article <\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>TEJ API KEY Apply\/Buy<\/strong><\/li>\n\n\n\n<li><strong>User guide\/Data collection<\/strong><\/li>\n\n\n\n<li><strong>Optional Parameters Introduction<\/strong><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"2014\"><span class=\"ez-toc-section\" id=\"Links_related_to_this_article\"><\/span><strong>Links related to this article<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>1\ufe0f\u20e3 API Official Website:&nbsp;<\/strong><a href=\"https:\/\/api.tej.com.tw\/\" rel=\"noreferrer noopener\" target=\"_blank\"><strong>TEJ API Official Website<\/strong><\/a><\/li>\n\n\n\n<li><strong>2\ufe0f\u20e3 The Product Package:&nbsp;<\/strong><a href=\"https:\/\/eshop.tej.com.tw\/E-Shop\/Edata_caseIntro\/1\" rel=\"noreferrer noopener\" target=\"_blank\"><strong>TEJ E SHOP<\/strong><\/a><\/li>\n\n\n\n<li><strong>3\ufe0f\u20e3 Source Code:&nbsp;<\/strong><a href=\"https:\/\/github.com\/tejtw\/TEJAPI_Python_Medium_Rookies\" rel=\"noreferrer noopener\" target=\"_blank\"><strong>TEJ GITHUB<\/strong><\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"09dd\"><span class=\"ez-toc-section\" id=\"API_KEY_ApplyBuy\"><\/span><strong>API KEY Apply\/Buy<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p id=\"0fa4\">Before using our TEJ API, if you don\u2019t have an API KEY, you can get it through the trial application in the link or directly buy the product package in the E-Shop, as the picture below:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter caption-align-center\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/1_1LxvvWnnFKM0wzHUpSO7gSA.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\"><strong>Process of the trial API KEY application<\/strong><\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter caption-align-center\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/1_13U4bjUvzMv8AU4xeozc-1Q.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\"><strong>Webpage of TEJ E-Shop<\/strong><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"e7dd\"><span class=\"ez-toc-section\" id=\"User_guide\"><\/span><strong>User guide<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"6b2f\"><span class=\"ez-toc-section\" id=\"Import_packages\"><\/span><strong>Import packages<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>import requests\nimport pandas as pd\nimport json<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Enter_API_key\"><\/span><strong>Enter API key<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code># \u8f38\u5165 api_key\napi_key = 'your key'\nurl = 'https:\/\/api.tej.com.tw\/api\/datatables\/TWN\/APRCD.json?api_key='+api_key\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Get_the_information_of_URL\"><\/span><strong>Get the information of URL<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>rq = requests.get(url)\nrq.content\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image aligncenter caption-align-center\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/1_1gD53woXLb-uGlqDInQLuug.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Information<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"9078\"><span class=\"ez-toc-section\" id=\"Data_processing_json_%E2%9E%A1%EF%B8%8F_Dataframe\"><\/span><strong>Data processing (json \u27a1\ufe0f Dataframe)<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p id=\"3283\">After transforming json to dataFrame, the data seems more tidy \ud83d\ude0e\ud83d\ude0e~<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>data = json.loads(rq.content)&#91;'datatable']&#91;'data']\ncolumns = pd.DataFrame(json.loads(rq.content)&#91;'datatable']&#91;'columns'])&#91;'cname'].to_list()\nstock_price = pd.DataFrame(data,columns=columns)\nstock_price<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image aligncenter caption-align-center\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/1_1QKLN8qa1hPWWlRKKjruNXQ.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Dataframe<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"4be7\"><span class=\"ez-toc-section\" id=\"Optional_Parameters_Introduction\"><\/span><strong>Optional Parameters Introduction <\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p id=\"5cf6\">Analyzing the URL much further, we can find the combination of the URL has pattern! The former part of the URL is to connect to the TEJ databases, and the latter part (after the bold) is to select the database, the table, output format of the data, and some custom criteria.<\/p>\n\n\n\n<p id=\"6f5c\"><code><strong>TWN<\/strong><\/code>\uff1a Taiwan database.<br><code><strong>APRCD<\/strong><\/code>\uff1a Stock data table.<br><code><strong>json<\/strong><\/code>\uff1a Output format.<br><code><strong>api_key<\/strong><\/code>\uff1a Key (like the password while sign in the FB or Google ).<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>https:\/\/api.tej.com.tw\/api\/datatables\/{datatable_code}\/{table_code}.{format}?&lt;row_filter_criteria>\nhttps:\/\/api.tej.com.tw\/api\/datatables\/TWN\/APRCD.json?api_key=&lt;YOURAPIKEY>\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"93eb\"><span class=\"ez-toc-section\" id=\"Get_the_stock_data_for_the_selected_companies\"><\/span><strong>Get the stock data for the selected companies.<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p id=\"e75d\">\u26a0\ufe0f When the parameters are more than two, you have to add &amp; at the in front of the parameters, such as &amp; coid and &amp; api_key \u26a0\ufe0f<\/p>\n\n\n\n<p id=\"78ea\"><strong>\ud83d\udd3d Individual Stock \ud83d\udd3d<\/strong><\/p>\n\n\n\n<p id=\"cc9f\">Use Taiwan Weighted Index (code:Y9999) for example.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>coid = 'Y9999'\nurl = 'https:\/\/api.tej.com.tw\/api\/datatables\/TWN\/APRCD.json?'+'&amp;coid='+coid+'&amp;api_key='+api_key\nrq = requests.get(url)\ndata = json.loads(rq.content)&#91;'datatable']&#91;'data']\ncolumns = pd.DataFrame(json.loads(rq.content)&#91;'datatable']&#91;'columns'])&#91;'cname'].to_list()\nstock_price = pd.DataFrame(data,columns=columns)\nstock_price<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image aligncenter caption-align-center\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/1_1-SGdo4ichjule6HszFD66g.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Data<\/figcaption><\/figure>\n\n\n\n<p id=\"c971\"><strong>\ud83d\udd3d Multi-stocks \ud83d\udd3d<\/strong><\/p>\n\n\n\n<p id=\"c4de\">Use Taiwan Weighted Index (code:Y9999), Taiwan semiconductor (code:2330), Mediatek (code:2454), YangMing Marine (code: 2609) for examples.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>coid = 'Y9999,2330,2454,2609'\nurl = 'https:\/\/api.tej.com.tw\/api\/datatables\/TWN\/APRCD.json?'+'&amp;coid='+coid+'&amp;api_key='+api_key\nrq = requests.get(url)\ndata = json.loads(rq.content)&#91;'datatable']&#91;'data']\ncolumns = pd.DataFrame(json.loads(rq.content)&#91;'datatable']&#91;'columns'])&#91;'cname'].to_list()\nstock_price = pd.DataFrame(data,columns=columns)\nstock_price<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/1_1IIuQCYGyNASSHGV747oR7A.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Data<\/figcaption><\/figure>\n\n\n\n<p id=\"3b76\"><strong>\ud83d\udc7a Devil in details \ud83d\udc7a<\/strong><\/p>\n\n\n\n<p id=\"d800\">In the example of multi-stocks, we observed that the length of the data is 10,000. However, the data length of an individual stock is more than 5000, in theory, we must have more than 20,000 rows in the data. Why the differences?<\/p>\n\n\n\n<p id=\"7da5\">For the stability of the host operation, TEJ limits the maximal amount of the output is 10,000 each time. When the data is more than 10,000, we should get the next_cursor_id, and add opts.cursor_id = next_cursor_id to get the rest of the data.<\/p>\n\n\n\n<p id=\"ef28\"><strong>\ud83d\udcbb next_cursor_id \ud83d\udcbb<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>rq.json()&#91;'meta']&#91;'next_cursor_id']<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image aligncenter caption-align-center\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/1U1koauhCrfo41ReqGDhunw.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">next_cursor_id<\/figcaption><\/figure>\n\n\n\n<p id=\"855e\">According to the above logic, when there are 30,000 data, there will be 3 next_cursor_id, that is, there will be one next_cursor_id for every 10,000 data, and then it\u2019s the turn to use the while loop \u2757\ufe0f<\/p>\n\n\n\n<p id=\"dcbc\"><strong>\ud83d\udcbb Solution to next_cursor_id \ud83d\udcbb<\/strong><\/p>\n\n\n\n<p id=\"9563\">We have created a function for you, so users can use the function below to get the data easily \ud83d\ude0e\ud83d\ude0e.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>def tej_get_data(db_code,api_key,coid=None,columns=None):\n#     import requests\n#     import pandas as pd\n    common = 'https:\/\/api.tej.com.tw\/api\/datatables\/'+ db_code +'.json?'\n    if (coid==None) &amp; (columns==None):\n        tej_url = common+'&amp;api_key='+api_key\n    elif (coid!=None) &amp; (columns==None):\n        tej_url = common+'&amp;api_key='+api_key+'&amp;coid='+coid\n    elif (coid==None) &amp; (columns!=None):\n        tej_url = common+'&amp;api_key='+api_key+'&amp;opts.columns='+columns\n    else:\n        tej_url = common+'&amp;api_key='+api_key+'&amp;coid='+coid+'&amp;opts.columns='+columns\n    #print('get url:'+tej_url)\n    rq = requests.get(tej_url)\n    id_ = rq.json()&#91;'meta']&#91;'next_cursor_id']\n    data = rq.json()&#91;'datatable']&#91;'data']\n    columns = pd.DataFrame(rq.json()&#91;'datatable']&#91;'columns'])&#91;'cname'].to_list()\n    stock_price = pd.DataFrame(data,columns=columns)\n    #print('get next_cursor_id:'+id_)\n    while id_ != None:\n        urls = tej_url+'&amp;opts.cursor_id='+id_\n        #print('get url:'+urls)\n        rqs = requests.get(urls)\n        id_ = rqs.json()&#91;'meta']&#91;'next_cursor_id']\n        data = rqs.json()&#91;'datatable']&#91;'data']\n        columns = pd.DataFrame(rqs.json()&#91;'datatable']&#91;'columns'])&#91;'cname'].to_list()\n        temp = pd.DataFrame(data,columns=columns)\n        stock_price = stock_price.append(temp).reset_index(drop=True)\n        #print('get next_cursor_id:'+id_)\n    return stock_price\n\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code># multi-stocks\ncoid = 'Y9999,2330,2454,2609'\nstock_price = tej_get_data(\n                    db_code='TWN\/APRCD',\n                    api_key=api_key,\n                    coid = coid)\nstock_price<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image aligncenter caption-align-center\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/1_1WACus3EO9RoRgB8DfEPFKA.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Data<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"13f5\"><span class=\"ez-toc-section\" id=\"Columns_Selected\"><\/span><strong>Columns Selected<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p id=\"5000\">Use Taiwan Weighted Index (code:Y9999) for example.<\/p>\n\n\n\n<p id=\"f2b1\"><strong>\ud83d\udd3d Single Column \ud83d\udd3d<\/strong><\/p>\n\n\n\n<p id=\"c778\">Add parameters\u00a0<strong>&amp;opts.columns=open_d,\u00a0<\/strong>select column as\u00a0<strong>open price.<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u55ae\u4e00\u6b04\u4f4d\ncoid = 'Y9999'\nurl = 'https:\/\/api.tej.com.tw\/api\/datatables\/TWN\/APRCD.json?&amp;opts.columns=open_d'+'&amp;api_key='+api_key+'&amp;coid='+coid\nrq = requests.get(url)\ndata = rq.json()&#91;'datatable']&#91;'data']\ncolumns = pd.DataFrame(rq.json()&#91;'datatable']&#91;'columns'])&#91;'cname'].to_list()\nstock_price = pd.DataFrame(data,columns=columns)\nstock_price<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image aligncenter caption-align-center\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/15o6ChcB_fUhs51d4WzLiqg.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">data<\/figcaption><\/figure>\n\n\n\n<p id=\"9be3\"><strong>\ud83d\udd3d Multi-columns \ud83d\udd3d<\/strong><\/p>\n\n\n\n<p id=\"2f1a\">Columns\uff1astock code, Date, open, high, low, close.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># \u591a\u6b04\u4f4d\ncoid = 'Y9999'\ncolumns = 'coid,mdate,open_d,high_d,low_d,close_d'\nurl = 'https:\/\/api.tej.com.tw\/api\/datatables\/TWN\/APRCD.json?'+'&amp;opts.columns='+columns+'&amp;api_key='+api_key+'&amp;coid='+coid\nrq = requests.get(url)\ndata = rq.json()&#91;'datatable']&#91;'data']\ncolumns = pd.DataFrame(rq.json()&#91;'datatable']&#91;'columns'])&#91;'cname'].to_list()\nstock_price = pd.DataFrame(data,columns=columns)\nstock_price<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image aligncenter caption-align-center\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/1Pg4ps10nV1KnDk9fkZAosg.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Data<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"9667\"><span class=\"ez-toc-section\" id=\"Date_Selected\"><\/span><strong>Date Selected<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p id=\"d90a\">Use Taiwan Weighted Index (code:Y9999) for example.<\/p>\n\n\n\n<p id=\"d207\">Start: 2020\u201301\u201301\uff1bEnd: 2020\u201312\u201331.<\/p>\n\n\n\n<p id=\"bccc\">Parameter setting\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>mdate.gte= start\uff1a date &gt;= 2020\u201301\u201301<\/li>\n\n\n\n<li>mdate.lte = end\uff1a date &lt;= 2020\u201312\u201331<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code># \u65e5\u671f\u7be9\u9078\ncoid = 'Y9999'\nstart = '2020-01-01'\nend = '2020-12-31'\nurl = 'https:\/\/api.tej.com.tw\/api\/datatables\/TWN\/APRCD.json?'+'&amp;mdate.gte='+start+'&amp;mdate.lte='+end+'&amp;api_key='+api_key+'&amp;coid='+coid\nrq = requests.get(url)\ndata = rq.json()&#91;'datatable']&#91;'data']\ncolumns = pd.DataFrame(rq.json()&#91;'datatable']&#91;'columns'])&#91;'cname'].to_list()\nstock_price = pd.DataFrame(data,columns=columns)\nstock_price<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image aligncenter caption-align-center\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/1_1yXNMtyF1VnKAHwpbyEuCcA.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Data<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"8441\"><span class=\"ez-toc-section\" id=\"Table_Information\"><\/span><strong>Table Information<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>datatable_code = 'TWN\/APRCD'\nurl = 'https:\/\/api.tej.com.tw\/api\/datatables\/'+datatable_code+'\/metadata?api_key='+api_key\nrq = requests.get(url)\nrq.json()\n<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image aligncenter caption-align-center\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/1_1QPaGJ3yZAs1UcgscXslceg.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">information<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"819b\"><span class=\"ez-toc-section\" id=\"Search_Table\"><\/span><strong>Search Table<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p id=\"a96c\">Search EPS, it will appear many results. (For detail :&nbsp;<a href=\"https:\/\/api.tej.com.tw\/document_rest.html\" rel=\"noreferrer noopener\" target=\"_blank\">TEJ API&nbsp;<\/a>)<\/p>\n\n\n\n<p id=\"6dbe\">matchType:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>TABLE_MATCH: Keyword in the table.<\/li>\n\n\n\n<li>COLUMN_MATCH: Keyword in the column.<\/li>\n\n\n\n<li>TABLE_MATCH &amp; COLUMN_MATCH: Keyword in the table and the column.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>key_word = '\u6bcf\u80a1\u76c8\u9918'\nurl = 'https:\/\/api.tej.com.tw\/api\/search\/table\/'+key_word+'?api_key='+api_key\nrq = requests.get(url)\nrq.json()<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image aligncenter caption-align-center\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/1_1mzKDythlWiWSW6TyTNwkug.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Data<\/figcaption><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"5f6e\"><span class=\"ez-toc-section\" id=\"API_KEY_information\"><\/span><strong>API KEY information<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>api_key = 'your key'\nurl = 'https:\/\/api.tej.com.tw\/api\/apiKeyInfo\/'+api_key\nrq = requests.get(url)\nrq.json()<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image aligncenter caption-align-center\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/1v8KiaoHtxNVqIAVFsSMQEg.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Data<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"bf59\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span><strong>Conclusion<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p id=\"78e3\">The content today is for everyone to have a deeper knowledge and understanding of our TEJ Rest API. It is easier to understand, but through the codes, we can understand that<strong>&nbsp;these built-in functions could help users to get the data they want from the TEJ\u2019s huge database more conveniently.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"1e4a\"><span class=\"ez-toc-section\" id=\"Links_related_to_this_article_again\"><\/span><strong>Links related to this article again!<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>1\ufe0f\u20e3 API Official Website:&nbsp;<\/strong><a href=\"https:\/\/api.tej.com.tw\/\" rel=\"noreferrer noopener\" target=\"_blank\"><strong>TEJ API Official Website<\/strong><\/a><\/li>\n\n\n\n<li><strong>2\ufe0f\u20e3 The Product Package:&nbsp;<\/strong><a href=\"https:\/\/eshop.tej.com.tw\/E-Shop\/Edata_caseIntro\/1\" rel=\"noreferrer noopener\" target=\"_blank\"><strong>TEJ E-SHOP<\/strong><\/a><\/li>\n\n\n\n<li><strong>3\ufe0f\u20e3 Source Code:&nbsp;<\/strong><a href=\"https:\/\/github.com\/tejtw\/TEJAPI_Python_Medium_Rookies\" rel=\"noreferrer noopener\" target=\"_blank\"><strong>TEJ GITHUB<\/strong><\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Using the document to have a deep understanding of TEJ Rest API. Preface TEJ has official packages which are specialized for R, Python users to make data collection more convenient. (Python API document) TEJ also cares about the programmers of other language users(C, C#, Java), so we have developed Rest API to extract data from [&hellip;]<\/p>\n","protected":false},"featured_media":15649,"template":"","tags":[2904,2371,2628,3006],"insight-category":[690,50],"class_list":["post-15648","insight","type-insight","status-publish","has-post-thumbnail","hentry","tag-beginners-guide","tag-python","tag-rest-api","tag-tejapi-beginners-guide","insight-category-data-analysis","insight-category-fintech"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.tejwin.com\/en\/wp-json\/wp\/v2\/insight\/15648","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tejwin.com\/en\/wp-json\/wp\/v2\/insight"}],"about":[{"href":"https:\/\/www.tejwin.com\/en\/wp-json\/wp\/v2\/types\/insight"}],"version-history":[{"count":0,"href":"https:\/\/www.tejwin.com\/en\/wp-json\/wp\/v2\/insight\/15648\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.tejwin.com\/en\/wp-json\/wp\/v2\/media\/15649"}],"wp:attachment":[{"href":"https:\/\/www.tejwin.com\/en\/wp-json\/wp\/v2\/media?parent=15648"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tejwin.com\/en\/wp-json\/wp\/v2\/tags?post=15648"},{"taxonomy":"insight-category","embeddable":true,"href":"https:\/\/www.tejwin.com\/en\/wp-json\/wp\/v2\/insight-category?post=15648"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}