{"id":245,"date":"2026-07-27T16:26:17","date_gmt":"2026-07-27T08:26:17","guid":{"rendered":"https:\/\/blog.infoway.io\/en\/?p=245"},"modified":"2026-07-27T16:26:19","modified_gmt":"2026-07-27T08:26:19","slug":"live-stock-prices-in-excel-and-google-sheets-without-writing-a-single-line-of-code","status":"publish","type":"post","link":"https:\/\/blog.infoway.io\/en\/live-stock-prices-in-excel-and-google-sheets-without-writing-a-single-line-of-code\/","title":{"rendered":"Live Stock Prices in Excel and Google Sheets \u2014 Without Writing a Single Line of Code"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">If you&#8217;ve ever tried to build a stock watchlist in a spreadsheet, you already know the drill. You reach for <code>=GOOGLEFINANCE(\"AAPL\")<\/code>, it works for US large caps, and then everything falls apart the moment you need a Hong Kong ticker, an A-share, a Japanese stock, a forex pair, or a P\/E ratio that isn&#8217;t in Google&#8217;s limited field list. Excel users have it worse, there&#8217;s no native equivalent, so people paste <code>=WEBSERVICE(...)<\/code> hacks, install flaky browser plugins, or copy-paste from Yahoo Finance every morning.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This guide is for the analyst, the finance student, the founder tracking a portfolio, and anyone else who wants <strong>live-ish market data in a cell<\/strong> without becoming a programmer. It&#8217;s the no-code answer to two of the most-searched questions in this space \u2014 <em>&#8220;is there a stock price API for Excel?&#8221;<\/em> and <em>&#8220;is there a Google Sheets stock price API?&#8221;<\/em> \u2014 and the honest answer to a third: <em>&#8220;is there a Google Finance API?&#8221;<\/em> (there isn&#8217;t an official public one, which is exactly why so many people end up here). We&#8217;ll cover two paths:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Google Sheets stock price API<\/strong> \u2014 the easy path. The <a href=\"https:\/\/workspace.google.com\/marketplace\/app\/infoway_api\/606319959160\" target=\"_blank\" rel=\"noopener\">Infoway API add-on<\/a> is now live on the Google Workspace Marketplace. Install it, paste an API key, and you get formulas like <code>=INFOWAY_PRICE(\"00700.HK\")<\/code> across US, Hong Kong, China, Japan, India, crypto, forex, and commodities.<\/li>\n\n\n\n<li><strong>Stock price API for Excel<\/strong> \u2014 a no-code Power Query setup that pulls the same market data from the REST API into a refreshable table, no add-on required.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">No Python, no scripts, no cron jobs. Just cells.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why the Google Finance API and <code>GOOGLEFINANCE<\/code> Aren&#8217;t Enough<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">First, a myth to clear up: <strong>there is no official, public Google Finance API.<\/strong> Google retired the original Google Finance API back in 2012. What survives is the <code>GOOGLEFINANCE<\/code> <em>spreadsheet function<\/em> inside Google Sheets \u2014 so every search for &#8220;google finance api stock price,&#8221; &#8220;google finance api excel,&#8221; or &#8220;calling google finance api to get stock prices from excel&#8221; is really looking for either that function or a proper replacement. Same story for pulling <strong>Yahoo Finance into Excel<\/strong>: there&#8217;s no supported Yahoo Finance API either, which is why those <code>=WEBSERVICE()<\/code> scrapers keep breaking.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>GOOGLEFINANCE<\/code> itself is genuinely useful, and genuinely limited. The gaps that send people looking for something else are always the same:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Limitation<\/th><th>What it means in practice<\/th><\/tr><\/thead><tbody><tr><td><strong>US-centric coverage<\/strong><\/td><td>Non-US tickers are hit-or-miss; many Asian and emerging-market symbols simply return <code>#N\/A<\/code>.<\/td><\/tr><tr><td><strong>Thin fundamental data<\/strong><\/td><td>You get price, volume, and a handful of ratios \u2014 no full income statement, cash flow, EPS estimates, or beat\/miss data.<\/td><\/tr><tr><td><strong>No control over the source<\/strong><\/td><td>It&#8217;s a black box. When Google changes a symbol mapping or drops an exchange, your sheet breaks and there&#8217;s no support channel.<\/td><\/tr><tr><td><strong>Excel has nothing native<\/strong><\/td><td>Microsoft&#8217;s &#8220;Stocks&#8221; data type is US-focused and can&#8217;t be scripted into custom dashboards \u2014 there&#8217;s no built-in Excel API for stock prices.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Third-party plugins fill some of this, but they tend to be single-market, break on updates, or lock the useful parts behind a subscription with no free tier to test first. The approach below fixes coverage and fundamentals in one shot, and the Google Sheets path needs zero setup beyond an install and an API key.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Path 1: A Google Sheets Stock Price API with the Infoway Add-on (No Code)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1 \u2014 Install the add-on<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Open the <a href=\"https:\/\/workspace.google.com\/marketplace\/app\/infoway_api\/606319959160\" target=\"_blank\" rel=\"noopener\">Marketplace listing<\/a> and click <strong>Install<\/strong>:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img fetchpriority=\"high\" decoding=\"async\" width=\"1024\" height=\"549\" src=\"https:\/\/blog.infoway.io\/en\/wp-content\/uploads\/sites\/2\/2026\/07\/infoway-api-for-google-sheets-landing-page-screenshot-1024x549.webp\" alt=\"google workspace marketplace screenshot\" class=\"wp-image-255\" style=\"width:545px;height:auto\" srcset=\"https:\/\/blog.infoway.io\/en\/wp-content\/uploads\/sites\/2\/2026\/07\/infoway-api-for-google-sheets-landing-page-screenshot-1024x549.webp 1024w, https:\/\/blog.infoway.io\/en\/wp-content\/uploads\/sites\/2\/2026\/07\/infoway-api-for-google-sheets-landing-page-screenshot-300x161.webp 300w, https:\/\/blog.infoway.io\/en\/wp-content\/uploads\/sites\/2\/2026\/07\/infoway-api-for-google-sheets-landing-page-screenshot-768x412.webp 768w, https:\/\/blog.infoway.io\/en\/wp-content\/uploads\/sites\/2\/2026\/07\/infoway-api-for-google-sheets-landing-page-screenshot-1536x823.webp 1536w, https:\/\/blog.infoway.io\/en\/wp-content\/uploads\/sites\/2\/2026\/07\/infoway-api-for-google-sheets-landing-page-screenshot-2048x1098.webp 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Google will ask for permission to run the add-on inside your spreadsheets. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Once installed, it lives on the sidebar of your Google Sheets:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img decoding=\"async\" width=\"1063\" height=\"1071\" src=\"https:\/\/blog.infoway.io\/en\/wp-content\/uploads\/sites\/2\/2026\/07\/infoway-api-for-google-sheets-sidebar.webp\" alt=\"google sheets sidebar screenshot\" class=\"wp-image-256\" style=\"aspect-ratio:0.9921903765284964;width:509px;height:auto\" srcset=\"https:\/\/blog.infoway.io\/en\/wp-content\/uploads\/sites\/2\/2026\/07\/infoway-api-for-google-sheets-sidebar.webp 1063w, https:\/\/blog.infoway.io\/en\/wp-content\/uploads\/sites\/2\/2026\/07\/infoway-api-for-google-sheets-sidebar-298x300.webp 298w, https:\/\/blog.infoway.io\/en\/wp-content\/uploads\/sites\/2\/2026\/07\/infoway-api-for-google-sheets-sidebar-1016x1024.webp 1016w, https:\/\/blog.infoway.io\/en\/wp-content\/uploads\/sites\/2\/2026\/07\/infoway-api-for-google-sheets-sidebar-150x150.webp 150w, https:\/\/blog.infoway.io\/en\/wp-content\/uploads\/sites\/2\/2026\/07\/infoway-api-for-google-sheets-sidebar-768x774.webp 768w\" sizes=\"(max-width: 1063px) 100vw, 1063px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2 \u2014 Get a free API key<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Every formula needs an API key to return data. Create a free account at <strong><a href=\"https:\/\/infoway.io\/en\/create-account\" target=\"_blank\" rel=\"noopener\">https:\/\/infoway.io\/en\/create-account<\/a><\/strong> \u2014 no credit card required for the trial tier. Copy the key from your dashboard.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3 \u2014 Save your key in the sidebar<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In your sheet, click the Infoway API icon on the sidebar to open the panel, paste your API key, and save it:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full is-resized\"><img decoding=\"async\" width=\"665\" height=\"681\" src=\"https:\/\/blog.infoway.io\/en\/wp-content\/uploads\/sites\/2\/2026\/07\/infoway-api-for-google-sheets-input-api-key.webp\" alt=\"infoway api for google sheets panel\" class=\"wp-image-254\" style=\"width:315px;height:auto\" srcset=\"https:\/\/blog.infoway.io\/en\/wp-content\/uploads\/sites\/2\/2026\/07\/infoway-api-for-google-sheets-input-api-key.webp 665w, https:\/\/blog.infoway.io\/en\/wp-content\/uploads\/sites\/2\/2026\/07\/infoway-api-for-google-sheets-input-api-key-293x300.webp 293w\" sizes=\"(max-width: 665px) 100vw, 665px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"> That&#8217;s the entire setup. From now on, the custom formulas work in any cell.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4 \u2014 Type a formula<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>=INFOWAY_PRICE(\"AAPL.US\")<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">INFOWAY_PRICE<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">AAPL.US<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">The cell returns Apple&#8217;s latest trade price. Swap the symbol for any market:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>=INFOWAY_PRICE(\"00700.HK\")     \u2190 Tencent (Hong Kong)\n=INFOWAY_PRICE(\"600519.SH\")    \u2190 Kweichow Moutai (Shanghai A-share)\n=INFOWAY_PRICE(\"7203.JP\")      \u2190 Toyota (Japan)\n=INFOWAY_PRICE(\"RELIANCE.IN\")  \u2190 Reliance (India)\n=INFOWAY_PRICE(\"BTC\/USDT\")     \u2190 Bitcoin\n=INFOWAY_PRICE(\"USDCNY\")       \u2190 USD\/CNY forex\n=INFOWAY_PRICE(\"XAUUSD\")       \u2190 Gold spot<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">INFOWAY_PRICE<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">00700.HK<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">     \u2190 <\/span><span style=\"color: #88C0D0\">Tencent<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">Hong Kong<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">INFOWAY_PRICE<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">600519.SH<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">    \u2190 Kweichow <\/span><span style=\"color: #88C0D0\">Moutai<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">Shanghai A<\/span><span style=\"color: #81A1C1\">-<\/span><span style=\"color: #D8DEE9FF\">share<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">INFOWAY_PRICE<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">7203.JP<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">      \u2190 <\/span><span style=\"color: #88C0D0\">Toyota<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">Japan<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">INFOWAY_PRICE<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">RELIANCE.IN<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">  \u2190 <\/span><span style=\"color: #88C0D0\">Reliance<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">India<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">INFOWAY_PRICE<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">BTC\/USDT<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">     \u2190 Bitcoin<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">INFOWAY_PRICE<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">USDCNY<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">       \u2190 USD<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">CNY forex<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">INFOWAY_PRICE<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">XAUUSD<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">       \u2190 Gold spot<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u26a0\ufe0f Read This First: &#8220;Live&#8221; Means Snapshot, Not Streaming<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is the single most important thing to understand before you build a dashboard on top of the add-on, and it&#8217;s worth being upfront about it.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Google Sheets custom functions <strong>do not run on a timer<\/strong>. Google only recalculates a custom formula when one of its arguments changes, or when you open or edit the sheet. That means:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>There is no continuous streaming.<\/strong> <code>=INFOWAY_PRICE(\"AAPL.US\")<\/code> shows the price from the moment it last calculated \u2014 it will <strong>not<\/strong> keep ticking on its own like a trading terminal.<\/li>\n\n\n\n<li>Results are also <strong>cached server-side for a short window<\/strong> \u2014 roughly <strong>60 seconds for real-time quotes<\/strong> and <strong>about 1 hour for financial data<\/strong> \u2014 so re-running immediately returns the cached value.<\/li>\n\n\n\n<li><strong>To force a refresh<\/strong>, trigger a recalculation manually: edit and re-enter the cell, change an argument, delete-and-undo, or simply reopen the sheet.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">If you need a genuinely live, minute-by-minute auto-refreshing ticker, a spreadsheet add-on isn&#8217;t the right tool today (automatic timed refresh is a planned future feature, but it&#8217;s not available yet). For streaming you&#8217;d use the WebSocket API in code. But for a watchlist, a portfolio tracker, a valuation screener, or any dashboard you refresh a few times a day, snapshot-on-open is exactly what you want \u2014 and it keeps you well within free-tier limits.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The Symbol Format (One Rule to Learn)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Every symbol carries a market suffix (or, for crypto, a slash). Learn this table once and every formula just works:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Market<\/th><th>Format<\/th><th>Example<\/th><\/tr><\/thead><tbody><tr><td>US stock<\/td><td><code>TICKER.US<\/code><\/td><td><code>AAPL.US<\/code><\/td><\/tr><tr><td>Hong Kong stock<\/td><td><code>CODE.HK<\/code><\/td><td><code>00700.HK<\/code><\/td><\/tr><tr><td>A-share (Shanghai)<\/td><td><code>CODE.SH<\/code><\/td><td><code>600519.SH<\/code><\/td><\/tr><tr><td>A-share (Shenzhen)<\/td><td><code>CODE.SZ<\/code><\/td><td><code>000001.SZ<\/code><\/td><\/tr><tr><td>Japan stock<\/td><td><code>CODE.JP<\/code><\/td><td><code>7203.JP<\/code><\/td><\/tr><tr><td>India stock<\/td><td><code>SYMBOL.IN<\/code><\/td><td><code>RELIANCE.IN<\/code><\/td><\/tr><tr><td>Crypto<\/td><td><code>BASE\/QUOTE<\/code><\/td><td><code>BTC\/USDT<\/code><\/td><\/tr><tr><td>Forex<\/td><td><code>PAIR<\/code><\/td><td><code>USDCNY<\/code><\/td><\/tr><tr><td>Commodity \/ metal<\/td><td><code>SYMBOL<\/code><\/td><td><code>XAUUSD<\/code><\/td><\/tr><tr><td>Futures<\/td><td><code>SYMBOL<\/code><\/td><td><code>CL1!<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Financial-statement and earnings formulas support <strong>stocks only<\/strong> (<code>.US .HK .SH .SZ .JP .IN<\/code>).<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">The Formula Cheat Sheet<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s everything the add-on exposes, grouped by what you&#8217;d use it for.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Real-time quotes (snapshot)<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Formula<\/th><th>Returns<\/th><th>Example<\/th><\/tr><\/thead><tbody><tr><td><code>INFOWAY_PRICE<\/code><\/td><td>Latest trade price<\/td><td><code>=INFOWAY_PRICE(\"AAPL.US\")<\/code><\/td><\/tr><tr><td><code>INFOWAY_VOLUME<\/code><\/td><td>Latest trade volume<\/td><td><code>=INFOWAY_VOLUME(\"AAPL.US\")<\/code><\/td><\/tr><tr><td><code>INFOWAY_TURNOVER<\/code><\/td><td>Trade turnover (amount)<\/td><td><code>=INFOWAY_TURNOVER(\"AAPL.US\")<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Historical candles (OHLCV)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Signature: <code>FUNCTION(symbol, period, n)<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>period<\/code><\/strong> \u2014 one of <code>1m 5m 15m 30m 1H 2H 4H 1D 1W 1M 1Q 1Y<\/code>. <strong>Case matters:<\/strong> lowercase <code>m<\/code> = minutes, uppercase <code>M<\/code> = month.<\/li>\n\n\n\n<li><strong><code>n<\/code><\/strong> \u2014 bar index: <code>1<\/code> = most recent bar, <code>2<\/code> = one bar back, and so on (up to <code>500<\/code>).<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Formula<\/th><th>Returns<\/th><th>Example<\/th><\/tr><\/thead><tbody><tr><td><code>INFOWAY_CLOSE<\/code><\/td><td>Closing price<\/td><td><code>=INFOWAY_CLOSE(\"AAPL.US\",\"1D\",1)<\/code><\/td><\/tr><tr><td><code>INFOWAY_OPEN<\/code><\/td><td>Opening price<\/td><td><code>=INFOWAY_OPEN(\"AAPL.US\",\"1D\",1)<\/code><\/td><\/tr><tr><td><code>INFOWAY_HIGH<\/code><\/td><td>High price<\/td><td><code>=INFOWAY_HIGH(\"AAPL.US\",\"1D\",1)<\/code><\/td><\/tr><tr><td><code>INFOWAY_LOW<\/code><\/td><td>Low price<\/td><td><code>=INFOWAY_LOW(\"AAPL.US\",\"1D\",1)<\/code><\/td><\/tr><tr><td><code>INFOWAY_KVOLUME<\/code><\/td><td>Bar volume<\/td><td><code>=INFOWAY_KVOLUME(\"AAPL.US\",\"1D\",1)<\/code><\/td><\/tr><tr><td><code>INFOWAY_CHANGE<\/code><\/td><td>Change % (<code>0.41<\/code> = +0.41%)<\/td><td><code>=INFOWAY_CHANGE(\"AAPL.US\",\"1D\",1)<\/code><\/td><\/tr><tr><td><code>INFOWAY_CHANGE_AMT<\/code><\/td><td>Absolute price change<\/td><td><code>=INFOWAY_CHANGE_AMT(\"AAPL.US\",\"1D\",1)<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Want yesterday&#8217;s close instead of today&#8217;s live bar? Use <code>n = 2<\/code>:<\/em> <code>=INFOWAY_CLOSE(\"AAPL.US\",\"1D\",2)<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Financial statements \u2014 one formula, everything<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Signature: <code>INFOWAY_FIN(symbol, category, itemId, periodType, [periodDate])<\/code><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>category<\/code><\/strong> \u2014 <code>income<\/code> \u00b7 <code>cashflow<\/code> \u00b7 <code>balance<\/code> \u00b7 <code>stats<\/code> \u00b7 <code>dividend<\/code><\/li>\n\n\n\n<li><strong><code>periodType<\/code><\/strong> \u2014 <code>fq<\/code> (quarterly) \u00b7 <code>fy<\/code> (annual) \u00b7 <code>fh<\/code> (semi-annual, US only)<\/li>\n\n\n\n<li><strong><code>periodDate<\/code><\/strong> <em>(optional)<\/em> \u2014 filter to a report date, e.g. <code>\"2024-12-31\"<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A few of the most-used item IDs (aliases in parentheses are also accepted):<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Category<\/th><th>itemId<\/th><th>Meaning<\/th><\/tr><\/thead><tbody><tr><td><code>income<\/code><\/td><td><code>total_revenue<\/code><\/td><td>Total revenue<\/td><\/tr><tr><td><code>income<\/code><\/td><td><code>net_income<\/code><\/td><td>Net income<\/td><\/tr><tr><td><code>income<\/code><\/td><td><code>gross_profit<\/code><\/td><td>Gross profit<\/td><\/tr><tr><td><code>income<\/code><\/td><td><code>research_and_dev<\/code><\/td><td>R&amp;D expense<\/td><\/tr><tr><td><code>cashflow<\/code><\/td><td><code>cash_f_operating_activities<\/code> (<code>cf_oper<\/code>)<\/td><td>Operating cash flow<\/td><\/tr><tr><td><code>cashflow<\/code><\/td><td><code>free_cash_flow<\/code><\/td><td>Free cash flow<\/td><\/tr><tr><td><code>balance<\/code><\/td><td><code>total_assets<\/code><\/td><td>Total assets<\/td><\/tr><tr><td><code>balance<\/code><\/td><td><code>total_debt<\/code><\/td><td>Total debt<\/td><\/tr><tr><td><code>stats<\/code><\/td><td><code>price_earnings<\/code> (<code>pe_ratio<\/code>)<\/td><td>P\/E ratio<\/td><\/tr><tr><td><code>stats<\/code><\/td><td><code>price_book<\/code> (<code>pb_ratio<\/code>)<\/td><td>P\/B ratio<\/td><\/tr><tr><td><code>stats<\/code><\/td><td><code>return_on_equity<\/code> (<code>roe<\/code>)<\/td><td>ROE<\/td><\/tr><tr><td><code>stats<\/code><\/td><td><code>net_margin<\/code><\/td><td>Net margin<\/td><\/tr><tr><td><code>dividend<\/code><\/td><td><code>dividend_payout_ratio<\/code><\/td><td>Payout ratio<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>=INFOWAY_FIN(\"AAPL.US\",\"income\",\"total_revenue\",\"fq\")   \u2190 latest quarterly revenue\n=INFOWAY_FIN(\"AAPL.US\",\"stats\",\"pe_ratio\",\"fq\")          \u2190 P\/E ratio\n=INFOWAY_FIN(\"00700.HK\",\"stats\",\"roe\",\"fy\")              \u2190 Tencent annual ROE<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">INFOWAY_FIN<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">AAPL.US<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">income<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">total_revenue<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">fq<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">   \u2190 latest quarterly revenue<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">INFOWAY_FIN<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">AAPL.US<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">stats<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">pe_ratio<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">fq<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">          \u2190 P<\/span><span style=\"color: #81A1C1\">\/<\/span><span style=\"color: #D8DEE9FF\">E ratio<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #88C0D0\">INFOWAY_FIN<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">00700.HK<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">stats<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">roe<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">fy<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\">              \u2190 Tencent annual ROE<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Earnings \/ EPS<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Signature: <code>FUNCTION(symbol, periodType)<\/code> where <code>periodType<\/code> is <code>fq<\/code> or <code>fy<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Formula<\/th><th>Returns<\/th><th>Example<\/th><\/tr><\/thead><tbody><tr><td><code>INFOWAY_EPS<\/code><\/td><td>Actual EPS (most recent)<\/td><td><code>=INFOWAY_EPS(\"AAPL.US\",\"fq\")<\/code><\/td><\/tr><tr><td><code>INFOWAY_EPS_EST<\/code><\/td><td>Analyst consensus estimate<\/td><td><code>=INFOWAY_EPS_EST(\"AAPL.US\",\"fq\")<\/code><\/td><\/tr><tr><td><code>INFOWAY_EPS_BEAT<\/code><\/td><td>EPS beat % vs estimate (+ = beat)<\/td><td><code>=INFOWAY_EPS_BEAT(\"AAPL.US\",\"fq\")<\/code><\/td><\/tr><tr><td><code>INFOWAY_REV_BEAT<\/code><\/td><td>Revenue beat % vs estimate<\/td><td><code>=INFOWAY_REV_BEAT(\"AAPL.US\",\"fq\")<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Building a Real Dashboard in 5 Minutes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Formulas are more useful together. Here are three ready-to-copy layouts.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. A multi-market watchlist<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Put symbols in column A, then drag these formulas across:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>A (Symbol)<\/th><th>B (Price)<\/th><th>C (Day %)<\/th><th>D (Volume)<\/th><\/tr><\/thead><tbody><tr><td><code>AAPL.US<\/code><\/td><td><code>=INFOWAY_PRICE(A2)<\/code><\/td><td><code>=INFOWAY_CHANGE(A2,\"1D\",1)<\/code><\/td><td><code>=INFOWAY_VOLUME(A2)<\/code><\/td><\/tr><tr><td><code>00700.HK<\/code><\/td><td><code>=INFOWAY_PRICE(A3)<\/code><\/td><td><code>=INFOWAY_CHANGE(A3,\"1D\",1)<\/code><\/td><td><code>=INFOWAY_VOLUME(A3)<\/code><\/td><\/tr><tr><td><code>7203.JP<\/code><\/td><td><code>=INFOWAY_PRICE(A4)<\/code><\/td><td><code>=INFOWAY_CHANGE(A4,\"1D\",1)<\/code><\/td><td><code>=INFOWAY_VOLUME(A4)<\/code><\/td><\/tr><tr><td><code>BTC\/USDT<\/code><\/td><td><code>=INFOWAY_PRICE(A5)<\/code><\/td><td><code>=INFOWAY_CHANGE(A5,\"1D\",1)<\/code><\/td><td><code>=INFOWAY_VOLUME(A5)<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Because every formula references the symbol in column A, adding a new ticker is just typing it in a new row and dragging the formulas down. Add conditional formatting on column C (green &gt; 0, red &lt; 0) and you have a color-coded board across four markets that no single free tool gives you.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. A portfolio tracker<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Symbol<\/th><th>Shares<\/th><th>Price<\/th><th>Market Value<\/th><\/tr><\/thead><tbody><tr><td><code>AAPL.US<\/code><\/td><td><code>100<\/code><\/td><td><code>=INFOWAY_PRICE(A2)<\/code><\/td><td><code>=B2*C2<\/code><\/td><\/tr><tr><td><code>600519.SH<\/code><\/td><td><code>50<\/code><\/td><td><code>=INFOWAY_PRICE(A3)<\/code><\/td><td><code>=B3*C3<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Sum column D for a live-on-refresh portfolio total that spans US and A-shares in the same sheet \u2014 something <code>GOOGLEFINANCE<\/code> can&#8217;t do.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. A fundamentals screener<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Symbol<\/th><th>P\/E<\/th><th>ROE<\/th><th>Net Margin<\/th><th>Rev Beat %<\/th><\/tr><\/thead><tbody><tr><td><code>AAPL.US<\/code><\/td><td><code>=INFOWAY_FIN(A2,\"stats\",\"pe_ratio\",\"fq\")<\/code><\/td><td><code>=INFOWAY_FIN(A2,\"stats\",\"roe\",\"fq\")<\/code><\/td><td><code>=INFOWAY_FIN(A2,\"stats\",\"net_margin\",\"fq\")<\/code><\/td><td><code>=INFOWAY_REV_BEAT(A2,\"fq\")<\/code><\/td><\/tr><tr><td><code>MSFT.US<\/code><\/td><td><code>=INFOWAY_FIN(A3,\"stats\",\"pe_ratio\",\"fq\")<\/code><\/td><td><code>=INFOWAY_FIN(A3,\"stats\",\"roe\",\"fq\")<\/code><\/td><td><code>=INFOWAY_FIN(A3,\"stats\",\"net_margin\",\"fq\")<\/code><\/td><td><code>=INFOWAY_REV_BEAT(A3,\"fq\")<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Drop a filter on the header row and you can sort your universe by valuation or profitability without touching a database.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Path 2: A Stock Price API for Excel with Power Query (Also No Code)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The add-on is Google Sheets\u2013only, but Excel users aren&#8217;t left out. This is the closest thing to a real <strong>Excel API for stock prices<\/strong>: Power Query can pull the same REST endpoint into a refreshable table \u2014 no VBA, no macros, just the built-in <strong>Get Data<\/strong> tool. It&#8217;s also how you get an <strong>Excel API for financial statements<\/strong> (income statement, balance sheet, cash flow) that <code>GOOGLEFINANCE<\/code> and the retired Google Finance API never offered \u2014 point the same query at the financial-statement endpoints instead of <code>batch_trade<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1 \u2014 Open the Power Query editor<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Go to <strong>Data \u25b8 Get Data \u25b8 From Other Sources \u25b8 Blank Query<\/strong>, then open <strong>Advanced Editor<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2 \u2014 Paste a query for live prices<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Replace <code>YOUR_API_KEY<\/code> with your key and list the symbols you want (comma-separated):<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>let\n    Source = Json.Document(\n        Web.Contents(\n            \"https:\/\/data.infoway.io\/stock\/batch_trade\/AAPL.US,00700.HK,7203.JP\",\n            [Headers=&#91;apiKey=\"YOUR_API_KEY\"&#93;]\n        )\n    ),\n    data  = Source&#91;data&#93;,\n    table = Table.FromRecords(data)\nin\n    table<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">let<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    Source <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> Json<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Document<\/span><span style=\"color: #ECEFF4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        Web<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Contents<\/span><span style=\"color: #ECEFF4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">https:\/\/data.infoway.io\/stock\/batch_trade\/AAPL.US,00700.HK,7203.JP<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #D8DEE9FF\">Headers=<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">apiKey=<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #A3BE8C\">YOUR_API_KEY<\/span><span style=\"color: #ECEFF4\">&quot;<\/span><span style=\"color: #ECEFF4\">&#93;]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    data  <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> Source<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #D8DEE9FF\">data<\/span><span style=\"color: #ECEFF4\">&#93;,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    table <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> Table<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">FromRecords<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">data<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">in<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    table<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Click <strong>Close &amp; Load<\/strong> and Excel drops a table of live prices onto the sheet. The key fields in each row are <code>s<\/code> (symbol), <code>p<\/code> (last price), <code>v<\/code> (volume), and <code>t<\/code> (timestamp in Unix milliseconds).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3 \u2014 Refresh on demand or on a schedule<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Hit <strong>Data \u25b8 Refresh All<\/strong> to pull fresh prices, or set an automatic interval under <strong>Query \u25b8 Properties \u25b8 Refresh every N minutes<\/strong>. Unlike Google Sheets custom functions, Power Query <em>can<\/em> refresh on a timer \u2014 so if you specifically want Excel to re-pull every few minutes, this is the way to do it. Just keep the interval sensible so you stay inside your plan&#8217;s request limits.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">For historical bars in Excel, point the query at the candlestick endpoint instead. The batch-trade endpoint above is the direct, no-frills route to &#8220;live price in a cell,&#8221; which is what most Excel dashboards actually need.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">FAQ<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Is there really a free tier?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. A free Infoway account (no credit card) gives you an API key at the Free rate limit \u2014 plenty for a personal watchlist or portfolio that refreshes a handful of times a day. You can validate the whole workflow before deciding whether you need a paid plan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Why doesn&#8217;t my <code>INFOWAY_PRICE<\/code> cell update by itself?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Because Google Sheets custom functions recalculate only on argument change or sheet open\/edit \u2014 not on a timer. This is a Google platform behavior, not an add-on bug. Reopen the sheet, or edit and re-enter the cell, to force a fresh value. See the warning section above for the full explanation.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>How current is the &#8220;real-time&#8221; price?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The quote reflects the latest trade at the moment the formula last calculated, and the server caches it for about 60 seconds. So a freshly refreshed cell is at most ~1 minute behind the tape \u2014 fine for monitoring, not intended for high-frequency trading.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Which markets are covered?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">US, Hong Kong, mainland China (Shanghai + Shenzhen A-shares), Japan, India, crypto, forex, and commodities\/metals \u2014 all from the same key and the same formulas. Financial-statement and earnings formulas cover stocks only (<code>.US .HK .SH .SZ .JP .IN<\/code>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Can I get full financial statements, not just price?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yes \u2014 that&#8217;s the big advantage over <code>GOOGLEFINANCE<\/code>. <code>INFOWAY_FIN<\/code> returns income statement, cash flow, balance sheet, valuation ratios, and dividend metrics, and the <code>INFOWAY_EPS*<\/code> family returns actual vs. estimated EPS with beat\/miss percentages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Do I need to know how to code?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No. The Google Sheets path is pure formulas. The Excel path is Power Query with one query you copy-paste and edit two values in. Neither requires a programming language, a local environment, or a server.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Is there an official Google Finance API I can call?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No \u2014 Google retired its public Google Finance API in 2012, and the <code>GOOGLEFINANCE<\/code> function only works <em>inside<\/em> Google Sheets (you can&#8217;t call it from Excel, Python, or your own app). If you searched for a &#8220;google finance api stock price&#8221; or &#8220;google finance api for indian stock market,&#8221; the Infoway add-on (in Sheets) or the REST API (everywhere else) is the supported replacement, with far wider market and fundamental coverage.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Can I pull Yahoo Finance data into Excel instead?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yahoo Finance has no supported public API either, so &#8220;calling Yahoo Finance API to get stock prices from Excel&#8221; relies on unofficial scrapers that break often. The Power Query setup in Path 2 is a stable, documented Excel stock price API you can build a dashboard on without worrying about it silently failing.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Does this work for forex in Excel or Google Sheets?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Yes. Forex pairs use the plain-pair format (<code>USDCNY<\/code>, <code>EURUSD<\/code>) \u2014 <code>=INFOWAY_PRICE(\"EURUSD\")<\/code> in Sheets, or list the pair in the Power Query URL for Excel. It&#8217;s a drop-in for the &#8220;google sheets finance forex api&#8221; and &#8220;free forex api excel&#8221; use cases.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>What if I need genuine streaming \/ auto-refresh?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For continuously updating prices, use the WebSocket API from code (Python, JavaScript, etc.) \u2014 that&#8217;s the tool built for live streams. Automatic timed refresh inside the Sheets add-on is on the roadmap but not available today. In Excel, Power Query&#8217;s scheduled refresh is a reasonable middle ground.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Get Started<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Install the add-on: <strong><a href=\"https:\/\/workspace.google.com\/marketplace\/app\/infoway_api\/606319959160\" target=\"_blank\" rel=\"noopener\">https:\/\/workspace.google.com\/marketplace\/app\/infoway_api\/606319959160<\/a><\/strong><\/li>\n\n\n\n<li>Get a free API key: <strong><a href=\"https:\/\/infoway.io\/en\/create-account\" target=\"_blank\" rel=\"noopener\">https:\/\/infoway.io\/en\/create-account<\/a><\/strong><\/li>\n\n\n\n<li>Click the blue<strong> Infoway API<\/strong> icon on the sidebar to open the panel, save your key, and type <code>=INFOWAY_PRICE(\"AAPL.US\")<\/code>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Full formula reference and API docs: <strong><a href=\"https:\/\/docs.infoway.io\/en-docs\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.infoway.io\/en-docs<\/a><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Infoway API Google Sheets add-on is now live. Simply install it and start using formulas to retrieve real-time market data for US, Hong Kong, China, Japan, India, crypto, forex, and commodities\u2014directly in Google Sheets.<\/p>\n","protected":false},"author":1,"featured_media":253,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[8],"tags":[],"class_list":["post-245","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-how-to"],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.infoway.io\/en\/wp-json\/wp\/v2\/posts\/245","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.infoway.io\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.infoway.io\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.infoway.io\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.infoway.io\/en\/wp-json\/wp\/v2\/comments?post=245"}],"version-history":[{"count":12,"href":"https:\/\/blog.infoway.io\/en\/wp-json\/wp\/v2\/posts\/245\/revisions"}],"predecessor-version":[{"id":261,"href":"https:\/\/blog.infoway.io\/en\/wp-json\/wp\/v2\/posts\/245\/revisions\/261"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.infoway.io\/en\/wp-json\/wp\/v2\/media\/253"}],"wp:attachment":[{"href":"https:\/\/blog.infoway.io\/en\/wp-json\/wp\/v2\/media?parent=245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.infoway.io\/en\/wp-json\/wp\/v2\/categories?post=245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.infoway.io\/en\/wp-json\/wp\/v2\/tags?post=245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}