Bürgeranträge
Dein Anliegen : Unser Antrag

Daten müssen fließen, um sie nutzbar zu machen.
Am besten über eine API wie diese, die die OpenAntrag-Daten öffentlich zugänglich macht.

Die 
Schnittstellen



Alle Daten von OpenAntrag, bis auf die Kontodaten der Benutzer, sind öffentlich zugänglich. Jeder kann sie maschinell einlesen und weiterverarbeiten

Um Vandalismus und dergleichen zu verhindern, ist der schreibende Zugriff durch einen Schlüssel (API-Key) gesichert, den die Fraktionen auf Anfrage (kurze Mail) erhalten.

Alle Dienstmethoden wurden als HTTP-Services (REST) via Web API umgesetzt. Das Ausgabeformat richtet sich nach dem im Request angegebenen Content-Type. Unterstützt werden aktuell folgende Content-Types:

  • application/json
  • text/csv (nur Listen)

Alternativ kann auch der Url-Parameter format zur erzwungenen Ausgabe eines bestimmten Formats verwenden werden. Beispiel:

http://openantrag.de/api/ ... ?format=json

Im Folgenden werden die einzelnen Methoden und ihre Ausgaben dokumentiert. Sollten sich daraus Fragen ergeben, gerne via Mail an api@openantrag.de

Parlament (Fraktion):
Representation

/api/representation/GetKeyValueList

Url http://openantrag.de/api/representation/GetKeyValueList
HTTP-Methode GET
Ausgabe Eine Key-Value-Liste aller in OpenAntrag vertretenen Parlamente (Fraktionen) mit Schlüsselwert und Namen
Beispielergebnisse:

/api/representation/GetAll

Url http://openantrag.de/api/representation/GetAll
HTTP-Methode GET
Ausgabe Liste aller Representation-Objekte (Parlamente).
Beispielergebnisse:

/api/representation/GetByKey/{key}

Url http://openantrag.de/api/representation/GetByKey/{KEY}
HTTP-Methode GET
Ausgabe Ein Representation-Objekt (Parlament) anhand seines Schlüsselwertes (KEY).
Beispielergebnisse:

/api/representation/GetRepresentatives/{key}

Url http://openantrag.de/api/representation/GetRepresentatives/{KEY}
HTTP-Methode GET
Ausgabe Liste aller Representative-Objekte (Abgeordnete) einer Fraktion anhand des Schlüsselwertes eines Parlamentes (KEY).
Beispielergebnisse:

/api/representation/GetCommittees/{key}

Url http://openantrag.de/api/representation/GetCommittees/{KEY}
HTTP-Methode GET
Ausgabe Liste aller Committee-Objekte (Ausschüsse) eines Parlaments (Fraktion) anhand des Schlüsselwertes eines Parlamentes (KEY).
Beispielergebnisse:

/api/representation/GetProcessSteps/{key}

Url http://openantrag.de/api/representation/GetProcessSteps/{KEY}
HTTP-Methode GET
Ausgabe Liste aller ProcessStep-Objekte (Prozessschritte), inklusive der Folgeschritte, eines Parlaments (Fraktion) anhand des Schlüsselwertes eines Parlamentes (Key).

In der Caption-Eigenschaft sind Platzhalter wie %REPRESENTATIVE% oder %COMMITTEE% enthalten, wenn ein Schritt bei der Weitergabe eines Antrags einen zusätzlichen Wert benötigt.
Beispielergebnisse:

/api/representation/GetProcessStepById/{key}/{id}

Url http://openantrag.de/api/representation/GetProcessStepById/{KEY}/{ID}
HTTP-Methode GET
Ausgabe Gibt ein ProcessStep-Objekt (Prozessschritt) eines Parlamentes (Key) anhand seiner ID zurück.

In der Caption-Eigenschaft sind Platzhalter wie %REPRESENTATIVE% oder %COMMITTEE% enthalten, wenn ein Schritt bei der Weitergabe eines Antrags einen zusätzlichen Wert benötigt.
Beispielergebnisse:

