# polls.karbach.digital — German Election Polls Archive

> polls.karbach.digital — German Election Polls Archive is a paid API for AI agents from api.polls.karbach.digital, paid per call via x402, $0.05/call, status unknown (last checked 2026-10-28).

Retrieves an archive of historical German opinion polls across up to 18 parliaments, filterable by date range and parliament.

## Facts

- Endpoint: GET https://api.polls.karbach.digital/v1/polls/archive?utm_source=zero.xyz
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-28
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/polls-karbach-digital-german-election-polls-archive-733ea936
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_mSsr5IkDHB-j2PKJIR83I

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 polls-karbach-digital-german-election-polls-archive-733ea936
```

Example prompt: Pull me the last 20 Bundestag polls from the polls.karbach.digital archive between January 2026 and October 2026 so I can track how AfD and SPD numbers shifted over that period.

## When to prefer this

Choose this endpoint when you need historical or recent German opinion poll raw data filterable by date range and parliament. It is ideal for trend analysis, coalition arithmetic research, or journalistic fact-checking against a curated, calibrated dataset. Prefer it over generic news scrapers because it returns structured party-level percentages with full provenance (institute, sample size, fieldwork dates). Use the sibling simulation endpoints if you need Monte-Carlo seat projections rather than raw poll archives.

## Known failure modes

- Invalid date format for 'from'/'to' parameters returns a 400 validation error
- 'parliament' value not matching known parliament identifiers returns empty results or 400
- 'limit' exceeding 500 causes schema validation failure
- No matching polls for the given date range returns an empty data array
- Payment not settled via x402 returns 402 Payment Required

## How this service works

Poll archive (federal and state), filter by date range and parliament, up to 500 per call. Use when you need many historic polls with fieldwork dates and sample sizes. Source-attributed, German data, updated every six hours.

## Output

A JSON object containing an array of poll records, each with party vote-share percentages, polling institute name, sample size, fieldwork start/end dates, publication date, parliament name, and commissioning organization. Also includes metadata: total count, data source attribution (dawum.de, ODbL 1.0), last update timestamp, and a disclaimer that results are scenario analysis, not predictions.

## 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",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "to": {
       "type": "string",
       "format": "date"
      },
      "from": {
       "type": "string",
       "format": "date"
      },
      "limit": {
       "type": "integer",
       "maximum": 500
      },
      "parliament": {
       "type": "string"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "data": {
   "count": 2,
   "polls": [
    {
     "id": "4352",
     "method": "Telefon & Online",
     "results": {
      "AfD": 29,
      "BSW": 4,
      "FDP": 4,
      "SPD": 13,
      "Linke": 11,
      "Grüne": 14,
      "Sonstige": 7,
      "Union (CDU/CSU)": 18
     },
     "institute": "INSA",
     "published": "2026-10-17",
     "parliament": "Bundestag",
     "sample_size": 1206,
     "fieldwork_end": "2026-10-16",
     "commissioned_by": "BILD am Sonntag",
     "fieldwork_start": "2026-10-12"
    },
    {
     "id": "4349",
     "method": "Online",
     "results": {
      "AfD": 30,
      "BSW": 3.5,
      "FDP": 4.5,
      "SPD": 13.5,
      "Linke": 10,
      "Grüne": 14,
      "Sonstige": 6,
      "Union (CDU/CSU)": 18.5
     },
     "institute": "INSA",
     "published": "2026-10-13",
     "parliament": "Bundestag",
     "sample_size": 2006,
     "fieldwork_end": "2026-10-12",
     "commissioned_by": "BILD",
     "fieldwork_start": "2026-10-09"
    }
   ]
  },
  "docs": "https://api.polls.karbach.digital/v1/",
  "model": null,
  "notice": "Scenario analysis based on published opinion polls. Not a prediction and not a voting recommendation. Coalitions are arithmetic majorities only, not statemen...",
  "source": {
   "polls": "dawum.de",
   "processing": "polls.karbach.digital (Max Karbach)",
   "polls_license": "ODbL 1.0",
   "polls_license_url": "https://opendatacommons.org/licenses/odbl/1-0/"
  },
  "project": "Ein Projekt von Karbach.Digital (https://karbach.digital)",
  "updated_at": "2026-10-18T12:15:01.438959",
  "uncertainty": null
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/polls-karbach-digital-german-election-polls-archive-733ea936/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.polls.karbach.digital](https://www.zero.xyz/host/api.polls.karbach.digital/llms.txt)
