GET /v1/edge/weather-markets-delayedfreedelayed_15mtier: freecache 60sEngine C — Weather × Markets Edge
Compares our weather model's event probability with the market-implied probability for every weather-linked prediction market we can parse, ranked by divergence with direction, model confidence (from ensemble spread), and market liquidity. parse_coverage reports how much of the weather catalog is covered. Signals are emitted only for market classes that pass our public calibration gate (free at /v1/edge/calibration). Delayed variant: identical shape to /v1/edge/weather-markets, served at least 15 minutes stale. Use the paid endpoint for realtime data.
Each signal carries the method that produced its model probability (nowcast-informed vs NWS-derived lead estimate), its market class, and hours until the event window. Classes whose resolved history has not passed the calibration gate (n >= 200 resolved signals, every populated decile within ±0.10, current model version only) are counted in suppressed_by_class rather than sold.
Delayed variant of edge.weather-markets: identical shape, data served at least 900s stale.
| Name | In | Type | Required | Notes |
|---|---|---|---|---|
min_divergence | query | number | no | |
region | query | string | no | Match against city region (e.g. northeast) or question text |
hazard | query | string | no | Filter signals to one hazard class — one of "temperature", "precipitation", "hurricane" |
limit | query | integer | no | (default: 20) |
curl "https://x402-factory.com/v1/edge/weather-markets-delayed?limit=10"
Worked example from deterministic fixture data (note meta.data_mode); live responses report their own sources and data_mode.
{
"data": {
"markets": [
{
"slug": "houston-high-temp-above-100f-2026-08-02",
"question": "Will the high temperature in Houston on August 2 be above 100°F?",
"market_p": 0.5881,
"model_p": 0.0635,
"divergence": 0.5246,
"direction": "market_overpriced",
"model_confidence": 0.19,
"market_liquidity": 0.716,
"resolution_date": "2026-08-02",
"model_method": "stub",
"market_class": "daily-high-threshold",
"hours_to_event": 348
},
{
"slug": "los-angeles-rain-2026-07-25",
"question": "Will it rain in Los Angeles on July 25?",
"market_p": 0.0855,
"model_p": 0.53,
"divergence": 0.4445,
"direction": "market_underpriced",
"model_confidence": 0.99,
"market_liquidity": 0.697,
"resolution_date": "2026-07-25",
"model_method": "stub",
"market_class": "precip-any",
"hours_to_event": 156
},
{
"slug": "seattle-rain-2026-07-23",
"question": "Will it rain in Seattle on July 23?",
"market_p": 0.344,
"model_p": 0.75,
"divergence": 0.406,
"direction": "market_underpriced",
"model_confidence": 0.75,
"market_liquidity": 0.713,
"resolution_date": "2026-07-23",
"model_method": "stub",
"market_class": "precip-any",
"hours_to_event": 108
},
{
"slug": "nyc-high-temp-above-95f-2026-07-24",
"question": "Will the high temperature in New York City on July 24 be above 95°F?",
"market_p": 0.329,
"model_p": 0.0276,
"divergence": 0.3014,
"direction": "market_overpriced",
"model_confidence": 0.47,
"market_liquidity": 0.792,
"resolution_date": "2026-07-24",
"model_method": "stub",
"market_class": "daily-high-threshold",
"hours_to_event": 132
},
{
"slug": "phoenix-high-temp-above-115f-2026-07-26",
"question": "Will the high temperature in Phoenix on July 26 be above 115°F?",
"market_p": 0.2882,
"model_p": 0.0001,
"divergence": 0.2881,
"direction": "market_overpriced",
"model_confidence": 0.32,
"market_liquidity": 0.709,
"resolution_date": "2026-07-26",
"model_method": "stub",
"market_class": "daily-high-threshold",
"hours_to_event": 180
},
{
"slug": "chicago-high-temp-above-100f-2026-07-22",
"question": "Will the high temperature in Chicago on July 22 be above 100°F?",
"market_p": 0.1349,
"model_p": 0.0039,
"divergence": 0.131,
"direction": "market_overpriced",
"model_confidence": 0.61,
"market_liquidity": 0.74,
"resolution_date": "2026-07-22",
"model_method": "stub",
"market_class": "daily-high-threshold",
"hours_to_event": 84
},
{
"slug": "highest-temperature-chicago-jul-20-2026-88-89",
"question": "Highest temperature in Chicago on Jul 20, 2026? — 88° to 89°",
"market_p": 0.2803,
"model_p": 0.1654,
"divergence": 0.1149,
"direction": "market_overpriced",
"model_confidence": 0.75,
"market_liquidity": 0.736,
"resolution_date": "2026-07-20",
"model_method": "stub",
"market_class": "daily-high-range",
"hours_to_event": 36
}
],
"parse_coverage": 0.9,
"suppressed_by_class": {
"landfall": 2
},
"calibration_reference": "/v1/edge/calibration"
},
"meta": {
"endpoint": "/v1/edge/weather-markets-delayed",
"version": "1.0.0",
"generated_at": "2026-10-05T10:15:57.837Z",
"freshness": "delayed_15m",
"sources": [
"kalshi",
"polymarket",
"stub-model"
],
"request_id": "req_00000000",
"docs": "https://x402-factory.com/docs/edge.weather-markets-delayed",
"data_mode": "live"
}
}data payload){
"type": "object",
"properties": {
"markets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"question": {
"type": "string"
},
"market_p": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"model_p": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"divergence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"direction": {
"type": "string",
"enum": [
"market_underpriced",
"market_overpriced"
]
},
"model_confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"market_liquidity": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"resolution_date": {
"type": "string"
},
"model_method": {
"type": "string",
"description": "What produced model_p: the proprietary nowcast, an NWS-derived lead estimate, or passthrough"
},
"market_class": {
"type": "string",
"description": "Market-class taxonomy label; only calibration-allowlisted classes appear here"
},
"hours_to_event": {
"type": "number",
"minimum": 0,
"description": "Hours from now until the event window opens (0 = in progress)"
}
},
"required": [
"slug",
"question",
"market_p",
"model_p",
"divergence",
"direction",
"model_confidence",
"market_liquidity",
"resolution_date",
"model_method",
"market_class",
"hours_to_event"
],
"additionalProperties": false
}
},
"parse_coverage": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"suppressed_by_class": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
},
"description": "Signals withheld by the calibration gate, counted per market class"
},
"calibration_reference": {
"type": "string",
"description": "Free endpoint publishing the per-class calibration behind the gate"
}
},
"required": [
"markets",
"parse_coverage",
"suppressed_by_class",
"calibration_reference"
],
"additionalProperties": false
}
The platform wraps every payload in an envelope: { "data": …, "meta": { endpoint, version, generated_at, freshness, sources, request_id, docs, data_mode } }.
| Status | Code | Meaning |
|---|---|---|
| 400 | INVALID_PARAMS | Input failed validation; message lists the offending fields. |
| 404 | NOT_FOUND | No matching resource; suggestion may point to a sibling endpoint. |
| 410 | RESOLVED | Market/event settled; body includes a resolution summary. |
| 503 | STALE_DATA | Upstream feed down; stale data is never silently served beyond 2× cache TTL. |
| 500 | INTERNAL | Our bug. The request_id helps us find it. |