Antrag:
Proposal

/api/proposal/{Key}/GetCount

Url http://openantrag.de/api/proposal/{KEY}/GetCount
HTTP-Methode GET
Ausgabe Anzahl der in OpenAntrag erfassten Anträge.

Der KEY bezeichnet entweder den Schlüsselwert eines Parlaments (Fraktion) oder den festen Wert ALL, um über alle Äntrage zu gehen.
Beispielergebnisse:

/api/proposal/{Key}/GetTop/{count}

Url http://openantrag.de/api/proposal/{KEY}/GetTop/{COUNT}
HTTP-Methode GET
Ausgabe Liste der letzten eingegangenen Proposal-Objekte (Anträge), mit dem Parameter COUNT zur Angabe der Anzahl.

Der KEY bezeichnet entweder den Schlüsselwert eines Parlaments (Fraktion) oder den festen Wert ALL, um über alle Äntrage zu gehen.
Beispielergebnisse:

/api/proposal/{Key}/GetPage/{pageNo}/{pageCount}

Url http://openantrag.de/api/proposal/{KEY}/GetPage/{PAGENO}/{PAGECOUNT}
HTTP-Methode GET
Ausgabe Seitenweise Liste der Proposal-Objekte (Anträge), mit den Parametern PAGENO zur Angabe der Seitenzahl und PAGECOUNT, der Anzahl der Anträge pro Seite. Die Zählung der Seiten beginnt bei 1.

Der KEY bezeichnet entweder den Schlüsselwert eines Parlaments (Fraktion) oder den festen Wert ALL, um über alle Äntrage zu gehen.
Beispielergebnisse:

/api/proposal/{Key}/GetByTag/{tag}

Url http://openantrag.de/api/proposal/{KEY}/GetByTag/{TAG}
HTTP-Methode GET
Ausgabe Liste aller Proposal-Objekte (Anträge), die mit einem Thema (TAG) gekennzeichnet wurden.

Der KEY bezeichnet entweder den Schlüsselwert eines Parlaments (Fraktion) oder den festen Wert ALL, um über alle Äntrage zu gehen.

Das Thema (TAG) muss Url-kodiert sein.
Beispielergebnisse:

/api/proposal/GetByTitleUrl/{Key}/{titleurl}

Url http://openantrag.de/api/proposal/GetByTitleUrl/{KEY}/{TITLEURL}
HTTP-Methode GET
Ausgabe Gibt ein Proposal-Objekt (Antrag), anhand seiner suchmaschinenfreundlichen Url zurück.

Der KEY bezeichnet entweder den Schlüsselwert eines Parlaments (Fraktion) oder den festen Wert ALL, um über alle Äntrage zu gehen.
Beispielergebnisse:

/api/proposal/GetById/{id}

Url http://openantrag.de/api/proposal/GetById/{ID}
HTTP-Methode GET
Ausgabe Gibt ein Proposal-Objekt (Antrag), anhand seiner systemweit eindeutigen ID zurück.
Beispielergebnisse:

/api/proposal/GetComments/{id}

Url http://openantrag.de/api/proposal/GetComments/{ID}
HTTP-Methode GET
Ausgabe Liste aller ProposalComment-Objekte (Kommentare zu einem Antrag) eines Antrags anhand der eindeutigen ID des Antrags.
Beispielergebnisse:

/api/proposal/GetTags

Url http://openantrag.de/api/proposal/GetTags
HTTP-Methode GET
Ausgabe Liste aller bereits verfügbaren Tags (Themen).
Beispielergebnisse:

/api/proposal/PostNew

Url http://openantrag.de/api/proposal/PostNew
HTTP-Methode POST
Übergabe ProposalDTO-Objekt mit folgenden Eigenschaften:

