GovData (Germany) API
Free German open data API with no key: 156,000+ datasets harvested from all 16 federal states plus federal bodies, through the standard CKAN interface. Live example included.
Endpoint tested and returned HTTP 200 on 2026-08-21
What is the GovData (Germany) API?
GovData is Germany's national open data portal, exposing a free, key-free CKAN API at ckan.govdata.de. It aggregates more than 156,000 datasets harvested from the sixteen Länder, federal ministries and municipal portals, which makes it the single largest German-language dataset index available without registration.
GovData is a metadata broker rather than a data host. Almost nothing is published to it directly: the portal harvests from Länder portals such as Berlin's Datenregister, Hamburg's Transparenzportal and NRW's Open.NRW, then normalises the results into one CKAN index. That is why the count sits at 156,181 while Germany's individual state portals hold a few thousand each, and it is why `organization.title` reads "Land Schleswig-Holstein" rather than the name of the statistics office that actually produced the file.
The harvesting model has a practical consequence you should plan for: licence metadata is inconsistent. Records arrive with `license_id` and `license_title` as empty strings surprisingly often, because the upstream portal did not populate them in a form GovData could map. Do not treat a missing licence as permission — follow the resource URL back to the publishing portal and check there before reusing anything commercially.
Quick facts
- Base URL
https://ckan.govdata.de/api/3/action- Authentication
- No API key for reads. GovData harvests rather than hosts, so write access is not offered to the public at all.
- Rate limit
- No published limit. Be considerate — this is a shared federal service.
- Pricing
- Free. Licences vary widely and are frequently blank; verify at the source portal.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the GovData (Germany) API
Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.
1. Search German government datasets
GET https://ckan.govdata.de/api/3/action/package_search?rows=1
curl 'https://ckan.govdata.de/api/3/action/package_search?rows=1'const res = await fetch("https://ckan.govdata.de/api/3/action/package_search?rows=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://ckan.govdata.de/api/3/action/package_search?rows=1", timeout=20)
res.raise_for_status()
print(res.json()){
"help": "https://ckan.govdata.de/api/3/action/help_show?name=package_search",
"success": true,
"result": {
"count": 156181,
"facets": {},
"results": [
{
"author": null,
"author_email": null,
"creator_user_id": "f512f73d-bed2-439d-8f6f-3fbc6048b24e",
"id": "02ec9037-ebad-46df-b577-fea4bfb6f179",
"isopen": false,
"license_id": "",
"license_title": "",
"maintainer": null,
"maintainer_email": null,
"metadata_created": "2025-08-19T07:39:47.954380",
"metadata_modified": "2026-08-21T08:00:28.732787",
"name": "transformingantiquity",
"notes": "Das Datenset der Antikensammlung Kiel besteht aus 36 einzelnen, fotogrammetrisch hergestellten 3D-Modellen unterschiedlicher Ausstellungsobjekte (Statuen, Vasen, Reliefs usf.) in Form von .obj, .mtl und .jpg, sowie den dazugehörigen Beschriftungen, bzw. Kurzbeschreibungen der Exponate im .txt und .docx-Format. Darüberhinaus beinhaltet unser Datenset mp3-Tonspuren vom Audioguide der Antikensammlung in deutscher und englischer Sprache, welche durch ihre Dateinamen (oder mittels der Exel-Tabelle) neun der Modelle zu geordnet werden können. Zurzeit publizieren wir unsere 3D-Digitalisate auf der Plattform sketchfab.",
"num_resources": 5,
"num_tags": 16,
"organization": {
"id": "81b1a55a-02f7-42a5-a2b9-85698c6888c4",
"name": "land-schleswig-holstein",
"title": "Land Schleswig-Holstein",
"type": "organization",
"description": "",
"image_urParameters
| Parameter | Type | Required | Description |
|---|---|---|---|
q | query | Optional | Free-text Solr query. German compound nouns matter — search `Binnenschifffahrt`, not `inland shipping`. Verkehr |
rows | query | Optional | Datasets per page. Defaults to 20. 1 |
start | query | Optional | Pagination offset. 0 |
fq | query | Optional | Filter query, most usefully by the harvesting organisation. organization:land-schleswig-holstein |
sort | query | Optional | Sort order such as newest first. metadata_modified desc |
Response fields
successboolean- CKAN's own success flag, independent of the HTTP status.
result.countinteger- Total matching datasets — 156,181 unfiltered at the time of testing.
results[].author / author_emailstring- The originating body, for example a Land statistics office. Often more precise than `organization`.
results[].organization.titleobject- The harvesting source, typically a Land rather than the producing agency.
results[].license_id / license_titlestring- Frequently an empty string. Treat blank as unknown, never as open.
results[].notesstring- German-language description. There is no English translation field.
results[].metadata_modifiedstring- Timestamp of the last harvest, which changes even when the underlying data did not.
results[].num_resourcesinteger- How many downloadable files or services the record points at.
What you can build with the GovData (Germany) API
- Search across every German state's open data from one endpoint
- Monitor a specific Land for newly harvested datasets
- Build a German-language dataset discovery tool
- Cross-reference federal statistics with state-level publications
- Assemble a licence audit by following blank `license_id` records to source
Common errors and how to fix them
HTTP 200 with success false
The action ran but your parameters were rejected.
Fix: Read `error.message` in the body rather than relying on the status code.
Empty results for English queries
The catalogue is indexed in German.
Fix: Search German terms. `Bevölkerung` returns results where `population` returns nothing.
Blank licence on an otherwise complete record
The upstream portal did not supply mappable licence metadata.
Fix: Open the record's source URL and read the licence at the publishing portal before reusing the data.
Stale-looking `metadata_modified`
Harvest timestamps move even when the data does not.
Fix: Compare the resource's own last-modified header if you need true data freshness.
GovData (Germany) API — frequently asked questions
Is the GovData API free?
Yes — reads need no key and no registration. GovData is a federal metadata broker, so there is no public write access to request either.
Why does GovData list so many more datasets than data.gv.at or opendata.swiss?
Because it harvests all sixteen Länder plus federal and municipal portals into one index instead of hosting a curated catalogue. A single state statistics office can contribute tens of thousands of small tabular releases.
Can I use German open data commercially?
Often yes, typically under Datenlizenz Deutschland or a Creative Commons licence, but GovData's licence fields are unreliable. Follow the record back to the publishing portal and confirm there.
Is there an English version of the metadata?
No. Titles and descriptions are German only, so search with German vocabulary and translate on your side if you need an English interface.
Tools that pair with this API
CSV to JSON Converter
Convert CSV to a JSON array of objects online. Header-row detection, comma/semicolon/tab delimiters and pretty-printed output — 100% in your browser.
JSON to CSV Converter
Convert a JSON array of objects to CSV online. Automatic column headers from the union of all keys, delimiter choice and proper quoting — all in-browser.
CSV Viewer & Table
View CSV as a clean HTML table online. Live search filter, row and column counts, delimiter and header options — all processed locally in your browser.
GovData (Germany) is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.