Excel Add-ins
Pull quotes, history, movers, fundamentals, indicators, options and macro data into your spreadsheets with =APEXTICK functions, in ApexTick Excel Lite or ApexTick Excel Native.
ApexTick for Excel adds =APEXTICK.* worksheet functions that return market data straight into cells. Both editions share the same function names, spill layouts and error codes, and use your normal API key and plan.
Choose your edition
| ApexTick Excel Lite | ApexTick Excel Native | |
|---|---|---|
| Platforms | Excel for Windows, Mac and Excel on the Web | Excel for Windows desktop |
| Plans | All plans, including Hobbyist | Quant & Community and Enterprise |
| Functions | All 17 functions, including APEXTICK.STREAM (Trader Pro+) | All 17 functions, including APEXTICK.STREAM |
| Live updates | Real-time streaming into cells with APEXTICK.STREAM (Trader Pro+), or on sheet recalculation | Real-time RTD streaming into cells with APEXTICK.STREAM |
| Quote batching | APEXTICK.QUOTE calls are batched in 50ms windows, up to 50 symbols per request | Same: 50ms windows, up to 50 symbols per request |
| Response caching | Cached in the add-in for 1 minute to 1 hour, depending on the function | Every recalculation fetches current data |
Quote batching means that when you fill APEXTICK.QUOTE down a column, the add-in collects the calls made within 50ms and fetches them together, so a 200-row watchlist can cost as few as 4 requests instead of 200.
Caching in ApexTick Excel Lite: history, movers and options chains are reused for 5 minutes; indicators and the options screener for 1 minute; and profiles, financials, earnings, dividends, splits, ETFs, search and economic data for 1 hour. Recalculating within those windows doesn't spend your quota.
Every request counts towards your daily quota and rate limit, and follows the same endpoint staircase as the REST API. For example, options functions need Quant & Community, and APEXTICK.ECO needs Enterprise. ApexTick Excel Native itself requires Quant & Community or Enterprise: on Hobbyist and Trader Pro, every Native function returns #UPGRADE_REQUIRED.
Setup
Both add-ins are downloaded from the Excel Add-ins card on the Data API page of your dashboard, dash.apextick.com/products/data-api. You'll also need your API key from the dashboard. Keys start with dk_.
ApexTick Excel Lite
Available on all plans, in Excel on the web, Excel for Mac and Excel for Windows. It needs a current version of Excel: Excel for Microsoft 365, Excel 2021 or later, or Excel on the web.
On the Data API page, click Download Manifest to save apextick-excel-lite-manifest.xml, then follow the steps for your platform. The manifest only tells Excel where to load ApexTick from, so the same file works on every platform and new versions of the add-in arrive without reinstalling.
Excel on the web
- Open a workbook at excel.office.com.
- Go to Home (or Insert) → Add-ins → More Add-ins. Newer versions label this More Settings.
- In the Office Add-ins dialog, select My Add-ins → Upload My Add-in.
- Click Browse, choose
apextick-excel-lite-manifest.xmland click Upload.
The ApexTick tab appears on the ribbon. Excel on the web keeps uploaded add-ins in your browser's storage, so upload the manifest again if you clear your browser data or switch to another browser or computer.
Excel for Mac
- Open Finder and press
Cmd+Shift+Gto open Go to Folder. - Go to
~/Library/Containers/com.microsoft.Excel/Data/Documents/wef. If theweffolder doesn't exist, go to~/Library/Containers/com.microsoft.Excel/Data/Documentsand create a folder namedwefthere. - Copy
apextick-excel-lite-manifest.xmlinto theweffolder. - Restart Excel (quit it with
Cmd+Q, then reopen it) and open a workbook. - Go to Insert (or Home) → Add-ins → My Add-ins and select ApexTick Excel Lite.
Excel for Windows
Excel for Windows loads the add-in from a source your organization trusts. Use the Microsoft 365 admin center to deploy it to a team, or a shared folder catalog for a single computer.
Microsoft 365 admin center (org-wide deployment; a Microsoft 365 admin does this once):
- Sign in to the Microsoft 365 admin center.
- Go to Settings → Integrated apps → Upload custom apps.
- Upload
apextick-excel-lite-manifest.xmlas the manifest file. - Choose who gets the add-in (just you, specific users or groups, or everyone) and deploy it.
Users get the ApexTick tab after restarting Excel. Microsoft notes that a new deployment can take 24 to 72 hours to reach every user. Admin-deployed add-ins also appear for those users in Excel on the web and Excel for Mac.
Shared folder catalog (no admin center needed):
- Put
apextick-excel-lite-manifest.xmlin a shared network folder, for example\\fileserver\excel-addins. - In Excel, go to File → Options → Trust Center → Trust Center Settings → Trusted Add-in Catalogs.
- In Catalog Url, enter the full network path of the folder and click Add catalog.
- Tick Show in Menu for the new catalog and click OK.
- Restart Excel, then go to Insert (or Home) → Add-ins → My Add-ins → Shared Folder, select ApexTick Excel Lite and click Add.
Connect Excel Lite to your API key
- Open the ApexTick tab on the Excel ribbon and click Show Taskpane.
- In the taskpane's Authentication card, paste your
dk_…API key and click Save API Key. - The card now shows Connected with the last four characters of your key. To change it later, click Update Key.
The taskpane also has:
- Quick Reference: example formulas, each with a badge (
PRO,QUANTorENTERPRISE) when it needs a higher plan than Hobbyist. - Seeing Errors in Cells?: what
#RATE_LIMITand#UPGRADE_REQUIREDmean, with an Upgrade Plan button. - Links to Read the Documentation (this page) and Manage API Keys (your dashboard).
Remove ApexTick Excel Lite
- Excel on the web: clear your browser's site data for Office, where uploaded add-ins are stored.
- Excel for Mac: quit Excel, delete
apextick-excel-lite-manifest.xmlfrom theweffolder and reopen Excel. If the ApexTick tab is still there, clear the Office add-in cache. - Excel for Windows, admin center: an admin opens Settings → Integrated apps, selects ApexTick Excel Lite and removes it, or removes individual users from it.
- Excel for Windows, shared folder: delete the manifest from the shared folder (or remove the catalog under Trusted Add-in Catalogs). On the same page, tick Next time Office starts, clear all previously-started web add-ins cache, click OK and restart Excel.
ApexTick Excel Native
Available on Quant & Community and Enterprise, for Excel 2016 or later on Windows desktop (Microsoft 365 recommended). On other plans, the download button on the Data API page is disabled and links to an upgrade.
Install Excel Native
- On the Data API page, click Download Windows Add-in (64-bit) to save
ApexTick-Excel-Native-x64.zip. - Close Excel completely. The installer stops if Excel is still running.
- Tip: before extracting, right-click the downloaded
.zipfile → Properties → check Unblock → OK, so Windows doesn't show a SmartScreen prompt when you runInstall-ApexTick.cmd. - Right-click the zip file and choose Extract All….
- In the extracted folder, double-click
Install-ApexTick.cmd.
The installer copies the add-in into %APPDATA%\Microsoft\AddIns\ApexTick\ and registers it in Excel for your Windows user account, with no Administrator privileges required. It detects whether your Office is 64-bit or 32-bit and installs the matching edition, so the same download works for both. When it reports ApexTick Excel Native was installed successfully, press any key to close the window.
ApexTick Excel Native runs on the Microsoft .NET Desktop Runtime 8. If the installer says it wasn't found, install it from dotnet.microsoft.com (x64 for 64-bit Office, x86 for 32-bit Office) and restart Excel. For scripted rollouts, Install-ApexTick.cmd /quiet skips the closing prompt.
Connect Excel Native to your API key
- Open Excel and select the ApexTick tab on the ribbon.
- In the Authentication group, click API Settings.
- In the ApexTick Excel Native – API Settings dialog, paste your
dk_…API key and click Save. You'll see Settings saved successfully.
The key is saved to your Windows user profile and is used for new requests and stream connections right away, without restarting Excel. The Documentation button in the Resources group opens this page.
Update or uninstall Excel Native
- Update: close Excel, download and extract the new release, and run its
Install-ApexTick.cmd. It replaces the installed version in place, and your saved API key is kept. - Uninstall: close Excel and double-click
Uninstall-ApexTick.cmdin the extracted folder. It removes the add-in files and Excel's registration of the add-in, and the ApexTick tab no longer appears when you reopen Excel. Your saved API key stays in your Windows profile, so reinstalling later reconnects automatically.
Your first formula
=APEXTICK.QUOTE("AAPL")
Functions that return tables, such as history, movers or holdings, spill into the cells below and to the right, with a header row first. Leave room for the results, or Excel shows #SPILL!.
Function reference
Arguments in square brackets are optional. Text arguments go in double quotes, dates use YYYY-MM-DD, and text arguments such as fields and indicators are not case-sensitive.
| # | Function | Returns | Plan |
|---|---|---|---|
| 1 | APEXTICK.QUOTE(symbol, [field]) | One quote field, price by default | All plans |
| 2 | APEXTICK.HISTORY(symbol, resolution, [from], [to]) | Candles (spills) | All plans, depth by plan |
| 3 | APEXTICK.MOVERS([asset_class], [trend]) | Market movers (spills) | All plans |
| 4 | APEXTICK.SEARCH(query, [asset_class]) | Matching tickers (spills) | All plans; asset_class filter Trader Pro+ |
| 5 | APEXTICK.INDICATOR(symbol, indicator) | One indicator value | Trader Pro+ |
| 6 | APEXTICK.PROFILE(symbol, [field]) | One company profile field | Trader Pro+ |
| 7 | APEXTICK.FINANCIALS(symbol) | Key financials (spills) | Trader Pro+ |
| 8 | APEXTICK.EARNINGS(symbol) | Earnings (spills) | Trader Pro+ |
| 9 | APEXTICK.DIVIDENDS(symbol) | Dividends (spills) | Trader Pro+ |
| 10 | APEXTICK.SPLITS(symbol) | Splits (spills) | Trader Pro+ |
| 11 | APEXTICK.ETF.PROFILE(symbol, [field]) | One ETF field, aum by default | Trader Pro+ |
| 12 | APEXTICK.ETF.HOLDINGS(symbol) | Holdings (spills) | Trader Pro+ |
| 13 | APEXTICK.STREAM(symbol, [field]) | Real-time streamed value | Trader Pro+ (Lite) / Quant & Community+ (Native) |
| 14 | APEXTICK.OPTIONS.CHAIN(symbol) | Options chain (spills) | Quant & Community+ |
| 15 | APEXTICK.OPTIONS.SCREENER([symbol], [type], [min_volume], [min_oi]) | Screener results (spills) | Quant & Community+ |
| 16 | APEXTICK.ECO(series_id, [date]) and APEXTICK.ECO.CATALOG([query]) | Economic series and catalog (spill) | Enterprise |
Quotes
APEXTICK.QUOTE(symbol, [field]) returns one field of the current quote, and the price when field is left out. Fields: price, change, change_percent, open, high, low, previous_close, volume, timestamp and symbol.
=APEXTICK.QUOTE("NVDA")
=APEXTICK.QUOTE("AAPL", "change_percent")
=APEXTICK.QUOTE("BTC-USD", "volume")
Quote freshness follows your plan: up to 15 seconds on Hobbyist, 5 seconds on Trader Pro and 1 second on Quant & Community and Enterprise.
History
APEXTICK.HISTORY(symbol, resolution, [from], [to]) spills candles as:
Time · Open · High · Low · Close · Volume
resolution is required: 1m, 5m, 15m, 30m, 1h, 1d, 1wk or 1mo. As with the REST API, ranges older than your plan's depth are shortened rather than rejected.
=APEXTICK.HISTORY("NVDA", "1d")
=APEXTICK.HISTORY("AAPL", "1d", "2026-01-01", "2026-10-15")
=APEXTICK.HISTORY("BTC-USD", "1h")
Market movers
APEXTICK.MOVERS([asset_class], [trend]) spills today's movers as:
Symbol · Name · Price · Change · Change % · Volume
asset_class is "eq" (default), "etf" or "fx". trend is "up" (gainers, default), "down" (losers) or "volume" (most active).
=APEXTICK.MOVERS()
=APEXTICK.MOVERS("etf", "volume")
Search
APEXTICK.SEARCH(query, [asset_class]) finds instruments by symbol or name and spills:
Symbol · Name · Exchange · Asset Class
asset_class filters the results, e.g. "equity" or "etf". Filtering needs Trader Pro or higher; on Hobbyist it returns #UPGRADE_REQUIRED.
=APEXTICK.SEARCH("Apple")
=APEXTICK.SEARCH("semiconductor", "equity")
Technical indicators
APEXTICK.INDICATOR(symbol, indicator) returns one indicator value: sma20, sma50, sma200, rsi14, macd14, atr14, stoch_k14, volatility30, macd, macd_signal, macd_hist (MACD 12/26/9 on daily closes), avg_volume20 (20-session average volume) or rvol20.
rvol20 is relative volume: the current session's volume divided by avg_volume20, the same measure used by volume alerts. 2 means twice the normal volume.
=APEXTICK.INDICATOR("NVDA", "rvol20")
=APEXTICK.INDICATOR("AAPL", "rsi14")
=APEXTICK.INDICATOR("SPY", "sma50") > APEXTICK.INDICATOR("SPY", "sma200")
Fundamentals and corporate actions
APEXTICK.PROFILE(symbol, [field]) returns one company profile field: company_name, exchange, industry, sector, description, ceo, website, hq_address, pe_ratio, eps_growth_pct, eps_annual or earnings_recent. Spaces in the field name are read as underscores.
In ApexTick Excel Lite, field is required. In ApexTick Excel Native it is optional and defaults to company_name.
APEXTICK.FINANCIALS(symbol) spills two rows, a header row and a values row:
Market Cap · Shares Outstanding · EPS TTM · P/E Ratio · Price to Book · ROE · Dividend Yield
APEXTICK.EARNINGS(symbol) spills Period · Estimate · Actual. Cells stay empty where a value isn't available yet, such as Actual for upcoming quarters.
APEXTICK.DIVIDENDS(symbol) spills Ex-Dividend Date · Cash Amount.
APEXTICK.SPLITS(symbol) spills Execution Date · Split From · Split To.
=APEXTICK.PROFILE("AAPL", "pe_ratio")
=APEXTICK.FINANCIALS("AAPL")
=APEXTICK.EARNINGS("NVDA")
=APEXTICK.DIVIDENDS("KO")
=APEXTICK.SPLITS("NVDA")
ETFs
APEXTICK.ETF.PROFILE(symbol, [field]) returns one ETF field: aum (the default; net_assets works as an alias), name, asset_class or symbol.
APEXTICK.ETF.HOLDINGS(symbol) spills the constituents as Symbol · Name · Weight.
=APEXTICK.ETF.PROFILE("SPY")
=APEXTICK.ETF.PROFILE("QQQ", "name")
=APEXTICK.ETF.HOLDINGS("QQQ")
Live streaming
APEXTICK.STREAM(symbol, [field]) streams a value into the cell in real time in both ApexTick Excel Lite (Trader Pro+) and ApexTick Excel Native (Quant & Community+). Fields: price (default), volume and timestamp.
- The cell shows
#GETTING_DATA...until the first update arrives, then updates on every trade. - If the connection drops, the add-in reconnects and resubscribes automatically.
- Streamed symbols count towards your plan's concurrent WebSocket symbol limit: 10 on Trader Pro, 50 on Quant & Community and 200 on Enterprise. The limit is shared across every open stream connection on your account, including your Excel workbooks and your own WebSocket clients. Symbols beyond the limit show
#SYMBOL_LIMIT(Lite) or are refused.
=APEXTICK.STREAM("BTC-USD")
=APEXTICK.STREAM("NVDA", "volume")
Options
APEXTICK.OPTIONS.CHAIN(symbol) spills the full chain for an underlying:
OCC Symbol · Type · Strike · Bid · Ask · Volume · Open Interest · Implied Volatility · Delta · Gamma · Theta · Vega
APEXTICK.OPTIONS.SCREENER([symbol], [type], [min_volume], [min_oi]) screens the most active contracts across the market and spills:
Underlying · OCC Symbol · Type · Strike · Expiration · Bid · Ask · Last · Volume · Open Interest · Vol/OI · Implied Volatility · Delta · Gamma · Theta · Vega
| Argument | Values |
|---|---|
symbol | Optional underlying, e.g. "AAPL". Leave it empty to screen the whole market. With a symbol, the add-in screens the 500 most active contracts and keeps that underlying's, so a quiet underlying can return #NO_DATA. |
type | "all" (default, also "both"), "call" (also "calls", "c") or "put" (also "puts", "p"). |
min_volume | Optional minimum contract volume (a number). |
min_oi | Optional minimum open interest (a number). |
=APEXTICK.OPTIONS.CHAIN("NVDA")
=APEXTICK.OPTIONS.SCREENER()
=APEXTICK.OPTIONS.SCREENER("NVDA", "call", 1000, 500)
Macroeconomic data
APEXTICK.ECO.CATALOG([query]) spills the series catalog:
Series ID · Name · Commodity · Metric · Region · Frequency · Unit
query keeps series whose ID, name, commodity, metric or region contains the text, ignoring case, e.g. "corn" or "US".
APEXTICK.ECO(series_id, [date]) spills a series as Date · Value. Without date you get the full series; with a date you get the observation for that day.
=APEXTICK.ECO.CATALOG("corn")
=APEXTICK.ECO("ECO.USDA.CORN.PROD.US.A")
=APEXTICK.ECO("ECO.USDA.CORN.PROD.US.A", "2025-01-01")
Error codes
When a function can't return data, the cell shows one of these codes. Spilling functions return the code in a single cell.
| Code | Meaning | What to do |
|---|---|---|
#N/A | A required argument is empty, such as the symbol, or resolution in APEXTICK.HISTORY. | Fill in the required arguments. |
#VALUE! | min_volume or min_oi in APEXTICK.OPTIONS.SCREENER is not a number. | Pass numbers, or leave them empty. |
#MISSING_KEY | No API key has been saved in the add-in. | Add your key in the taskpane (Lite) or API Settings (Native). |
#INVALID_KEY | The saved API key is invalid. | Copy your current key from the dashboard and save it again. |
#UPGRADE_REQUIRED | Your plan doesn't include this data, filter or edition, e.g. options on Trader Pro, or ApexTick Excel Native below Quant & Community. | Upgrade your plan, or use a function your plan includes. |
#RATE_LIMIT | You exceeded your per-minute rate limit or the Hobbyist daily cap. | Recalculate later, or refresh fewer cells at once. |
#NOT_FOUND | The symbol, series or record doesn't exist. | Check the symbol with APEXTICK.SEARCH. |
#INVALID_FIELD | The field isn't recognized in QUOTE, PROFILE, ETF.PROFILE or STREAM. | Use one of the fields listed for that function. |
#INVALID_INDICATOR | The indicator in APEXTICK.INDICATOR isn't recognized. | Use one of the listed indicators. |
#INVALID_TYPE | The type in APEXTICK.OPTIONS.SCREENER isn't call, put or all. | Use one of the accepted values. |
#NO_DATA | The request worked but returned nothing, e.g. a symbol without dividends. | Check the symbol's coverage or your filters. |
#PAYMENT_REQUIRED | Reserved for billing problems; the API doesn't currently return it. | Check your billing in the dashboard. |
#API_ERROR | The API rejected the request or had a temporary problem, e.g. an invalid argument value or a server error. | Check the arguments, then recalculate. |
#ERROR | An unexpected error, such as a network failure. | Recalculate; if it persists, contact support. |
APEXTICK.STREAM can also show:
| Code | Meaning |
|---|---|
#GETTING_DATA... | Waiting for the first streamed update; this is not an error. |
#SYMBOL_LIMIT | Your plan's concurrent WebSocket symbol cap (10 on Trader Pro, 50 on Quant & Community, 200 on Enterprise) is full. |
#WS_ERROR | The streaming connection failed; the add-in reconnects automatically. |
Prefer one spilling function over many single-cell calls: one APEXTICK.HISTORY call is one request. Fill APEXTICK.QUOTE down a column rather than calling other functions per row, so batching can group the requests. For live dashboards, APEXTICK.STREAM pushes updates into cells without spending a REST request per refresh.