x402 List

x402 Protocol Service Directory

Isocast

Data

Agents buy per-signal bundles via x402 and get pushed (Telegram) the instant a city's daily-high temperature crosses into a new Polymarket bucket — market URL, old/new reading, and live odds for every bucket. 37 cities.

Pay from $0.10 per request in USDC on Base, settled onchain via the x402 protocol, no signup, no API key needed.

UPTIME 24H 100% 7D 100% 30D 100%
BASE URL https://api.isocast.dev WEBSITE https://isocast.dev ENDPOINTS 2 NETWORK Base ASSET USDC MEMBER SINCE 2026-07-14 MONITORED SINCE 2026-07-14

ASSESSMENT

updated 15m ago

Evidence-backed signals, not a single score. Click any chip for the proof. Measured values stay read-only; unknown is honest.

reliability 100%
uptime 24h
100%
uptime 7d
100%
uptime 30d
100%
uptime 90d
100%
response p95
457ms
avg response
323ms
total checks
10
compliance A (11/12)

11 of 12 x402 conformance checks pass. Full checklist below.

jump to compliance checklist

price $0.10 (p94 in Data)
price (min)
$0.10
category percentile (min)
p94 in Data
category percentile (max)
p81 in Data
endpoints / prices
2 / 1
model
flat
stability
100%
risk clean

No deterministic risk flag. Risk fires only on an exact blocklist match, or a reserved-brand name with a mismatched verified payTo. Never from low uptime, a high price, or a model guess.

WHAT IT DOES

ai-derived

Provides temperature-based market signals for cities via Polymarket buckets conf 90%

category
weather-market-data conf 90%
auth
none
weathermarket-datanotifications

AI-generated summary. The measured data is never altered by it.

ENDPOINTS

Service endpoints with HTTP method, path, description, pricing, and network
METHOD PATH DESCRIPTION PRICE NETWORK ASSET
GET /v1/signals $0.10 Base USDC
POST /v1/subscribe $0.10 Base USDC
2 endpoints

REQUEST / RESPONSE EXAMPLE

An unpaid request to GET /v1/signals returns HTTP 402 with the payment terms. Settle onchain via your facilitator, then retry with the X-Payment header.

