{
  "name": "Isocast",
  "description": "Agents pay 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. Free endpoints (cities, sample, pricing, terms) need no auth; deeper signal reads are paid per bundle via x402 (USDC on Base).",
  "url": "https://api.isocast.dev/a2a",
  "preferredTransport": "JSONRPC",
  "protocolVersion": "0.3.0",
  "provider": {
    "organization": "Isocast",
    "url": "https://isocast.dev",
    "contact": { "email": "api@isocast.dev" }
  },
  "version": "1.1.0",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false,
    "extensions": [
      {
        "uri": "https://github.com/google-a2a/a2a-x402/v0.1",
        "description": "Paid endpoints settle via the x402 protocol (on-chain USDC). On an unpaid paid-route request the server returns HTTP 402 whose accepts[] lists one exact USDC rail per network; sign one rail and retry with PAYMENT-SIGNATURE (x402 V2) or X-PAYMENT (legacy). Free endpoints need no payment.",
        "required": false,
        "params": {
          "x402Version": 2,
          "networks": ["eip155:8453"],
          "asset": "USDC",
          "scheme": "exact"
        }
      }
    ]
  },
  "defaultInputModes": ["application/json"],
  "defaultOutputModes": ["application/json"],
  "skills": [
    {
      "id": "weather-signals",
      "name": "Polymarket weather-market bucket-transition signals",
      "description": "Per-signal, bundle-prepaid alerts fired the instant a city's daily-high temperature crosses from one Polymarket temperature bucket into another. Each signal carries the market URL, the old and new reading + bucket, and live YES/NO/midpoint odds for every bucket (with a `dead` flag on unreachable buckets). Buy the next N signals for a city via x402 (USDC on Base, tiers from $0.005 down to $0.0035/signal, $0.01 minimum), then pull them from /v1/signals or have them pushed to Telegram. At-most-once per (city, day, bucket); seq is monotonic per city. 37 cities.",
      "tags": ["weather", "polymarket", "prediction-markets", "x402", "signals"],
      "examples": [
        "Buy the next 20 Istanbul high-temperature bucket-transition signals and push them to my Telegram.",
        "Fetch the latest Istanbul weather signal right now — one $0.01 spot read, no subscription.",
        "Show me the sample signal shape for NYC before I pay.",
        "What does one signal cost, and what's the volume-tier pricing for 500 signals?"
      ]
    }
  ],
  "authentication": {
    "schemes": ["none"],
    "description": "Free endpoints (/health, /v1/cities, /v1/cities/:slug, /v1/sample, /v1/signals/meta, /terms.*) and Telegram delivery registration (wallet-signed EIP-712, no payment; bot @IsoCast_bot — DM /start for your chat_id) need no auth. GET /v1/spot is a stock-x402 single-signal snapshot ($0.01, no binding nonce) — a plain @x402/fetch client can pay it. Paid signal purchase and reads (/v1/subscribe, /v1/signals) use the x402 HTTP-402 flow: settle a USDC bundle on Base (network eip155:8453), binding (payer, citySlug, count) into the authorization nonce. A receipt token from /v1/subscribe reads /v1/signals without re-paying."
  },
  "documentationUrl": "https://api.isocast.dev/llms.txt",
  "openApiUrl": "https://api.isocast.dev/openapi.json",
  "termsOfService": "https://isocast.dev/terms"
}
