# polynews.news Election Forecast

> polynews.news Election Forecast is a paid API for AI agents from polynews.news, paid per call via x402, $0.06/call, status unknown (last checked 2026-09-16).

Returns a blended election forecast combining prediction market prices and poll averages for a specified race, with per-candidate probabilities and cited sources.

## Facts

- Endpoint: GET https://polynews.news/api/v1/election-forecast
- Price: $0.06/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-16
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/polynews-news-8adcef16
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_8khr4wGNEyRubJ5Y2KvxL

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability polynews-news-8adcef16
```

Example prompt: What's the latest consensus election forecast for the 2024 US presidential race — blending prediction market prices and poll averages per candidate, with sources I can verify?

## When to prefer this

Use this endpoint when you need a cited, verifiable election forecast that blends both prediction market prices and poll averages into a single consensus probability per candidate. Prefer it over raw market feeds when you want traceable poll sources and over raw poll aggregators when you also want market signal. Ideal for political analysis agents, election dashboards, or any workflow that needs a defensible, blended probability with attribution.

## Known failure modes

- Unknown or malformed race identifier returns empty or error response
- No polls found for a given race — polls array may be empty/absent, composite relies solely on market
- Market data unavailable — composite may fall back to polls only
- Rate limit or payment failure returns 402 or 429 HTTP error
- Race not yet tracked by the service returns null or empty data

## How this service works

Grok-synthesized consensus forecast for candidate/party WINNER election markets (US and international). Blends live Polymarket odds (ground truth) with a polling average Grok synthesizes from multiple sources via web_search; returns per-candidate composites (equal-weight market+poll), the individual polls averaged into each candidate (verifiable), and cited sources. Target a market with a registered 'race' key or any Polymarket election event 'slug'.

## Output

Returns a structured JSON object with per-candidate composite probabilities (equal-weight blend of market and poll), individual poll data with pollster names and URLs, market-implied probabilities, an overall sentiment label, a natural language summary, data weights used, and a last-updated timestamp.

## Request schema (JSON Schema)

```json
{
 "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",
     "properties": {
      "race": {
       "type": "string"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "properties": {
      "data": {
       "type": "object",
       "properties": {
        "race": {
         "type": "string"
        },
        "sources": {
         "type": "array"
        },
        "summary": {
         "type": "string"
        },
        "weights": {
         "type": "object",
         "properties": {
          "poll": {
           "type": "number"
          },
          "market": {
           "type": "number"
          }
         }
        },
        "sentiment": {
         "type": "string"
        },
        "candidates": {
         "type": "array",
         "items": {
          "type": "object",
          "properties": {
           "name": {
            "type": "string"
           },
           "polls": {
            "type": "array",
            "items": {
             "type": "object",
             "properties": {
              "url": {
               "type": "string"
              },
              "date": {
               "type": "string"
              },
              "value": {
               "type": "number",
               "description": "This candidate's implied probability/share in this poll, 0-1"
              },
              "pollster": {
               "type": "string"
              }
             }
            },
            "description": "Individual polls averaged into components.poll (poll == mean of values). Empty/absent when Grok found no specific polls."
           },
           "composite": {
            "type": "number",
            "description": "Blended probability 0-1 (equal-weight mean of market + poll)"
           },
           "components": {
            "type": "object",
            "properties": {
             "poll": {
              "type": "number"
             },
             "market": {
        
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/polynews-news-8adcef16/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from polynews.news](https://www.zero.xyz/host/polynews.news/llms.txt)
