What you need
- Multimeter for macOS 13 or later, $19.99 once.
- The market’s slug (Polymarket: the last part of the market’s address) or ticker (Kalshi: shown on the market page).
Set it up
- Polymarket: add a Web Address meter with the slug in the address and the key path
0.outcomePrices. The reply holds the prices as text, like["0.925", "0.075"]; Multimeter reads the first, the price of Yes.Web addresshttps://gamma-api.polymarket.com/markets?slug=MARKET-SLUG - Kalshi: use the market address with the key path
market.last_price_dollars.Web addresshttps://api.elections.kalshi.com/trade-api/v2/markets/TICKER - Set the range to 0 to 1 so a Ring or Pie fills to the odds, and refresh every 5 minutes.
Multimeter settings
In Customize This Meter… (from the meter’s menu):
| Setting | Value |
|---|---|
| Source | Web Address |
| Web address | one of the two above |
| Key path | 0.outcomePrices (Polymarket) or market.last_price_dollars (Kalshi) |
| Refresh every | 5 minutes |
| Range | 0 to 1 |
| Label | a short name for the question |
| Face | Pie, Ring or Sparkline |
Tested: Run on October 29, 2026: a Polymarket House control market returned 0.925; Kalshi’s KXWARMING-50 returned 0.70.
More on this source, including every format it reads, in the Web Address guide.
Limits
- The value is a price from 0 to 1: 0.62 means the market puts Yes at about 62%.
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. |
| No number found for Polymarket | The slug is an event with several markets, not a single market. | Open the specific outcome on polymarket.com and use the slug from that page. |
Questions
Why does a Kalshi market show 0?
It has had no trades yet. Use market.yes_bid_dollars for the current bid instead.