Agent402 / tools / kalshi-weather-index

Kalshi city temperature index

$0.002 per call · USDC via x402 · POST /api/kalshi-weather-index

Kalshi's own minute-resolution city temperature index (Fahrenheit), the series its hourly temperature markets settle on, computed from weighted member stations. Ask for a trailing window (lastSec, default one hour, max 7 days) or a from/to window; detailed adds every station's reading per minute; includeCalibrations adds the published station-weight and offset timeline. Cities: miami, dfw, houston, phl-delaware-valley, puget-sound, sf-bay, greater-boston, southeast-michigan, kansas-city, minneapolis-st-paul, nyc, chicago, la-coastal. Free keyless Kalshi live_data.

TRY IN PLAYGROUND →

Input

FieldTypeDescription
city *stringKalshi index city id, e.g. miami, nyc, chicago, sf-bay.
lastSecnumberTrailing window in seconds (default 3600, max 604800). Ignored when from/to are given.
fromnumberWindow start, unix milliseconds (pair with to).
tonumberWindow end, unix milliseconds (pair with from).
detailedbooleanInclude every member station's reading and QC code on each point.
includeCalibrationsbooleanAlso return the city's published calibration timeline (station weights and offsets).
limitnumberNewest points to return (default 1440, max 10000).

Example output

{
  "city": "miami",
  "units": "fahrenheit",
  "configVersion": "miami-temperature-v1.0-cal-20260914",
  "count": 5,
  "totalInWindow": 60,
  "latest": {
    "time": "2026-09-18T16:22:00.000Z",
    "valueF": 84.2,
    "contributors": 5,
    "status": "normal"
  },
  "minF": 84.2,
  "maxF": 85.28,
  "points": [
    {
      "time": "2026-09-18T16:18:00.000Z",
      "valueF": 85.28,
      "contributors": 5,
      "status": "normal"
    }
  ],
  "source": "kalshi"
}

Try it - see the 402 challenge (free)

curl -i -X POST https://agent402.tools/api/kalshi-weather-index \
  -H "Content-Type: application/json" \
  -d '{"city":"miami","lastSec":3600,"limit":5}'

The response is HTTP 402 Payment Required with exact payment requirements. Any x402 v2 client pays automatically and retries:

Paid call (JavaScript agent)

import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
import { metaTitle, metaDescription } from "./seo-meta.js";

const client = new x402Client();
client.setSpendControls?.(false); // @x402/core 2.23+ refuses anything over $1 or off the pegged-asset list by default; keep your own ceiling in code instead
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);

const res = await payFetch("https://agent402.tools/api/kalshi-weather-index", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    "city": "miami",
    "lastSec": 3600,
    "limit": 5
  }),
});
Wallet-only. This tool reaches the network/browser/storage, so it is paid in USDC via x402 (no proof-of-work tier).

Related tools

Crypto order book

$0.001 · GET /api/crypto-orderbook

L2 order-book snapshot for a spot pair: best bid/ask, mid price, spread (absolute + %), and the top N aggregated price l…

try in playground →

Stablecoin peg monitor

$0.003 · GET /api/stablecoin-peg

Live $1-peg deviation for the top USD stablecoins (USDT, USDC, USDS, DAI, USDe, PYUSD, USDD, TUSD, FDUSD by default, or …

try in playground →

Wallet balance (native + ERC-20)

$0.002 · POST /api/wallet-balance

Look up the native coin balance (ETH/MATIC) plus every ERC-20 holding for a wallet address on Ethereum, Base, Polygon, A…

try in playground →