What you need
- Multimeter for macOS 13 or later, $19.99 once.
- The ticker as Yahoo Finance writes it:
AAPL,^GSPCfor the S&P 500,VOO,EURUSD=X.
Set it up
- Check it in Terminal:Terminal
curl -s -A 'Mozilla/5.0' https://query1.finance.yahoo.com/v8/finance/chart/AAPL | grep -o '"regularMarketPrice":[0-9.]*' - Add a Web Address meter with your ticker in the address and the key path
chart.result.0.meta.regularMarketPrice. Write^as%5E(the S&P 500 is%5EGSPC).Web addresshttps://query1.finance.yahoo.com/v8/finance/chart/AAPL - Refresh every 5 minutes. Prices move only while the market is open.
Multimeter settings
In Customize This Meter… (from the meter’s menu):
| Setting | Value |
|---|---|
| Source | Web Address |
| Web address | https://query1.finance.yahoo.com/v8/finance/chart/TICKER |
| Key path | chart.result.0.meta.regularMarketPrice |
| Refresh every | 5 minutes |
| Label | the ticker |
| Face | Split-Flap, LCD Readout or Sparkline |
Tested: Run on October 29, 2026: AAPL 349.21, the S&P 500 (%5EGSPC) 7,722.4, EUR/USD 1.1167. The percent-change command printed {"value": 1.7, "formatted": "AAPL 349.78"}.
More on this source, including every format it reads, in the Web Address guide.
Limits
- This is Yahoo Finance’s public chart data, not a paid market data feed: prices can be delayed and Yahoo may answer 429 if an address asks too often. Every 5 minutes has been fine.
- Outside trading hours the meter shows the last close.
Variations
Today’s change in percent, with the price as the text
A Script meter computes the change from the previous close and shows the price beside it. Range -5 to 5, unit %.
curl -s -m 8 -A 'Mozilla/5.0' https://query1.finance.yahoo.com/v8/finance/chart/AAPL | jq '.chart.result[0].meta | {value: ((.regularMarketPrice / .chartPreviousClose - 1) * 1000 | round / 10), formatted: ("AAPL " + (.regularMarketPrice | tostring))}'Indexes, funds, currencies
%5EGSPC (S&P 500), %5EIXIC (Nasdaq), %5EDJI (Dow), VOO, EURUSD=X, GC=F (gold futures).
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| No number found in the response | The key path doesn’t match the reply. | Run curl -s with the address and read the JSON. Dots walk into objects, numbers pick array items (items.0.count). |
| Couldn’t reach the address | No network, a typo in the host, or the service is down. | Open the address in your browser. Multimeter tries again at the next refresh. |
| The server answered 429 | Yahoo is limiting requests from your address. | Refresh every 15 minutes, and fewer meters on the same address. |
| No number found for an index | The ^ wasn’t encoded. | Write it as %5E. |
Questions
Can it notify me when the price crosses a level?
Yes. In Customize This Meter, set alerts to High values (or Low values for a drop) with your level as critical, and turn on Notify me when it goes critical. Notifications repeat at most every 15 minutes.
Is the data real time?
Close to it for most US stocks, but treat it as a glance, not a trading feed.
Does this work in the Mac App Store version?
Script meters need the direct download version from multimeterapp.com, because the App Store sandbox doesn’t let apps run your commands. Web Address, File and Sent Value meters work in every version.