API Reference
HOODLEFINANCE is a Google Apps Script custom function for Google Sheets. It is built for practical current-data use cases where GOOGLEFINANCE is too limited, especially for non-U.S. listings, Yahoo-style symbols, direct ISIN input, and output-currency conversion.
For sampled live coverage by exchange, see the Support Matrix.
Functions
=HOODLEFINANCE(identifier, [attribute])
=HOODLEFINANCE_VERSION()
Implemented today:
identifier: requiredattribute: optional, defaults to"price"
The function still accepts the broader GOOGLEFINANCE-style call shape for compatibility:
=HOODLEFINANCE(identifier, [attribute], [startDate], [endDateOrNumDays], [interval])
But the historical-style arguments are not implemented. If any of those extra arguments are supplied, the function throws an error.
HOODLEFINANCE_VERSION() returns the version string embedded in the script.
Supported Attributes
Attribute matching is case-insensitive.
GOOGLEFINANCE-like quote attributes:
pricenamecurrencytradetimedatadelayvolumehighlowclosechangechangepct
Additional HOODLEFINANCE-only attributes:
symbol[:google|:yahoo]exchange[:google|:yahoo]isinprice@<currency>
Behavior notes:
priceis the default attribute.closereturns the previous close price.pricesupports an output currency such asprice@USD,price@EUR,price@GBP, orprice@USDT.close,high,low,change,changepct,currency,name,volume,tradetime,datadelay,symbol,exchange, andisindo not support an output currency.- Output-currency requests are rejected for currency-pair identifiers such as
EURUSDorCURRENCY:BTC.USDT. changepctreturns a fraction such as0.0123for1.23%. Format the cell as Percent in Sheets.tradetimereturns a Sheets date-time value when the upstream source provides one.datadelayis source-dependent and should be treated as advisory, not a guarantee of freshness.GBpquotes are normalized toGBP, andILAquotes are normalized toILS. Money values are divided by100when that normalization applies.symboldefaults to Google-style output such asLON:SJPAorCURRENCY:EURUSD.exchangedefaults to Google-style output such asLON,NASDAQ,PSE, orCURRENCY.- If an upstream source does not provide a requested field, the formula returns an error for that lookup.
Examples:
=HOODLEFINANCE("NASDAQ:GOOG")
=HOODLEFINANCE("NYSE:IBM", "name")
=HOODLEFINANCE("CURRENCY:EURUSD", "price")
=HOODLEFINANCE("IE00B4L5YX21", "symbol")
=HOODLEFINANCE("SJPA.L", "price@USD")
=HOODLEFINANCE("GOOG", "isin")
=HOODLEFINANCE("PSE:BDO@PSE", "isin")
Supported Identifier Forms
identifier accepts:
- a stock symbol without an exchange, such as
GOOG - a stock symbol with an exchange, such as
NASDAQ:GOOGorLON:SJPA - a Yahoo-style symbol, such as
SJPA.LorZPRX.DE - a direct ISIN, such as
IE00B4L5YX21orPHY077751022 - a currency pair, such as
EURUSDorCURRENCY:BTC.USDT
Examples:
=HOODLEFINANCE("GOOG", "price")
=HOODLEFINANCE("LON:SJPA", "price")
=HOODLEFINANCE("SJPA.L", "price")
=HOODLEFINANCE("IE00B4L5YX21", "name")
=HOODLEFINANCE("EURUSD", "price")
PSE Tickers
PSE: tickers use a dedicated PSE EDGE route rather than Yahoo:
=HOODLEFINANCE("PSE:AAA", "price")
=HOODLEFINANCE("PSE:BDO", "name")
=HOODLEFINANCE("PSE:BDO", "isin")
Direct ISIN Input
If the identifier itself is an ISIN, HOODLEFINANCE resolves it automatically before retrieving the requested attribute:
=HOODLEFINANCE("ISIN:IE00B4L5YX21", "price")
=HOODLEFINANCE("IE00B4L5YX21", "name")
=HOODLEFINANCE("PHY077751022", "name")
Debug Source Suffixes
For troubleshooting and coverage checks, identifiers also support:
IDENTIFIER@SOURCE: force a specific source and disable fallbackIDENTIFIER@?: return the planned quote routeIDENTIFIER@orIDENTIFIER@anything-unknown: return the supported source list
Examples:
=HOODLEFINANCE("BTCUSD@YAHOO", "price")
=HOODLEFINANCE("EURUSD@GOOGLE", "price")
=HOODLEFINANCE("BTCUSD@?")
=HOODLEFINANCE("GOOG@?")
Currency Conversion
HOODLEFINANCE supports spot currency conversion through the same function.
For security quotes, price can request an output currency directly:
=HOODLEFINANCE("SJPA.L", "price@USD")
=HOODLEFINANCE("ZPRX.DE", "price@USD")
=HOODLEFINANCE("NASDAQ:GOOG", "price@EUR")
Accepted FX input forms include:
- bare pairs such as
EURUSDorUSDPHP - prefixed pairs such as
CURRENCY:EURUSDorCURRENCY:ETHUSD - same-currency pairs such as
USDUSD
Examples:
=HOODLEFINANCE("EURUSD", "price")
=HOODLEFINANCE("EURUSD", "name")
=HOODLEFINANCE("EURUSD", "changepct")
=HOODLEFINANCE("USDUSD", "price")
=HOODLEFINANCE("USDGBp", "currency")
How isin Works
isin is the generic ISIN attribute. It tries to infer the exchange from the input identifier, Yahoo suffix, or quote metadata, then dispatches to an exchange-specific resolver.
If the exchange cannot be inferred, or if no default ISIN source is configured for that exchange, the function throws a clear error and tells you to use an explicit source attribute.
Examples:
=HOODLEFINANCE("ZPRX.DE", "isin")
=HOODLEFINANCE("LON:SJPA", "isin")
=HOODLEFINANCE("GOOG", "isin")
=HOODLEFINANCE("PSE:BDO", "isin")
Specific ISIN Sources
In normal use, isin should be enough. For debugging, coverage checks, and cases where you want to force a particular lookup path, use an identifier-side @SOURCE override.
Available source labels include:
@TRADINGVIEW@LON@PSE@ARIVA@IBKR
Examples:
=HOODLEFINANCE("ZPRX.DE@TRADINGVIEW", "isin")
=HOODLEFINANCE("LON:SJPA@LON", "isin")
=HOODLEFINANCE("PSE:BDO@PSE", "isin")
=HOODLEFINANCE("ZPRV.DE@ARIVA", "isin")
=HOODLEFINANCE("ISJP.L@IBKR", "isin")
Debug Route Introspection
HOODLEFINANCE_ROUTES() is mainly a debugging and troubleshooting aid rather than part of normal sheet usage.
=HOODLEFINANCE_ROUTES([identifier])
HOODLEFINANCE_ROUTES() returns a spilled routing table with the current quote classifications and planned routes.
HOODLEFINANCE_ROUTES(identifier) returns the planned quote route for one identifier, using the same static route introspection as IDENTIFIER@?.
Array Usage
HOODLEFINANCE accepts ticker ranges directly and spills a result grid with the same shape.
Examples:
={"Price"; HOODLEFINANCE(A3:A, "price")}
={"Currency"; HOODLEFINANCE(A3:A, "currency")}
={"Name"; HOODLEFINANCE(A3:A, "name")}
={"ISIN"; HOODLEFINANCE(A3:A, "isin")}
Range behavior:
- blank ticker cells stay blank in the spilled output
- if any populated lookup fails, Sheets surfaces a single error for the whole spill range
Limitations
- Current-data attributes only. Historical series are not implemented.
marketcapis currently unsupported.- Quote freshness depends on upstream sources and may be delayed by an unspecified amount of time.
isinonly works for exchanges with an implemented resolver. Quote support is broader than ISIN support.isinis not available for currency pairs.- Some routes depend on public websites or unofficial endpoints and may break if those sites change.
- Some attributes may be unavailable for a specific listing even when the exchange is generally supported.