# Bundestag Speeches Search API

> Bundestag Speeches Search API is a paid API for AI agents from api.polls.karbach.digital, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-28).

Search and retrieve excerpts from German Bundestag plenary speeches, filterable by keyword, date, and member

## Facts

- Endpoint: GET https://api.polls.karbach.digital/v1/bundestag/speeches?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-28
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/bundestag-speeches-search-api-a194afef
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_L2fu447qUftO_EhgZKRzc

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 bundestag-speeches-search-api-a194afef
```

Example prompt: Search the Bundestag speeches database for the most recent 10 speeches mentioning 'Wohnungsbau' from 2026 onward — give me the speaker, party, date, and a link to the plenary protocol PDF for each.

## When to prefer this

Choose this endpoint when you need to search or retrieve actual speech text excerpts from German Bundestag plenary sessions, particularly when filtering by keyword, member, or date. It is ideal for political research, journalist fact-checking, tracking parliamentary debates on specific topics, or monitoring what specific MPs have said. Prefer this over general web search when you need structured, sourced, citable parliamentary records with direct links to official PDF protocols.

## Known failure modes

- No speeches found matching the query returns count:0 with an empty speeches array
- Invalid date format for 'from' parameter returns a validation error
- Limit exceeding 200 returns a schema validation error
- Member slug or ID not found returns empty results without error
- Payment not included or insufficient results in HTTP 402 response

## How this service works

Search Bundestag plenary speeches by member, keyword and date: speaker, date, excerpt, protocol PDF. Use when asked what a member or the Bundestag said on a topic. Source-attributed, German data, updated every six hours.

## Output

Returns a JSON object with a list of speech excerpts including speaker name, party, date, member ID, plenary protocol reference number, PDF URL to the full protocol, and a ~280-character excerpt of the opening of each speech. Also includes total count of matching speeches, number returned, data source attribution, and a timestamp of when the data was last updated.

## 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": {
      "q": {
       "type": "string"
      },
      "from": {
       "type": "string",
       "format": "date"
      },
      "limit": {
       "type": "integer",
       "maximum": 200
      },
      "member": {
       "type": "string",
       "description": "member slug or id"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "data": {
   "note": "Excerpt = opening of each speech (about 280 characters); full text in the plenary protocol PDF.",
   "count": 16,
   "returned": 2,
   "speeches": [
    {
     "pdf": "https://dserver.bundestag.de/btp/21/21099.pdf",
     "date": "2026-10-08",
     "party": "Die Linke",
     "excerpt": "Frau Präsidentin! Meine Damen und Herren! Ich als Ostdeutsche lese in Ihrem Bericht vor allem eins: Zwischen Ost und West gibt es immer noch Unterschiede – b...",
     "speaker": "Mandy Eißing",
     "member_id": 182015,
     "plenary_protocol": "21/99"
    },
    {
     "pdf": "https://dserver.bundestag.de/btp/21/21098.pdf",
     "date": "2026-10-07",
     "party": "BÜNDNIS 90/­DIE GRÜNEN",
     "excerpt": "Lernen ist so wundervoll. Ich freue mich, dass der Kollege aus dem Parlamentskreis „Gründung und Start-ups“ – diesen Parlamentskreis darf ich auch leiten – g...",
     "speaker": "Katharina Beck",
     "member_id": 175596,
     "plenary_protocol": "21/98"
    }
   ]
  },
  "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/",
   "parliament_documents": "Deutscher Bundestag (DIP, Plenarprotokolle, Ausschussseiten)",
   "parliament_documents_note": "Official parliamentary documents; speeches are public official works."
  },
  "project": "Ein Projekt von Karbach.Digital (https://karbach.digital)",
  "updated_at": "2026-10-12T06:02:49",
  "uncertainty": null
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/bundestag-speeches-search-api-a194afef/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)
