# API-Endpoints

Automatisch generierte Referenz der FastAPI-Endpoints.

## Analyse

| Methode | Pfad | Auth | Beschreibung |
|---|---|---|---|
| POST | `/api/analyze-drucksache` | Keycloak (geplant) | Antrag aus Landtag-Portal analysieren |
| POST | `/analyze` | Keycloak (geplant) | Freitext-Upload analysieren |
| GET | `/status/{job_id}` | - | Job-Status abfragen |
| GET | `/result/{job_id}` | - | Analyse-Ergebnis (HTML) |
| GET | `/result/{job_id}/pdf` | - | Analyse-Ergebnis (PDF) |

## Assessments

| Methode | Pfad | Auth | Beschreibung |
|---|---|---|---|
| GET | `/api/assessments` | - | Alle Bewertungen (optional `?bundesland=`) |
| GET | `/api/assessment` | - | Einzelne Bewertung (`?drucksache=`) |
| GET | `/api/assessment/pdf` | - | PDF-Download einer Bewertung |

## Suche

| Methode | Pfad | Auth | Beschreibung |
|---|---|---|---|
| GET | `/api/search` | - | Interne DB-Suche (`?q=`, max 200 Zeichen) |
| GET | `/api/search-landtag` | - | Live Landtags-Suche (`?q=&bundesland=`) |

## Auswertungen

| Methode | Pfad | Auth | Beschreibung |
|---|---|---|---|
| GET | `/auswertungen` | - | Dashboard (HTML) |
| GET | `/api/auswertungen/matrix` | - | Aggregations-Matrix (JSON, `?wahlperiode=`) |
| GET | `/api/auswertungen/zeitreihe` | - | Score-Verlauf (JSON) |
| GET | `/api/auswertungen/export.csv` | - | Long-Format-CSV aller Anträge |

## Wahlprogramme

| Methode | Pfad | Auth | Beschreibung |
|---|---|---|---|
| GET | `/quellen` | - | Wahlprogramm-Übersicht (HTML) |
| GET | `/api/programme` | - | Liste aller Programme (JSON) |
| GET | `/api/programme/status` | - | Indexierungsstatus |
| POST | `/api/programme/index` | Keycloak (geplant) | Programm(e) indexieren |
| GET | `/api/wahlprogramm-cite` | - | PDF-Seite mit Zitat-Highlighting |

## Zitat-Highlighting

`GET /api/wahlprogramm-cite`

Liefert ein vollständiges Wahlprogramm-PDF mit gelb markierter Zitat-Stelle.

**Parameter:**

| Param | Typ | Beschreibung |
|---|---|---|
| `pid` | string | PROGRAMME-Key (z.B. `gruene-grundsatz`) — alternativ `pdf` |
| `pdf` | string | PDF-Dateiname (z.B. `gruene-grundsatzprogramm.pdf`) — Reverse-Lookup auf `pid` |
| `seite` | int | Ziel-Seitennummer (1-indexed) |
| `q` | string | Snippet-Text zum Highlighten (max 200 Zeichen) |
| `ds` | string | Drucksache-Nr. (optional, für Auto-Re-Analyse bei nicht-verifizierbarem Zitat) |
| `bl` | string | Bundesland-Code (optional, zusammen mit `ds` für Re-Analyse) |

**Verhalten:**

- Text gefunden → PDF mit gelber Highlight-Annotation, `X-Found-Page` Header
- Text NICHT gefunden + `ds`+`bl` vorhanden → Assessment wird automatisch neu analysiert, HTML-Warte-Seite zurück
- Unbekanntes Programm → 404
- Ungültige Seite → 400

## Bundesländer

| Methode | Pfad | Auth | Beschreibung |
|---|---|---|---|
| GET | `/api/bundeslaender` | - | Liste aller konfigurierten Bundesländer |

## System

| Methode | Pfad | Auth | Beschreibung |
|---|---|---|---|
| GET | `/health` | - | Health-Check |
