Command-line tool and TypeScript library
oparl
Read German municipal council information — meetings, agendas, motions, committees and members — from your terminal. oparl is a command-line tool and TypeScript client for OParl, the open standard API of council information systems (Ratsinformationssysteme): find a municipality’s endpoint, open its bodies, and walk their meetings, papers or persons as clean JSON you can pipe straight into jq.
Install
Needs Node.js 20 or newer. Installs the oparl command:
npm i -g @maschinenlesbar.org/oparl-cliAccess
No account, no API key, no configuration — install and query.
Quick start
# 1. Find a municipality's OParl endpoint (its System URL)
oparl endpoints --search köln | jq -r '.[].url'
# 2. List the bodies on that server — usually one per municipality
oparl bodies https://buergerinfo.stadt-koeln.de/oparl/system | jq -r '.data[] | "\(.name)\t\(.id)"'
# 3. Papers (Vorlagen, Anträge, Anfragen) changed since a date
oparl list paper https://buergerinfo.stadt-koeln.de/oparl/bodies/stadtverwaltung_koeln \
--modified-since 2026-09-01 | jq -r '.data[] | select(.deleted != true) | "\(.date)\t\(.reference)\t\(.name)"'
# 4. The first page of meetings
oparl list meeting https://buergerinfo.stadt-koeln.de/oparl/bodies/stadtverwaltung_koeln \
| jq -r '.data[] | "\(.start)\t\(.name)"'Commands
-
endpointsList known OParl endpoints: the registry at dev.oparl.org plus a curated list of servers it lacks, with the date and result of their last live check
-
systemFetch an endpoint's System object (the entry point of an OParl server)
-
bodiesList the bodies (Körperschaften, usually municipalities) on an OParl server
-
listWalk one of a body's object lists. Returns { data, pages, next }: pass `next` to `oparl get` or raise --max-pages to continue. Servers may ignore the filters.
-
getFetch any OParl object or list page by URL
Claude Code skills
The oparl plugin teaches Claude to use oparl. Install it from the maschinenlesbar.org marketplace:
/plugin marketplace add maschinenlesbar-org/plugins
/plugin install oparl@maschinenlesbar/oparl:oparl-council-activity/oparl:oparl-endpoint-finder
What the skills answer, with real examples → Skill descriptions and requirements →
TypeScript library
@maschinenlesbar.org/oparl-cli is also a typed API client you can import in your own code, with no runtime HTTP dependencies.
The tool, not the data
The data comes from the provider behind the API, under its own terms — see DATA_LICENSE.md. The code is dual-licensed AGPL-3.0-or-later or commercial — see LICENSING.md.