// request
curl -i 'https://api.isocast.dev/v1/signals'
// 402 response (captured by monitor) · 2 payloads · click to expand
[
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x44b16952484b6dbea40ede12927ee03a5ea6cdd3",
        "amount": "100000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.isocast.dev/v1/subscribe",
      "mimeType": "application/json",
      "description": "Buy the next N Polymarket weather-signal(s) for a city (bundle prepay, count ≥ 2, $0.01–$7.00). Returns a Bearer receipt for /v1/signals. Nonce binds (payer, citySlug, count)."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "body": {
              "city": "istanbul",
              "count": 20
            },
            "type": "http",
            "method": "POST",
            "bodyType": "json"
          },
          "output": {
            "type": "json",
            "example": {
              "ok": true,
              "city": "istanbul",
              "count": 20,
              "amountUsd": 0.1,
              "idempotent": false,
              "receiptToken": "ic_rcpt_…",
              "unitPriceUsd": 0.005,
              "paidThroughSeq": 24
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method",
                "bodyType",
                "body"
              ],
              "properties": {
                "body": {
                  "required": [
                    "city",
                    "count"
                  ],
                  "properties": {
                    "city": {
                      "type": "string",
                      "description": "City slug (see GET /v1/cities), e.g. istanbul, nyc, los-angeles"
                    },
                    "count": {
                      "type": "integer",
                      "minimum": 2,
                      "description": "Number of signals to buy (integer ≥ 2, and total ≥ 0.01 USDC min spend)"
                    }
                  }
                },
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "POST"
                  ],
                  "type": "string"
                },
                "bodyType": {
                  "enum": [
                    "json",
                    "form-data",
                    "text"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  },
  {
    "error": "Payment required",
    "accepts": [
      {
        "asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
        "extra": {
          "name": "USD Coin",
          "version": "2"
        },
        "payTo": "0x44b16952484b6dbea40ede12927ee03a5ea6cdd3",
        "amount": "100000",
        "scheme": "exact",
        "network": "eip155:8453",
        "maxTimeoutSeconds": 300
      }
    ],
    "resource": {
      "url": "https://api.isocast.dev/v1/signals",
      "mimeType": "application/json",
      "description": "Read entitled Polymarket weather signals for a city; pay inline (x402) or present the Bearer receipt from /v1/subscribe. Each signal: market URL + conditionId, old/new temperature bucket, live odds for every bucket. 402 on exhaustion."
    },
    "extensions": {
      "bazaar": {
        "info": {
          "input": {
            "type": "http",
            "method": "GET",
            "queryParams": {
              "city": "istanbul"
            }
          },
          "output": {
            "type": "json",
            "example": {
              "more": false,
              "latest": 12,
              "signals": [
                {
                  "new": {
                    "unit": "C",
                    "bucket": "29-30°C",
                    "reading": 30.1
                  },
                  "old": {
                    "unit": "C",
                    "bucket": "28-29°C",
                    "reading": 28.9
                  },
                  "seq": 1,
                  "city": "istanbul",
                  "buckets": [
                    {
                      "no": 0.45,
                      "yes": 0.55,
                      "label": "29-30°C"
                    }
                  ],
                  "marketUrl": "https://polymarket.com/event/highest-temperature-in-istanbul-on-july-3-2026",
                  "targetDate": "2026-07-03",
                  "conditionId": "0x…"
                }
              ],
              "next_cursor": 1,
              "paid_through": 24
            }
          }
        },
        "schema": {
          "type": "object",
          "$schema": "https://json-schema.org/draft/2020-12/schema",
          "required": [
            "input"
          ],
          "properties": {
            "input": {
              "type": "object",
              "required": [
                "type",
                "method"
              ],
              "properties": {
                "type": {
                  "type": "string",
                  "const": "http"
                },
                "method": {
                  "enum": [
                    "GET"
                  ],
                  "type": "string"
                },
                "queryParams": {
                  "type": "object",
                  "required": [
                    "city"
                  ],
                  "properties": {
                    "city": {
                      "type": "string",
                      "description": "City slug (see GET /v1/cities)"
                    },
                    "count": {
                      "type": "integer",
                      "default": 20,
                      "minimum": 2,
                      "description": "Bundle size proposed in the 402 challenge if payment is required"
                    },
                    "since": {
                      "type": "integer",
                      "default": 0,
                      "minimum": 0,
                      "description": "Return signals with seq strictly greater than this (cursor)"
                    }
                  }
                }
              },
              "additionalProperties": false
            },
            "output": {
              "type": "object",
              "required": [
                "type"
              ],
              "properties": {
                "type": {
                  "type": "string"
                },
                "example": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "x402Version": 2
  }
]

UPTIME

07-14 · uptime 100.0% · 323ms avg07-1407-14
RESPONSE TIME
07-14 · 323ms avg07-14 · 323ms avg07-1407-14
7d UPTIME 100%
UPTIME 7D 100%
AVG RESP 323ms
TOTAL CHECKS 10

RECENT CHECKS

TIME STATUS RESP
● OK 258ms
● OK 331ms
● OK 420ms
● OK 290ms
● OK 279ms
● OK 234ms
● OK 246ms
● OK 457ms
● OK 378ms
● OK 339ms

OVER TIME

All charts share the 7d window selected here. Every series is also served as JSON at /api/v1/services/isocast/price, /scores, /volume and /buyers. On-chain volume and distinct buyers are measured over the service's settlement address and are a conservative undercount (only settlements that reach a measured facilitator are counted).

PRICE (captured 402, USD)
building price history ($0.10)

Median across 2 endpoints. Use the selector to isolate one.

SUB-SCORES (uptime + x402 compliance)
building assessment history (1 day so far)
VOLUME (on-chain settlement, USD)
building volume history (1 day so far)
DISTINCT BUYERS
building buyer history (1 day so far)

COMPLIANCE

11/12 checks pass · grade A
  • 402 payload captured
  • accepts[] array present
  • payTo address recoverable
  • payTo at accepts[0].payTo (conformant shape)
  • payTo is a valid on-chain address
  • atomic price declared
  • atomic price in a sane range
  • asset (token) address declared
  • network resolves to CAIP-2
  • payment scheme declared
  • response mimeType declared
  • served over HTTPS

EMBED THIS BADGE

Show that Isocast is monitored on x402-list. Paste this on your site or README, it links back to this live listing.

Isocast listed on x402-list
status
Isocast uptime on x402-list
live uptime
// HTML
<a href="https://x402-list.com/services/isocast?utm_source=badge&utm_medium=referral&utm_campaign=embed">
  <img src="https://x402-list.com/badge/isocast.svg" alt="Isocast listed on x402-list" height="28">
</a>
// Markdown
[![Isocast on x402-list](https://x402-list.com/badge/isocast.svg)](https://x402-list.com/services/isocast?utm_source=badge&utm_medium=referral&utm_campaign=embed)
// HTML · live uptime variant
<a href="https://x402-list.com/services/isocast?utm_source=badge&utm_medium=referral&utm_campaign=embed">
  <img src="https://x402-list.com/badge/isocast.svg?data=uptime" alt="Isocast uptime on x402-list" height="28">
</a>

RUN THIS SERVICE?

Keep this listing accurate: propose changes to the name, description, website, category or add new endpoints to monitor. Ownership is verified with a domain proof and every change is reviewed manually; measured data stays read-only.

[ update this listing ]