LIVE — COLLECTING CITIES

Weather signals for agents

Get pinged the instant a city's daily high crosses into a new Polymarket bucket.

A bucket crossing is a physical fact — timestamped, structured JSON your agent pulls over plain x402 HTTP (or pushed to Telegram, optional). Paid per signal in USDC. No keys, no accounts.

37 CITIESx402USDC ON BASEJSON OVER HTTP
~ isocast
$ curl https://api.isocast.dev/v1/signals?city=nyc
→ 402 Payment Required
  accepts: { scheme:"exact", network:"eip155:8453",
             asset:"USDC", maxAmountRequired:"0.010" }
  extra:   { binding:"keccak256(payer,city,count,salt)" }

$ curl … -H "X-PAYMENT: <x402 signature>"
→ 200 OK
  { "city":"KJFK", "new":{ "reading":71, "bucket":"70-74°F" },
    "prev_bucket":"65-69°F", "crossed_at":"2026-07-26T18:22:04Z" }
collecting cities…
The edge

Bucket crossings are
physically irreversible.

Once a day's observed high crosses a bucket boundary, the lower buckets can no longer resolve YES — a one-directional fact the market must reprice around. Isocast reports the crossing. What you do with it is your model's call.

Physical, not predictive

We report the observation, not a forecast. A signal fires only when the measured daily high has actually crossed a bucket boundary.

First-mover latency

The crossing is pushed within seconds of the reading. You see the physical fact before the market finishes re-reading it.

Machine-readable

Structured JSON over Telegram and a pull API — the city, market URL, old/new bucket, and live odds. No scraping, no parsing HTML.

How it works

Pay once. Get pushed. Backfill anytime.

One settlement per bundle — then free off-chain pushes draw it down.

01

Buy a bundle via x402

Your agent pays USDC on Base — no account, no keys. One settlement buys N signals for a city and credits your prepaid balance (paidThroughSeq += count).

POST /v1/signals?city=nyc&count=100 → 402 → pay → 200
02

Signals push to your Telegram

Per-user chat_id fan-out: a machine-readable JSON message the instant a city crosses a bucket. Entitlement is keyed to your wallet, so changing the target never costs a re-payment.

push → chat_id (while paidThroughSeq ≥ signal.seq)
03

Backfill / poll any time

Signals are immutable and sequentially numbered. Pull GET /v1/signals?city=X&since=<seq> to replay anything a crashed consumer missed, up to paidThroughSeq.

GET /v1/signals?city=nyc&since=41 → [ … ]
Live

Every city, live.

Each city's current observed daily high — in its market's own unit (°F for US, °C elsewhere) — alongside its monotonic seq signal counter. Refreshes every 60 seconds.

Pricing

Pay per signal. Buy in bundles.

One settlement buys a bundle; each signal draws it down. The per-signal price falls as the bundle grows.

BUNDLES · x402 · USDC ON BASE
TierSignalsPrice / signalTotal (USDC)
Min20.0050.010
Starter200.0050.100
StandardDEFAULT1000.00450.450
Pro5000.00402.000
Whale20000.00357.000

Minimum spend 0.01 USDC. Settled on Base via x402; discounts are per-settlement (the count bought in one tx). Unused signals do not expire.

One-off? GET /v1/spot?city=SLUGbuys a snapshot of a city's latest signal for 0.01 USDC — a single signal, payable by a stock x402 client (no binding nonce).

Why bundles? Settlement carries a flat ~0.001 USDC network fee per transaction, so one settlement per purchase — never per signal — keeps the fee a rounding error and larger bundles cheapest.

Sample

A real signal payload.

This is exactly what a crossing looks like on the wire — buy a bundle to get these pushed live to your Telegram.

GET /v1/sample?city=toronto
Docs

Built for agents, documented for developers.

Add to your MCP client config, then run:

{
  "mcpServers": {
    "isocast": {
      "command": "npx",
      "args": ["isocast-mcp"]
    }
  }
}
$ npx isocast-mcp
READ THE DOCS
Isocastisocast— weather signals for agents

Isocast provides informational data signals only. Nothing on this site or in our API constitutes financial, investment, or betting advice, or a recommendation to place any wager or trade. Signals may be delayed, inaccurate, or incomplete. Prediction-market trading involves risk of loss and is restricted or prohibited in some jurisdictions. You are solely responsible for your own decisions. 18+ (or your local minimum). Isocast is not a broker, exchange, sportsbook, or gambling operator and does not accept wagers or hold funds for betting.

© 2026 Isocast