Api-Key Api-Schlüssel der Fraktion
Key_Representation Schlüsselwert des Parlaments (Fraktion)
Title Title des neuen Antrags
Text Text des neuen Antrags in Markdown-Syntax
TagList Komma-separierte Liste der dem Antrag zuzuweisenden Themen
Beispiel:
{
  "ApiKey" : "abcdefghijklmnopqrstuvwxyz",
  "Key_Representation": "wiesbaden",
  "Title": "Dies ist ein Test...",
  "Text": "Dies ist ein Test",
  "TagList": "Transparenz,Bildung"
}
                        
Ausgabe Neu erzeugtes Proposal-Objekt (Antrag) mit allen Eigenschaften.

/api/proposal/PostNextStep

Url http://openantrag.de/api/proposal/PostNextStep
HTTP-Methode POST
Hinweis Ein Proposal-Objekt (Antrag) enthält eine Auflistung von ProposalStep-Objekten (Antragsschritt). Der aktuell gültige Antragsschritt aus der Liste kann über die Eigenschaft ID_CurrentProposalStep ermittelt werden. Dieser Wert verweist auf die fortlaufende Id der Antragsschritte.

Ein Antragsschritt ist die Ausformulierung eines Prozessschrittes. In einem ProposalStep-Objekt wird dieses über das untergeordnete ProcessStep-Objekt zur Verfügung gestellt.

Die nächsten möglichen Schritte lassen sich über die ProcessStep-Eigenschaft ID_NextSteps als komma-separierte ID-Liste abrufen. Ein komplettes ProcessStep-Objekt kann /api/representation/GetProcessSteps abgerufen werden.

In einigen Prozessschritten sind Variablen enthalten, die kennzeichnen, dass weitere Daten zu diesem Schritt benötigt werden. Dies wären aktuell:
%REPRESENTATIVE% Abgeordneter
Auswahlliste über /api/representation/GetRepresentatives
%COMMITTEE% Ausschuss
Auswahlliste über /api/representation/GetCommittees
Benötigt ein Antragsschritt eine der Variablen, muss der entsprechende Wert im zu übergebenden Data Transfer Object gefüllt sein.

Übergabe ProposalNextStepDTO-Objekt mit folgenden Eigenschaften:

Api-Key Api-Schlüssel der Fraktion
Key_Representation Schlüsselwert des Parlaments (Fraktion)
ID_Proposal ID des Antrags
ID_ProcessStep ID des einzustellenden Prozessschrittes
InfoText Informationstext in Markdown-Syntax
Key_Representative Schlüsselwert des Abgeordneten, wenn der Prozesschritt dies benötigt
Key_Committee Schlüsselwert des Ausschusses, wenn der Prozesschritt dies benötigt
Beispiel:
{
  "ApiKey" : "abcdefghijklmnopqrstuvwxyz",
  "Key_Representation": "wiesbaden",
  "ID_Proposal" : "proposals-66",
  "ID_ProcessStep" : "10",
  "InfoText" : "Antrag wurde einstimmig angenommen",
  "Key_Representative" : null,
  "Key_Committee" : null
}
                        
Ausgabe Neu erzeugtes ProposalStep-Objekt (Antragsschritt) mit allen Eigenschaften.

Mitteilungen:
Notifications

/api/notifications/GetTypeList

Url http://openantrag.de/api/notifications/GetTypeList
HTTP-Methode GET
Ausgabe Eine Key-Value-Liste aller in OpenAntrag verwendeten Mitteilungstypen
Beispielergebnisse:

/api/notifications/GetLast/{count}

Url http://openantrag.de/api/notifications/GetLast/{count}
HTTP-Methode GET
Ausgabe Liste der letzten Notification-Objekte (Mitteilungen), mit dem Parameter COUNT zur Angabe der Anzahl.
Beispielergebnisse:

/api/notifications/GetLastByType/{typeId}/{count}

Url http://openantrag.de/api/notifications/GetLast/{typeId}/{count}
HTTP-Methode GET
Ausgabe Liste der letzten Notification-Objekte (Mitteilungen) eines bestimmten Typs (TYPEID), mit dem Parameter COUNT zur Angabe der Anzahl.
Beispielergebnisse: