Die StadtratWatch API v1 bietet Zugang zu strukturierten Daten über Stadtratssitzungen, Abstimmungen und Redebeiträge. Alle Endpunkte geben JSON-Daten zurück und stehen unter der CC0 1.0 Lizenz.
/api/v1/
Die API benötigt keine Authentifizierung. Alle Endpunkte sind öffentlich zugänglich.
Alle API-Antworten folgen diesem grundlegenden Format:
{
"meta": {
"stadtratwatch_api": {
"version": "1.0",
"license": "CC0 1.0",
"license_url": "https://creativecommons.org/publicdomain/zero/1.0/"
}
},
"data": [...] // oder andere Datenfelder
}
GET /api/v1/parliament-periods.json
Gibt eine Liste aller verfügbaren Legislaturperioden zurück.
Antwort:
{
"meta": { ... },
"data": [
{
"id": "magdeburg-7",
"name": "Wahlperiode VII",
"lastUpdate": "2024-01-15T10:30:00Z"
}
]
}
Felder:
id: Eindeutige ID der Legislaturperiodename: Anzeigename der LegislaturperiodelastUpdate: Zeitstempel der letzten AktualisierungGET /api/v1/parliament-periods/{parliamentPeriodId}.json
Gibt detaillierte Informationen zu einer spezifischen Legislaturperiode zurück.
Parameter:
parliamentPeriodId: ID der Legislaturperiode (z.B. “magdeburg-7”)Antwort:
{
"meta": { ... },
"parliamentPeriod": {
"id": "magdeburg-7",
"name": "Wahlperiode VII",
"sessions": [...],
"persons": [...],
"factions": [...],
"lastUpdate": "2024-01-15T10:30:00Z"
}
}
GET /api/v1/parliament-periods/{parliamentPeriodId}/speeches/{sessionId}.json
Gibt alle Redebeiträge einer spezifischen Stadtratssitzung zurück.
Parameter:
parliamentPeriodId: ID der LegislaturperiodesessionId: ID der SitzungAntwort:
{
"meta": { ... },
"data": [
{
"personId": "max-mustermann",
"speaker": "Max Mustermann",
"start": "00:15:30",
"duration": "00:03:45",
"onBehalfOf": "Ausschuss für Stadtentwicklung, Bauen und Verkehr",
"transcription": "Meine Damen und Herren, ich möchte zu diesem Punkt folgendes sagen..."
}
]
}
Felder:
personId: ID der sprechenden Person (kann null sein)speaker: Name der sprechenden Personstart: Startzeit des Redebeitrags im Video in Sekundenduration: Dauer des Redebeitrags in SekundenonBehalfOf: Name des Gremiums, für das die Person spricht (bspw. ein Ausschuss, optional)transcription: Transkription des RedebeitragsHinweise:
null sein. Das kann der Fall sein, wenn der Redebeitrag von einer Person stammt, die kein Stadtratsmitglied ist. Bspw. eine Beigeordnete oder wenn Person auf Einladung des Stadtrats spricht.GET /api/v1/parliament-periods/{parliamentPeriodId}/votings/{sessionId}.json
Gibt alle Abstimmungen einer spezifischen Stadtratssitzung zurück.
Parameter:
parliamentPeriodId: ID der LegislaturperiodesessionId: ID der SitzungAntwort:
{
"meta": { ... },
"data": [
{
"id": 1,
"videoTimestamp": 1800,
"votingSubject": "Antrag zur Verkehrsberuhigung in der Innenstadt",
"votes": [
{
"personId": "person-123",
"vote": "yes"
},
{
"personId": "person-456",
"vote": "no"
}
]
}
]
}
Felder:
id: Eindeutige ID der Abstimmung. (Eindeutigkeit innerhalb der Sitzung)videoTimestamp: Zeitstempel im Video in SekundenvotingSubject: Beschreibung des Abstimmungsthemasvotes: Array mit den einzelnen StimmenAbstimmungsoptionen:
yes: Ja-Stimmeno: Nein-Stimmeabstain: Enthaltungno_show: Nicht abgestimmtWenn eine angeforderte Ressource nicht existiert:
{
"status": 404,
"statusText": "Session speeches not found"
}
curl -X GET https://www.stadtratwatch.de/api/v1/parliament-periods.json
curl -X GET https://www.stadtratwatch.de/api/v1/parliament-periods/magdeburg-7/speeches/2024-05-02.json
curl -X GET https://www.stadtratwatch.de/api/v1/parliament-periods/magdeburg-7/votings/2024-05-02.json
Alle über diese API bereitgestellten Daten stehen unter der CC0 1.0 Lizenz (Public Domain). Sie können die Daten frei verwenden, kopieren, verändern und verbreiten.